课程设计基于C++的课程表建立系统的实现.doc

上传人:laozhun 文档编号:2385545 上传时间:2023-02-17 格式:DOC 页数:22 大小:275KB
返回 下载 相关 举报
课程设计基于C++的课程表建立系统的实现.doc_第1页
第1页 / 共22页
课程设计基于C++的课程表建立系统的实现.doc_第2页
第2页 / 共22页
课程设计基于C++的课程表建立系统的实现.doc_第3页
第3页 / 共22页
课程设计基于C++的课程表建立系统的实现.doc_第4页
第4页 / 共22页
课程设计基于C++的课程表建立系统的实现.doc_第5页
第5页 / 共22页
点击查看更多>>
资源描述

《课程设计基于C++的课程表建立系统的实现.doc》由会员分享,可在线阅读,更多相关《课程设计基于C++的课程表建立系统的实现.doc(22页珍藏版)》请在三一办公上搜索。

1、基于C+的课程表建立系统的实现学生姓名: 指导老师:摘 要 随着现代化计算机技术的发展,计算机的应用已经无处不再。无论是在工厂、公司还是其它地方,特别是在校园中,这科学与学识不断更新的领地,计算机的使用已经是大势所趋。计算机使用时具有简易、方便等功能,设计一个基于C+的课程表建立系统只是一个学生生活中的基本应用。它方便同学们学习生活中的细节。本课程表使用了面向对象的方法,运用Microsoft Visual C+ 6.0实现了信息输入立即处理,建立详细标准的学习课表。关键词 C+ ; 建立课表; 目录1 引 言- 3 -2系统需求分析- 4 -21问题定义- 4 -2、2 可行性研究- 4 -

2、2、3 需求分析- 5 -3 总体设计- 5 -4 详细设计741 student类的设计742数据结构的设计- 7 -43关键功能的实现- 8 -5 软件测试与调试136 结束语157致谢15参考文献- 15 -附录:- 16 -1 引 言学生课表建立系统是学生日常生活中必不可少的实用型小工具,它对于学生平时的学习生活有着相当重要的帮助作用。便于操作、显示精确、短小实用就是它的明显特点。计算机已经成为我们学习和工作的得力助手:今天,计算机的价格已经十分低廉,性能却有了长足的进步。它已经被应用于许多领域,计算机之所以如此流行的原因主要有以下几个方面:首先,计算机可以代替人工进行许多繁杂的劳动;

3、其次,计算机可以节省许多资源;第三,计算机可以大大的提高人们的工作效率等等。随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。作为计算机应用的一部分,使用计算机来建立学生的课表有着非常明显的优点。它便于课表的实现,直观的观察使同学的观察和读取更加简易。本次课程设计目的:通过一个课程表建立系统,使学生的学业及其他事物的时间安排更加合理,从而达到提高日常工作、学习效率。使学生掌握一门高级程序设计语言,了解面向对象程序设计的基本概念与方法,进而学会利用C+语言学会解决一般应用问题,并为后续的专业课程奠定程序设计基础。系统的基

4、本模块:根据系统功能的要求,课程表建立系统可以分为课程信息的输入,课程表的处理及建立等模块。2系统需求分析21问题定义问题定义主要是用来初步的确定设计的规模和目标,通过这一阶段应该提出关于问题性质、工程的目标和规模的书面报告。问题定义阶段是软件生命周期中最简短的阶段,此次设计花了一周的时间,问题定义报告如下:项目:学生课程管理应用软件。目的:让同学有效的管理课程信息,帮助同学掌握课程时间及其它状况。背景:当前学生对上课时间及其它信息掌握不到位,存在不到、迟到或忘记课程等状况。2、2 可行性研究可行性研究的最终目的就是利用最小的代价在尽可能短的时间内确定问题是否能够解决。这一阶段只是确定问题是否

5、值得去解,而不是去解决问题。要考虑能否解决主要从下面两个方面考虑:(1)技术可行性 使用现有技术是否能够实现这个系统。(2)经济可行性 就是该系统的经济效益能超过它的开发成本吗?(3)操作可行性从技术方面,是通过C+来做系统的前台,来实现整系统的功能;从操作方面,基本的录入、查看等都能满足用户的需求;此次设计没有考虑经济可行性。经过这一阶段确定了该系统的粗略系统流程图(图3-1)。可行研究阶段的目标是:使工作人员从繁琐的填表,查表工作中解放出来;提高工作质量,使供需双方都获得满意的结果;促进报表,提高工作效率。2、3 需求分析应该确定系统必须在Microsoft Visual C+ 6.0的环

6、境下实现具有录入、处理、显示的学生课程表建立系统。通过以上可以知道该软件主要有以下功能模块: 学生课程名称显示 总学周时间显示 教师显示 地点显示 星期显示 一天中具体时间显示其中本次课程设计实现的档案模块又分为如下子模块: 登陆界面:主要是增加系统的人性化,使用户舒心 信息录入:主要是将课程相关信息录入 信息处理 显示项目:对学生课程信息进行处理、列表、显示。3 总体设计总体设计的目标:简单的说是回答“概括的说,系统应该如何实现?”这个问题,所以总体设计又称概要设计或初步设计。而总体设计的过程是系统设计,首先定义一个包含了学生课程信息的struct结点,其次定义一个kecheng类来实现封装

7、。下面先说一下一些相关的概念:模块化是把程序划分成若干个模块,每个模块完成一个子功能,把这些模块集总起来组成一个整体,可以完成指定的功能及问题的要求。采用模块化原理可以使软件结构清晰,容易设计也容易阅读和理解,也易于测试和调度,所以它有利于提高软件的可靠性和可修改性;抽象是人类认识复杂事物时最有力的思维工具;模块独立是模块化、抽象、信息隐蔽和局部化概念的直接结果。内聚和耦合是对模块独立程度的两个定性标准合衡量不同模块间彼此间互相依赖的紧密程度;内聚衡量一个模块内部各个元素彼此间结合的紧密程度。软件的系统结构图如下图3-1所示:系统用户进入课程信息输入名称教师教室总周数星期第几堂信息处理信息显示

8、图3-1 系统结构图4 详细设计41 kecheng类的设计 为了实现管理系统的各功能首先定义了一个kecheng类,用来定义各种数据成员,声明这些功能函数。比如:说明为什么要这样设计setvalue(),showke()等 ,同时声明一些私有成员。class kechengpublic:void setvalue();void showke();string ming16;string jiao16;string di16;int qi16;int jie16;int xing16;int tang16;42数据结构的设计数据字典:数据字典包括以下几种类型的条目: 数据流条目数据流条目给出某

9、个数据流和定义,它通常是列出该数据流的各组成数据元素。该系统中的数据流条目有:课程基本信息课程名称教师名称教室地点课程起始、结束时间上课的星期上课的具体时间逻辑结构的设计如表4-1所示:表4-1课程基本信息结构设计列名数据类型可否为空说明Ming stringNOT NULL课程名称Jiao stringNULL教师名称Di stringNULL教室地点Qi intNULL课程起始周Jie intNULL课程结束周Xing intNOT NULL上课的星期Tang intNOT NULL上课的具体时间43关键功能的实现(1)信息的输入setvalue()函数用来输入相关信息,包括课程名称、教师

10、名称、教室地点、课程起始周、课程结束周、上课的星期、上课的具体时间。输入一次信息之后可选择是否继续添加新的课程。此函数代码如下:1基本信息输入void kecheng:setvalue()for(int i=0;i16;i+)cout*请输入课程名称(请简写 不要超过6个字)mingi;cout*请输入课程教师jiaoi;cout*请输入教室dii;cout*请输入课程的起始周qii;2如果输入错误,系统会自检,提示错误cout*请输入课程的结束周jiei;if(jiei20)cout输入错误! 请重新输入jiei; 3程序会对一课程多节课的现象进行处理cout*请输入课程一周有几天有s;fo

11、r(int u=0;us;u+)mingi+u=mingi;jiaoi+u=jiaoi;dii+u=dii;qii+u=qii;jiei+u=jiei;cout*请输入第u+1次课是星期几xingi+u; if(xingi+u7)cout输入错误! 请重新输入xingi+u; cout*请输入课程是第几堂tangi+u; if(tangi+u5) cout输入错误! 请重新输入tangi+u;i=i+s;4输完一门课程之后,系统会自动提示是否进行下一课程的输入cout*请问是否继续下一个课程?(Y/N)num;if(num=Y|num=y) continue;else break;(2)信息的

12、处理与输出showke()函数,此部分用来实现课程相关信息的排序,包括表格的建立与信息的对应输出,此函数用来显示课程表的界面,用了一些“”号建立表格,在程序重的最后,通过for 来实现整个程序的循环,并且使用了switch选择分支结构,使功能更容易实现。1 基本课表表头的输出此函数代码如下:void kecheng:showke()cout /endl;cout /课 程 表/endl;cout /endl;cout_endl;cout | 一 | 二 | 三 | 四 | 五 | 六 | 日 | endl; cout_endl;2 对一天时间(110节)的格式输出此函数代码如下:for(int

13、 i=1;i6;i+)int l;switch(i)case 1:cout一(1-2) |;break; case 2:cout二(3-4) |;break; case 3:cout三(5-6) |;break; case 4:cout四(7-8) |;break; case 5:cout五(9-10) |;break;3 循环输出课程信息,这里采用双循环,用于控制表格位置的对号输出及信息的循环输出此函数代码如下:for(int j=1;j8;j+)l=0;for(int n=0;n16;n+)if(tangn=i&xingn=j)coutsetw(12)mingn|;l=1;if(l=0)

14、cout |;coutendl;cout | ; cout_7)cout输入错误! 请重新输入xingi+u;6 结束语经过1周多的设计和开发,学生课程表建立基本开发完毕。其功能基本符合用户需求,能够完成信息完整输入以及各类报表的打印。对于数据的一致性的问题也通过程序进行了有效的解决。 但是由于课程设计时间较短,所以该系统还有许多不足之处:比如 系统维护功能,还不能让用户进行数据备份和恢复;用户界面不够美观;这些都有待进一步改善。通过一个学期的学习,我认为要学好C+语言程序这门课程,不仅要认真阅读课本知识,更重要的是要通过上机实践才能增强和巩固我的知识。特别是作为高职生,更要注重实践这一环节,

15、只有这样我们才能成为合格的计算机人材。7 致谢在本次课程设计中,罗奕老师认真负责的工作态度,严谨的治学精神和深厚的理论水平都使我受益匪浅。在整个设计过程中给与我很大的帮助,特别是她看完我们所做的半成品之后,给了很多意见并指出其中的错误和不足之处,使我们得到不少的提高,这对于我以后的工作和学习都有一种巨大的帮助,感谢她耐心的辅导。另外,在系统开发过程中,很多同学给我提供了无私的帮助,他们牺牲自己宝贵的时间给我传授丰富的知识经验,在此表示衷心的感谢。参考文献1 Visual C+6.0信息管理系统开发2 谭浩强 C+程序设计 北京:清华大学出版社3 宜晨 Visual C+5.0实用培训教程北京:

16、电子工业出版社,1998附录: 要注释源程序清单#include#include#includeusing namespace std;class kecheng /模块一public: /公有数据void setvalue(); /输入函数void showke(); /处理、输出函数string ming16; /课程名string jiao16; /教师名string di16; /教室地点int qi16; /课程起始周int jie16; /课程结束周int xing16; /星期int tang16; /第几堂; void kecheng:setvalue() /模块二for(in

17、t i=0;i16;i+) /for循环控制输入cout*请输入课程名称(请简写 不要超过6个字)mingi;cout*请输入课程教师jiaoi;cout*请输入教室dii;cout*请输入课程的起始周qii;if(qii20) cout输入错误! 请重新输入qii; /重新输入 cout*请输入课程的结束周jiei;if(jiei20) /错误判断cout输入错误! 请重新输入jiei; /重新输入 cout*请输入课程一周有几天有s; /输入节数for(int u=0;us;u+) /for循环控制多节输入mingi+u=mingi;jiaoi+u=jiaoi;dii+u=dii;qii+

18、u=qii;jiei+u=jiei;cout*请输入第u+1次课是星期几xingi+u; if(xingi+u7)cout输入错误! 请重新输入xingi+u; cout*请输入课程是第几堂tangi+u; if(tangi+u5) cout输入错误! 请重新输入tangi+u;i=i+s;cout*请问是否继续下一个课程?(Y/N)num;if(num=Y|num=y) continue; /继续下一个else break; /结束输入void kecheng:showke() /模块三cout /endl; /课表的页眉cout /课 程 表/endl;cout /endl;cout_en

19、dl;cout | 一 | 二 | 三 | 四 | 五 | 六 | 日 | endl; cout_endl;for(int i=1;i6;i+)int l; /用l来检测此项是否有内容输出switch(i) /课表的一天节数 输出case 1:cout一(1-2) |;break; case 2:cout二(3-4) |;break; case 3:cout三(5-6) |;break; case 4:cout四(7-8) |;break; case 5:cout五(9-10) |;break;for(int j=1;j8;j+)l=0;for(int n=0;n16;n+)if(tangn=

20、i&xingn=j)coutsetw(12)mingn|; /课名输出l=1;if(l=0) cout |; /若没有则输出空格coutendl;cout | ;for( j=1;j8;j+)l=0;for(int n=0;n16;n+)if(tangn=i&xingn=j)coutsetw(10)jiaon | ; /教师输出l=1;if(l=0) cout | ; /若没有则输出空格coutendl;cout | ; for( j=1;j8;j+)l=0;for(int n=0;n16;n+)if(tangn=i&xingn=j)coutsetw(11)din| ; /地点输出l=1;if

21、(l=0) cout | ; /若没有则输出空格coutendl;cout |;for( j=1;j8;j+)l=0;for(int n=0;n16;n+)if(tangn=i&xingn=j)cout (setw(2)qin -setw(2)jien)周 ; /总周数输出cout|;l=1;if(l=0) coutsetw(12) ; /若没有则输出空格cout|;coutendl; cout_endl;int main() /模块四cout*欢迎使用课程表建立系统 -*endlendl; /系统进入kecheng ke;cout * 请输入相关课程信息*endlendl;ke.setvalue(); /若没有则输出空格用ke.showke();return 0;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号