沈阳工程学院课程设计报告 第2章
第2章 需求分析
2.1 系统设计目的与意义
要求用C++面向程序设计语言编写车次信息管理系统, 1.使学生进一步理解和掌握课堂上所学内容。 2.使学生掌握软件设计的基本内容和设计方法,并培养学生进行规范化软件设计的能力。 3.使学生掌握使用各种计算机资料和有关参考资料,提高学生进行程序设计的基本能力。 4.提高学生的论文写作能力。
5.本次课程设计是计算机专业的主要实践性教学环节之一,要求运用所学专业的相关知识,结合实际操作与应用而进行的一次编程综合能力的训练,旨在培养学生在应用软件程序设计方面,初步掌握解决实际应用问题时所应具有的查阅资料、技术标准和规范,以及设计程序、调试程序、编写基本软件等能力,为毕业设计及今后从事专业相关的工作打下一定的基础。
2.2 系统数据流图
实现的主要功能有:
车次信息的查询:输入查询车次的信息编号或站点;车次信息的添加功能:添加的信息有车次编号,起点站和终点站;车次信息的查询功能;查询车次的所有信息;车次信息的修改功能,任意修改所有信息;车次信息的删除功能:删除所有或个别车次信息。
车次管理系统 查看功能 添加功能 查询功能 修改车次 删除功能 查看所有 车次
查询车次 添加车次信息 查找方式 修改车次信息 删除个别或所 3
沈阳工程学院课程设计报告 第2章
图2.1系统数据流图
2.3 系统功能介绍
此程序名称为《车次信息管理系统》,顾名思义,这是一个可以管理列车基本信息的一个基本程序,它可以实现简单的列车信息查询和管理车次信息以及查看等功能,具体有以下功能:
1.为了让程序开始界面一目了然,使得程序更容易操作,故再次设计了用户登陆界面。 2.主要功能还是车次信息的管理与维护,包括有:增加车次信息、删除车次信息、修改车次信息。其中车次信息包括途经各站点的名称及时间。
3.当然作为一个信息的管理系统,另一项主要的功能就是车次的查询系统,本程序设计了查询时可实现按站名查询、按车次查询,并且提供站—站查询。
4.最后一项功能即为列车统计,即输入一个站名,可统计经过该站点的列车数目,如果输入两个站名,则可以统计同时经过这两个站点的所有列车数目。
2.4 系统功能模块图
本系统的输入输出为:
1 车次信息录入 2 车次信息显示 3 车次信息的删除 4 车次信息的修改 5 统计全部车次信息
车次管理系统 管理员操作乘客使用操作 退出系统 添加车次信息 删除车次信息 修改车次信息 浏览车次信息 查询车次 显示车次 信息
图2.2系统功能流图
该系统的大体流程图如下图,进入菜单页面后先选择1是管理员操作,然后2是乘客操作,
4
沈阳工程学院课程设计报告 第2章
如下图所示:
开始 菜单选择1管理员 Y 录入信息 保存车次信息 继续操作 N 返回菜单 选择2乘客功能 结束 图2.3功能流程图
5
沈阳工程学院课程设计报告 第4章
第3章 详细设计
3.1类设计
类是面向对象程序设计方法的核心,利用类可以实现对数据的封装和隐藏。
在面向过程的结构化程序设计中,程序的模块是由函数构成的,函数将逻辑上相关的语句与数据封装,用于完成特定的功能。在面向对象程序设计中,程序模块是由类构成的。类是对逻辑上相关的函数与数据的封装,它是对问题的抽象描述。因此,后者的集成程度更高,也就更适合用于大型复杂程序的开发。类的成员包括数据成员和函数成员,它们分别描述了问题的属性和行为,是不可分割的两个方面。
本系统是对车次信息功能的操作,其定义的基类(weihulei)和派生类(tongjilei和chaxunlei)如下:
3.1.1基类的设计
基类的名称是weihulei,通过该类,实现了添加车次信息;显示车次信息;删除车次信息;修改车次信息;显示车次信息;该类的代码如下所示:
class weihulei{ public:
NODE *p; NODE *q;
weihulei()//构造 {
p=NULL; }
/**********添加成员*********/ void gongneng(NODE *n)//添加 {
q= new NODE; q->next=p; n=p=q;
cout<<\经过起点站名称:\cin>>p->n;
cout<<\经过终点站名称:\cin>>p->m;
cout<<\车次号码:\cin>>p->num;
6
沈阳工程学院课程设计报告 第4章
cout<<\发车时间:\
cin>>p->time; }
void gongneng()//显示 {
p=q;
while (p!=NULL) {
cout<<\经过起点站名称:\ cout<<\经过终点站名称:\ cout<<\车次号码:\ cout<<\开车时间:\ p=p->next; } p=q; }
/**********重载**********/ void del( NODE *k)//删除 {
k=new NODE; k=p=q;
char n[20];
cout<<\请输入车次号码:\cin>>n;
while (p!=NULL&&(strcmp(p->num,n)!=0)!=0) {
k=p;
p=p->next; }
if (p==NULL) {
cout<<\查无此车(-_-)!!\} else {
if (p==q)
q=q->next; else
k->next=p->next; free(p);
7