还剩16页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
书目1系统需求分析12总体设计23具体设计24界面设计与各功能模块实现45系统调试56试验心得体会67附源程序71系统需求分析起先可以很便利地进行自由选课主要的II J功能要求n门课程,,每门课程有课程编号,课程名称,课才上时,授课学时,试验或攻IJ-U1输入与功能对p机学时,学分,开课学期等信息,学自由口总学分不少于60应的的数字S选课
2、主要要求实现的功能如下推断有否
①课程信息录入功能能依输入干东将各课程的相关信息进行并保存;H
②课程信息阅读功能:代的信息进行阅读;.执行相应功能
③查询功能可依据不同口旦中查询方式有按J相应的课程信息其XA7旦人学分查询和按课程性质产系统流程图如下一结束
1、本系统是针对高校学生的选修遵程而^士通过本系统高校学生
3、输入输出要求系统以菜单方式工作用户依据每一个功能模块输入相应内容,然后进行相应的操作如需进行其他操作,可返回主菜单输出的内容要cout〈〃请输入试验上机学时〃;cinexperimentPeriod;cout〃请输入学分〃;cincredithour;cout《〃请输入开课学期〃;cincourseterm;outcoursef ilecourseNumber/z//courseKind,/z/coursePeriod〈〃z/schoo lPeriod/z,/credithour,/,zendl;outcoursefile.close;void Course::CourselnfoOutPutifstream incoursefile;incoursefile,opencoursefile;if!incoursefilecout«〃文件读取失败〃;return;cout«〃课程编号I课程名称I试验上机学时I学分I开课学期\n〃;string arrcourse
[100]
[100];维数组,用来保存从文本内读取的信息int line=0;memset arrcourse,0,sizeof arrcourse;〃将数组清空while!incoursefile,eof〃文件不为空的条件设置forint j=0;j7;j++zzcourseName/zincoursefilearrcourse[line][j];line++;//experimentPeriod,/forint i=0;iline;i++forint j=0;j7;j++〃关闭输出流文件coutarrcourse[i][j]〃课程信息的阅读coutend!;〃创建输入流文件对象incoursefile,close;〃打开void〃推断文件存在Course::SearchByCredithourfloat tempehifstream incoursefile;//创建输入流文件对象incoursefile,opencoursefile;〃打开if!incoursefile课程性质总学时授课学时〃推断文件存在cout«〃文件读取失败〃;return;string arrcourse
[100]
[100];〃定义一个string类型的二维数组,用来保存从文本内读取的信息〃定义一个string类型的二int line=0;memset arrcourse,0,sizeof arrcourse;〃将数组清空while!incoursefile,eof〃文件不为空的条件设incoursefilearrcourse[line]
[0]arrcourse[line]
[1]arrcourse[line]
[2]arrcourse[1ine]
[3]arrcourse[line]
[4]arrcourse[1ine]
[5]arrcourse[line][6〃文件流读取数据line++;cout«〃课程编号I课程名称I课程性质|总学时|授课学时|试验上机学时I学分I开课学期\n〃;forint i=0;iline;i++if atofarrcourse[i]
[6].c_str==tempch//比较coutarrcourse[i]
[0]〈〃\t〃〈〈arrcourse[i]\t〃arrcourse[i]
[2]/z\t〃arrcourse[i]\t〃arrcourse[i]arrcourse[i]/zarrcourse[i]
[6]〈〈〃\ncout〃\n\n〃;incoursefile,close;ifstreamincoursefile;〃创建输入流文件对象void Course::SearchByCourseKindstring strtemp〃/课程类型查incoursefile,opencoursefile;〃打开if!incoursefile〃推断文件存在cout«〃文件读取失败〃;return;string arrcourse
[100]
[100];int line=0;memset arrcourse,0,sizeofarrcourse;while!incoursefile,eof incoursefilearrcourse[line]
[0]arrcourse[1ine]
[1]arrcourse[line]
[2]arrcourse[line]
[3]arrcourse[line]
[4]arrcourse[1ine]
[5]arrcourse[line]
[6]line++;cout«〃课程编号|课程名称I课程性质|总学时|授课学时|试验上机学时I学分I开课学期\n〃;forint i=0;iline;i++if arrcourse[i]
[2]==strtempcoutarrcourse[i]
[0]〈〈〃\t〃〈〈arrcourse[i]\t〃arrcourse[i]
[2]z\t〃arrcourse[i]
[3]/z\t〃arrcourse[i]
[4]〈〈〃\tarrcourse[i]
[5]〈〃\t/zarrcourse[i]
[6]〈〈〃\n-----------------------------------------------------------------〃〈endl;cout〃\n\n〃;void Course::Searchwhile1cout〈〃选择查询方式〃endl;cout〃
1.按课程类型查询〃endl;cout〃
2.按学分查询〃endl;cout〃
0.返回〃〈〈endl;int i;cini;switchicout«〃请输入课程类型\n〃;char strtmp
[100];cinstrtmp;SearchByCourseKindstrtmp;break;cout〈〈〃请输入学分:\n〃;float ftemp;cinftemp;SearchByCredithourftemp;break;ifi==0break;int mainCourse Excourse;while1cout[、KL^K!*JZd XTXXTX ZTS^TX XTX XTX XTX XTX ZTS ZTS^TX XTX XTX XTXZTS ZTXZTS XTX XTX XTXZTSXTX ZTS ZTS XTX^TX XTXZTS ZTSXTS XTXXTV XTSZJS ZTS XTX ZTXZTV XTXZTSZJS ZTSXTX XTX#T^ZTSZTSZTSZTSXTXXTX^TXZTSZTSXTXXTX XTXXTX ZTXZTXX7X*************\n〃;cout〃*学生选课系统cout〃*请选择操作⑴.录入课程cout〃*信息⑵.阅读课程信息⑶.cout〃*查询课程信息*\n〃;cout〃*cout〃*
0.退出系统coutxlx slzxlx xl*1^slz sixxl*L*xt*!^*£*xl*L^xl*1^^Lz xlx*Jx%L*xL**Jx1*1^^Jz xl*six%L^slz xlxxjx xjx xjx xjx xjx xjx xjx✓Tx xjxxr*xjx xlxxjx xTxXTX xjx^jxxjx xjx xTx xjx xjsxjx xjxxjx xrx^Txxjxxr^xj xjxxjxxjxxTx xj^xrx XTXXTX xjxxjxxjx xrx XTX xrx xjxxr*xjxxjxxrx xTxXTXxr^xjxxrxxrx xjxxlx xr*rx XTXcoutendl;int i;cini;switch iExcourse.Courseinfoinput;break;Excourse.CourseInfoOutPut;break;Excourse.Search;break;case0:exit0;return1;课程设计评分表课题名称______________________________项目评价设计方案的合理性与创建性设计与调试结果设计说明书的质量答辩陈述与回答问题状况课程设计周表现状况综合成果老师签名:日期有一个良好的界面,运用户看清晰明白学生选修课程系统设计
1、系统功能分析2总体设计本系统主要由一个Class类与其五个成员函数组成课题所要求的功V用来保存课程编『机皿鹏称,课程性质,总学好躯皿学时,试验或上Course Main学时,学分,5,信息,还对它的成员:「声明,如:类函数能由各个函数分别得以实现首先,在Class类内定义了一些成员变量,然后,在类外后,过柞用域运算符将类内声H.一”.一屈数定义,以与讲行相应的,作,以上现邛应的功能丰翠包括功能要求中的五大功能,即信息输入、信息阅读、按学分查询课程、按课程性质查询课程等中二八NL4L最统InputOutputSearchBysco SearchByKi依才rend
2、各个模块之间的关系如下图73具体设计1数据库需求分析该程序主要包含一个Class类和一个main函数其中Class类中有Input,OutPut,Search,SearchByscorefloat,SearchByKindstring函数来实现各功能像在Input信息输入函数中,ofstream outfile创建一个文件输出流对象语句就要用到系统库函数fstream,而conio.h则是Console键盘和屏幕输出输入函数的头文件,con-Console,io-input,output程序o中各功能函数如SearchBy float按分数查询和SearchByKind string按性质查询,明显是两个独立的函数,但其实现过程很像似3数据库逻辑结构设计4类层次图课程课程编号课程名字课程性质总学时授课学时试验或上机学时学分开课学期课程信息录入功能课程信息阅读功能查询功能按学分查询按课程性质查询学生选修课程4界面设计与各功能模块实现
1、功能实现的文件模块在主函数中设置书目显示设计一个友好、美丽的界面,通过switch语句进行选择进入相应的功能模块,建立一个class类的对象a,用对象名调用class类的功能函数,恰当的运用清屏函数通过对象a调用相应的成员函数,如a.Inputa.OutPuta.Search等等,这些公有函数成员就是这个系统要求设计的功能模块各个功能函数的具体实现如下
①、录入函数模块首先,创建一个文件输出流对象utfile,打开文件,推断文件是否存在通过while设一个无限循环,当给出指定条件时退出在循环中,调用cout函数来提示用户输入相应的信息,如课程编号、名称、课程性质、总学时、授课学时、试验或上机学时、学分、开课学期等等将须要的课程输入完毕之后,可依据提示再输入f,即可返回主菜单,重新进行功能的选择该步骤界面设计操作图如下输入“1”,依据提示输入课程信息显示阅读函数模块该函数首先创建了输入流文件对象infile,运用语句infile,open file,然后定义一个string类型的二维数组,用来保存从文本内读取的信息、,用for循环保证保存不止一门课程的信息最终,cout输出显示全部保存的信息操作界面图如下查找功能,即按学分查找和按课程性质查找,具体的实现如下按课程性质查找创建输入流文件对象infile,然后定义一个string类型的二维数组,用来保存从文本内读取的信息,比较用户输入的字符和保存的信息中那些课程的性质相对应,将相应的课程信息进行输出显示,界面设计操作图如下按课程学分查找原理同上,假如用户输入的学分与所保存的信息想对应,则将对应的课程信息输出显示输入“0”可返回主菜单具体程序见源程序清单该步骤界面显示如下5系统调试
1、在查找功能函数当中,刚起先我输入的课程性质用数字代替,而后面我的查找函数在进行输入比较时是用汉字进行比较的,这样就导致了查找错误,刚起先我找了好久也找不出来,后来还是在同学的帮助下最终找到了这个错误,并改正输出了正确的结果
2、在class类当中我刚起先把成员变量如课程性质只简洁的设置为字符型char,当在类外进行初始化时出现了错误,因为把要获得字符串的函数只简洁的设置为字符型是不行的,它的返回得不到一个字符串,要把其设置string类型或者数组类型,这样就可以通过编译了
3、进行程序调试时,事先函数中没有用到清屏,导致界面繁琐不清晰后来在头文件中加了#include〈windows.h,又在程序中适当地添加了system〃cls〃语句,这才使得界面友好清晰6试验心得体会心得连续三天的课程设计最终要接近尾声了虽然接下来还要面临惊慌的期末考试,但终于可以略微松一口气说实话,每次做课程设计、写试验报告,我都好上火长痘好几天原来因为上学期的课程设计没有仔细做,在网上下载了一篇类似的题目,自己作了一些修改,便跑去答辩,被老师当众指责,心里惭愧得要死!心里暗下决心,这次试验报告肯定要自己写,不管写得多差,只要自己很努力地仔细在写就好了这次题目初看不是很难,一个类,一些成员变量,几个成员函数,将它们组合起来就0K了可是越写下去,便觉得到处是难题到最终感觉自己像处在一个大迷宫里,四周到处是出口,走近了一看,却发觉那只是上面画着门的墙壁我只会定义一个类和它的成员变量以与成员函数,但要求是要有N门课程呢,还要能显示你所输入的课程信息,还要按要求将分类不同的信息选择出来天哪,这可怎么办呢?看来,要将自己输入的信息有记录地保存起来就好了可是老师没教这个呀后来才知道相关内容在C语言教科书上有,上学期的课程设计也有涉与到,但由于上次的没有仔细做,所以对该学问点没有印象还跑去图书馆找资料,找到了相关内容,可是,答辩的时间也靠近了第三天上午进试验室,问同学,发觉已经有人将这个题目完整地做了出来,我不得不感叹人家的才思灵敏也难怪哦,人家是脚踏实地,C语言的基础打得好,谁让我上学期玩去了呢?呵老师在试验室里激励大家主动答辩,我盯着自己的作品,这个连“半成品”都谈不上的程序,这能去答辩吗?老师也没要求必需答辩,要不,干脆copy他们的程序写了试验报告交差完事了!但这不跟上学期一样了么?我这近三天的寝食难安不都白熬了么?去答辩吧,就算给自己的付出一个结果吧老师很慈爱,我的那个程序对于题目要求根本没什么意义,也就是说我根本没完成任务估计老师是看我熬了这三天太可怜了,牵强让我过了试验做完了,心情还是有点沉重,但没上次那样难受了终归自己写的,通过思索,查资料,还是学到了不少东西的,对C语言也进行了巩固我要尽快将所缺的学问填补上来,然后再下次的课程设计中打个美丽的胜仗!7附源程序#includeconio.h#includestdlib.h#includeiostream#includefstream#includestringusing namespacestd;class Courseprivate:int courseNumber;string courseName;string courseKind;int coursePeriod;int schoolPeriod;int experimentPeriod;float credithour;string courseterm;public:void Courseinfoinput;〃信息输入void CourselnfoOutPut;//信息输出void Search;//查找信息void SearchByCredithourfloat;〃依据学分查找void SearchByCourseKindstring;//依据课程;类型查找const char*coursefile=,/C:\\course.txtz,;〃将课程信息定位到C盘下的course,txt中!!!!!!!!!void Course::Courseinfoinput〃课程信息的录入ofstream outcoursefile;〃创建一个文件输出流对象outcoursefile.opencoursefile;〃打开文件if!outcoursefile〃推断文件是否存在cout〃文件打开失败!〃〈endl;return;while1〃无限循环,给出指定条件退cout〃***********************************课程信息\y--*•XTXXTX^TX ZTXZTX XTX XTS XTXXTX TX✓TX^TX✓TXXTXXTX✓TX✓Jx XjXXTS XTXXjX✓TXZTXXTXXTS^TXXTX✓TX ZJXZTS✓Js XTXIX XTXXTX\Icout按随意键起先信息录入\n〃;cout〃输入q退出\n〃;if getch==,qbreak;cout«〃请输入课程编号〃;cincourseNumber;cout«〃请输入课程名称:〃;cincourseName;cout〃请输入课程性质〃;cincourseKind;cout〃请输入总学时:〃;cincoursePeriod;cout〈〈〃请输入授课学时:〃;cinschoolPeriod;。