学生选修课程系统(c++)

上传人:gao****ang 文档编号:223569774 上传时间:2023-07-19 格式:DOCX 页数:33 大小:241.78KB
收藏 版权申诉 举报 下载
学生选修课程系统(c++)_第1页
第1页 / 共33页
学生选修课程系统(c++)_第2页
第2页 / 共33页
学生选修课程系统(c++)_第3页
第3页 / 共33页
资源描述:

《学生选修课程系统(c++)》由会员分享,可在线阅读,更多相关《学生选修课程系统(c++)(33页珍藏版)》请在装配图网上搜索。

1、课程设计报告课程名称算法与程序设计课题名称学生选修课程系统专 业班 级学 号姓 名指导教师2011年01月20日湖南工程学院课程设计任务书课程名称算法与程序设计课 题学生选修课程系统专业班级学生姓名 学 号 指导老师 审 批 任务书下达日期 2010 年 12 月 29 日任务完成日期2011 年 01 月 20 日学生选修课程系统(一)课程设计题目:学生选修课程系统(二)目的与要求:1、目的:(1) 要求学生达到熟练掌握C+语言的基本知识和技能;(2) 基本掌握面向对象程序设计的基本思路和方法;(3) 能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题。2、基本要求:(1) 要求利

2、用面向对象的方法以及C+的编程思想来完成系统的设计;(2) 要求在设计的过程中,建立清晰的类层次;(3) 在系统的设计中,至少要用到面向对象的一种机制。3、创新要求: 在基本要求达到后,可进行创新设计,如根据查找结果进行修改的功能。4、写出设计说明书(三)设计方法和基本原理:假定有n门课程,每门课程有课程编号,课程名称,课程性质,总学时,授 课学时,实验或上机学时,学分,开课学期等信息,学生可按要求(如总学分不 得少于 60)自由选课。试设计一选修课程系统,使之能提供以下功能:(1) 系统以菜单方式工作(2) 课程信息录入功能(课程信息用文件保存)输入(3) 课程信息浏览功能输出(4) 查询功

3、能:(至少一种查询方式)算法i按学分查询ii按课程性质查询(5) 学生选修课程(可选项)2、问题的解决方案: 根据系统功能要求,可以将问题解决分为以下步骤:(1) 分析系统中的各个实体之间的关系及其属性和行为;(2)根据问题描述,设计系统的类层次;(3)完成类层次中各个类的描述(包括属性和方法);(4)完成类中各个成员函数的定义;(5)完成系统的应用模块;(6)功能调试;(7)完成系统总结报告以及系统使用说明书。四、答辩与评分标准:1、完成基本功能:40分;2、设计报告及使用说明书:40分;3、设置错误或者按照要求改变结果:10分;4、回答问题:10分。五、教材及参考书朱战立等著,C+面向对象

4、程序设计,人民邮电出版社;郑莉著, C+ 语言程序设计(含实验指导书)。清华大学出版社 (结构化 程序设计部分 )钱能主编 ,C+ 程序设计教程,清华大学出版社, 2000.11戴锋编著, Visual C+ 程序设计基础 , 清华大学出版社 ,2001.4 吕日著, C+ 程序设计教程,清华大学出版社,C+ 大学教程,美国 Harvey M.Deitel 等六、课程设计时间安排1、班级:信息与计算科学0901/02/032、指导教师:王祝君3、时间安排:2010.12.272011. 1.20上机时间:2011.1.6-9目录封面1任务书1一、需求分析51.1、系统设计目的与意义 51.2、

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

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

7、据处理手工操作,工作 量大,出错率高,出错后不易更改。学校采取手工方式对学生选课情况进行人 工管理,由于信息比较多,选课信息的管理工作混乱而又复杂;一般选课情况 是记录在文件上,课程的数目和代号也记录在文件中,学校的工作人员也只是 当时对它比较清楚,时间长了,如再要进行查询,就得在众多的资料中翻阅、 查找了,造成查询费时、费力。如要对很长时间以前的选课进行更改就更加困 难了。基于这些问题,我认为有必要建立一个学生选课系统,使选课管理工作规 范化,系统化,程序化,避免选课管理的随意性,提高信息处理的速度和准确 性,能够及时、准确、有效的查询和修改选课情况。1.2、系统功能需求(系统流程图)主模块

8、退.1. 3、输入输出的要求(1)输入:确定与功能有关的所有输入信息,包括数据来源、意义、格式、 接收方法、数量、输入范围及处理方法,必须说明时间要求、优先顺序、操作控 制和使用的输入设备(媒体)。(2)输出:对错误输入提示(二)结构设计(ER图);(2)类层次图(三)界面设计与各功能模块实现界面设计1、主界面:J J J J J J J J J J J J J J J J J J J J J J J*选修课小系统*操作方式:*1选修课系统学生端*2选修课系统管理端*%L *X* A A J J J J J J J J J J J J J J J J J J J J J J J J J J J

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

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

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

12、ent(void): member function already defined or declaredE: 新建文件夹9.cpp(24) : see declara tion of st uden t:st uden t执行cl.exe时出错.9.obj 1 error(s), 0 warning(s)root = HULL; Factcourse = 0;student() student()priuate: char gname20; int maNcours; int factcourse; course *root;改正:将中的去掉(五)使用说明及编程体会5.1使用说明1、登录首

13、先,运行学生选课系统,出现学生选课系统画面:邸C:DO匚OTEHTS AID 5E7TIKGSADMINISTRATOEDebug2.ezBEIC+课程设计课题*选修课小系统*L = b . .Ir+t*撫件力A.,*1 选修课系统学生端*2 迅修澤系绘菅埋端*+t请选隹登入力式:2、进入选修课系统学生端当主菜单出现后,在“请选择登录方式:”后输入“ 1”,就进入了 “选修课系统学生端”,界面如下:网 *C:DOCU1EHTS AID SETT ING S X.ftMnri STRATORkD ebug2.exe*修瑞土学.淤-课况况统X 方兰匕一谍匕令 善于选很 操J2.3.4.沿.淤3、选

14、课在“请选择操作方式:”输入“ 1”,进入网上选课系统,请首先进入课程 预览菜单,预览自己的课程表,学生自行选课后,也可进入课程预览菜单,查看选课结果。课程表中已有的课程为教务处按各班教学计划整班指定上去的,不得 自行退选4、管理员登录管理员密码admin。用管理员帐号登录可以查看每个人的选课,及退课情况。(1)如密码正确,则出现以下界面:此时,管理员可以在“请选择操作方式:”后输入相应的数字,比如数日“1”,那么所执 行的操作就是:增加学生,则出现以下界面:增加学生操作请输入学主姓名:(2)若密码不正确,则出现界面 第一次密码错误第二次密码错误5、退出系统(1)学生选课完成后可以按“4”退出

15、选课系统,以防他人修改数据。(2)密码错误次数超过3次,可按任意键退出,界面如下:环 *C:DOCU1ENTS AND SETTINGSAD1INI5TRATORDebug2. ese输入锥误密码扭过三幻请按任意键退出-5.2 编程体会刚看到这个课程设计题目时,觉得这个课题比较难。今天回过去看看,却十 分的欣慰,因为通过我们的努力终于完成了。虽然这不是我读大学以来第一次做 课程设计,但却是花费心血最多的一次,这是对我这学期学习下来最好的检验。 经过这次课程设计,我的能力有了很大的提高,比如操作能力、分析问题的能力、 合作精神、严谨的工作作风等方方面面都进步了。还要特别感谢老师对我的悉心指导,帮

16、我理清设计思路,指导操作方法,并 对我所做的设计方案提出有效的改进方案。老师渊博的知识、严谨的作风、诲人 不倦的态度和学术上精益求精的精神让我受益终生。附件:#include #include #include #include using namespace std;/定义课程class course/某个学生所学的课程中的某一个public:char cname20; /课程名称float grade;/课程成绩course *Next; /指向下一个课程的指针;/学生类class studentpublic: student() root = NULL;const int maxcour

17、se = 5;factcourse = 0;void readname(char N );/读入学生的姓名void getname(char N);/得到学生的姓名void wrecourse(char N,float score); /要据课程名写入学生课程的成绩float average();/学生课程的平均成绩void addcourse(char N,float g); /给学生增加一门课int findcourse(char N);/查找是否已有此课程,如果有返回,如果没有返回int retfactcourse() return factcourse;/ 得到所学的课程数目cours

18、e *retroot() return root; / 利用键表将所有的课程保存起来int retmaxcourse() return 5; / 得到最多可学的课程数目 void clrroot()/清零root = NULL; factcourse = 0;private:char sname20; int maxcourse; int factcourse; course *root;/学生的姓名/学生最多可以学五门课程 /学生实际所学的课程数目 /课程的根结点指针;void student:readname (char N)读入学生的姓名 strcpy(sname,N); void st

19、udent:getname(char N)得到学生的姓名 strcpy(N,sname); void student:wrecourse(char N,float score)/要据课程名写入学生课程的成绩 course *p = root;if(p=NULL)return;if(p!=NULL)p = 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

20、= aver+p-grade; aver = aver/factcourse; return aver; void student:addcourse (char N,float g)/给学生增加一门课 course *s = new course; s-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;

21、factcourse+;int student:findcourse (char N)/查找是否已有此课程,如果有返回,如果没有返回 course *p = root;if(root=NULL) return 0;p = p-Next; while(p) if(strcmp(p-cname,N)=0)return 1;p = p-Next;return 0; class studentdb public:student stu; studentdb *Next; ;struct studentname char tname20;/学生的名字float result;/学生所得的该课程分数stu

22、dentname *Next; ;/课程类class subjectpublic: subject() first = NULL;maxstudent=30; activestudnet=0; float readcredit();/得到课程的学分void getcredit(float a); /设置学分 float getaverage();/得到学生的平均成绩float getresult(char N); /查找某个学生的成绩 void getkname(char N); /读出课程的名称 void setkname(char N); /读入课程的名称 studentname *ret

23、first() return first; /返回根结点void findstudent(studentdb *P); /根据该课程的名称,寻找选这课程的学生 int retactivestudent() return activestudnet; /返回实际学生数int retmaxstudent() return 30; /返回最多学生数void clractivestudnet() activestudnet = 0; /从文件中读出来后将实际学生数清零private:int maxstudent;/最多学生数int activestudnet; /实际学生数studentname *f

24、irst;/学生名单float credit;/该课程的学分float averagerusult; /该课程的平均成绩 char kname20;/该课程的名称;float subject:readcredit ()/得到课程的学分 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-res

25、ult;p = p-Next ; return k/activestudnet; float subject:getresult (char N) /查找某个学生的成绩 studentname *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); v

26、oid subject:findstudent(studentdb *P) /根据该课程的名称,寻找选这课程的学生 studentname *newcode = 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,kna

27、me)=0) studentname *Acode = new studentname; char Name20; K-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);coutvvnn谢谢你使用选修课系统nnvvendl; coutn

28、 youre welcome ! nendl; getch();exit(-1); /总菜单char menu() int k=0;char a3,c,i;system(cls);coutendlendl;*n*学生选修课系统*n*n*操作方式:*n*1.选修课系统学生端*n*n*2.选修课系统管理端*n*na;if(strlen(a)=1)for(i=1;i2) system(cls);cerrnnntt提示:错误输入次数超过三次,你将被强制退 出!nnA; if(strlen(A)=1) for(i=1;iv=4;i+) b=i;if(b=A0) return b; cerrvvntttt

29、 输入有误!nvvendl;k+;if(k2) system(cls);cerrvvnnttt提示:错误输入超过三次!你将被强制退出!nvvendl; coutvvtt 按任意键继续vvendl; getch(); tuichu(); char server() char A10;char b;char i;int k = 0;system(cls); coutnnn沁VV” nVV”选修课系统管理端 nVV” nVV”操作方式: nVV”1.增加学生2.增加课程 nVV”3.删除学生4.删除课程 nVV”5.填写成绩6.更改学分 nVV”7.学生情况8.选课情况 nVV”9.保存数据0.退出

30、系统 nVV” n探nvvendl;while(1) coutA;if(strlen(A)=1) for(i=0;i2)cerrvv错误输入超过三次!n;exit(-1); /密码检查void password()int k=0,i;char A=admin;char B10;char a;system(cls);for(i=0;i8;i+)coutendl;while(k=3)system(cls);cerrNext;int i;char N20,M20; if(q!=NULL)coutvvnnntt 所有学生名单如下:nvvendl;elsecerrnnntt 对不起 , 暂无学生名单!请

31、先创建!请按任意键继续.stu.getname(N); coutttttN; coutNext ; q = P-Next;if(q=NULL)return 1;coutN;i=0;q=P-Next;while(q) q-stu.getname(M); if(strcmp(N,M)=0) i+;q = q-Next; int j=0,k=1;if(i=0)coutnntt 没有这个学生! 请按任意键返回.1)coutvvnntt 共找到vvivv个姓名为vvNvv的学生vvendl;coutvvtt选择第几个:; cink; if(ki|kv=0)cerrvvnttt输入有误!按任意键继续vve

32、ndl;return 1; q = P-Next;j=0;while(q) q-stu.getname(M); if(strcmp(N,M)=0)j+; if(j=k) if(q-stu.retfactcourse()=q-stu.retmaxcourse()coutvvntt所选课程已满!按任意键继续vvendl;return 1; else subjectdb *t=X-Next;char N120;system(cls); if(t!=NULL) coutnnntt 所有课程如下 :sub.getkname(N1);coutvvtttt vvN1vvsetw(26-strlen(N1)v

33、vt-sub.readcredit()vvendl; t = t-Next ; char N220;coutvvnt输入你所要选的课程: ;cinN2; t = X-Next;while(t) t-sub.getkname(N1); if(strcmp(N1,N2)=0) if(q-stu.findcourse(N2)=1) coutvvntt 此课程你已选过了 ,不能再选 .按任意键继续 vvendl;return 1; t=X-Next; char NA20; while(t) t-sub.getkname(NA); if(strcmp(NA,N2)=0) if(t-sub.retacti

34、vestudent()=t-sub.retmaxstudent () coutvvntt 此课程已选满,不能选.按任意键继续 vvendl;return 1; t = t-Next; q-stu.addcourse(N2,0.0);coutvvnntt选课成功!按任意键继续vvendl; return 1; t = t-Next; cerrvvntt没有此课程!按任意键继续vvendl; return 1; q = q-Next; return 1; int menu_1_2(studentdb *P,subjectdb *X) /学生情况 studentdb *q=P-Next;char N

35、20;system(cls);coutvvnntttt 学生情况操作vvendl;int i; if(q!=NULL) coutvvnnntt 所有学生选课信息如下:nvvendlvvendl;coutvvtt 姓名 ttt 选课情况nvvendl; elsecerrvvnnntt对不起,暂时没有学生名单!请按任意键继续.vvendl;return 1; while(q) q-stu.getname(N);coutvvtt vvNvvsetw(25-strlen(N)vv 已选vvq-stu.retfactcourse()vv 门 课vvendl;q = q-Next ; char M20;c

36、outM;i=0;q=P-Next;while(q) q-stu.getname(N);if(strcmp(N,M)=0)i+;q = q-Next; int j=0,k=1;if(i=0)cout1) coutvvntt 共找到vvivv个姓名为vvMvv的学生vvendl;coutvvtt选择第几个:;cink; if(ki|kv=0)cerrvvnttt输入有误!按任意键继续.vvendl;return 1; q = P-Next;j=0;q=P-Next;while(q) q-stu.getname(N);if(strcmp(N,M)=0)j+;if(j=k) system(cls);

37、course *T=q-stu.retroot(); if(T=NULL)coutvvnnntttvvNvv同学你还未选课!请按任意键继续.vvendl;return 1; if (T!=NULL) T = T-Next;coutvvnnnttvvNvv同学你已选vvq-stu.retfactcourse()vv门课,具体如下nnvvendl;coutvvttt 课程名称 tt 成绩nvvendl; while(T) coutvvttt vvT-cnamevvsetw(25-strlen(T-cname)vvT-gradevvendl; T = T-Next; j=0; q = q-Next;

38、 coutvvntt 请按任意键继续.vvendl;return 1; int menu_1_3(subjectdb *P)/选课情况 subjectdb *q=P-Next;char N20; system(cls);coutvvnntttt 选课情况操作vvendl; if(q!=NULL)coutvvnnntt 所有选课情况如下:nvvendl;coutvvnttt课程名称tt选课人数56口小1; elsecerrvvnnntt对不起,暂时没有课程!请按任意键继续.vvendl;return 1; while(q) q-sub.getkname(N); coutvvtttvvNvvset

39、w(28-strlen(N)vvq-sub.retactivestudent()vvendl; q = q-Next ; coutvvntt 请按任意键继续.vvendl;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);coutvvnntttt 增加学生操 作nvvendl;coutvvnntt请输入学生姓名:; cinN;coutvvendlvvt

40、t增加学生操作成功,按任意键继续vvendl; 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);coutvvnntttt 增加课程操作5N;coutvvendl;subjectdb *q = P-Next;while(q) q-sub.getkname(M);if(strcmp(N,M)=0)co

41、utvvntt此课程已经存在,按任意键继续vvendl;return 1; q = q-Next; coutvvtt输入此课程的学分:;cink;coutvvntt增加课程操作成功,按任意键继续vvendl; 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);coutvvnntttt 删除学

42、生操作vvendl;menu_2_7(P);studentdb *q = P-Next;if(q=NULL)return 1;int i;char N20,M20;coutvvnt请输入要删除的学生姓名:;cinN;i=0;while(q) q-stu.getname(M);if(strcmp(N,M)=0)i+;q = q-Next; int j=0,k=1;if(i=0)cerrntt 没有这个学生!请按任意键继续.1)coutvvntt 共找到vvivv个姓名为vvNvv的学生vvendl;coutvvntt要删除第几个:; cink; if(ki|kv=0)return 1;q = P

43、-Next;studentdb *R = P;j=0;while(q) q-stu.getname(M);if(strcmp(N,M)=0)j+;if(j=k) R-Next = q-Next;free(q);coutvvntt删除学生操作成功,按任意键继续.vvendl; return 1; q = q-Next;R = R-Next; return 1; int menu_2_4(subjectdb *P)/删除课程 subjectdb *q=P-Next;char N20;system(cls);coutvvnntttt 删除课程操作vvendl;if(q!=NULL)coutvvnnn

44、tt 所有课程如下:nvvendl;elsecerrvvnnntt对不起,暂时没有课程!请按任意键继续.vvendl;return 1; while(q) q-sub.getkname(N);coutvvttttvvNvvendl;q = q-Next ; q = P-Next;subjectdb *R = P;if(q=NULL)return 1;char M20;coutM;while(q) q-sub.getkname(N);if(strcmp(N,M)=0) R-Next = q-Next;free(q);coutvvntt删除课程操作成功,按任意键继续vvendl; return 1

45、; q = q-Next;R = R-Next; cerrvvntt没有此课程!t请按任意键继续.vvendl;return 1; int menu_2_5(studentdb *X,subjectdb *P)/填写成绩 subjectdb *q=P-Next;char M20,N20,NA20;float score;system(cls);coutvvnntttt 填写成绩操作 nvvendl;if(q!=NULL)coutvvnttt课程名称tt选课人数5sub.getkname(N); coutvvtttvvNvvsetw(28-strlen(N)vvq-sub.retactivest

46、udent()vvendl;q = q-Next ; q = P-Next;coutvvnt请输入课程名称:;cinM;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)coutvvnntt 请填写选修vvMvv的学生成绩nvvendl;coutvvnttt 姓名 tt 成绩vvendl; if(K=NULL) cerrnttt 无任何信息!请按任意键继续.endl;while(K) coutntt

47、ttnamescore; 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(K=NULL)coutntt 填写成绩完毕!请按任意键继续.Next; cerrntt 没有此课程!请按任意键继续.endl; return 1; int menu_2_6(subjectdb *P)/更改学分 float k;system(cls);coutvvnnntttt 更改学分操作5Next;char N20,M20; if(q!=NULL)coutnnntt 所有课程如下:nvvendl;elsecerrsub.getkname(N);coutvvtttt vvNvvendl;q = q-Next ; q = P-Next;coutvvnnntt请输入要改的课程:;cinM; while(q) q-sub.getkname(N); if(strcmp(N,M)=0) co

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!