C++程序设计课程设计---学生成绩管理系统
更新时间:2024-05-28 18:16:01 阅读量: 综合文库 文档下载
本科生课程设计
课程题目 学号 学生姓名 所在专业 所在班级 指导教师 联系电话 日期
小组其他成员:
评阅意见:
学生成绩管理系统
计算机科学与技术
2013年5月2日至2013年5月9日
成绩: 日期: 评阅教师:
课程设计报告书
一、设计的功能模块
有7个模块:
1、 模块1定义增加课程功能函数; 功能描述:增加课程功能
2、 模块2定义删除课程功能函数 功能描述:删除课程功能
3、 模块3定义修改课程函数; 功能描述:修改课程功能
4、模块4定义保存课程功能; 功能描述:保存课程功能
5、模块5定义查找课程功能; 功能描述:查找课程功能
6、模块6定义显示课程功能; 功能描述:显示课程功能
7、模块7定义读入课程功能; 功能描述:录入课程功能
二、 题目描述
向对象程序设计(OOP)方法实现一个简易的学生成绩管理系统,具备以下功能:
1) 用户注册 2) 用户登录
3) 成绩录入、修改、插入、删除 4) 成绩查询 5) 成绩简要统计 6) 图形界面、全英文注释
三、核心算法
有7个核心算法:
核心算法1增加课程功能;
void course::courseadd() { int a; system(\ cout<<\课程管理>>增加课程\ cout<<\ string tn,cn,ct,place1,no;
第1页(共16页)
int cs; course *q; cout<<\请输入增加的课程:\ cout<<\请输入该课程号:\ cout<<\请输入该课程学分:\ cout<<\请输入授课老师:\ cout<<\请输入授课时间:\ cout<<\请输入授课地点:\ q=new course(tn,cn,ct,cs,place1,no); q->last=0; if(head) { course *p; p=head; while(p->last) { p=p->last; } p->last=q; } else head=q; system(\ cout<<\课程管理>>增加课程\ cout<<\ cout<<\操作成功,是否继续?\ cout<<\继续\ cout<<\取消\ cout<<\请输入你的选择:\ cin>>a; if(a==1) courseadd(); else choose(); }
核心算法1教师注册功能的流程图
第2页(共16页)
课程增加功能 请输入增加的课程: 请输入该课程号 请输入该课程学分 请输入授课老师 请输入授课时间 请输入授课地点 操作成功,是否继续? 1. 继续 2. 取消 请输入你的选择:
核心算法2删除课程功能
void course::coursedelete() {
system(\ string no;
cout<<\课程管理>>删除课程\ cout<<\
cout<<\请输入你要删除的课程号:\ cin>>no; if(head) {
course *q,*p; q=head; p=q;
第3页(共16页)
while(q) {
if(q->courseno==no) break; p=q;
q=q->last; }
if(q!=0) {
cout<<\找到该课程!!\
cout<<\课程名称:\ cout<<\课程号:\
cout<<\课程学分:\ cout<<\授课老师:\ cout<<\授课时间:\ cout<<\授课地点:\ cout<<\正在删除……\ Sleep(500); if(q==head) {
head=q->last; } else {
p->last=q->last; delete q; }
cout<<\删除成功!!\ } else
cout<<\不存在该课程!!\ } else
cout<<\不存在该课程!!\ system(\ choose(); }
核心算2删除课程的流程图
第4页(共16页)
删除课程功能 请输入你要删除的课程号: 找到该课程!! 课程名称: 课程号: 课程学分: 授课老师: 授课时间: 授课地点: 正在删除…… 不存在该课程! 核心算法3修改课程
void course::coursemodify()//课程修改 {
system(\
string tn,cn,ct,place1,no; int cs;
cout<<\课程管理>>修改课程\ cout<<\
cout<<\请输入你要修改的课程号:\ cin>>no; if(head) {
course *q; q=head; while(q) {
if(q->courseno==no) break; q=q->last; }
if(q!=0) {
cout<<\找到该课程!!\
cout<<\课程名称:\ cout<<\课程号:\
第5页(共16页)
cout<<\课程学分:\ cout<<\授课老师:\ cout<<\授课时间:\ cout<<\授课地点:\
cout<<\请输入你要修改的信息:\ cout<<\请输入课程:\ cout<<\请输入该课程号:\ cout<<\请输入该课程学分:\ cout<<\请输入授课老师:\ cout<<\请输入授课时间:\ cout<<\请输入授课地点:\ q->coursename=cn; q->courseno=no; q->coursescore=cs; q->teachername=tn; q->coursetime=ct; q->place=place1;
cout<<\正在修改……\ Sleep(500);
cout<<\修改成功!!\ } else
cout<<\不存在该课程!!\ } else
cout<<\不存在该课程!!\ cout< system(\ choose(); } 核心算法3修改课程的流程图 第6页(共16页) 修改课程 请输入你要修改的课程号: 显示要查找的课程的所有信息 输入要修改的信息 修改成功 核心算法4保存课程 void course::coursesave() { system(\ ofstream tfile(\覆盖源信息 course *p=head; while(p)//写入文件 { tfile< tfile< tfile.close(); cout<<\管理员综合系统>>课程管理>>保存课程\ cout<<\ cout<<\保存成功!!\ cout< system(\ choose(); } 第7页(共16页) 保存课程 把信息一一保存到一个course.txt的文档中 保存成功 核心算法5删除课程功能 void course::coursesearch()//查找课程 { system(\ string no; cout<<\管理员综合系统>>课程管理>>查找课程\ cout<<\ cout<<\请输入你要查找的课程号:\ cin>>no; if(head) { course *q; q=head; while(q) { if(q->courseno==no) break; q=q->last; } if(q!=0) { cout<<\找到该课程!!\ cout<<\课程名称:\ cout<<\课程号:\ cout<<\课程学分:\ cout<<\授课老师:\ cout<<\授课时间:\ cout<<\授课地点:\ } 第8页(共16页) else cout<<\不存在该课程!!\ } else cout<<\不存在该课程!!\ cout< system(\ system(\ cout<<\管理员综合系统>>课程管理>>查找课程\} 核心算法5的流程图 查找课程 请输入你要查找的课程号 判别是否存在该课程 找到该课程 并显示该课程的所有信息 不存在该课程 模块6定义显示课程算法 void course::courseshow()//显示现有课程 { system(\ cout<<\管理员综合系统>>课程管理>>显示所有课程\ cout<<\ cout< cout< 第9页(共16页) < cout< system(\system(\ cout<<\管理员综合系统>>课程管理>>显示所有课程\ 核心算法6的流程图 显示课程功能 显示所有的课程 模块7定义读入课程功能 void course::load() { course *p; p=head; while(p) { head=p->last; delete p; p=head; } ifstream tfile(\ string tn,cn,ct,place1,no; int cs; tfile>>tn>>cn>>ct>>place1>>no>>cs; while(tfile.good()) { //创建学生接点 course *s; s=head; s=new course(tn,cn,ct,cs,place1,no); s->last=0; if(head)//若存在头接点 { course *p2; p2=head; while(p2->last) { p2=p2->last; 第10页(共16页) } p2->last=s;//连接 } else//若不存在结点(空表) { head=s;//连接 } tfile>>tn>>cn>>ct>>place1>>no>>cs; } tfile.close(); system(\ } 核心算法7的流程图 读入课程信息功能 把原来的链表删除 从course.txt文档中信息读出来,重新建立一个链表 二、使用(操作)说明 运行的初始界面如图右所示。 Welcome()函数 显示系统主界面 选择1则进行void T_display()功能,如图右所示。 选择1则进行void T_register() 注册教师帐号密码 第11页(共16页) 选择2则进行void T_Login() 登陆教师管理系统 登陆成功后进行T_choose() 教师的主菜单 选择1则进行T_add() 增加学生 选择2则进行T_remove() 删除学生信息 选择3则进行T_amend() 修改学生信息 选择4则进行T_search() 查找学生 第12页(共16页) 选择5则进行 以上是所有功能展示! 三、开发文档 a) a) 包含文件 文件名称 instudentData.txt Studentdata.txt Teacherdata.txt administrator.txt 功能描述 记录由教师输入成绩功能中输入的成绩 记录学生的帐号密码资料 记录教师的帐号密码资料 记录管理员的帐号密码 otherstudentData.Txt 记录由教师插入成绩功能中输入的成绩 b) 函数说明 函数名称 功能描述 参数说明(类型、用处) 函数名称 void welcome() void T_Display() void T_Register() void T_Login() void T_choose() 功能描述 显示教师界面 教师注册功能 教师登陆功能 教师菜单功能 成绩输入功能 参数说明(类型、用处) 属于教师类,教师可选择登陆或注册等功能 属于教师类,教师可以注册帐号。 属于教师类,教师可以通过注册后登陆教师系统。 属于教师类,教师可以在此界面了解教师系统功能。并做出选择。 属于教师类,教师可以根据提示输入学生成绩。 第13页(共16页) 显示系统主页面 友元类,学生,教师类的对象可以调用 void T_input() void T_output() void T_insert() void T_SC() void T_XG() void S_Display() void S_Register() void S_Login() void S_choose() 成绩查询功能 成绩插入功能 成绩删除功能 成绩修改功能 显示学生界面 教师注册功能 学生登陆功能 学生菜单功能 学生课程查看 学生成绩查询 属于教师类,教师可以查看所有已输入的成绩。 属于教师类,教师可以插入指定学生补充的成绩。 属于教师类,教师可以删除指定学生的成绩全至于零 属于教师类,教师根据提示,修改学生成绩。 属于学生类,学生可选择登陆或注册等功能 属于学生类,学生可以注册帐号。 属于学生类,学生可以通过注册后登陆学生系统。 属于学生类,学生可以在此界面了解学生系统功能。并做出选择。 属于学生类,学生可以在此界面看到自己的课程信息 属于学生类,学生可以在次界面通过学号查询成绩 void S_lookfor_kc() void S_output() void A_Display() void A_Register() void A_Login() void A_choose() 管理员界面功能 属于管理员类,管理员可选择登陆或注册等功能 管理员注册功能 属于管理员类,为本系统注册管理员帐号密码。 管理员登陆功能 属于管理员类,管理员登陆。 管理员菜单功能 属于管理员类,管理员可以在此界面了解管理员系统功能。并做出选择。 管理员查询成绩 属于管理员类,输出所有学生成绩资料 查询教师资料 查询学生资料 功能描述 属于管理员类,输出所有教师帐号密码资料 属于管理员类,输出所有学生帐号密码资料 void A_output_cj() void A_output_T() void A_output_S() a) 程序文件说明 文件名称 计科1104.CPP 包含所有代码 四、源代码(代码超过20页时附主要源代码) 五、设计的优点 b) 比较方便地,快速地登录;减少其他的相关操作。 c) 界面简洁明了,容易让人上手,本系统的界面设置,都是以海大为特色,详情可浏览本系统,这 样能让使用者感受到归属感还有强烈的真实感。 d) 系统为学生教师都添加了注册登陆功能,这能更真实的实现一个学籍管理系统 e) 函数相对较少,为修改优化减少难度。 f) 系统用了大量日常用到的C++知识,让我们学会致用,也是对我的一次考试 六、存在的问题及改进 g) 存在的问题: 1. 函数相对简单,使得用户的信息保密相对较差,容易涉漏用户的信息,也造成功能相对 简单,用户信息容易遗失。缺少用户使用帮助功能。 2. 本系统中,类定义中嵌套功能函数的定义,这加大了程序的可读性,虽然运行时无错误, 但在编程过程中,出现问题时,很难找出问题 3. 本功能中,发现链表只能修改储存在内存中的数据,一旦程序结束,数据也因此消失, 无法用文件保存 h) 改进的设想: (1)进一步改进登录功能,增加相应用户信息保密操作函数。 第14页(共16页) (2)设计用户信息找回功能。 (3)在登录界面增加用户使用协议,让使用者知道自己的权限的义务。 七、心得体会及以后需要注意的地方 i) 心得体会: (1)总结:这一次的课程设计用了一个多星期才完成,在这期间时不时地出现错误,而且在找错误时也经常难以发现哪错了,所以不断地查阅资料,不断地验证,不断地讨论才一步一步地找出错误,这一部分用了太多的时间了。 (2)细心:还有一点就是编辑时要小心,因为往往一个粗心,就得让我们付出了很多时间去找出这一个错误。 (3)合作:团队合作是我们完成设计最重要的因素,如果只靠一个人可能要花更多的时间也不一定可以完成,这一次设计也让我们很好地知道团队合作的作用、力量。 也可以磨练我们怎么样去和别人合作。 (4)坚持:设计中遇到了很多困难,有时会让得我想要放弃这个设计,重新设计另外一个,但是在坚持和组员的帮助下克服了。 j) 以后需要注意的地方: (1) 题纲:在设计之前要先讨论出一个可行方案,这可以让我们在后面的设计中减少不必要的错 误。 (2) 记忆:在自己设计时很多定义分不清楚或者不记得了,这需要在以后不时地去翻书,把各类 函数、定义分清楚。 (3) 资料:设计过程要加大查阅资料的力度,这样才可以设计出一个更好的程序出来。 (4) 联系:在设计自己部分时要把握好与整个系统的联系,这样才不会使得自己的和大家的合起 来时出现的错误。 (5) 学习:加强修改的学习能力,不用让一个错误困住整个程序的设计。 第15页(共16页) (2)设计用户信息找回功能。 (3)在登录界面增加用户使用协议,让使用者知道自己的权限的义务。 七、心得体会及以后需要注意的地方 i) 心得体会: (1)总结:这一次的课程设计用了一个多星期才完成,在这期间时不时地出现错误,而且在找错误时也经常难以发现哪错了,所以不断地查阅资料,不断地验证,不断地讨论才一步一步地找出错误,这一部分用了太多的时间了。 (2)细心:还有一点就是编辑时要小心,因为往往一个粗心,就得让我们付出了很多时间去找出这一个错误。 (3)合作:团队合作是我们完成设计最重要的因素,如果只靠一个人可能要花更多的时间也不一定可以完成,这一次设计也让我们很好地知道团队合作的作用、力量。 也可以磨练我们怎么样去和别人合作。 (4)坚持:设计中遇到了很多困难,有时会让得我想要放弃这个设计,重新设计另外一个,但是在坚持和组员的帮助下克服了。 j) 以后需要注意的地方: (1) 题纲:在设计之前要先讨论出一个可行方案,这可以让我们在后面的设计中减少不必要的错 误。 (2) 记忆:在自己设计时很多定义分不清楚或者不记得了,这需要在以后不时地去翻书,把各类 函数、定义分清楚。 (3) 资料:设计过程要加大查阅资料的力度,这样才可以设计出一个更好的程序出来。 (4) 联系:在设计自己部分时要把握好与整个系统的联系,这样才不会使得自己的和大家的合起 来时出现的错误。 (5) 学习:加强修改的学习能力,不用让一个错误困住整个程序的设计。 第15页(共16页)
正在阅读:
2017信用社存款利率02-15
哪些原因会导致流鼻血04-29
2018届河南省商丘市高三第三次模拟考试理科数学试题及答案 精品04-07
人员及车辆出入管理制度11106-06
六年级下册英语教案-Unit 3《Public rules》(lesson 3)|重大版04-12
北京市东城区(南片)2012-2013学年第一学期高一年级期末考试语03-28
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- C++
- 程序设计
- 管理系统
- 成绩
- 课程
- 学生
- 设计
- 岩心的鉴定和描述
- 河北省保定市第一中学2016届高三上学期第三次复习考试英语试题
- 转发铁道部《关于进一步明确铁路基本建设项目审批管理程序的通知
- 中国彩绘玻璃市场调查及未来五年发展定位分析报告
- 000ZJ2010届高考数学总结精华版第十二章-概率与统计
- 河北省普通高中学业水平考试《实施细则》(试行)
- 广州市城乡规划管理技术规定
- 财务部门月度工作计划
- 电大本科会计学《高级财务会计》试题及答案4 - 图文
- 2014年海安企业需求汇总表 - 图文
- 党课社会实践活动报告
- NERO-光盘刻录程序教程集
- SQL函数说明大全
- 华南师范大学现代远程教育校外学习中心一览表 - 图文
- 高层外脚手架专项施工方案(科逸工程定稿1-52页)
- 坚持推动构建人类命运共同体,推动形成全面开放新格局(下)课程的
- AIX 5L 磁盘性能优化
- 留学瑞士生活费
- 荣获三等奖学生名单
- 学习课程:医院微观市场的深度开发与专业化管理 试题答案