return 1; } q = q->Next; } cerr<<\无此课程!!请按任意键继续..\ return 1; }
int menu_2_7(studentdb *P) //学生情况 { studentdb *q=P->Next; char N[20]; system(\ cout<<\学生情况操作\\n\ if(q!=NULL) cout<<\所有学生名单如下:\\n\ else { cerr<<\对不起,暂时没有学生名单!请按任意键继续..\ return 1; } while(q) { q->stu.getname(N); cout<<\ cout<
int menu_2_8(subjectdb *P) //选课情况 { subjectdb *q = P->Next; char M[20],N[20]; system(\ cout<<\选课情况操作\ if(q!=NULL) { cout<<\所有选课情况如下:\\n\ cout<<\课程名称\\t\\t选课人数\\n\ else { cerr<<\对不起,暂时没有课程!!请按任意键继续..\ return 1; } while(q) { q->sub.getkname(N); cout<<\ q = q->Next ; } q = P->Next; cout<<\请输入课程名称:\ cin>>M; while(q) { q->sub.getkname(N); studentname *K = q->sub.retfirst(); if(K!=NULL) K = K->Next;
25
if(strcmp(N,M)==0) { system(\ if(K==NULL) { cerr<<\无任何选课信息!!\\t请按任意键继续..\ return 1; } cout<<\选修\课的学生名单如下:\\n\ cout<<\姓名\\t\\t 成绩\ while(K) { cout<<\ K = K->Next; } cout<<\请按任意键继续..\ return 1; } q = q->Next; } cerr<<\无此课程!!\\t请按任意键继续..\ return 1; }
int menu_2_9(studentdb *Y,subjectdb *P) //保存数据 { studentdb *Z = Y->Next; subjectdb *X = P->Next; system(\ fstream file(\ while(X) { file.write ((char *)&(X->sub),sizeof(X->sub)); X = X->Next; } file.close(); fstream file1(\ fstream file2(\ while(Z) { file1.write ((char *)&(Z->stu),sizeof(Z->stu)); int time = Z->stu.retfactcourse(); course *co = Z->stu.retroot(),*co1; if(co!=NULL) co1 = co->Next; while(time) { file2.write((char *)(co1),sizeof(*co1)); co1 = co1->Next; time = time - 1; } Z = Z->Next; } file2.close (); file1.close(); cout<<\保存数据成功!按任意键继续..\ return 1; }
int menu_2_0() //退出系统 { tuichu(); return 0; }
26
int main()
{ subjectdb *P = new subjectdb,*Q=P; P->Next = NULL; subject M; fstream file(\ while(1) { file.read((char *)&M,sizeof(M)); if(!file) break; Q->Next = new subjectdb; Q->Next ->Next = NULL; Q->Next ->sub = M; Q = Q->Next; } file.close (); studentdb *Y = new studentdb,*X=Y; Y->Next=NULL; student N; course O; fstream file1(\ fstream file2(\ while(1) { file1.read((char *)&N,sizeof(N)); if(!file1) break; Y->Next = new studentdb; Y->Next ->Next = NULL; Y->Next ->stu = N; int time = N.retfactcourse(); Y->Next->stu.clrroot (); while(time) { file2.read ((char *)&O,sizeof(course)); if(!file2) break; Y->Next->stu.addcourse(O.cname ,O.grade); time--; } Y=Y->Next; } file2.close (); file1.close (); Q=P->Next; while(Q) { Q->sub.clractivestudnet(); Q->sub.findstudent(X); Q = Q->Next; } char c;char b; int br=1;b = menu(); if(b=='1') { while(1)
27
{ c = custom(); switch(c) {case '1':br = menu_1_1(X,P);getch();break; //学生选课 case '2':br = menu_1_2(X,P);getch();break; //学生情况 case '3':br = menu_1_3(P);getch(); break; //选课情况 case '4':br = menu_1_4(X,P); break; //退出系统 } if (br == 0) break; } } if(b=='2')
{ password(); while(1) { c = server(); switch(c) {case '1':br = menu_2_1(X);getch(); break; //增加学生 case '2':br = menu_2_2(P);getch(); break; //增加课程 case '4':br = menu_2_4(P);getch(); break; //删除课程 case '3':br = menu_2_3(X);getch(); break; //删除学生 case '5':br = menu_2_5(X,P);getch();break; //填写成绩 case '6':br = menu_2_6(P);getch(); break; //更改学分 case '7':br = menu_2_7(X);getch(); break; //学生情况 case '8':br = menu_2_8(P);getch(); break; //选课情况 case '9':br = menu_2_9(X,P);getch();break; //保存数据 case '0':br = menu_2_0(); break; //退出系统 } if (br == 0) break;} }
return 0; }
参考文献
谭浩强编,C++面向对象程序设计(含实验指导书),清华大学出版社,2008.9 朱战立等著, C++面向对象程序设计,人民邮电出版社;
郑莉著, C++ 语言程序设计(含实验指导书)。 清华大学出版社 ( 结构化程序设计部分 )
钱能主编 ,C++ 程序设计教程,清华大学出版社, 2000.11 戴锋编著, Visual C++ 程序设计基础 , 清华大学出版社 ,2001.4 吕日著, C++ 程序设计教程,清华大学出版社, C++ 大学教程,美国 Harvey M.Deitel 等
28
理学院课程设计评分表
课题名称: 学生选修课程系统
项 目 评 价 设计方案的合理性与创造性 设计与调试结果 设计说明书的质量 答辩陈述与回答问题情况 课程设计周表现情况 综合成绩
教师签名: 日 期:
29