你这个程序好牛B啊!
帮你适当改写了一下,顺便加了保存/读取学生信息的功能:
#include
#include
#include
#include
#include
typedef struct _StudentInfo
{
char name[8];
int no;
int score[3];
} StudentInfo;
StudentInfo stu[40];
int num = 0;
int isNoExist(int no)
{
for (int i = 0; i < num; i++)
{
if (stu->no == no)
{
return 1;
}
}
return 0;
}
void printStudentInfo(int idx)
{
cout<
void loadStudentInfo()
{
FILE *file;
file = fopen("c:\\stuinfo.bin", "rb");
if (file == NULL)
{
cout << "学生信息文件不存在!" << endl;
return;
}
/* 每次读入一个记录,失了效率,可以一次全部读入 */
while (fread(&stu[num], sizeof(StudentInfo), 1, file) > 0)
{
num ++;
}
fclose(file);
}
void saveStudentInfo()
{
FILE *file;
file = fopen("c:\\stuinfo.bin", "wb");
if (file == NULL)
{
cout << "打开学生信息文件失败,无法保存学生信息!" << endl;
return;
}
/* 每次都全部重写,失了效率,可以只写增加的记录 */
fwrite(stu, sizeof(StudentInfo), num, file);
fclose(file);
}
void printMemu(void)
{
cout<<" *****学生成绩管理系统*****"<
int main(void)
{
int op;
char choice;
loadStudentInfo();
printMemu();
op = 0;
while (op != 3)
{
cin >> op;
choice = 'y';
switch (op)
{
case 1:
while (choice == 'y' || choice == 'Y')
{
cout<<"请依次输入学生的姓名,学号,高数,英语,计算机:"<
while (isNoExist(stu[num].no))
{
cout<<"学号重复,请重新输入!"<
}
num++;
cout<<"是否继续输入?(y/n)";
cin >> choice;
}
getch();
break;
case 2:
if (num == 0)
{
cout<<"没有记录,请先输入记录!"<
else
{
cout<<"序号"<<"\t";
cout<<"姓名"<<"\t";
cout<<"学号"<<"\t";
cout<<"高数"<<"\t";
cout<<"英语"<<"\t";
cout<<"计算机"<
for (int i = 0; i < num; i++)
{
printStudentInfo(i);
}
}
getch();
break;
case 3:
break;
default:
cout<<"错误选项,请重新选择!"<
}
}
cout<<"谢谢您的使用!"<
saveStudentInfo();
return 0;
}
哎 太乱了 你要改的不是某个函数 而是整个声明段 有心帮你没时间 想把以前书店例题给你又没usb口 没着 做个记号 哪天心情好了你问题好没解决我再来看
有心帮你,可是程序格式太乱了,看了一会儿头也晕了。。。
你这程序有什么问题?就让改。