#include"string.h"
#include "stdio.h"
#include "stdlib.h"
#include"conio.h"
#define MAXSIZE 100
void menu();
typedef struct
{
char Sno[10];
char Sname[15];
char Ssex[4];
int Sage;
int Sscore;
}Record;
int length=0;
/*************************显示所有数据*************************/
void display( )
{
int i;
FILE *fp;
Record student;
if((fp=fopen("D:\\f.txt","r"))==NULL) /*判断文件是否能打开*/
{
printf("File open error!\n");
exit(0);
}
printf("Display All Student Data!\n\n");
while(!feof(fp)) /*判断文件是否读取完成*/
{
fscanf(fp,"%s%s%s%d%d",student.Sno,student.Sname,student.Ssex,&student.Sage,&student.Sscore);
printf("\n%s\t%s\t%s\t%d\t%d",student.Sno,student.Sname,student.Ssex,student.Sage,student.Sscore);
}
fclose(fp); /*关闭文件*/
printf("\n\nplese Enter 1 to end:");
scanf("%d",&i);
if(i==1)
{
clrscr();
return;
}
else
{
clrscr();
display();
}
}
/*************************添加菜单*************************/
void addMenu()
{
printf("--------------添加菜单--------------\n\n");
printf("1. Add student Data\n");
printf("2. Display All student Data\n");
printf("0. Exit Add Menu\n");
printf("------------------------------------\n\n");
printf("Enter the index:");
}
/*************************添加*************************/
void add()
{
FILE *fp;
Record student;
char *cr;
int i,k;
addMenu();
scanf("%d",&i);
printf("\n\n");
if(i==1)
{
printf("Enter Student No:"); /*输入学号*/
scanf("%s",cr);
while(strlen(cr)>10)
{
printf("Data to Long!\n");
printf("Enter Student No:");
scanf("%s",cr);
}
strcpy(student.Sno,cr);
printf("Enter Student Name:"); /*输入姓名*/
scanf("%s",cr);
while(strlen(cr)>15)
{
printf("Data to Long!\n");
printf("Enter Student Name:");
scanf("%s",cr);
}
strcpy(student.Sname,cr);
printf("Enter Student Ssex:"); /*输入性别*/
scanf("%s",cr);
while(strlen(cr)>4)
{
printf("Data to Long!\n");
printf("Enter Student Ssex:");
scanf("%s",cr);
}
strcpy(student.Ssex,cr);
printf("Enter Student Sage:"); /*输入年龄*/
scanf("%d",&student.Sage);
printf("Enter Student Sscore:"); /*输入分数*/
scanf("%d",&student.Sscore);
if((fp=fopen("D:\\f.txt","a"))==NULL) /*判断文件是否能打开*/
{
printf("File open error!\n");
exit(0);
}
fprintf(fp,"\n%s\t%s\t%s\t%d\t%d",student.Sno,student.Sname,student.Ssex,student.Sage,student.Sscore);
fclose(fp); /*关闭文件*/
clrscr();
printf("Add Success!\n");
printf("%s\t%s\t%s\t%d\t%d\n",student.Sno,student.Sname,student.Ssex,student.Sage,student.Sscore);
add();
}
else if(i==2)
{
clrscr();
display();
add();
}
else if(i==0)
{
clrscr();
return;
}
else
{
clrscr();
add();
}
}
/*************************插入************************
void insert()
{
} */
/*************************查找菜单*************************/
void selectMenu()
{
printf("-------------查找菜菜单---------------\n\n");
printf(" 1. Enter Sname Seek \n\n");
printf(" 2. Enter Sno Seek \n\n");
printf(" 3. Enter Ssex Seek \n\n");
printf(" 4. Enter Sage Seek \n\n");
printf(" 5. Enter Sscore Seek \n\n");
printf(" 0. Exit\n\n");
printf("---------------------------------------\n\n");
}
/*************************查找*************************/
void select()
{
int i,k,n;
Record student;
FILE *fp;
char *cr;
k=0;
selectMenu();
printf("Please Enter Seek Index:");
scanf("%d",&i);
if(i==0)
{
clrscr();
menu();
}
else if(i==1) /*根据姓名查询*/
{
printf("\n\n\nEnter Student Name:"); /*输入姓名*/
scanf("%s",cr);
while(strlen(cr)>15)
{
printf("Data to Long!\n");
printf("Enter Student Name:");
scanf("%s",cr);
}
strcpy(student.Sname,cr);
if((fp=fopen("D:\\f.txt","r"))==NULL) /*判断文件是否能打开*/
{
printf("File open error!\n");
exit(0);
}
while(!feof(fp)) /*判断文件是否读取完成*/
{
fscanf(fp,"%s%s%s%d%d",student.Sno,student.Sname,student.Ssex,&student.Sage,&student.Sscore);
if(strcmp(student.Sname,cr)==0)
{
k=1;
printf("%s\t%s\t%s\t%d\t%d\n",student.Sno,student.Sname,student.Ssex,student.Sage,student.Sscore);
}
}
if(feof(fp)&&k==0)
printf("Have Not Found Name Is %s Student Information!\n",cr);
fclose(fp); /*关闭文件*/
}
else if(i==2) /*根据学号查询*/
{
printf("Enter Student No:"); /*输入学号*/
scanf("%s",cr);
while(strlen(cr)>10)
{
printf("Data to Long!\n");
printf("Enter Student No:");
scanf("%s",cr);
}
strcpy(student.Sno,cr);
if((fp=fopen("D:\\f.txt","r"))==NULL) /*判断文件是否能打开*/
{
printf("File open error!\n");
exit(0);
}
while(!feof(fp)) /*判断文件是否读取完成*/
{
fscanf(fp,"%s%s%s%d%d",student.Sno,student.Sname,student.Ssex,&student.Sage,&student.Sscore);
if(strcmp(student.Sno,cr)==0)
{
k=1;
printf("%s\t%s\t%s\t%d\t%d\n",student.Sno,student.Sname,student.Ssex,student.Sage,student.Sscore);
}
}
if(feof(fp)&&k==0)
printf("Have Not Found No Is %s Student Information!\n",cr);
fclose(fp);
}
else if(i==3)
{
printf("Enter Student Ssex:"); /*输入性别*/
scanf("%s",cr);
while(strlen(cr)>4)
{
printf("Data to Long!\n");
printf("Enter Student Ssex:");
scanf("%s",cr);
}
strcpy(student.Ssex,cr);
if((fp=fopen("D:\\f.txt","r"))==NULL) /*判断文件是否能打开*/
{
printf("File open error!\n");
exit(0);
}
while(!feof(fp)) /*判断文件是否读取完成*/
{
fscanf(fp,"%s%s%s%d%d",student.Sno,student.Sname,student.Ssex,&student.Sage,&student.Sscore);
if(strcmp(student.Ssex,cr)==0)
{
k=1;
printf("%s\t%s\t%s\t%d\t%d\n",student.Sno,student.Sname,student.Ssex,student.Sage,student.Sscore);
}
}
if(feof(fp)&&k==0)
printf("Have Not Found Sex Is %s Student Information!\n",cr);
fclose(fp);
}
else if(i==4)
{
printf("Enter Student Sage:"); /*输入年龄*/
scanf("%d",&n);
if((fp=fopen("D:\\f.txt","r"))==NULL) /*判断文件是否能打开*/
{
printf("File open error!\n");
exit(0);
}
while(!feof(fp)) /*判断文件是否读取完成*/
{
fscanf(fp,"%s%s%s%d%d",student.Sno,student.Sname,student.Ssex,&student.Sage,&student.Sscore);
if(student.Sage==n)
{
k=1;
printf("%s\t%s\t%s\t%d\t%d\n",student.Sno,student.Sname,student.Ssex,student.Sage,student.Sscore);
}
}
if(feof(fp)&&k==0)
printf("Have Not Found Age Is %s Student Information!\n",n);
fclose(fp);
}
else if(i==5)
{
printf("Enter Student Sscore:"); /*输入分数*/
scanf("%d",&n);
if((fp=fopen("D:\\f.txt","r"))==NULL) /*判断文件是否能打开*/
{
printf("File open error!\n");
exit(0);
}
while(!feof(fp)) /*判断文件是否读取完成*/
{
fscanf(fp,"%s%s%s%d%d",student.Sno,student.Sname,student.Ssex,&student.Sage,&student.Sscore);
if(student.Sscore==n)
{
k=1;
printf("%s\t%s\t%s\t%d\t%d\n",student.Sno,student.Sname,student.Ssex,student.Sage,student.Sscore);
}
}
if(feof(fp)&&k==0)
printf("Have Not Found Sex Is %s Student Information!\n",n);
fclose(fp);
}
select();
}
/*************************修改************************
void modify()
{
} */
/*************************排序菜单*************************/
orderMenu()
{
printf("\n\n-------------排序菜单---------------\n\n");
printf(" 1. Order By Sno \n\n");
printf(" 2. Order By Sage \n\n");
printf(" 3. Order By Sscore \n\n");
printf(" 0. Exit\n\n");
printf("---------------------------------------\n\n");
}
/*************************排序*************************/
void order()
{
int i,j,k,length;
FILE *fp;
Record student[50];
length=0;
orderMenu();
printf("\nEnter the Index:");
scanf("%d",&k);
if(k>=1&&k<=3)
{
if((fp=fopen("D:\\f.txt","r"))==NULL)
{
printf("File open error!\n");
exit(0);
}
i=0;
while(!feof(fp)) /*判断文件是否读取完成*/
{
i++;
fscanf(fp,"%s%s%s%d%d",student[i].Sno,student[i].Sname,student[i].Ssex,&student[i].Sage,&student[i].Sscore);
}
length=i;
fclose(fp); /*关闭文件*/
if(k==1) /*学号排序*/
{
if(length>=2)
{
for(i=2;i<=length;i++)
{
j=i-1;
student[0]=student[i];
while(strcmp(student[0].Sno,student[j].Sno)<0)
{
student[j+1]=student[j];
j=j-1;
}
student[j+1]=student[0];
}
}
for(i=1;i<=length;i++)
printf("\n%s\t%s\t%s\t%d\t%d",student[i].Sno,student[i].Sname,student[i].Ssex,student[i].Sage,student[i].Sscore);
}
else if(k==2) /*年龄排序*/
{
if(length>=2)
{
for(i=2;i<=length;i++)
{
j=i-1;
student[0]=student[i];
while(student[0].Sage<student[j].Sage)
{
student[j+1]=student[j];
j=j-1;
}
student[j+1]=student[0];
}
}
for(i=1;i<=length;i++)
printf("\n%s\t%s\t%s\t%d\t%d",student[i].Sno,student[i].Sname,student[i].Ssex,student[i].Sage,student[i].Sscore);
}
else /*成绩排序*/
{
if(length>=2)
{
for(i=2;i<=length;i++)
{
j=i-1;
student[0]=student[i];
while(student[0].Sscore<student[j].Sscore)
{
student[j+1]=student[j];
j=j-1;
}
student[j+1]=student[0];
}
}
for(i=1;i<=length;i++)
printf("\n%s\t%s\t%s\t%d\t%d",student[i].Sno,student[i].Sname,student[i].Ssex,student[i].Sage,student[i].Sscore);
}
}
else if(k==0)
{
clrscr();
return;
}
else
{
clrscr();
order();
}
order();
}
/*************************删除菜单*************************/
deletedMenu()
{
printf("\n\n------------------删除菜单----------------------------\n\n");
printf(" 1. Enter No Delected.\n\n");
printf(" 2. Enter name Delected.\n\n");
printf(" 3. Delected All Man Student Information. \n\n");
printf(" 4. Delected All Woman Student Information. \n\n");
printf(" 5. Delected All Studnet Information. \n\n");
printf(" 0. Exit\n\n");
printf("------------------------------------------------------------\n\n");
}
/*************************删除*************************/
void deleted()
{
int i,j,k,length;
FILE *fp;
char *cr,c[15];
Record stu,student[50];
length=j=i=0;
deletedMenu();
printf("\nEnter the Index:");
scanf("%d",&k);
if(k>=1&&k<=5)
{
if(k==1) /*输入学号删除*/
{
printf("\n\nEnter Student No:"); /*输入学号*/
scanf("%s",cr);
while(strlen(cr)>10)
{
printf("Data to Long!\n");
printf("Enter Student No:");
scanf("%s",cr);
}
if((fp=fopen("D:\\f.txt","r"))==NULL) /*判断文件是否能打开*/
{
printf("File open error!\n");
exit(0);
}
while(!feof(fp)) /*判断文件是否读取完成*/
{
fscanf(fp,"%s%s%s%d%d",stu.Sno,stu.Sname,stu.Ssex,&stu.Sage,&stu.Sscore);
if(strcmp(stu.Sno,cr)==0)
{
j=1;
printf("%s\t%s\t%s\t%d\t%d\n",stu.Sno,stu.Sname,stu.Ssex,stu.Sage,stu.Sscore);
}
else
{
student[i]=stu;
i++;
length++;
}
}
fclose(fp);
if(j==1)
{
printf("\nThe above information will be deleted!\n");
do
{
printf("Make sure to delete(Y/N):");
scanf("%s",cr);
}while(strcmp(cr,"Y")!=0&&strcmp(cr,"y")!=0&&strcmp(cr,"N")!=0&&strcmp(cr,"n")!=0);
i=0;
if(strcmp(cr,"Y")==0||strcmp(cr,"y")==0)
{
if((fp=fopen("D:\\f.txt","w"))==NULL)
{
printf("File open error!\n");
exit(0);
}
while(i<length-1)
{
fprintf(fp,"%s\t%s\t%s\t%d\t%d\n",student[i].Sno,student[i].Sname,student[i].Ssex,student[i].Sage,student[i].Sscore);
i++;
}
printf("Deleted successfully!");
fclose(fp);
}
}
else
printf("\nThe student information does not exist!\n");
}
else if(k==2)
{
printf("\n\nEnter Student Name:"); /*输入姓名*/
scanf("%s",cr);
while(strlen(cr)>15)
{
printf("Data to Long!\n");
printf("Enter Student Name:");
scanf("%s",cr);
}
if((fp=fopen("D:\\f.txt","r"))==NULL) /*判断文件是否能打开*/
{
printf("File open error!\n");
exit(0);
}
while(!feof(fp)) /*判断文件是否读取完成*/
{
fscanf(fp,"%s%s%s%d%d",stu.Sno,stu.Sname,stu.Ssex,&stu.Sage,&stu.Sscore);
if(strcmp(stu.Sname,cr)==0)
{
j=1;
printf("%s\t%s\t%s\t%d\t%d\n",stu.Sno,stu.Sname,stu.Ssex,stu.Sage,stu.Sscore);
}
else
{
student[i]=stu;
i++;
length++;
}
}
fclose(fp);
if(j==1)
{
printf("\nThe above information will be deleted!\n");
do
{
printf("Make sure to delete(Y/N):");
scanf("%s",cr);
}while(strcmp(cr,"Y")!=0&&strcmp(cr,"y")!=0&&strcmp(cr,"N")!=0&&strcmp(cr,"n")!=0);
i=0;
if(strcmp(cr,"Y")==0||strcmp(cr,"y")==0)
{
if((fp=fopen("D:\\f.txt","w"))==NULL)
{
printf("File open error!\n");
exit(0);
}
while(i<length-1)
{
fprintf(fp,"%s\t%s\t%s\t%d\t%d\n",student[i].Sno,student[i].Sname,student[i].Ssex,student[i].Sage,student[i].Sscore);
i++;
}
printf("Deleted successfully!");
fclose(fp);
}
}
else
printf("\nThe student information does not exist!\n");
}
else if(k==3)
{
if((fp=fopen("D:\\f.txt","r"))==NULL) /*判断文件是否能打开*/
{
printf("File open error!\n");
exit(0);
}
while(!feof(fp)) /*判断文件是否读取完成*/
{
fscanf(fp,"%s%s%s%d%d",stu.Sno,stu.Sname,stu.Ssex,&stu.Sage,&stu.Sscore);
if(strcmp(stu.Ssex,"男")==0)
{
j=1;
printf("%s\t%s\t%s\t%d\t%d\n",stu.Sno,stu.Sname,stu.Ssex,stu.Sage,stu.Sscore);
}
else
{
student[i]=stu;
i++;
length++;
}
}
fclose(fp);
if(j==1)
{
printf("\nThe above information will be deleted!\n");
do
{
printf("Make sure to delete(Y/N):");
scanf("%s",cr);
}while(strcmp(cr,"Y")!=0&&strcmp(cr,"y")!=0&&strcmp(cr,"N")!=0&&strcmp(cr,"n")!=0);
i=0;
if(strcmp(cr,"Y")==0||strcmp(cr,"y")==0)
{
if((fp=fopen("D:\\f.txt","w"))==NULL)
{
printf("File open error!\n");
exit(0);
}
while(i<length-1)
{
fprintf(fp,"%s\t%s\t%s\t%d\t%d\n",student[i].Sno,student[i].Sname,student[i].Ssex,student[i].Sage,student[i].Sscore);
i++;
}
printf("Deleted successfully!");
fclose(fp);
}
}
else
printf("\nMale students information does not exist!\n");
}
else if(k==4)
{
if((fp=fopen("D:\\f.txt","r"))==NULL) /*判断文件是否能打开*/
{
printf("File open error!\n");
exit(0);
}
while(!feof(fp)) /*判断文件是否读取完成*/
{
fscanf(fp,"%s%s%s%d%d",stu.Sno,stu.Sname,stu.Ssex,&stu.Sage,&stu.Sscore);
if(strcmp(stu.Ssex,"女")==0)
{
j=1;
printf("%s\t%s\t%s\t%d\t%d\n",stu.Sno,stu.Sname,stu.Ssex,stu.Sage,stu.Sscore);
}
else
{
student[i]=stu;
i++;
length++;
}
}
fclose(fp);
if(j==1)
{
printf("\nThe above information will be deleted!\n");
do
{
printf("Make sure to delete(Y/N):");
scanf("%s",cr);
}while(strcmp(cr,"Y")!=0&&strcmp(cr,"y")!=0&&strcmp(cr,"N")!=0&&strcmp(cr,"n")!=0);
i=0;
if(strcmp(cr,"Y")==0||strcmp(cr,"y")==0)
{
if((fp=fopen("D:\\f.txt","w"))==NULL)
{
printf("File open error!\n");
exit(0);
}
while(i<length-1)
{
fprintf(fp,"%s\t%s\t%s\t%d\t%d\n",student[i].Sno,student[i].Sname,student[i].Ssex,student[i].Sage,student[i].Sscore);
i++;
}
printf("Deleted successfully!");
fclose(fp);
}
}
else
printf("\nFemale student information does not exist!\n");
}
else
{
if((fp=fopen("D:\\f.txt","w"))==NULL)
{
printf("File open error!\n");
exit(0);
}
fclose(fp);
clrscr();
printf("All Students Data is Cleaned Empty!\n");
}
}
else if(k==0)
{
return;
}
else
{
deleted();
}
deleted();
}
/*************************主菜单*************************/
void menu()
{
int i, k,j;;
i=1;
clrscr();
srand((unsigned)time(0));
k=rand() % 7;
textbackground(k);
do
{
j=rand() % 7;
}while(j==k);
textcolor(j);
while(i!=0)
{
printf("-------------------主菜单-----------------------------------\n");
printf(" Please Choose Menu Item\n\n");
printf(" 1.Add Student Informatiom\n\n");
printf(" 2.Display All Student Information\n\n");
printf(" 3.Select Student Informatiom\n\n");
printf(" 4.Order Student Informatiom\n\n");
printf(" 5.Deleted Student Informatiom\n\n");
printf(" 0.Exit Program\n");
printf("------------------------------------------------------\n\n");
printf("Enter The Item No:");
scanf("%d",&i);
switch(i)
{
case 0:
exit(0);
case 1:
clrscr();
add();
break;
case 2:
clrscr();
display();
break;
case 3:
clrscr();
select();
break;
case 4:
clrscr();
order();
break;
case 5:
clrscr();
deleted();
break;
default:
menu();
break;
}
menu();
}
}
/*************************主函数*************************/
void main()
{
int i,j;
srand((unsigned)time(0));
i=rand() % 7;
textbackground(i);
do
{
j=rand() % 7;
}while(j==i);
textcolor(j);
menu();
getch();
return;
}