




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、数学与计算机学院课程设计说明书课 程 名 称: 面向对象程序设计-课程设计 课 程 代 码: 题 目: 学生选课管理系统 年级/专业/班: 2009 级信科 1 班 学 生 姓 名: 学 号: 312009070102119 开 始 时 间: 2010 年 05 月 2 23 日完 成 时 间: 2010 年 0606 月 2020 日课程设计成绩:学习态度及平时成绩(30)技术水平与实际能力(20)创新(5)说明书撰写质量(45)总 分(100)指导教师签名: 年 月 日目 录1 1 引引 言言 .1 11.1 问题的提出 .11.2 任务与分析 .12 2 程序的主要功能程序的主要功能 .
2、1 12.1 添加功能.12.2 删除功能.22.3 查看功能.22.4 选课功能.22.5 退选功能.22.6 打印功能.23 3 程序运行平台程序运行平台 .2 24 4 总体设计总体设计 .2 25 5 程序类的说明程序类的说明 .3 36 6 模块分析模块分析 .6 66.1 选课端登录验证模块.66.2 学生选课端选课模块.66.3 学生选课端退选课程模块.96.4 学生选课端查看已选课程模块.106.5 学生选课端打印模块.116.6 管理员密码验证模块.126.7 管理端增加模块.136.8 管理端查看模块.146.9 管理端删除模块.147 7 系统测试系统测试 .1 15 5
3、8 8 结论结论 .2626致谢致谢 .2727参考文献参考文献 .2727 摘摘 要要 随着计算机的普及,各高校均采用计算机进行学生选课。而对学生选课相关信息的管理由学生选课管理系统实现。经过分析其学生选课端和系统管理端的各项功能,利用面向对象的 c+编程实现了学生选课管理系统。该系统选课端具有学生选课、退选课程、查看已选课程、打印选课信息等功能,而管理端具有对学生、教师、备选课程等信息的管理,主要包括增加,删除,查看等功能。关键词:关键词:学生选课管理系统 计算机 面向对象 c+1 引引 言言 1.1 问题的提出问题的提出我国高校都实行了学分制,其核心就是允许学生自由选课,自主权交给学生。
4、如果选课能够通过计算机实现,那么就可以节约很多的人力、物力。因此,为学生选课提供一个好的系统不仅方便学校对学生选课的管理,也方便学生自由选课。所以,针对此问题有必要做一个学生选课管理系统软件。1.2 任务与分析任务与分析 学生选课管理系统实现对学生选课相关信息的管理,能处理学生、教师、课程信息的管理及选课操作。1. 每个学生包括有学号、姓名、总学分等内容;2. 每个教师包括工作证号、姓名、职称等信息;3. 课程包括课程号、课程名、任课教师、学分等信息;4. 能提供若干门课,由学生进行选择,打印出学生选课情况。本课题主要的目的是通过面向对象的 c+编程,实现学生选课管理系统对学生选课相关信息的管
5、理,能处理学生、教师、课程信息的管理及选课操作。其中每个学生包括有学号、姓名、已选课程和总学分;每个教师包括工作证号、姓名、职称等信息;课程包括课程号、课程名、任课教师、学分等信息;最终要实现能通过管理端提供若干门课,供学生进行选择,退选,并打印出学生选课情况。在功能实现的基础上,还要设计出良好的界面。2 2 程序的主要功能程序的主要功能2.1 添加功能添加功能这是系统管理端的一个功能,主要是对学生、课程和教师的增加。其中,学生包括学号、姓名;课程包括课程号、课程名、任课教师和学分;教师包括教师证号、教师姓名、职称。2.2 删除功能删除功能这是系统管理端的一个功能,主要是对学生、课程、教师分别
6、按学号、课程号、教师证号进行删除。2.3 查看功能查看功能在系统管理端,可以分别显示所有学生、课程、教师的信息以供查看。在学生选课端,则可以查看学生的已选课程。2.4 选课功能选课功能这是学生选课端的一个功能,学生通过输入课程号选课,并在选课同时可以查看课程及任课教师的信息。2.5 退选功能退选功能这是学生选课端的一个功能,学生通过输入课程号退选课程。2.6 打印功能打印功能这是学生选课端的一个功能,学生可以打印出选课的所有信息,包括学号,姓名,已选课程和已选课程的总学分等信息。3 3 程序运行平台程序运行平台vc+6.0。具体操作如下:打开 vc+6.0,新建一个空工程,添加相应的源文件,再
7、编译,链接,执行。4 4 总体设计总体设计学生选课管理系统学 生 选 课 端管 理 员 验 证退出系统系 统 管 理 端 删除学生返回主菜单增加课程查看所有课程删除课程增加教师删除教师查看所有教师选择课程退选课程查看已选课程打印选课情况返回主菜单查看所有学生增加学生 图 4.1 系统总体框架图5 5 程序类的说明程序类的说明subjectsubject 类的声明类的声明 class subject / 课程信息类course *head; /头指针course *p; /当前指针public:subject()head=p=null; ; void add(); /增加课程void delet
8、e(); /删除课程int search(char nu); /根据课程号查找课程void readfile(); /从文件中读取课程信息 void writefile(); /向文件写入课程信息 void display(); /在屏幕中输出全部课程信息 friend xs;friend js; friend void xuanke(xs p,char nu,char na);jsjs 类的声明类的声明 class js /教师信息类 teacher *head; /头指针teacher *p; /当前指针public:js()head=p=null; void add(); /增加教师vo
9、id delete(); /删除教师void search(char na); /通过教师姓名查找任课教师int search1(char nu); /通过教师号查找教师 void readfile(); /从文件中读取教师信息 void writefile(); /向文件写入教师信息 void display(); /在屏幕中输出全部教师信息friend xs;stustu 类的声明类的声明 class stu /学生信息类 student *head; /头指针 student *p; /当前指针public:stu()head=p=null;void add(); /增加学生void d
10、elete(); /删除学生int search(char nu,char na); /按学生学号和姓名查找 int search(char nu); /按学生学号查找void readfile(); /将所有学生的信息写入文件 void writefile(); /从文件读出学生信息 void display(); /显示所有学生 friend xs; xsxs 类的声明类的声明class xs /学生类char num10; /学号char name20; /姓名course *head; /已选课程头指针 course *p; /已选课程当前指针float tcredit; /已选课程总
11、学分public:xs()head=p=null;tcredit=0;void set(char nu,char na )strcpy(num,nu); strcpy(name,na); void addcourse(char nu); /学生选课int search(char nu); /按课程号查找以选课程void deletecourse(char nu); /退选void showcourse(); /显示已选课程float get_tcredit(); /获取已选课程总学分void readfilecourse(); /读取已选课程void writefilecourse(); /将
12、已选课程写入文件 friend void tuixuan(xs p,char nu,char na); 6 6 模块分析模块分析6.16.1 选课端登录验证模块选课端登录验证模块在主菜单选择 1 时,便进入选课端登录验证,该模块会提示用户输入学号(nu10)和姓名(na20) ,当输入完成后,调用 int stu:search(nu,na);,当返回值为 0,则输出提示信息“对不起,学号或姓名输入错误!按任意键返回.” ,然后返回主菜单;当返回值为 1,则登录学生选课系统。关键代码如下:p0: int b1,b2,b0=menu(); stu p1;subject p2;js p3; xs p
13、; if(b0=1)system(cls);p1.readfile();char nu10,na20;coutnu;coutna;if(p1.search(nu,na)=0)coutnntt 对不起,学号或姓名输入错误!按任意键返回.;getchar();getchar();goto p0;elsep1:b1=menu1();6.26.2 学生选课端选课模块学生选课端选课模块在学生选课系统中选择 1,进入选课模块。此时调用 void xuanke(xs p,char nu,char na);函数,此函数首先调用 subject:readfile(); subject:display();将所有
14、的课程输出来,并提示“请输入要选择的课程号:” ,然后输入课程号(kh10),此时会提示“是否查看任课教师信息(y/n):” ,输入 y,将输出任课教师信息,如果没有此教师信息,输出“没有此任课教师的信息!” ,当输入 n,则不输出教师信息。此时调用 xs:addcourse(kh);选课,再输出“是否继续选课(y/n): ”如输入 y,重复以上选课操作,当输入 n,则调用 xs:writefilecourse();保存已选课程。关键代码如下:void xuanke(xs p,char nu,char na)/选课功能函数system(cls); js j;j.readfile(); subj
15、ect sub;sub.readfile(); sub.display();p.set(nu,na);p.readfilecourse ();loop1:coutkh; couty_n;if(y_n=y|y_n=y)char t20;course *kc=sub.head; while(kc!=null)if(strcmp(kc-um,kh)=0) break;kc=kc-next;if(kc!=null)strcpy(t,kc-kecheng.cteacher);j.search(t);elsecout没有此任课教师的信息!endl;else if(y_n!=n&y_n!=n) cout输入
16、不正确,请重新输入:;goto loop3;p.addcourse(kh);getchar();couty_n;if(y_n=y|y_n=y)goto loop1;else if(y_n=n|y_n=n)p.writefilecourse();else cout输入不正确,请重新输入:;goto loop2;getchar();cout按任意键继续.;getchar(); 6.36.3 学生选课端退选课程模块学生选课端退选课程模块在学生选课系统中选择 2,进入退选课程模块,由 void tuixuan(xs p,char nu,char na);函数完成。首先调用 xs:readfilecou
17、rse ();和 xs:showcourse();输出已选课程,然后提示“请输入要退选的课程号:” ,此时可输入课程号(kh10),在调用 xs:deletecourse(kh);xs:writefilecourse();退选课程并保存。此后会提示“是否继续退选课程(y/n): ”输入 y,重复退课操作,输入 n,则退出此模块。关键代码如下:void tuixuan(xs p,char nu,char na)/退选课程功能函数system(cls); p.set(nu,na);p.readfilecourse ();loop3:if(p.head !=null)system(cls);p.sh
18、owcourse();coutkh;p.deletecourse(kh);p.writefilecourse();getchar();couty_n;if(y_n=y|y_n=y)goto loop3;else if(y_n!=n&y_n!=n)cout输入不正确,请重新输入:;goto loop4;else coutnntt 没有已选课程,不能退选!endlendl;getchar();cout按任意键继续.;getchar();6.46.4 学生选课端查看已选课程模块学生选课端查看已选课程模块在学生选课系统中选择 3,进入查看已选课程模块,由函数 void lookyixuan(xs p,
19、char nu,char na);实现。通过调用 xs:readfilecourse ();xs:showcourse();显示已选课程。关键代码如下:void lookyixuan(xs p,char nu,char na)/查看学生已选课程函数system(cls);p.set(nu,na);p.readfilecourse ();p.showcourse();getchar();cout按任意键继续.;getchar();6.56.5 学生选课端打印模块学生选课端打印模块在学生选课系统中选择 4,进入打印模块,由函数 void dayin(xs p,char nu,char na);实现
20、。先输出学生的信息,再调用 xs:showcourse();输出已选课程,最后调用 p.get_tcredit();输出总学分。关键代码如下:void dayin(xs p,char nu,char na)/打印学生选课情况函数system(cls);p.set(nu,na);p.readfilecourse ();system(cls);cout学号:nut 姓名:naendlendl;cout已选课程:endlendl;p.showcourse();cout已选课程总学分:p.get_tcredit()endlendl;getchar();getchar();cout按任意键继续.;get
21、char();6.66.6 管理员密码验证模块管理员密码验证模块在主菜单中选择 2,进入管理员密码验证。通过函数 void password();实现。首先提示输入管理员密码,再由用户输入密码,正确则进入选课系统管理端,错误则提示重新输入。如果错误输入超过 3 次,就强制退出。关键代码如下:void password()/密码检查功能函数int k=0,i;char a=000000,b10,a; system(cls);for(i=0;i6;i+)coutendl;printf(ttt 请输入管理员密码: );while(k=2)i=0;while(1)a=getch();if(a=13)b
22、reak;bi=a;i+;printf(*);bi=0;if(strcmp(a,b)=0)return;elsek+;if(k3)cout=3)coutnnttt 输入错误密码超过三次!请按任意键退出.;getch();tuichu();6.76.7 管理端添加模块管理端添加模块 该模块是对学生,课程,教师的增加操作。由于三者功能相同,故通过函数模板template void add(t p);实现。首先询问增加多少个(学生,课程,教师) ,再输入个数。然后对每一个对象的详细信息进行输入。如果已经存在该信息,则提示不能重复添加。输入完成后保存到文件中。关键代码如下:template /增加功能
23、函数模板void add(t p)system(cls);p.readfile();int n,i;coutn;for(i=0;in;i+)cout第i+1个: endl;p.add();coutendl;p.writefile();getchar();cout按任意键继续.;getchar(); 6.86.8 管理端查看模块管理端查看模块该模块是对学生,课程,教师的查看操作。由于三者功能相同,故通过函数模板template void look (t p);实现。调用各自的 display();函数,将所有信息输出。关键代码如下:template /查看功能函数模板void look(t p)
24、 system(cls);p.readfile();p.display();getchar();cout按任意键继续.;getchar(); 6.96.9 管理端删除模块管理端删除模块该模块是对学生,课程,教师的删除操作。由于三者功能相同,故通过函数模板template void delete(t p);实现。首先输出(学生,课程,教师)所有信息,再调用各自的 delete();函数将对象删除。最后将删除后的信息保存到文件中。关键代码如下:template /删除功能函数模板void delete(t p)system(cls);p.readfile();p.display();p.delet
25、e();p.writefile();getchar();cout按任意键继续.;getchar();7 系统测试首先进入 vc+6.0,打开工程 “选课管理系统.dsw” ,进入源程序运行。运行程序后出现主菜单界面,如图 7.1。 图 7.1 主菜单 输入“2” ,进入管理员密码验证(管理员密码:“000000” ) 。当输入错误密码三次,如图 7.2 所示,输入正确密码就进入“选课管理系统”菜单界面,如图 7.3 所示。 图 7.2 错误密码验证图 7.3 选课系统管理端菜单 输入“1” ,进入增加学生界面。再输入“4” ,增加 4 个学生。再根据提示输入学生相关信息,到第 4 个时输入第
26、1 个学生的学号,第 4 个学生将不能被添加,如图7.4。 图 7.4 增加学生 按任意键后,回到管理端菜单,输入“2” ,查看所有学生信息,如图 7.5 所示。 图 7.5 查看所有学生按任意键后,回到管理端菜单,输入“3” ,进入删除学生界面,输入要删除的学生学号“10002” ,完成对学生“zhangxiong”的删除,如图 7.6。当输入的学号没有时,如图 7.7 所示。再查看学生,确认删除操作成功,如图 7.8。 图 7.6 删除学生图 7.7 删除的学生不存在图 7.8 查看删除后的所有学生按任意键返回选课管理菜单,输入“4” ,进入增加课程界面。再输入“4” ,增加4 门课程。再
27、根据提示输入课程相关信息,到第 4 个时输入第 1 个课程的课程号,第 4个课程将不能被添加,如图 7.9 所示。 图 7.9 增加课程按任意键返回管理端菜单,输入“5” ,查看所有课程信息,如图 7.10 所示。 图 7.10 查看课程按任意键回到管理端菜单,输入“6” ,进入删除课程界面,输入要删除的课程号“10002” ,此时没有此课程,如图 7.11。当输入的课程号“20002”时,如图 7.12 所示。再查看课程,确认删除操作成功,如图 7.13。图 7.11 删除的课程不存在图 7.12 删除课程图 7.13 查看删除后的所有课程按任意键返回选课管理菜单,输入“7” ,进入增加教师
28、界面。再输入“4” ,增加4 名教师。再根据提示输入教师相关信息,到第 4 个时输入第 2 个教师的教师号,第 4个教师将不能被添加,如图 7.14 所示。图 7.14 增加教师按任意键返回管理端菜单,输入“8” ,查看所有教师信息,如图 7.15 所示。图 7.15 查看教师按任意键回到管理端菜单,输入“9” ,进入删除教师界面,输入要删除的教师证号“10000” ,此时没有此教师,如图 7.16。当输入的课程号“30002”时,如图 7.17所示。再查看教师,确认删除操作成功,如图 7.18。图 7.16 删除的教师不存在图 7.17 删除教师图 7.18 查看删除后的所有教师按任意键回到
29、管理端菜单(可以在此再增加一些课程,教师等,以供选课时有更多的选择) ,输入“0” ,返回主菜单,再输入“1” ,进入学生选课系统登录界面,输入的学号和姓名不存在或不匹配,则如图 7.19;输入的学号和姓名存在且匹配,则进入选课端菜单,如图 7.20。 图 7.19 学生选课系统错误登录图 7.20 学生选课系统菜单在选课系统菜单中输入“1” ,进入选课。分别输入“20001” 、 “20002” 、 “20003” 、“123456”测试选课。如图 7.21。图 7.21 学生选课按任意键返回选课系统菜单,输入“3” ,查看已选课程,如图 7.22。图 7.22 查看已选课程按任意键返回选课系统菜单,输入“4” ,打印选课信息,如图 7.23。图 7.23 打印选课信息按任意键返回选课系统菜单,输入“2” ,进入退选课程界面。输入“54321” ,没有此课程,如图 7.24,再输入“y”,然后输入“20002” ,删除课程“chine
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 临床决策支持系统中AI的智能辅助功能
- 医疗诊断决策的透明与安全-基于区块链的保障
- 医疗科技前沿不良事件报告系统的技术创新
- 水库除险加固工程护岸结构设计研究与实践进展
- 2025至2030年中国注射用青霉素G钾行业投资前景及策略咨询研究报告
- 医疗数据安全与区块链数字货币的监管
- 2025-2031年中国在线健身行业发展潜力预测及投资战略研究报告
- 现代轻奢高层豪宅项目景观及建筑设计方案
- 医院培训课件:《子宫破裂的护理》
- 2025年高考复习模拟试题及答案
- 动火作业安全技术交底
- 国开《Windows网络操作系统管理》形考任务3-磁盘存储与文件服务实训
- 【财务报表分析国内外文献综述1200字】
- 全国优质课一等奖教师信息化教学设计和说课大赛高中中职数学《计数原理》课件
- GA 1814.4-2023铁路系统反恐怖防范要求第4部分:重点场所
- (23)-9.3《艺术学概论》第九章第三节 艺术批评的维度与方法
- 罐车装卸安全技术操作规程
- 出口企业首次申报核查情况表
- 金融企业呆账核销管理办法(2021年修订版)
- 诉讼财产保全
- 江苏省对口高考历年真题分类汇总(数学)(职教高考)
评论
0/150
提交评论