帮忙修改一下这个c++程序

2025-05-12 01:24:24
推荐回答(4个)
回答1:

你这个程序好牛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< cout< cout< cout< cout< cout< 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<<" *****学生成绩管理系统*****"< cout<<" 1.输入学生资料"< cout<<" 2.显示学生资料"< cout<<" 3.退出"< cout<<" 请选择操作(1-3)"<}

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<<"请依次输入学生的姓名,学号,高数,英语,计算机:"< cin>>stu[num].name>>stu[num].no>>stu[num].score[0]>>stu[num].score[1]>>stu[num].score[2];

while (isNoExist(stu[num].no))
{
cout<<"学号重复,请重新输入!"< cin>>stu[num].no;
}

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<<"错误选项,请重新选择!"< break;
}
}

cout<<"谢谢您的使用!"<
saveStudentInfo();

return 0;
}

回答2:

哎 太乱了 你要改的不是某个函数 而是整个声明段 有心帮你没时间 想把以前书店例题给你又没usb口 没着 做个记号 哪天心情好了你问题好没解决我再来看

回答3:

有心帮你,可是程序格式太乱了,看了一会儿头也晕了。。。

回答4:

你这程序有什么问题?就让改。