




免费预览已结束,剩余12页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
淮 海 工 学 院 计算机工程学院课程设计报告设计名称: 学生选课系统 指导教师评语:成绩: 签名: 年 月 日C+课程设计报告 第 17 页,共 17 页1课程设计目的本课程设计是计算机科学与技术专业重要的实践性环节之一,是在学生学习完C+程序设计课程后进行的一次全面的综合练习。本课程设计的目的和任务:(1)巩固和加深学生对C+课程的基本知识的理解和掌握;(2)掌握C+编程和程序调试的基本技能;(3)利用C+进行简单软件设计的基本思路和方法;(4)提高运用C+解决实际问题的能力;(5)掌握书写程序设计说明文档的能力。本次课程设计利用C+程序设计课程中所学到的编程知识和编程技巧,完成具有一定难度和工作量的程序设计题目,帮助学生掌握编程、调试的基本技能,使学生能够独立完成所布置的任务。2课程设计任务与要求:要求:1) 设计题目、设计要求以及系统功能需求分析;2) 总体设计:包括模块说明、模块结构图和系统流程图;3) 详细设计:包括主要功能模块的算法设计思路以及对应的工作流程图;4) 源程序代码及设计成果:完整源程序清单和设计成果;5)总结: 调试分析过程描述:包括测试数据、测试输出结果以及对程序调试过程中存在问题的思考(列出主要问题的出错现象、出错原因、解决方法及效果等)包括课程设计过程中的学习体会与收获、对C+和本次课程设计的认识等内容.;任务:学生选课系统假定有n门课程,每门课程有课程编号,课程名称,课程性质,学时,授课学时,实验或上机学时,学分,开课学期等信息,学生可按要求(如总学分不得少于15)自由选课。试设计一个选修课程系统,使之能提供以下功能:(1)系统以菜单方式工作(2)课程信息和学生选课信息录入功能(课程信息用文件保存)(3)课程信息浏览功能(4)查询功能(5)按学分查询(6)某门课程学生选修情况(可选项)3课程设计说明书概要设计一、 模块说明 本系统是针对高校学生的选修课程而设计,通过本系统高校学生可以很方便地进行自由选课。主要的功能要求是:n门课程,每门课程有课程编号,课程名称,课程性质,总学时,授课学时,实验或上机学时,学分,开课学期等信息,学生可按要求自由选课。主要要求实现的功能如下: 课程信息录入功能:能根据提示将各课程的相关信息进行输入并保存; 课程信息浏览功能:能将已经录入并保存的信息进行浏览;查询功能:可根据不同的查询方式查询相应的课程信息。其中查询方式有按学分查询和按课程性质查询两种;由此思路,可设计出本系统主要由一个Class类及其五个成员函数组成。课题所要求的功能由各个函数分别得以实现。首先,在Class类内定义了一些成员变量,用来保存课程编号,课程名称,课程性质,总学时,授课学时,实验或上机学时,学分,开课学期等信息,还对它的成员变量进行了声明。然后,在类外,通过作用域运算符将类内声明的成员函数定义,以及进行相应的操作,以实现相应的功能。主要包括功能要求中的五大功能,即信息输入、信息浏览、按学分查询课程、按课程性质查询课程等。最后,在主函数中设置目录显示。用switch瓜分不同的功能选项。系统根据用户输入的符号,调用相应的成员函数,完成功能的实现。二、模块结构图课程信息录入课程信息浏览按学分查询按课程性质查询课程信息查询退出学生选课系统课程授课学时时编号名称上级学时性质学分时 时总学分开课学期输入入输出显示查找三、系统流程图开始输入与功能对应的数字或字母判断有无执行相应功能结束是否详细设计 各功能模块设计思路及流程图:各个功能函数的具体实现如下: 1.录入函数模块:首先,创建一个文件输出流对象outfile,打开文件,判断文件是否存在。通过while设一个无限循环,当给出指定条件时退出。在循环中,调用cout函数来提示用户输入相应的信息,如课程编号、名称、课程性质、总学时、授课学时、实验或上机学时、学分、开课学期等等。将需要的课程输入完毕之后,可根据提示再输入“t”,即可返回主菜单,重新进行功能的选择。该流程图如下:创建文件输出流对象判断文件是否存在根据提示信息键盘输入课程信息打开文件向文件中录入课程信息关闭输出流文件打开错误并返回主菜单否是2.浏览函数模块:该函数首先创建了输入流文件对象infile,使用语句infile.open(file),然后定义一个string类型的二维数组,用来保存从文本内读取的信息,用for循环保证保存不止一门课程的信息。最后,cout输出显示所有保存的信息。流程图如下:创建输入流文件对象打开文件判断文件是否存在在屏幕上输出课程信息关闭文件是否打开错误并返回主菜单3.查找功能,即按学分查找和按课程性质查找,具体的实现如下:i.按课程性质查找:创建输入流文件对象infile,然后定义一个string类型的二维数组,用来保存从文本内读取的信息,比较用户输入的字符和保存的信息中那些课程的性质相对应,将相应的课程信息进行输出显示, ii.按课程学分查找:如果用户输入的学分与所保存的信息想对应,则将对应的课程信息输出显示。输入“0”可返回主菜。流程图如下:创建文件输入流对象打开文件判断文件是否存在根据提示选择查询方式按学分查询按科学性质查询根据提示输入学分根据提示输入课程性质用for循环依次比较并输出满足条件的课程信息继续查询或返回关闭文件是提示打开错误并返回4课程设计成果各部骤操作界面如下:1. 进入主菜单显示如下:2. 录入课程信息并保存界面如下:4.查询课程信息界面如下:5.返回界面如下:源代码如下:#include#include#include#includeusing namespace std;class Coursepublic:void CourseInput(); void CourseOutput(); void Find(); void Find_by_Credit(float); void Find_by_Kind(string); private:int coursenum;string coursename;string coursekind;int coursehour;int teachhour;int experimenthour;float credit;string courseterm;void Course:CourseInput() ofstream outfile(D:f1.txt,ios:out); if(!outfile) cerr open error! endl;exit(1) ;while(1) cout 课程信息n;cout 按任意键开始信息录入n;cout 输入t退出n;if(getch()=t)break;coutcoursenum;coutcoursename;coutcoursekind;coutcoursehour;coutteachhour;coutexperimenthour;coutcredit; coutcourseterm;outfilecoursenum coursename coursekind coursehour teachhour experimenthour credit coursetermendl;outfile.close(); void Course:CourseOutput() ifstream infile(D:f1.txt,ios:in); if(!infile) cout open error!;exit(1) ;cout编号 | 名称 | 性质 | 总学时 |讲授课|实验课| 学分 | 开课学期n;string arr808; int l=0;while(!infile.eof() for(int j=0;jarrlj;l+; for(int i=0;il;i+)for(int j=0;j8;j+)cout arrij t;cout endl;infile.close();void Course:Find_by_Credit(float temp)ifstream infile(D:f1.txt,ios:in); if(!infile) cout arrl0arrl1arrl2arrl3arrl4arrl5arrl6arrl7; l+;cout编号 | 名称 | 性质 | 总学时 |讲授课|实验课| 学分 | 开课学期n;for(int i=0;il;i+)if(atof(arri6.c_str()=temp) cout arri0 t arri1t arri2t arri3t arri4tarri5tarri6 tarri7endl;infile.close();void Course:Find_by_Kind(string temp)ifstream infile(D:f1.txt,ios:in); if(!infile) cout arrl0arrl1arrl2arrl3arrl4arrl5arrl6arrl7;l+;cout编号 | 名称 | 性质 | 总学时 |讲授课|实验课| 学分 | 开课学期n;for(int i=0;il;i+)if(arri2=temp)cout arri0 t arri1t arri2t arri3t arri4tarri5tarri6tarri7 endl;void Course:Find()while(1)cout 选择查询方式: endl;cout 按课程类型查询 endl;cout 按学分查询 endl;cout 返回i;switch(i)case 1:cout kind; Find_by_Kind(kind);break;case 2:cout c;Find_by_Credit(c);break;if(i=0)break;int main()Course COURSE;while(1)cout 欢迎来到学生选课系统n;cout 请选择操作n;cout 录入课程信息n;cout 浏览课程信息n;cout 查询课程信息n;cout 退出系统n;cout i;switch(i)case 1:COURSE.CourseInput();break;case 2:COURSE.CourseOutput();break;case 3:COURSE.Find();break;case 0:exit(0);return 0;5.课程设计心得这次第一次接触课程设计,最初看到题目时,感觉那五道题目都很难很难,比平时做的题目大多了,涉及的知识点一看就很多。选题目时我选了第五道学生选课系统。读了好几遍题目,才有了一点点轮廓和框架。还有其中的用到文件操作的部分,感到是最难的。刚开始时也在网上搜索过相关题目,但每个学校老师布置的课程设计题目毕竟有所不同,再者毫无思考的去照搬照抄别人的成果也对自己毫无益处。最终我决定一定要自己亲手完成这次课程设计。经过课程设计前两天的上机实践,对于这个题目我构建出了初步的程序框架。大一后半学期都是在学习基于对象的程序设计思想,而这就是在培养我们面对陌生的全新的程序任务时,不必为它表面的复杂烦琐而胆怯,我们需要冷静思考出其中每一部分的构造组成及功能,然后分成模块一步步去细分,这样只需分开去钻研每一小部分的程序内容。具体的对于我选的这道“学生选课系统”题目,我现在本子上列出来了程序需要完成的功能学生课程信息的录入、浏览、查询等功能以及系统界面的设计,而这决定着程序中共有成员函数的设计。然后根据“课程”的特点赋予它编号、名称、学分等性质,这就是需要在程序的类中所命名的私有成员数据。类设计完之后,就等于说框架已经摆在面前,要对每一部分进行详细设计。对于课程信息的录入和浏览,其实考察的是对文件的保存和打开的应用。录入模块先创建一个文件输出流对象outfile,打开文件,判断文件是否存在。通过while设一个无限循环,当给出指定条件时退出。在循环中,调用cout函数来提示用户输入相应的信息,如课程编号、名称、课程性质、总学时、授课学时、实验或上机学时、学分、开课学期等等。二浏览模块与之类似,是创建的输入流对象infile; 在课程查询模块中,如按课程性质查询,先创建输入流文件对象infile,然后定义一个string类型的二维数组,用来保存从文本内读取的信息,比较用户输入的字符和保存的信息中那些课程的性质相对应,将相应的课程
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年版中外合作经营企业合同示范文本
- 第13课 长短参差说课稿-2025-2026学年小学书法练习指导六年级上册湘美版
- 2025电竞馆收银员雇佣合同
- 塑料厂消防演练实施管理规定
- Module 7 Unit 1说课稿-2024-2025学年外研版英语-九年级上册
- 化肥厂复合肥运输管控细则
- 快递行业服务合同协议(2025修订版)
- 《红楼梦》整本书阅读起始课 教学设计 2023-2024学年统编版高中语文必修下册
- 环保技术研发合同协议
- 第20课《天上的街市》说课稿 2024-2025学年统编版语文七年级上册
- 跨学科实践活动07 垃圾的分类与回收利用(活动设计)-2024-2025学年九年级化学跨学科实践活动教学说课稿+设计(人教版2024)
- 2025年亚马逊AWS云服务合同范本参考
- 班干部聘任仪式
- 2025年老年病学住院医师规培出科考试理论笔试答案及解析
- 半导体semi F81 中文版
- 《电力建设工程施工安全管理导则》(NB∕T 10096-2018)
- 外包与合作管理制度
- 文化引领学校特色化课程体系的建构
- 安全现场文明施工措施费用清单
- 生物波能量与养生健康知识问答手册
- 《读中国》作者阿紫
评论
0/150
提交评论