c++学生选修课程系统课程设计_第1页
c++学生选修课程系统课程设计_第2页
c++学生选修课程系统课程设计_第3页
c++学生选修课程系统课程设计_第4页
c++学生选修课程系统课程设计_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、实用文档目录封面 1任务书 1一、需求分析 51.1、 系统设计目的与意义 51.2、 系统功能需求(系统流程图) 51.3、 输入输出的要求 6二、结构设计 6三、界面设计与各功能模块实现 7四、系统调试 8五、使用说明及编程体会 95.1、 使用说明 95.2、 编程体会 13附件 13参考文献 32评分表 33文案大全(一)需求分析1.1 、系统设计目的与意义当今时代是飞速发展的信息时代。在各行各业中离不开信息处理,这正是计算机被广泛应用于信息管理系统的环境。计算机的最大好处在于利用它能够进行信息管理。使用计算机进行信息控制,不仅提高了工作效率,而且大大的提高了其安全性。尤其对于复杂的信

2、息管理,计算机能够充分发挥它的优越性。计算机进行信息管理与信息管理系统的开发密切相关,系统的开发是系统管理的前提。本系统就是为了管理好选课信息而设计的。学校作为一种信息资源的集散地,学生和课程繁多,包含很多的信息数据的管理,现今,有很多的学校都是初步开始使用,甚至尚未使用计算机进行信息管理。根据调查得知,他们以前对信息管理的主要方式是基于文本、表格等纸介质的手工处理,对于选课情况的统计和查询等往往采用对课程的人工检查进行,对学生的选课权限、以及选课代号等用人工计算、手抄进行。数据信息处理工作量大,容易出错;由于数据繁多,容易丢失,且不易查找。总的来说,缺乏系统,规范的信息管理手段。尽管学校都有

3、计算机,但是尚未用于信息管理,没有发挥它的效力,资源闲置比较突出,这就是管理信息系统的开发的基本环境。数据处理手工操作,工作量大,出错率高,出错后不易更改。学校采取手工方式对学生选课情况进行人工管理,由于信息比较多,选课信息的管理工作混乱而又复杂;一般选课情况是记录在文件上,课程的数目和代号也记录在文件中,学校的工作人员也只是当时对它比较清楚,时间长了,如再要进行查询,就得在众多的资料中翻阅、查找了,造成查询费时、费力。如要对很长时间以前的选课进行更改就更加困难了。基于这些问题,我认为有必要建立一个学生选课系统,使选课管理工作规范化,系统化,程序化,避免选课管理的随意性,提高信息处理的速度和准

4、确性,能够及时、准确、有效的查询和修改选课情况。1.2 、系统功能需求(系统流程图)31主模块管理员模块学生模块学学 生 情 况选 课 情 况退 出 系 统增加学生增加课程删 除 学 生删 除 课 程更 改 学 分选课情况1.3、输入输出的要求(1)接收方法、输入:确定与功能有关的所有输入信息,包括数据来源、意义、格式、数量、输入范围及处理方法,必须说明时间要求、优先顺序、操作控制和使用的输入设备(媒体)。(2)输出:对错误输入提示(二)结构设计工号研级*,系代(2)类层次图(三)界面设计与各功能模块实现界面设计1、主界面:*选修课小系统*操作方式:1.选修课系统学生端*2.选修课系统管理端*

5、2、选修课系统学生端:选修课系统学生端操作方式:1.学生选课2.学生情况3.选课情况4.退出系统3、选修课系统管理端选修课系统管理端操作方式:1.增加学生3.删除学生5.填写成绩7.学生情况9.保存数据2.增加课程4.删除课程6.更改学分8.选课情况0.退出系统(四)系统调试在这一节中,主要解决的了两个问题,一个是系统的联机文档,另一个是系统的测试,下面我们分别加以说明。作为一个完整的系统,联机文档是其中不可缺少的部分也是相当重要的部分。好的文档能够使用户快速了解并准确的使用系统的各项功能。减少误操作,减少错误产生的可能,这对用户和开发人员都有很多的好处。所以在开发本系统中,也加入了不少的文档

6、,除了对于四大模块的详细说明外,对于易出错和不易操作的地方(如多条件查询部分)又作了详细的说明。由于本身能力的局限性,所以做编写的代码,即使经过反复检查也难免出错所以在本阶段力求使用有限的时间找出尽可能多的错误,力求系统尽量正确。我们在本系统的测试中使用了黑盒法(即不关心程序内部的逻辑结构,而是根据程序的功能来设计是检测)请一位不熟悉本系统的人来进行随意性的操作,打破习惯的操作顺序,从中发现错误,在此阶段系统的大量错误得到了改正。信息管理系统所涉及的数据库设计的重要步骤加载测试。加载测试工作贯穿于程序测试工作的全过程,整个录入、修改、查询、处理工作均可视为对数据库 的加载测试工作。要设计出一个

7、好的信息管理系统数据库,除满足系统所要求的 功能外,还必须遵守下列原则:1)基本表的个数越少越好。2)主键的个数越少 越好。键是表间连接的工具,主键越少,表问的连接就越简单。3)字段的个数越少越好。4)所有基本表的设计均应尽量符合第三范式。数据库的设计中,如何 处理多对多的关系和如何设计主键,是两个有着较大难度、需要重点考虑的问题。例如:Configuration: 8 - Win32 DebugCompiling.9.cpp新建文件夹 9.cpp(53) : error C2535: '_thiscall student:student(void)': member func

8、tion already defined or declared新建文件夹 9.cpp(24) : see declaration of'student:student'执行cl.exe 时出错.9.obj - 1 error(s), 0 warning(s)root = HULL;Factcourse = 0; > student()private: student() <中的去掉char sname2。; int maxcourse; int factcourse; course *root;改正:将(五)使用说明及编程体会5.1使用说明1、登录首先,运行学生选

9、课系统,出现学生选课系统画面西 "C;DOCDMEKTS AND SETTINGSADIIHISTRAT0RDehue2. exeJ*课程设计课题选修课小系统操作方式,1 .选修课系统学生端2 .选修课系统管理端请选择登入方式:2、进入选修课系统学生端当主菜单出现后,在“请选择登录方式:”后输入“1”,就进入了 “选修课系统学生端”,界面如下:3、选课在“请选择操作方式:”输入“1”,进入网上选课系统,请首先进入课程 预览菜单,预览自己的课程表,学生自行选课后,也可进入课程预览菜单,查看选课结果。课程表中已有的课程为教务处按各班教学计划整班指定上去的,不得自行退选4、管理员登录管理员

10、密码admin。用管理员帐号登录可以查看每个人的选课, 及退课情况。(1)如密码正确,则出现以下界面:此时,管理员可以在“请选择操作方式:”后输入相应的数字,比如数日“1”,那么所执行的操作就是:增加学生,则出现以下界面:增加学生操作请输入学生姓名:(2)若密码不正确,则出现界面 第一次密码错误S "C:DOCITIEITS AJVD SETTISGSADIIKISTRATORDebugZ. eie"请输入管理员密码:* 密码输入错误,请重新输入, 请输入管理员密码J第二次密码错误。"C:DOCUIEFTS m SETTINCSU>IIIISTRAT0RDc

11、bue2.exe请输入管理员密码=* 密码输入错误,请重新输入, 请输入管理员密科:* 密码输入错误,请重新输入? 请输入管理员密科:5、退出系统(1)学生选课完成后可以按“ 4”退出选课系统,以防他人修改数据(2)密码错误次数超过 3次,可按任意键退出,界面如下:s ,C:DOCUIEITS ABB SETTIRCSAI>IIffISTRAT0Rl>ebue2. exe输入错误密码超过三次t请按任意键退出.5.2 编程体会刚看到这个课程设计题目时,觉得这个课题比较难。今天回过去看看,却十分的欣慰,因为通过我们的努力终于完成了。虽然这不是我读大学以来第一次做课程设计,但却是花费心血

12、最多的一次,这是对我这学期学习下来最好的检验。经过这次课程设计,我的能力有了很大的提高,比如操作能力、分析问题的能力、合作精神、严谨的工作作风等方方面面都进步了。还要特别感谢老师对我的悉心指导,帮我理清设计思路,指导操作方法,并对我所做的设计方案提出有效的改进方案。老师渊博的知识、严谨的作风、诲人不倦的态度和学术上精益求精的精神让我受益终生。附件:#include <iostream>#include <iomanip>#include <fstream>#include <conio.h>using namespace std;/定义课程cla

13、ss course/某个学生所学的课程中的某一个public:char cname20;/课程名称float grade;/课程成绩course *Next;/指向下一个课程的指针;/学生类class studentpublic: student() root = NULL;const int maxcourse = 5;factcourse = 0;void readname(char N );/读入学生的姓名void getname(char N);/得到学生的姓名void wrecourse(char N,float score); / 要据课程名写入学生课程的成绩float avera

14、ge();/学生课程的平均成绩void addcourse(char N,float g);/给学生增加一门课int findcourse(char N);/查找是否已有此课程,如果有返回,如果没有返回int retfactcourse() return factcourse;/得到所学的课程数目course *retroot() return root; /利用键表将所有的课程保存起来int retmaxcourse() return 5;void clrroot()/得到最多可学的课程数目/清零private:root = NULL;factcourse = 0; char sname20

15、;/学生的姓名int maxcourse;/学生最多可以学五门课程int factcourse;/学生实际所学的课程数目course *root;/课程的根结点指针;void student:readname (char N)/ 读入学生的姓名 strcpy(sname,N); void student:getname(char N)/ 得到学生的姓名 strcpy(N,sname); void student:wrecourse(char N,float score)/ 要据课程名写入学生课程的成绩 course *p = root;if(p=NULL)return;if(p!=NULL)p

16、 = p->Next;while(p) if(strcmp(p->cname,N)=0) p->grade = score;p = p->Next;float student:average()/ 学生课程的平均成绩 float aver=0.0;course *p = root;while (p) aver = aver+p->grade; aver = aver/factcourse;return aver; void student:addcourse (char N,float g)/ 给学生增加一门课 course *s = new course;s-&

17、gt;Next=NULL;if(root = NULL)root = s;course *p = root;course *newcourse = new course;newcourse->Next = p->Next;p->Next=newcourse;strcpy(newcourse->cname,N);newcourse->grade = g;factcourse+;int student:findcourse (char N)/ 查找是否已有此课程,如果有返回,如果没有返回 course *p = root;if(root=NULL)return 0;p

18、 = p->Next;while(p) if(strcmp(p->cname,N)=0) return 1;p = p->Next;return 0; class studentdbpublic:student stu;studentdb *Next; ;struct studentname char tname20;/学生的名字float result;/学生所得的该课程分数studentname *Next; ;/课程类class subjectpublic:subject() first = NULL;maxstudent=30;activestudnet=0; flo

19、at readcredit();/得到课程的学分void getcredit(float a);/设置学分float getaverage(); /得到学生的平均成绩float getresult(char N);/查找某个学生的成绩voidgetkname(char N);/读出课程的名称voidsetkname(char N);/读入课程的名称studentname *retfirst() return first; /返回根结点void findstudent(studentdb *P);/根据该课程的名称,寻找选这课程的学生int retactivestudent() return a

20、ctivestudnet; / 返回实际学生数 int retmaxstudent() return 30; /返回最多学生数void clractivestudnet() activestudnet = 0; /从文件中读出来后将实际学生数清零private:int maxstudent;/最多学生数int activestudnet;/实际学生数studentname *first;/学生名单float credit; /该课程的学分float averagerusult; /该课程的平均成绩char kname20; /该课程的名称;float subject:readcredit ()

21、/ 得到课程的学分 return credit; void subject:getcredit (float a)/ 设置学分 credit=a; float subject:getaverage()/ 得到学生的平均成绩 float k = 0.0;studentname *p;p=first->Next;if(p=NULL)return 0;while(p) k = k + p->result;p = p->Next ; return k/activestudnet; float subject:getresult (char N) / 查找某个学生的成绩 student

22、name *p;p = first;while(p) if(strcpy(p->tname ,N)=0) return p->result;p = p->Next ; return -1; void subject:getkname (char N)/读出课程的名称 strcpy(N,kname); void subject:setkname (char N) / 读入课程的名称 strcpy(kname,N); void subject:findstudent(studentdb *P) / 根据该课程的名称,寻找选这课程的学生 studentname *newcode =

23、 new studentname;newcode->Next=NULL;first = newcode;studentname *T = first;studentdb *K = P->Next;while(K) course *Y = K->stu.retroot();if(Y =NULL) K = K->Next; continue; if(Y!=NULL)Y = Y->Next;while(Y) if(strcmp(Y->cname,kname)=0) studentname *Acode = new studentname;char Name20;K

24、->stu.getname(Name);strcpy(Acode->tname,Name);Acode->result = Y->grade;Acode->Next = T->Next;T->Next = Acode;activestudnet = activestudnet + 1;break; Y = Y->Next; K = K->Next; return ; void tuichu() system("cls");cout<<"nn 谢谢你使用选修课系统nn"<<end

25、l;you're welcome ! n"<<endl;cout<<"n getch();exit(-1); /总菜单char menu() int k=0;char a3,c,i;system("cls");cout<<endl<<endl;cout<<"*n"<<"*<<"*学生选修课系统<<"*<<"*<<"*<<"*操作方式:1.

26、 选修课系统学生端<<"*<<"*2.选修课系统管理端<<"*n"*n"*n"*n"*n"*n"*n"*n"*n"<<"*n"<<endl;while(1) cout<<"ntt 请选择登入方式: "cin>>a;if(strlen(a)=1)for(i='1'i<='2'i+) c=i;if(c=a0)return

27、 c; cerr<<"nntttt 输入有误!n"<<endl;k+;if(k>2) system("cls");cerr<<"nnntt 提 示 : 错 误 输 入 次 数 超 过 三 次 , 你 将 被 强 制 退 出 !nn"<<endl;cout<<"tt 按任意键继续"<<endl;getch();tuichu(); /选修课系统端操作char custom() char A10;char b;char i;int k = 0;

28、system("cls");cout<<"nnn"<<" n"<<" 选修课系统学生端 n"<<" n"<<" 操作方式:. n"<<" 1、 学生选课 n"<<" 2、 学生情况 n"<<" 3、 选课情况 n"<<" 4、 退出系统 n"<<" n"<

29、;<" n"<<endl;while(1) cout<<"ttt 请选择操作方式: "cin>>A;if(strlen(A)=1)for(i='1'i<='4'i+) b=i;if(b=A0) return b; cerr<<"ntttt 输入有误!n"<<endl;k+;if(k>2) system("cls");cerr<<"nnttt 提示:错误输入超过三次!你将被强制退出!n&

30、quot;<<endl;cout<<"tt 按任意键继续"<<endl;getch();tuichu(); char server() char A10;char b;char i;int k = 0;system("cls");cout<<"nnn"<<" n"<<" n<<" 选修课系统管理端 n<<" n<<" 操作方式: n"<<"

31、; 1. 增加学生2.增加课程 n"<<" 3.删除学生4.删除课程 n"<<" 5.填写成绩6.更改学分 n"<<" 7.学生情况8.选课情况 n"<<" 9.保存数据0.退出系统 n"<<" n<<" n"<<endl;while(1) cout<<"tt 请选择操作方式: "cin>>A;if(strlen(A)=1)for(i='0&

32、#39;i<='9'i+) b=i;if(b=A0)return b; cerr<<"ntttt 输入有误!n"<<endl;k+;if(k>2) cerr<<" 错误输入超过三次!n"exit(-1); /密码检查void password()int k=0,i;char A="admin"char B10;char a;system("cls");for(i=0;i<8;i+)cout<<endl;while(k<=2)pr

33、intf("ttt 请输入管理员密码:");i=0;while(1)a=getch();if(a=13)break;Bi=a;i+;printf("*");Bi='0'if(strcmp(A,B)=0)return;elsek+;cerr<<"nnttt 密码输入错误!请重新输入!n"<<endl;if(k>=3)system("cls");."<<endl;cerr<<"nnttt 输入错误密码超过三次!请按任意键退出get

34、ch();tuichu();struct subjectdb subject sub;subjectdb *Next;int menu_2_7(studentdb *P);int menu_2_9(studentdb *Y ,subjectdb *P);int menu_2_8(subjectdb *P);/学生端功能函数int menu_1_1(studentdb *P,subjectdb *X)/学生选课 system("cls");cout<<"nntttt 学生选课操作"<<endl;studentdb *q=P->

35、Next;int i;char N20,M20;if(q!=NULL)cout<<"nnntt 所有学生名单如下:n"<<endl;else cerr«"nnntt对不起,暂无学生名单!请先创建!请按任意键继续."«endl; return 1;while(q) q->stu.getname(N);cout«"tttt"«N;cout«endl;q = q->Next;q = P->Next; if(q=NULL) return 1;cout&

36、#171;"nntt请输入学生姓名:";cin»N;i=0;q=P->Next;while(q) q->stu.getname(M);if(strcmp(N,M)=O) i+;q = q->Next;int j=0,k=1; if(i=O) cout«"nntt没有这个学生!请按任意键返回."«endl; return 1;else if(i>1) cout«"nntt共找至卜个姓名为"«N«"的学生"«endl;cout

37、«"tt选择第几个:" cin»k;if(k>i|k<=0) cerr«"nttt输入有误!按任意键继续"«endl; return 1;q = P->Next;j=0;while(q) q->stu.getname(M);if(strcmp(N,M)=O)j+;if(j=k) if(q->stu.retfactcourse()>=q->stu.retmaxcourse() cout«"ntt所选课程已满!按任意键继续"«endl;

38、return 1;elsesubjectdb *t=X->Next; char N1 20;system("cls");if(t!=NULL) cout<<"nnntt 所有课程如下:"<<endl;cout<<"ntttt 课程名称tt 学分 "<<endl; else cerr<<"nnntt 对不起,暂时没有课程"<<endl;return 1; while(t) t->sub.getkname(N1);cout<<

39、;"tttt "<<N1<<setw(26-strlen(N1)<<t->sub.readcredit()<<endl;t = t->Next ; char N220;cout<<"nt 输入你所要选的课程: "cin>>N2;t = X->Next;while(t) t->sub.getkname(N1);if(strcmp(N1,N2)=0) if(q->stu.findcourse(N2)=1) cout<<"ntt 此课程你

40、已选过了,不能再选.按任意键继续"<<endl;return 1; t=X->Next;char NA20;while(t) t->sub.getkname(NA);if(strcmp(NA,N2)=0) if(t->sub.retactivestudent()>=t->sub.retmaxstudent () cout<<"ntt 此课程已选满,不能选.按任意键继续"<<endl;return 1; t = t->Next; q->stu.addcourse(N2,0.0);cout&

41、lt;<"nntt 选课成功!按任意键继续"<<endl;return 1; t = t->Next; cerr<<"ntt 没有此课程! 按任意键继续"<<endl; return 1; q = q->Next; return 1; int menu_1_2(studentdb *P,subjectdb *X)/学生情况 studentdb *q=P->Next;char N20;system("cls");cout«"nntttt 学生情况操作&quo

42、t;«endl;int i;if(q!=NULL) cout«"nnntt 所有学生选课信息如下:n"«endl«endl; cout«"tt 姓名 ttt 选课情况 n"«endl;else cerr«"nnntt对不起,暂时没有学生名单!!请按任意键继续."«endl; return 1;while(q) q->stu.getname(N);cout«"tt "<<N«setw(25-strle

43、n(N)«" 已选"<<q->stu.retfactcourse()<<” 课 "«endl;q = q->Next; char M20; cout«"ntt输入要查看的学生姓名:”;cin»M;i=0;q=P->Next;while(q) q->stu.getname(N); if(strcmp(N,M)=O) i+;q = q->Next;int j=0,k=1; if(i=O) cout«"nttt没找到这个学生!!请按任意键继续.&q

44、uot;«endl;return 1;else if(i>1) cout«"ntt 共找至ij "«i«"个姓名为"«M«"的学生"«endl; cout«"tt选择第几个:" cin»k; if(k>i|k<=0) cerr«"nttt输入有误!按任意键继续."«endl;return 1; q = P->Next; j=0;q=P->Next;while

45、(q) q->stu.getname(N); if(strcmp(N,M)=O) j+; if(j=k) system("cls");course *T=q->stu.retroot();if(T=NULL)cout<<"nnnttt"<<N<<" 同学你还未选课! 请按任意键继续."<<endl;return 1; if (T!=NULL)T = T->Next;cout<<"nnntt"<<N<<"

46、同学你已选"<<q->stu.retfactcourse()<<" 门课 ,具体如下nn"<<endl;cout<<"ttt 课程名称tt 成绩 n"<<endl;while(T) cout<<"ttt "<<T->cname<<setw(25-strlen(T->cname)<<T->grade<<endl; T = T->Next; j=0; q = q->Next;

47、 cout<<"ntt 请按任意键继续."<<endl;return 1; int menu_1_3(subjectdb *P)/选课情况 subjectdb *q=P->Next;char N20;system("cls");cout<<"nntttt 选课情况操作"<<endl;if(q!=NULL) cout<<"nnntt 所有选课情况如下:n"<<endl;cout<<"nttt 课程名称tt 选课人数n&

48、quot;<<endl; else cerr<<"nnntt 对不起,暂时没有课程! 请按任意键继续."<<endl;return 1; while(q) q->sub.getkname(N);cout<<"ttt"<<N<<setw(28-strlen(N)<<q->sub.retactivestudent()<<endl;q = q->Next ; cout<<"ntt 请按任意键继续."<<e

49、ndl;return 1; int menu_1_4(studentdb *X,subjectdb *P)/退出系统menu_2_9(X,P);tuichu();return 0; /管理端功能函数int menu_2_1(studentdb *P)/增加学生 char N20;system("cls");cout<<"nntttt 增加学生操作n"<<endl;cout<<"nntt 请输入学生姓名:"cin>>N;cout<<endl<<"tt 增加

50、学生操作成功,按任意键继续"<<endl;studentdb *newnode = new studentdb;newnode->Next = P->Next ;newnode->stu.readname(N);P->Next = newnode ;return 1; int menu_2_2(subjectdb *P)/增加课程 float k;char N20,M20;system("cls");cout<<"nntttt 增加课程操作n"<<endl;cout<<&q

51、uot;nntt 请输入课程名称:"cin>>N;cout<<endl;subjectdb *q = P->Next;while(q) q->sub.getkname(M);if(strcmp(N,M)=0) cout<<"ntt 此课程已经存在,按任意键继续"<<endl;return 1; q = q->Next; cout<<"tt 输入此课程的学分:"cin>>k;cout<<"ntt 增加课程操作成功,按任意键继续"

52、;<<endl;subjectdb *newnode = new subjectdb;newnode->Next = P->Next ;newnode->sub.setkname(N);newnode->sub.getcredit(k);P->Next = newnode ;return 1; int menu_2_3(studentdb *P)/删除学生 system("cls");cout<<"nntttt 删除学生操作"<<endl;menu_2_7(P);studentdb *q

53、= P->Next;if(q=NULL)return 1;int i;char N20,M20;cout<<"nt 请输入要删除的学生姓名:"cin>>N;i=0;while(q) q->stu.getname(M);if(strcmp(N,M)=O) i+; q = q->Next; int j=0,k=1;if(i=O) cerr«"ntt没有这个学生!!请按任意键继续."«endl;return 1; else if(i>1) cout«"ntt 共找至ij &

54、quot;«i«"个姓名为"«N«"的学生"«endl;cout«"ntt要删除第几个:"; cin»k; if(k>i|k<=0) return 1;q = P->Next; studentdb *R = P; j=0;while(q) q->stu.getname(M);if(strcmp(N,M)=O) j+; if(j=k) R->Next = q->Next; free(q);cout«"ntt删除学

55、生操作成功,按任意键继续."«endl;return 1; q = q->Next; R = R->Next; return 1; int menu_2_4(subjectdb *P) 删除课程 subjectdb *q=P->Next;char N20; system("cls"); cout«"nntttt 删除课程操作"«endl; if(q!=NULL)cout«"nnntt 所有课程如下:n"«endl; else cerr«"

56、nnntt对不起,暂时没有课程!!请按任意键继续."«endl;return 1; while(q) q->sub.getkname(N);cout«"tttt"«N«endl;q = q->Next;q = P->Next; subjectdb *R = P;if(q=NULL)return 1;char M20;cout<<"nt 请输入要删除的课程:"cin>>M; while(q) q->sub.getkname(N);if(strcmp(N,M)=

57、0) R->Next = q->Next;free(q);cout<<"ntt 删除课程操作成功,按任意键继续"<<endl;return 1; q = q->Next;R = R->Next; cerr<<"ntt 没有此课程!t 请按任意键继续."<<endl;return 1; int menu_2_5(studentdb *X,subjectdb *P)/填写成绩 subjectdb *q=P->Next;char M20,N20,NA20;float score;sy

58、stem("cls");cout<<"nntttt 填写成绩操作n"<<endl;if(q!=NULL)cout<<"nttt 课程名称tt 选课人数n"<<endl;else cout<<"nnntt 对不起 ,暂时没有任何选修课程。请按任意键继续."<<endl;return 1; while(q) q->sub.getkname(N);cout<<"ttt"<<N<<setw(

59、28-strlen(N)<<q->sub.retactivestudent()<<endl;q = q->Next ; q = P->Next;cout<<"nt 请输入课程名称:"cin>>M; while(q) q->sub.getkname(N);studentname *K = q->sub.retfirst(); if(K!=NULL)K = K->Next;if(strcmp(N,M)=0) system("cls"); if(K!=NULL) cout<

60、;<"nntt 请填写选修"<<M<<" 的学生成绩n"<<endl;cout<<"nttt 姓名 tt 成绩 "<<endl; if(K=NULL)cerr<<"nttt 无任何信息! 请按任意键继续."<<endl;while(K) cout<<"nttt"<<K->tname<<"tt "cin>>score;studentdb *XX = X->Next;while(XX) XX->stu.getname(NA);if(strcmp(NA,K->tname)=0) XX->stu.wrecourse(M,score);XX = XX->Next; K = K->Next; if

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论