c++学生选课系统设计报告

上传人:油条 文档编号:28516178 上传时间:2018-01-17 格式:DOC 页数:43 大小:468.81KB
返回 下载 相关 举报
c++学生选课系统设计报告_第1页
第1页 / 共43页
c++学生选课系统设计报告_第2页
第2页 / 共43页
c++学生选课系统设计报告_第3页
第3页 / 共43页
c++学生选课系统设计报告_第4页
第4页 / 共43页
c++学生选课系统设计报告_第5页
第5页 / 共43页
点击查看更多>>
资源描述

《c++学生选课系统设计报告》由会员分享,可在线阅读,更多相关《c++学生选课系统设计报告(43页珍藏版)》请在金锄头文库上搜索。

1、C+程序设计课程设计报告课题名称: 学生选修课程系统设计 组 号: 第八组 指导教师: 张 帆 目 录引言.一 设计目的及内容二 课题总体设计1. 性能需求2. 功能需求.3. 功能模块图三 详细设计.1.各模块说明. .2.各模块功能流程图 四 测试与调试五 心得体会.六 附:源代码.引 言21 世纪以高科技为核心的知识经济占主导地位,国家的综合国力和以国际竞争力将越来越取决于科学技术创新水平。教育作为知识创新,传播和应用的基础,培养和输送人才的摇篮,已经成为经济发展和社会进步的基础。 尽管人类进步的程度随着不同时代,不同地区而有所变化,教育的口径不断扩宽,以便使过去仅供少数人使用的教育资源

2、能够为更多各种年龄,不同社会阶层和背景的人们所用。在信息爆炸的时代,传统教学管理面临诸多挑战。课程设计是课程教学必不可缺的一个重要环节,可加深学生对该课程所学内容的进一步的了解与巩固,是将计算机课程与实际问题相连接的关键步骤。此次程序设计综合运用所学知识解决实际问题,将课堂的书本知识有效的在程序中体现出来,让学生更理解了 C+功能之强大,进一步让学生对面向对象的方法以及 C+的编程思想有了较好了解和认识。一 设计目的及内容:网上选课系统是针对在校学生和教师使用,从学生的角度来说,由于学校教学制度的改革,现在大部分高等院校开始实行的是学生的自主选课模式,传统的教学模式(学生按照学校安排好的课程上

3、课)已经不能适应新型的教学手段,如果仍然通过纸上的选课,一方面浪费大量的人力,物力资源,另一方面浪费时间以及在人为的统计过程中不可避免出现的差错等情况。随着学校规模的不断扩大,专业,班级,学生的数量急剧增加,有关学生选课的各种信息也成倍增加,而目前许多高校的学生的选课管理仍然停留在复杂的人工操作上,重复工作较多,工作量大,效率低,各种弊端会越来越多的暴露出来,因此利用网络,使学生只要在计算机前输入自己的个人选课信息即可完成原来几倍的工作量。从教师的角度上来说,同样是节省了大量的工作量,由于教师提出代课申请完成课程发布的工作较学生选课而言更加的复杂,因此在网上进行课程发布能大幅度的减少教师的工作

4、量,减少错误发生几率,作为教师,也只要通过自己的电脑来操作即可,不用奔波于教务处和办公室之间。1、课题名称:学生选修课程系统设计2、课程设计详细内容说明:假定有 n 门课程,每门课程有课程编号、课程名称、课程性质、总学时、授课学时、实验学时、学分、开课学期等信息。学生可以按要求(如每个学生总学分不得少于 20、没学期不能超过 3 门课程,每门课程不得超过 50 个人,但不能少于 10 否则该课程不开设)自由选课。使之能提供一些功能:要求:具体设计要求实现如下功能:1、课程信息录入功能2、课程信息浏览功能3、查询功能:(按课程性质查询、按课程学分查询,查询每个学生的选修信息、查询每门课程的选修信

5、息等)4、学生选修课程5、修改课程或选课信息(根据课程编号或名称修改课程信息、根据学生姓名修改选课信息);6、删除课程或选课信息(根据课程编号或名称删除课程信息、根据学生姓名删除选课信息) ;二 课题总体设计:1、 性能需求:在现代,高科技的飞跃发展,人们工作习惯的改变,别特是电脑的大量普及,人们生活节奏越来越来快,怎样提高工作效率是人们首先考虑的问题。学生选课是一个非常繁琐与复杂的一项工作,一个原因就是工作量大,不好管。对于一个学校而言,更应该运用一些本地资源,提高管理的力度,对学生负责,对国家负责。显然,靠手工进行管理这种选课方法已经不能适应时代的发展,学校的需求。今天这种传统的管理方法必

6、然会被计算机为基础的信息系统所代替。同时这种传统方式放映出很多问题:第一, 当要查询某个同学或某个班级的选课情况极不方便;第二, 每次 选课时省老师花大量时间统计各班级各学生的选课情况,这样准确率也较难保证;第三, 选课的可靠性很低;第四, 现在学校虽然已用计算机进行选课管理,但工作并不完善,有很大的局限性。2、 功能需求:我们设计的是一个学生选修金额系统,这个系统的功能比较完善。使用主函数中的 switch 语句实现该结构,进而实现该系统的各项功能。该系统能实现六项功能:1.录入信息、2.查询信息、3.删除课程、4.显示课程、5.保存信息、6.读取信息,设计本次试验所用到的知识点有:类和对象

7、、FOR 循环、switch 语句、do while()语句、构造函数等等。3、 功能模块图:学生信息模块三 详细设计:1. 各模块说明:(1) 我们这学生选修课系统的主界面分有两个选项一个是学生使用的学生端一个是老师使用的教师端。课程信息模块选课模块(2) 学生端包括学生的选课情况、学生情况和学生选课,学生可在这里进行选课查询各学生选修课情况还可以查看学生的情况。(3) 选课系统管理端只有教师可以进入因为需要密码,设计密码是防止学生进入管理端随意修改。管理端包括一些要求里有的如:课程浏览、课程录入、课程删除、课程查询等,还包括一些要求里边没有的功能如:填写成绩、更改学分等。这些功能只有管理员

8、才能进行修改和填写。2 各模块功能流程图:(1)主界面流程图:i=1 i=2Case 1Case 2(2)学生端流程图:开始接受数据数据依据输入值执行结束开始i=1 i=2Case 1 Case 2(3)管理端流程图:输入数据是否为 4开始输入数据是否为 123456Y结束n 学生选课学生情况选课情况按任意键Y输入数据是否为 0N 录入课程删除课程保存数据等否且大于三次否但小于三次四 测试与调试:运行:1. 学生选课主界面2. 选修课系统学生端结束Y3. 系统管理端4. 学生选课界面5. 查询学生所选课程界面6. 删除课程界面7. 课程信息录入功能8. 按课程查询所选人数遇到的问题和解决办法:

9、这个程序用到了数据结构的内容可是我们还没有学习数据结构当时这件事真是吧我们难住了,没办法只能自己上网还有去图书馆这中间也去问过老师最终还是把主要问题解决了,不过这中间可能有一些问题是我们现在解决不了的。五 心得体会:1 每当拿到一个小工程,我们都得先仔细分析用户的需求,然后再给程序定位(所花费的人力、物力以及财力) ,这将花费我们大量的时间,就如本次任务一样,我们首先聚在一起分析,然后得出大致方向,再具体分配任务,无论哪一部分都是我们努力的结果。2 通过这次学生选课系统设计,以 C+语言为基础的编写,更让我掌握到 C+语言中的相关语句的应用。3 用 Visual C+ 6.0 环境下编写,我觉

10、得,从文件中读入数据十分麻烦,没有数据库中读入数据那么轻松,如果我要用到两个表中的记录,非常麻烦。4 整个设计过程过后,我也基本掌握了设计的基本步骤,为我们以后做毕业论文也有很好的帮助。5 C+是很好的系统编程语言,但不能以此独立,但用 C+语言是做不出好的系统,还是要和其他软件结合,以 C+为基础编写的系统,这样做出来的系统也更好,更美观。6 这次系统设计有很多不足之处,在这过程中也认识到自己对 C+也有很多的没掌握的地方。但是在老师和同学的帮助下,也算是弄出了一个简单的系统,在以后也要更加努力的学习,掌握更好的编程技术。7 做程序真的是个很累的活,有时就为了一个小小的错误,可以一两顿饭不吃

11、,但是做出来的那一刻,真心的感觉很开心,很有成就感,虽然其应用性不高,至少这也是我们小组努力的结果。8 经过我们多天的团结合作终于把这个学生选课系统做完了,虽然这过程是艰难的但是做完之后感觉挺有成就感的,在这个过程中我们学到了很多光听老师讲学不到的东西。在写这个程序的时候用到了数据结构的内容,如果不是这个程序我觉得我是不会去自学数据结构的内容。参考书目:1 谭浩强, C+程序设计 ,清华大学出版社,2002.42 求是科技, Visual C+ 6.0 信息管理系统开发 ,人民邮电出版社,2005.43 陈良银、游洪跃、李旭伟, C 语言程序设计(C99 版) ,清华大学出版社,2006.10

12、4 殷人昆, 数据结构 (用面向对象方法与 C+语言描述) ,清华大学出版社,2007.2编程人员:孙双蕾、白晓兰实验报告设计:牟炼调试人员:孙双蕾讲解人员:白晓兰附录:源代码#include #include #include #include using namespace std; /定义课程class course /某个学生所学的课程中的某一个public:char cname20; /课程名称float grade; /课程成绩course *Next; /指向下一个课程的指针;/学生类class studentpublic:student() root = NULL;const

13、int maxcourse = 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;

14、/得到所学的课程数目course *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 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 = p-Next;while(p) if(strcmp(p-cname,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号