这个程序错在哪?求指教
#include <stdio.h>#include<conio.h>
#include <stdlib.h>
#include<string.h>
struct student
{
int num;
char name[20];
float chinese;
float math;
float english;
}
studet[100];
int n;
void mycreat();/*录入数据*/
void mydisplay();/*浏览数据*/
void mysearch();/*查询数据*/
void mysort();/*数据排序*/
void mydelete();/*删除数据*/
void mymodify();/*修改数据*/
void mysave();/*保存数据*/
void myread();/*读取数据*/
void menu()
{
int key,password;
while(key!=27)
{
printf("**********************学生成绩管理系统设计********************\n");
printf("*************************请按提示运行*************************\n");
pfintf("* 1.按键1录入 *\n");
pfintf("* 2.按键2浏览 *\n");
pfintf("* 3.按键3查询 *\n");
pfintf("* 4.按键4排序 *\n");
pfintf("* 5.按键5删除 *\n");
pfintf("* 6.按键6修改 *\n");
pfintf("* 7.按键7保存 *\n");
pfintf("* 8.按键8读取 *\n");
pfintf("* 0.退出 *\n");
printf("**************************************************************\n");
key=getch();
switch(key)
{
case'1':
mycreat();
getch();
break;
case'2':
mydisplay();
getch();
break;
case'3':
mysearch();
getch();
break;
case'4':
mysort();
getch();
break;
case'5':
mydelete();
getch();
break;
case'6':
mymodify();
getch();
break;
case'7':
mysave();
getch();
break;
case'8':
myread();
getch();
break;
}
if (password=='0') break;
}
}
void mycreat()/*录入数据*/
{
struct student ;
int i=0;
printf("请输入需要录入的学生人数:");
scanf("%d",&n);
printf("学号 姓名 语文 数学 英语\t\n");
for(i=0;i<n;i++)
scanf("%d %s %f %f %f",&stu.num,&stu.name,&stu.chinese,&stu.math,&stu.english);
printf("请按任意键返回主菜单");
fflush(stdin);
}
void mydisplay()/*浏览数据*/
{
int i;
printf("学号 姓名 语文 数学 英语\t\n");
for(i=0;i<n;i++)
{
printf("%d %2s %4.1f %4.1f %4.1f\t",stu.num,stu.name,stu.chinese,stu.math,stu.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<n;i++)
if(x==stu.num)
printf("%d %2s %4.1f %4.1f %4.1f\n",stu.num,stu.name,stu.chinese,stu.math,stu.english);
}
else if(s=='b')
{
printf("语文最高分的同学信息是:\n");j=stu[0].chinese;
for(i=0;i<n;i++)
if(j<stu.chinese)
j=stu.chinese;
for(i=0;i<n;i++)
if(stu.chinese==j)
printf("%d %2s %4.1f %4.1f %4.1f\t\n",stu.num,stu.name,stu.chinese,stu.math,stu.english);
printf("数学最高分的同学信息是:\n");j=stu[0].math;
for(i=0;i<n;i++)
if(j<stu.math)
j=stu.math;
for(i=0;i<n;i++)
if(stu.math==j)
printf("%d %2s %4.1f %4.1f %4.1f\t\n",stu.num,stu.name,stu.chinese,stu.math,stu.english);
printf("英语最高分的同学信息是:\n");j=stu[0].english;
for(i=0;i<n;i++)
if(j<stu.english)
j=stu.english;
for(i=0;i<n;i++)
if(stu.english==j)
printf("%d %2s %4.1f %4.1f %4.1f\t\n",stu.num,stu.name,stu.chinese,stu.math,stu.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<n;i++)
for(j=0;j<n-i;j++)
if((stu[j].chinese+stu[j].math+stu[j].english)<(stu[j+1].chinese+stu[j+1].math+stu[j+1].english))
{
t==stu[j];
stu[j]=stu[j+1];
stu[j+1]==t;
}
for(j=0;j<n;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<n;i++)
for(j=0;j<n-i;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<n;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<n;i++)
{
if(k==stu.num)
{
for(;i<n;i++)
stu=stu;
n=n-1;
}
}
for(c=0;c<n;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<n;i++)
if(k==stu.num)
{
printf("请输入修改后的学生信息\n");
scanf("%d %s %f %f %f",&stu.num,&stu.name,&stu.chinese,&stu.math,&stu.english);
for(i=0;i<n;i++)
{
printf("%d %2s %4.1f %4.1f %4.1f\t",stu.num,stu.name,stu.chinese,stu.math,stu.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<n;i++)
fwrite(&stu,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<n;i++)
fread(&stu,sizeof(struct student),1,fp);
fclose(fp);
printf("%-6s%-6s%-6s%-6s%-6s\n","学号","姓名","语文","数学","英语");
for(i=0;i<n;i++)
printf("%-6d%-6s%6.2f%6.2f%6.2f\n",stu.num,stu.name,stu.chinese,stu.math,stu.english);
printf("请按任意键返回主菜单");
fflush(stdin);
}