该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
#include
struct student
{
int num;
char name[10];
float chinese;
float math;
float english;
}
stu[100];
int n;
void mycreat();/*录入数据*/
void mydisplay();/*浏览数据*/
void mysearch();/*查询数据*/
void mysort();/*数据排序*/
void mydelete();/*删除数据*/
void mymodify();/*修改数据*/
void mysave();/*保存数据*/
void myread();/*读取数据*/
main()
{
int password;
while(password!=27)
{
system("cls");/*清屏*/
printf(" |*************欢迎使用我的学生成绩管理系统*****************|\n");
printf(" |*************温馨提示********请按提示运行*****************|\n");
printf(" |***********************为鉨独战天下***********************|\n");
printf(" | 1.按键1录入 |\n");
printf(" | 2.按键2浏览 |\n");
printf(" | 3.按键3查询 |\n");
printf(" | 4.按键4排序 |\n");
printf(" | 5.按键5删除 |\n");
printf(" | 6.按键6修改 |\n");
printf(" | 7.按键7保存 |\n");
printf(" | 8.按键8读取 |\n");
printf(" | 9.退出 |\n");
printf(" |**********************************************************|\n");
password=getch();
switch(password)
{
case 49:
mycreat();getch();break;
case 50:
mydisplay();getch();break;
case 51:
mysearch();getch();break;
case 52:
mysort();getch();break;
case 53:
mydelete();getch();break;
case 54:
mymodify();getch();break;
case 55:
mysave();getch();break;
case 56:
myread();getch();break;
}
if(password=='9') break;
}
}
void mycreat()/*录入数据*/
{
int i;
printf("请输入需要录入的学生人数:");
scanf("%d",&n);
printf("学号 姓名 语文 数学 英语\t\n");
for(i=0;i
scanf("%d %s %f %f %f",&stu[i].num,&stu[i].name,&stu[i].chinese,&stu[i].math,&stu[i].english);
printf("请按任意键返回主菜单");
fflush(stdin); /* 清除缓存 */
}
void mydisplay()/*浏览数据*/
{
int i;
printf("学号 姓名 语文 数学 英语\t\n");
for(i=0;i
{
printf("%d %2s %4.1f %4.1f %4.1f\t",stu[i].num,stu[i].name,stu[i].chinese,stu[i].math,stu[i].english);
printf("\n");
}
printf("请按任意键返回主菜单");
fflush(stdin);
}
void mysearch()/*查询数据*/
{
int i=0,x;float j;char s;
printf(" 查找菜单 |\n");
printf("a 按学号 |\n");
printf("b 按最高分 |\n");
printf(" 请输入选择:");
scanf("%c",&s);
if(s=='a')
{
printf("请输入所需要查询的学号:");
scanf("%d",&x);
printf("结果:\n");
for(i=0;i
if(x==stu[i].num)
printf("%d %2s %4.1f %4.1f %4.1f\n",stu[i].num,stu[i].name,stu[i].chinese,stu[i].math,stu[i].english);
}
else if(s=='b')
{
printf("语文最高分的同学信息是:\n");j=stu[0].chinese;
for(i=0;i
if(j
j=stu[i].chinese;
for(i=0;i
if(stu[i].chinese==j)
printf("%d %2s %4.1f %4.1f %4.1f\t\n",stu[i].num,stu[i].name,stu[i].chinese,stu[i].math,stu[i].english);
printf("数学最高分的同学信息是:\n");j=stu[0].math;
for(i=0;i
if(j
j=stu[i].math;
for(i=0;i
if(stu[i].math==j)
printf("%d %2s %4.1f %4.1f %4.1f\t\n",stu[i].num,stu[i].name,stu[i].chinese,stu[i].math,stu[i].english);
printf("英语最高分的同学信息是:\n");j=stu[0].english;
for(i=0;i
if(j
j=stu[i].english;
for(i=0;i
if(stu[i].english==j)
printf("%d %2s %4.1f %4.1f %4.1f\t\n",stu[i].num,stu[i].name,stu[i].chinese,stu[i].math,stu[i].english);
}
else
printf("wrong!\n");
printf("请按任意键返回主菜单");
fflush(stdin);
}
void mysort()/*数据排序*/
{
int i,j;float sum;struct student t;char s;
printf(" 排序菜单 |\n");
printf("a 按总分排序(由高到低) |\n");
printf("b 按姓名排序 |\n");
printf("请输入选择:");
scanf("%c",&s);
if(s=='a')
{
printf("按总分排序:\n");
for(i=0;i
for(j=0;j
if((stu[j].chinese+stu[j].math+stu[j].english)
{
t=stu[j];
stu[j]=stu[j+1];
stu[j+1]=t;
}
for(j=0;j
{
printf("%d %2s %4.1f %4.1f %4.1f 总分为%3.1f\t",stu[j].num,stu[j].name,stu[j].chinese,stu[j].math,stu[j].english,stu[j].chinese+stu[j].math+stu[j].english);
printf("\n");
}
}
else if(s=='b')
{
printf("按姓名排序:\n");
for(i=0;i
for(j=0;j
if(strcmp(stu[j].name,stu[j+1].name)<0)
{
t=stu[j];
stu[j]=stu[j+1];
stu[j+1]=t;
}
for(j=0;j
{
printf("%d %2s %4.1f %4.1f %4.1f\t",stu[j].num,stu[j].name,stu[j].chinese,stu[j].math,stu[j].english);
printf("\n");
}
}
else
printf("wrong!\n");
printf("请按任意键返回主菜单");
fflush(stdin);
}
void mydelete()/*删除数据*/
{
int i,k,c;struct student t;
printf("请输入需要删除的学号:");
scanf("%d",&k);
for(i=0;i
{
if(k==stu[i].num)
{
for(;i
stu[i]=stu[i+1];
n=n-1;
}
}
for(c=0;c
{
printf("%d %4s %4.1f %4.1f %4.1f\t",stu[c].num,stu[c].name,stu[c].chinese,stu[c].math,stu[c].english);
printf("\n");
}
printf("请按任意键返回主菜单");
fflush(stdin);
}
void mymodify()/*修改数据*/
{
int i,k,c;struct student t;
printf("请输入需要修改的学号:");
scanf("%d",&k);
for(i=0;i
if(k==stu[i].num)
{
printf("请输入修改后的学生信息\n");
scanf("%d %s %f %f %f",&stu[i].num,&stu[i].name,&stu[i].chinese,&stu[i].math,&stu[i].english);
for(i=0;i
{
printf("%d %2s %4.1f %4.1f %4.1f\t",stu[i].num,stu[i].name,stu[i].chinese,stu[i].math,stu[i].english);
printf("\n");
}
}
else
{
printf("查无此人\n");
break;
}
printf("请按任意键返回主菜单");
fflush(stdin);
}
void mysave()/*保存数据*/
{
FILE *stu;
int i;
stu=fopen("student.txt","wb");
for(i=0;i
fwrite(&stu[i],sizeof(struct student),1,stu);
fclose(stu);
printf("文件已保存\n");
printf("请按任意键返回主菜单");
fflush(stdin);
}
void myread()/*读取数据*/
{
int i;FILE *fp;
printf("输入数据:\n");
if((fp=fopen("student.txt","rb"))==NULL)
{
printf("无法打开");
exit(0); /* 退出 */
}
for(i=0;i
fread(&stu[i],sizeof(struct student),1,fp);
fclose(fp);
printf("%-6s%-6s%-6s%-6s%-6s\n","学号","姓名","语文","数学","英语");
for(i=0;i
printf("%-6d%-6s%6.2f%6.2f%6.2f\n",stu[i].num,stu[i].name,stu[i].chinese,stu[i].math,stu[i].english);
printf("请按任意键返回主菜单");
fflush(stdin);
}