最新c++课程设计-车次信息管理系统.doc

上传人:1595****071 文档编号:34718181 上传时间:2022-08-18 格式:DOC 页数:39 大小:406.50KB
返回 下载 相关 举报
最新c++课程设计-车次信息管理系统.doc_第1页
第1页 / 共39页
最新c++课程设计-车次信息管理系统.doc_第2页
第2页 / 共39页
点击查看更多>>
资源描述

《最新c++课程设计-车次信息管理系统.doc》由会员分享,可在线阅读,更多相关《最新c++课程设计-车次信息管理系统.doc(39页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、Four short words sum up what has lifted most successful individuals above the crowd: a little bit more.-author-datec+课程设计-车次信息管理系统c+课程设计-车次信息管理系统一、课程设计的原始资料及依据查阅有关资料,进一步理解面向对象程序设计的思想,并编写一个简单的windows系统。通过本设计可以加深理解使用面向对象程序设计思想开发一个系统的方法,提高分析问题、解决问题和实际动手的能力。二、课程设计主要内容及要求设计内容:查询:为对车次信息的查询和对车票信息的查询。车次信息包括

2、:日期、车次、出发地、目的地。车次信息只允许乘客查询,不能修改。记录应包括:日期、车次、出发地、目的地。设计要求:(1)要求利用面向对象的方法完成系统的设计;(2)要求在设计的过程中建立清晰的类层次,并画出类图;(3)设计功能满足要求、易于操作的友好界面;(4)界面中需有菜单、工具栏、状态栏;(5)在系统的设计中,至少要用到面向对象的一种机制:继承、多态等;(6)在完成该题目时,小组人员进行详细的任务分工,并要在报告中体现出来。三、对课程设计说明书撰写内容、格式、字数的要求1课程设计说明书是体现和总结课程设计成果的载体,主要内容包括:设计题目、设计目的、设备器材、设计原理及内容、设计步骤、遇到

3、的问题及解决方法、设计总结、参考文献等。一般不应少于3000字。2在适当位置配合相应的实验原理图、功能模块图、算法流程图等图表进行说明。应做到文理通顺,内容正确完整,书写工整,装订整齐。3设计总结部分主要写本人完成工作简介以及自己的设计体会,包括通过课程设计学到了什么,哪里遇到了困难,解决的办法以及今后的目标。4课程设计说明书手写或打印均可。手写要用学校统一的课程设计用纸,用黑或蓝黑墨水工整书写;打印时采用A4纸,页边距均为20mm,正文采用宋体小四号字,行间距18磅。文中大标题采用黑体小三号字,一级节标题采用黑体四号字,二级节标题采用黑体小四号字,表题与图题采用宋体五号字。5课程设计说明书装

4、订顺序为:封面、任务书、成绩评定表、目录、正文、参考文献。四、设计完成后应提交成果的种类、数量、质量等方面的要求1完成“任务书”中指定的功能,运行结果正确。2课程设计说明书。五、时间进度安排顺序阶段日期计 划 完 成 内 容备注1第1天进行设计准备,阅读资料,分析设计任务书,明确设计要求、内容和步骤2第2天需求分析3第3天概要设计4第4-5天详细设计5第58天编码、调试6第9-10天程序答辩,撰写课程设计报告六、主要参考资料(文献)1郑莉 董渊 张瑞丰 编着. C+语言程序设计(第4版). 北京:清华大学出版社.20102 陈维兴, 林小茶.C高级程序设计教程. 北京:清华大学出版社3 谭浩强

5、.C程序设计教程. 北京:中国科学技术出版社4 王燕.面向对象的理论与C实践. 北京:清华大学出版社5 马石安, 魏文平. 主编Visual C+程序设计与应用教程. 北京:清华大学出版社6 王育坚. 主编Visual C+面向对象编程教程(第二版). 北京:清华大学出版-摘 要本文的设计名称为车次信息管理系统,此程序既可以用于管理员管理车次信息也可以用于乘客查询有关的车次信息。首先为了让程序开始界面一目了然,使得程序更容易操作,该设计制作了用户登陆界面,用户可以通过选择不同序号进行操作。在该程序中主要定义三个类,分别是维护类、查询类和统计类,维护类作为基类主要实现的功能有增加车次信息、删除车

6、次信息、修改车次信息,其中车次信息包括途经各站点的名称及时间,通过指针、链表的应用实现其功能。查询类作为维护类的一个派生类,主要增加的功能是查询列车信息,查询时可实现按站名查询、按车次查询,并提供站-站查询,其中使用while循环结构、if语句及switch语句。统计类是维护类的另一个派生类,实现的功能主要是统计车次信息,输入一个站名,可统计经过该站的列车数目,输入两个站名如A、B,则可统计同时经过A和B的所有列车数目,同时在系统设计中,用到了面向对象的两种机制:继承、多态。关键词: 类 继承 多态 车次信息管理 目 录摘 要I第1章 绪 论11.1 C+语言的发展11.2概要设计11.3功能

7、分析11.4设计分工及编程实现2第2章 需求分析32.1 系统设计目的与意义32.2 系统数据流图32.3 系统功能介绍42.4 系统功能模块图4第3章 详细设计53.1类设计53.2程序代码描述123.3界面设计与各功能模块实现13第4章 系统测试244.1测试过程中的问题244.2测试结果说明244.3设计回顾24结 论25致 谢26参考文献27第1章 绪论1.1 C+语言的发展美国AT&T贝尔实验室的本贾尼斯特劳斯特卢普(Bjarne Stroustrup)博士在20世纪80年代初期发明并实现了C+(最初这种语言被称作“C with Classes”)。一开始C+是作为C语言的增强版出现

8、的,从给C语言增加类开始,不断的增加新特性。虚函数(virtual function)、运算符重载(operator overloading)、多重继承(multiple inheritance)、模板(template)、异常(exception)、RTTI、命名空间(name space)逐渐被加入标准。1998年国际标准组织(ISO)颁布了C+程序设计语言的国际标准ISO/IEC 1988-1998。C+是具有国际标准的编程语言,通常称作ANSI/ISOC+。 C+语言发展大概可以分为三个阶段:第一阶段从80年代到1995年。这一阶段C+语言基本上是传统类型上的面向对象语言,并且凭借着接

9、近C语言的效率,在工业界使用的开发语言中占据了相当大份额;第二阶段从1995年到2000年,这一阶段由于标准模板库(STL)和后来的Boost等程序库的出现,泛型程序设计在C+中占据了越来越多的比重性。当然,同时由于Java、C#等语言的出现和硬件价格的大规模下降,C+受到了一定的冲击;第三阶段从2000年至今,由于以Loki、MPL等程序库为代表的产生式编程和模板元编程的出现,C+出现了发展历史上又一个新的高峰,这些新技术的出现以及和原有技术的融合,使C+已经成为当今主流程序设计语言中最复杂的一员。1.2概要设计为了保证系统能够长期、安全、稳定、可靠、高效的运行,本系统应该满足以下的性能需求

10、。(1)准确性和及时性:系统处理的准确性和及时性是系统的必要性能。系统应能及时而且准确的根据用户权限及所输入的信息做出响应。车次的数量和时间影响用户的决策活动,在系统开发过程中,必须采用一定的方法保证系统的准确性和及时性。(2)易用性:本系统是直接面对用户的,这就要求系统提供良好的用户接口,易用的人机交互界面,这就要求系统应该尽量使用用户熟悉的术语和中文信息的界面,从而保证系统的易用性。(3)安全性:订票系统中涉及到的数据是客运公司相当重要的信息,系统要保证用户的权限,对于车次等信息用户只享有查询服务,不得更改;系统还要提供方便的手段供系统维护人员进行数据备份、以及日常安全管理等工作。1.3功

11、能分析(1)查询为对车次信息的查询和对车票信息的查询。车次信息包括:日期、车次、出发地、目的地。车次信息只允许乘客查询,不能修改。记录应包括:日期、车次、出发地、目的地。(2)账户管理。只允许管理人员登录,管理人员可以修改信息修改的信息包括:日期、车次、出发地、目的地。1.4设计分工及编程实现本小组课程设计是由两人参与完成的。我的工作是完成派生类和主函数,完成操作的汇合和界面操、作基类的构造为闫浩编写,该类的名称为weihulei。编程主要经过四个步骤:编辑、编译、链接、运行调试。编辑是将自己设计好的源程序输入计算机中,生成后缀为.cpp的磁盘文件;编译是将程序的源代码转换为机器语言代码,这一

12、过程是计算机自动执行的,我们人是看不到的;链接是将多个源程序文件以及库中的某些文件连在一起,生成一个后缀为为.exe的可执行文件;运行调试是会运行出一个界面,状态栏会提示相应的信息,如没有错误,或者是错误在哪一行,错误的原因等。程序的运行和调试是一个很困难的过程,但经过本次课设,我们对本课程的学习有了很大的进步。第2章 需求分析 2.1 系统设计目的与意义要求用C+面向程序设计语言编写车次信息管理系统,1.使学生进一步理解和掌握课堂上所学内容。2.使学生掌握软件设计的基本内容和设计方法,并培养学生进行规范化软件设计的能力。3.使学生掌握使用各种计算机资料和有关参考资料,提高学生进行程序设计的基

13、本能力。 4.提高学生的论文写作能力5.本次课程设计是计算机专业的主要实践性教学环节之一,要求运用所学专业的相关知识,结合实际操作与应用而进行的一次编程综合能力的训练,旨在培养学生在应用软件程序设计方面,初步掌握解决实际应用问题时所应具有的查阅资料、技术标准和规范,以及设计程序、调试程序、编写基本软件等能力,为毕业设计及今后从事专业相关的工作打下一定的基础。2.2 系统数据流图实现的主要功能有:车次信息的查询:输入查询车次的信息编号或站点;车次信息的添加功能:添加的信息有车次编号,起点站和终点站;车次信息的查询功能:查询车次的所有信息;车次信息的修改功能,任意修改所有信息;车次信息的删除功能:

14、删除所有或个别车次信息。车次管理系统查看功能添加功能修改车次删除功能查看所有车次查询车次添加车次信息修改车次信息删除个别或所有查询功能查找方式图2.1系统数据流图2.3 系统功能介绍此程序名称为车次信息管理系统,顾名思义,这是一个可以管理列车基本信息的一个基本程序,它可以实现简单的列车信息查询和管理车次信息以及查看等功能,具体有以下功能: 1.为了让程序开始界面一目了然,使得程序更容易操作,故再次设计了用户登陆界面。2.主要功能还是车次信息的管理与维护,包括有:增加车次信息、删除车次信息、修改车次信息。其中车次信息包括途经各站点的名称及时间。3.当然作为一个信息的管理系统,另一项主要的功能就是

15、车次的查询系统,本程序设计了查询时可实现按站名查询、按车次查询,并且提供站站查询。4.最后一项功能即为列车统计,即输入一个站名,可统计经过该站点的列车数目,如果输入两个站名,则可以统计同时经过这两个站点的所有列车数目。2.4 系统功能模块图本系统的输入输出为: 1.车次信息录入2.车次信息显示3.车次信息的删除4.车次信息的修改5.统计全部车次信息管理员信息操作乘客使用操作添加车次信息删除车次信息修改车次信息浏览车次信息查询车次显示车次信息退出系统车次管理系统图2.2系统功能流图第3章 详细设计 3.1类设计类是面向对象程序设计方法的核心,利用类可以实现对数据的封装和隐藏。在面向过程的结构化程

16、序设计中,程序的模块是由函数构成的,函数将逻辑上相关的语句与数据封装,用于完成特定的功能。在面向对象程序设计中,程序模块是由类构成的。类是对逻辑上相关的函数与数据的封装,它是对问题的抽象描述。因此,后者的集成程度更高,也就更适合用于大型复杂程序的开发。类的成员包括数据成员和函数成员,它们分别描述了问题的属性和行为,是不可分割的两个方面。本系统是对车次信息功能的操作。定义的基类和派生类如下:1.基类的名称是weihulei,通过该类,实现了添加车次信息;显示车次信息;删除车次信息;修改车次信息;显示车次信息;该类的代码如下所示: class weihuleipublic:NODE *p;NODE

17、 *q;weihulei()/构造p=NULL;/*添加成员*/void gongneng(NODE *n)/添加q= new NODE;q-next=p;n=p=q;coutp-n;coutp-m;coutp-num; coutp-time;void gongneng()/显示p=q;while (p!=NULL)cout经过起点站名称:nendl;cout经过终点站名称:mendl;cout车次号码:numendl;cout开车时间:timenext;p=q;/*重载*/void del( NODE *k)/删除 k=new NODE;k=p=q; char n20;cout请输入车次号码

18、:n;while (p!=NULL&(strcmp(p-num,n)!=0)!=0)k=p;p=p-next;if (p=NULL)cout查无此车(-_-)!next;elsek-next=p-next;free(p);p=q;cout删除成功!endl; void del()p=q=NULL;cout所有信息已删除! ;/*修改*/void gongneng(char n20)/编辑p=q; cout请输入车次号码:n;while (p!=NULL&(strcmp(p-num,n)!=0)!=0)p=p-next;if (p=NULL)cout查无此车!endl;elsecoutp-n;c

19、outp-m;coutp-num;coutp-time;cout按任意键返回!endl;/*简单虚函数*/virtual void xianshi()cout请输入密码:;int password;for(int i=0;ipassword;if(password=123456)cout登陆成功(_)!endl;getch();return ;else cout您输入的密码有误,请重新输入:;cout三次输入错误,拒绝登陆(-_-)!endl;while(1)getch(); ; 它的数据成员包括:NODE *p,*q;而成员函数则是包括:void gongneng(NODE *n)/:添加车

20、次信息;void gongneng()/:显示车次信息void del( NODE *k):删除车次信息;void gongneng(char n20):修改车次信息;virtual void xianshi():显示车次信息;2派生类:查询类(class chaxunlei:public weihulei),它的主要功能是查询车次的信息vo gongneng():查询车次信息,它的具体代码如下所示: /*查询类*/ class chaxunlei:public weihulei public: /*构造*/ chaxunlei(weihulei c):weihulei()/构造 p=c.p;

21、 q=c.q; /*查询函数*/ void gongneng() /查询 p=q; char n20; char m20; char i; couti; if (p=NULL) cout没有列车信息(-_-)!endl; switch(i) case1: cout请输入车次号码:n; while (p!=NULL) if(strcmp(p-num,n)=0) cout经过起点站名称:nendl; cout经过终点站名称:mendl; cout车次号码:numendl; cout开车时间:timenext; cout按任意键返回!endl; return; case2: cout请输入站名:n;

22、 while (p!=NULL) if(strcmp(p-n,n)=0)|(strcmp(p-m,n)=0) cout经过起点站名称:nendl; cout经过终点站名称:mendl; cout车次号码:numendl; cout开车时间:timenext; cout按任意键返回!endl; return; case3:cout请输入起点站名:n; cout请输入终点站名:m; while (p!=NULL) if(strcmp(p-n,n)=0)&(strcmp(p-m,m)=0) cout经过起点站名称:nendl; cout经过终点站名称:mendl; cout车次号码:numendl;

23、 cout开车时间:timenext; cout按任意键返回!endl; return; default:return; /*虚函数*/ void xianshi() cout*; coutn 1:查找车次!; coutn 2:显示车次信息!; coutn 3:列车统计; coutn 4:退出!endl; cout*endl; cout请输入菜单选项:endl; ;而派生类的功能主要是实现统计车次信息的功能,它可以输出车次的编号,起点站和终点站信息。成员函数为void gongneng():统计车次信息。具体的代码如下所示:class tongjilei:public weihulei pub

24、lic: tongjilei(weihulei c):weihulei()/构造 p=c.p; q=c.q; void gongneng()/统计 int sm=0; char n20; cout请输入站名:n; while (n) p=p-next; if(p=NULL) if(strcmp(q-n,n)=0)|(strcmp(q-m,n)=0) sm+; break; if(strcmp(p-n,n)=0)|(strcmp(p-m,n)=0) sm+; if(sm=0) cout查无次车(-_-)endl; cout统计车次数目为:smendl; ;具体类的关系如下图所示: 图3.1类图关

25、系3.2数据结构自定义数据类型:定义了struct node结构体类型,其中在weihulei中定义了p和q两个结构体,用这两个指针类型来进行结点的定位和对头指针的操作。typedef struct node char n20;char m20; char num20; char time20; struct node *next;NODE;3.3界面设计与各功能模块实现3.3.1界面设计1.系统开始界面,如图3.2所示。void welcome() SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTEN

26、SITY | FOREGROUND_GREEN); cout$-$endl; cout| |endl; cout| *欢迎进入车次信息管理系统 * |endl; cout| |endl; cout-endl; cout 按任意键进入endl; getch(); 图3.22.操作人员类型选择界面,如图3.3所示。 void mainmenu() cout1.管理员endl; cout2.乘客endl; cout3.退出本系统endl; 图3.33.乘客进入界面,如图3.4所示。void xianshi() cout*; coutn 1:查找车次!; coutn 2:显示车次信息!; coutn

27、3:列车统计; coutn 4:退出!endl; cout*endl; cout请输入菜单选项:endl; ; 图3.44.管理员进入界面,如图3.5所示。 void display() SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY | FOREGROUND_RED); cout*; cout 1:增加车次信息!; coutn 2:修改车次信息!; coutn 3:查找车次!; coutn 4:显示车次信息!; coutn 5:删除车次信息!; coutn 6:删除所有车次信息!; co

28、utn 7:列车统计; coutn 8:退出!endl; cout*endl; cout请输入菜单选项:c; switch(c) case1: w=&a;w-xianshi(); do display(); i=getch(); switch(i) case1:a.gongneng(k);break; case2:a.gongneng(n);break; case3: chaxunlei b(a);b.gongneng();break; case4:a.gongneng();break; case5:a.del(k);break; case6:a.del();break; case7: ton

29、gjilei c(a);c.gongneng();break; case8:cout谢谢使用本系统!endl;break; default:cout输入错误(-_-)!xianshi(); i=getch(); switch(i) case1: chaxunlei b(a);b.gongneng();break; case2:a.gongneng();break; case3:tongjilei c(a);c.gongneng();break; case4:cout谢谢使用本系统!endl;break; default:cout输入错误(-_-)!endl;break; while(i!=4)

30、;break; case3:cout谢谢使用本系统!endl;break; default:cout输入错误(-_-)!=NULL),然后q= new NODE;再读入数据信息q-next=p,q-next=NULL,测试过程如图3.6所示。void gongneng(NODE *n)q= new NODE;q-next=p;n=p=q;coutp-n;coutp-m;coutp-num; coutp-time;图3.62.显示功能的具体代码如下,利用链表从头往后一直进行结点的遍历,在遍历的过程中实现数据的显示,测试过程如图3.7所示。void gongneng()p=q;while (p!=NULL)cout经过起点站名称:nendl;cout经过终点站名称:mendl;cout车次号码:numendl;cout开车时间:timenext;p=q;图3.73.删除功能的具体代码如下,找到结点后,利用k指针保存上一个指

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

当前位置:首页 > 教育专区 > 成人自考

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com