软件工程城市公交查询系统课程设计说明书.docx

上传人:聆听****声音 文档编号:712071 上传时间:2023-04-29 格式:DOCX 页数:88 大小:355.80KB
下载 相关 举报
软件工程城市公交查询系统课程设计说明书.docx_第1页
第1页 / 共88页
软件工程城市公交查询系统课程设计说明书.docx_第2页
第2页 / 共88页
软件工程城市公交查询系统课程设计说明书.docx_第3页
第3页 / 共88页
软件工程城市公交查询系统课程设计说明书.docx_第4页
第4页 / 共88页
软件工程城市公交查询系统课程设计说明书.docx_第5页
第5页 / 共88页
软件工程城市公交查询系统课程设计说明书.docx_第6页
第6页 / 共88页
软件工程城市公交查询系统课程设计说明书.docx_第7页
第7页 / 共88页
软件工程城市公交查询系统课程设计说明书.docx_第8页
第8页 / 共88页
软件工程城市公交查询系统课程设计说明书.docx_第9页
第9页 / 共88页
软件工程城市公交查询系统课程设计说明书.docx_第10页
第10页 / 共88页
软件工程城市公交查询系统课程设计说明书.docx_第11页
第11页 / 共88页
软件工程城市公交查询系统课程设计说明书.docx_第12页
第12页 / 共88页
软件工程城市公交查询系统课程设计说明书.docx_第13页
第13页 / 共88页
软件工程城市公交查询系统课程设计说明书.docx_第14页
第14页 / 共88页
软件工程城市公交查询系统课程设计说明书.docx_第15页
第15页 / 共88页
软件工程城市公交查询系统课程设计说明书.docx_第16页
第16页 / 共88页
软件工程城市公交查询系统课程设计说明书.docx_第17页
第17页 / 共88页
软件工程城市公交查询系统课程设计说明书.docx_第18页
第18页 / 共88页
软件工程城市公交查询系统课程设计说明书.docx_第19页
第19页 / 共88页
软件工程城市公交查询系统课程设计说明书.docx_第20页
第20页 / 共88页
亲,该文档总共88页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

软件工程城市公交查询系统课程设计说明书.docx

《软件工程城市公交查询系统课程设计说明书.docx》由会员分享,可在线阅读,更多相关《软件工程城市公交查询系统课程设计说明书.docx(88页珍藏版)》请在冰点文库上搜索。

软件工程城市公交查询系统课程设计说明书.docx

长沙学院课程设计说明书

长 沙 学 院

课程设计说明书

题目 城市公交查询软件

系(部) 数学与计算机科学

专业(班级) 软件工程(2014级4班)姓名

学号

指导教师

起止日期 2015.12.19—2015.12.25

22

课程设计任务书

课程名称:

软件工程课程设计设计题目:

城市公交查询软件

已知技术参数和设计要求:

需求说明及要求

题目一:

银行管理系统及ATM前端的模拟设计

银行管理系统业务描述如下:

银行ATM存取款系统能为用户提供存款、取款、查询、转账和修改密码的功能。

为了模拟真实的ATM业务环境,本系统必须实现存款、取款、查询、转账、修改密码以及开户的功能。

用户通过开户业务在本系统开立银行账户,之后可以通过该银行账户登陆

ATM系统,在系统中实现存款、取款、查询账户信息、修改密码的操作。

本系统各个业务有如下注意点:

(1)登陆系统

用户登陆之前,必须在登陆界面输入其银行账户,通过其正确输入的银行账户登陆系统。

(2)开户业务

要使用本系统必须首先执行开户业务开立新的银行账户,并且将此新开的银行存储于文件当中。

同时,系统以身份证号码作为开户的充分条件,即一个身份证号码只能开立一次银行账户。

(3)存款业务

客户登陆系统后,选择存款业务,即可以将输入的存款金额存入相应的账户。

(4)取款业务

客户登陆系统后,选择取款业务,即可以将输入的取款金额从相应的银行账户取出,但是取款金额必须大于目前的账户余额。

(5)查询业务

客户登陆系统后,可以选择查询业务,查询账户余额。

(6)转账业务

客户登陆系统后,可以选择转账业务,进行转账。

注意的是转账的目的账户必须是本系统已经存在的银行账户。

(7)修改密码

客户登陆系统后,可以选择修改密码业务,进行密码修改。

题目二:

个人通信录系统模拟设计

个人通信录系统模拟设计业务描述如下:

个人通信录必须为用户提供好友管理、系统管理和帮助三个部分。

好友管理包括好友信息录入、好友信息修改、好友信息删除和好友信息查询查询的功能,在此基础上可以

设置好友分组;系统管理包括密码修改、分组配置;帮助需要为用户提供系统的操作帮助。

本系统各个业务有如下注意点:

(1)登陆系统

用户在登陆界面输入用户名和密码,校验正确后可以登陆系统。

(2)好友管理业务

新增的好友信息保存至文件,之后对好友信息的管理都是对文件中的好友信息进行处理,并且可以将好友信息进行分组。

(3)系统管理

可以在密码修改中修改本用户的密码;可以在此功能中配置系统需要的分组名,并且将分组名保存到文件中。

(4)帮助

帮助业务需要为用户提供系统的操作帮助。

各阶段具体要求:

1、需求分析阶段

熟悉系统业务,从业务中抽取出系统的需求,形成完善的需求说明书。

2、系统设计阶段

根据需求,进行程序设计,包括定义系统的界面、定义系统数据的存储方式等,形成完善的设计说明书。

3、编码实现阶段

(1)完成代码编写

(2)要求代码编写规范

4、系统测试阶段

(1)完成功能调试

(2)要求完成必要的测试工作

5、交付实施阶段

(1)提交可正常执行的系统

(2)提交系统需求说明书、设计说明书、程序代码

(3)撰写课程设计报告书

(4)要求规范地书写文档

设计工作量:

(1)软件设计:

完成问题陈述中所提到的所有需求功能。

(2)论文:

要求撰写不少于3000个文字的文档,详细说明各阶段具体要求。

工作计划:

理论课结束后两周进行课程设计,软件开发如下,一周完成。

其中,两教学课时用

于题目分析与介绍。

其他教学可是用于程序设计。

1) 选定题目

2)需求分析

3)系统设计

4)编码实现

5)系统测试

6)交付实施

计划时间

指导老师

学生

18周

魏歌

14软件1班

18周

卓琳

14软件2班

18周

潘怡

14软件3班

18周

何海江

14软件4班

18周

钟旭

14软件5班

18周

杨凤年

14软件6班

(因为班级较多,各班开始和结束时间根据试验室安排情况灵活确定,以正式课表为准)

注意事项

n提交文档

Ø长沙学院课程设计任务书(每学生1份)

Ø长沙学院课程设计论文(每学生1份)

Ø长沙学院课程设计鉴定表(每学生1份)

指导教师签名:

日期:

教研室主任签名:

日期:

系主任签名:

日期:

长沙学院课程设计鉴定表

姓名

胡辉衡

学号

B

专业

软件工程

班级

14级4班

设计题目

城市公交查询软件

指导教师

钟 旭

指导教师意见:

评定等级:

教师签名:

日期:

答辩小组意见:

评定等级:

答辩小组长签名:

日期:

教研室意见:

教研室主任签名:

日期:

系(部)意见:

系主任签名:

日期:

说明

课程设计成绩分“优秀”、“良好”、“及格”、“不及格”四类;

摘 要

随着我国城市公交系统发展和逐渐完善,市民的出行得到了极大的方便,但同时巨大的公交线路网让人们的选择也困难起来,本城市公交系统就是在此背景下进行设计的。

本系统以用户为中心,界面简洁,结构简单,功能较为完善,可以满足市民出行的正常需要。

系统分为两个部分,一是内部人员使用的管理员部分,这个部分的用来进行管理,包括站点管理,线路管理,城市管理和功能测试。

二是一般用户使用的查询部分,这个部分的用来进行查询,包括站点查询,线路查询,站站查询,切换城市,修改密码。

关键词:

城市公交查询系统

目 录

摘 要 I

第1章 设计内容与要求 1

1.1课程名称 1

1.2设计要求 1

第2章 需求分析 4

2.1功能模块 4

2.2设计环境 6

第3章 概要设计 8

3.1功能结构 8

3.2系统流程图 11

第4章 详细设计 20

4.1登陆注册模块 20

4.2站点管理模块 22

4.3线路管理模块 24

4.4城市管理模块 32

4.5公交查询模块 34

第5章 测试 49

5.1登陆注册模块测试 49

5.2站点管理模块测试 50

5.3线路管理模块测试 52

5.4城市管理模块测试 53

5.5公交查询模块测试 55

总 结 58

参考文献 58

附 录源代码 58

第1章设计内容与要求

1.1课程名称:

软件工程基础实训II

设计题目:

城市公交查询软件

1.2设计要求

各阶段具体要求:

1、需求分析阶段

(1)写出需求分析(做什么)

(2)要求问题分析和功能定义准确

2、系统设计阶段

(1)根据问题描述,设计系统的结构

(3)完成数据结构中各个函数的定义

(4)用户界面的设计

(5)要求数据结构定义合理,类层次结构清晰

3、编码实现阶段

(1)完成代码编写

(2)要求代码编写规范

4、系统测试阶段

(1)完成功能调试

(2)要求完成必要的测试工作

5、交付实施阶段

(1)提交可正常执行的系统

(2)提交系统需求说明书、设计说明书、程序代码

(3)撰写实训报告书

(4)要求规范地书写文档

第2章 需求分析

2.1功能模块

1.主要功能模块:

(1)用户管理

用户管理模块为用户提供用户信息管理的功能,包括用户注册、用户登陆、用户信息修改、用户密码修改、用户注销等功能。

用户注册:

用户可以利用此功能完成注册,用户在界面输入注册信息,回车后,软件将注册信息保存到用户信息数据文件中。

用户登陆:

用户可以利用此功能完成登陆,用户在界面输入登陆信息,回车后,软件验证登录信息,登陆成功后,软件进入主功能选择界面。

用户信息修改:

用户可以利用此功能完成用户信息修改。

用户密码修改:

用户可以利用此功能完成密码修改。

用户注销:

用户可以利用此功能完成用户信息注销,某用户注销后,便不能再次登录。

(2)线路管理

线路管理模块为用户提供公交线路数据的管理和维护,包括线路添加、线路修改、线路删除等功能。

线路添加:

用户可以利用此功能增加一条线路。

线路修改:

用户可以利用此功能修改一条线路。

线路删除:

用户可以利用此功能删除一条线路。

(3)站点管理

站点管理模块为用户提供公交站点数据的管理和维护,包括站点添加、站点修改、站点删除等功能。

站点添加:

用户可以利用此功能增加一个站点。

站点修改:

用户可以利用此功能修改一个站点。

站点删除:

用户可以利用此功能删除一个站点。

(4)公交查询

公交查询模块为用户提供公交信息查询的功能,包括站点查询、线路查询、站站查询、最短距离查询、最少换乘查询等功能。

站点查询:

用户可以利用此功能查看某个站点所停靠的公交线路。

线路查询:

用户可以利用此功能查看某条线路所路经的公交站点。

站站查询:

用户可以利用此功能查询出发地和目的地之间的所有公交乘车方案。

最短距离查询:

用户可以利用此功能查询出发地和目的地之间最短距离的公交乘车

方案。

最少换乘查询:

用户可以利用此功能查询出发地和目的地之间最少换乘的公交乘车方案。

2.2设计环境

IDE:

DevC++5.11

编译器:

G++4.9.2

操作系统:

windows7(64位)

第3章 概要设计

3.1功能结构

3.2系统流程图

第4章 详细设计

4.1登录注册模块

开始

输入新用户

名和密码

Y

是否已存在

N

保存新用户

结束

图4.1-1注册

4.2站点管理模块

开始

选择要增加站点的

线路

输入站点名

Y

是否重复

N

增加新站点

保存站点信息

结束

图4.2-1增加站点

开始

选择要删除站点的

线路

选择要删除的站点

Y

该线路站点个

数是否等于2

N

删除该站点

保存信息

结束

图4.2-2删除站点

开始

选择线路

选择要改名的站点

输入修改名

Y

修改名是否已

存在

修改名称

保存信息

结束

4.3线路管理模块



图4.2-3修改站点

开始

输入线路名

Y

是否为空

N

依次输入站点名

Y

Y

是否重复

N

线路名是否存在

N

保存新增线路和

站点信息

结束

图4.3-1增加路线

开始

选择要删除的线路

N

是否删除

Y

删除所选线路的信

结束

图4.3-2删除线路

开始

选择要修改的线路

输入修改名

N

名字是否变化

Y

Y

修改名是否存在

N

修改名称

保存新信息

结束

图4.3-3修改线路

4.4公交查询模块

开始

输入站点名

Y

是否为空

N

N

是否存在

Y

查找经过该站点的

n条线路

依次显示这些

线路所经过的站点

结束

图4.5-1站点查询

开始

输入线路名

Y

是否为空

N

N

是否存在

Y

查询该线路所经过

的站点

依次显示这些

站点

结束

图4.5-2线路查询

开始

输入起点站

和终点站

Y

是否为空

Y

N

N

是否一样

N

是否存在

Y

Y

查询经过起点的线

所有路

查询经过终点的线

所有路

依次取其中一条路

线,直到所有

依次取出其中一

条,直到所有

判断是否相等

记录信息

N

N

N

是否有交点

Y

记录信息

找出最短站点数

显示直连路线

显示换乘一次

路线

结束

长沙学院课程设计说明书

23

图4.5-3线路选择

第5章 测试

5.1登录注册模块测试

5.2站点管理模块测试

25

5.3线路管理模块测试

长沙学院课程设计说明书

26

5.4城市管理模块测试

长沙学院课程设计说明书

27

5.5公交查询模块测试

88

总结

本次课程设计对编程能力的要求很高,需要很多的软件工程的思想,在写的过程中也卡住过,但经过老师的指导都得到了很好的解决。

在这次的实训中,我的编程能力有的飞跃性的提升。

代码的本身也出现了一些BUG但经过测试大部分都背找出并修复。

在整个代码编写过程也学会了很多编程技巧,一是数据表的设计,我的系统之所以能够写的较为顺利很大的原因就是数据表的设计,将公交站点,公交线路,站点和线路的关系分别存放在三个文件中,这种设计能是整个程序的数据和逻辑更加清晰,设计好的数据表能节省很多的时间并使算法也变得简单。

二是设计模式,不管功能多繁杂,结构多复杂,只要有良好的函数封装,用到合适的设计模式,都能迎刃而解。

通过本次实训,我的系统架构能力也有了一定的提升。

同时要感谢老师的指导和解惑。

参考文献

[1]严蔚敏吴伟民著.数据结构(C语言版).北京:

清华大学出版社,2015.

[2]杜红燕刘华富著.C语言程序设计教程.复旦大学出版社,2014.

附 录 源代码

/*----------------------城市公交查询系统--------------------------

*作者:

胡辉衡

*学校:

长沙学院

*功能:

实现城市公交查询的基本功能

*实现技术:

C语言及数据结构

*指导老师:

钟旭

*完成时间:

2015年12月21日

------------------------------------------------------------------*/

#include#include#include#include#include

structuser //记录账号信息

{

intidentity; //用户身份,值等于false时为普通用户,否则为管理员

intuserId; //用户编号

charloginName[40]; //用户登录名charloginPassword[20]; //登录密码

structuser*next; //指向下一个用户信息的指针,便于建立链表

};

structcity{ //记录城市信息

intcityId; //城市编号

charcityName[20]; //城市名

structcity*next; //指向下一个城市信息的指针,便于建立链表

};

structstation //记录车站信息

{

intstationId; //车站编号

charstationName[20]; //车站名称

intcityId; //所属城市编号

structstation*next; //指向下一个站点信息的指针,便于建立链表

};

structroad //记录公交线路信息

{

introadId; //公交线路编号

charroadName[20]; //公交线路名称intcityId; //所属城市编号

structroad*next; //指向下一个公交线路信息的指针,便于建立链表

};

structrelation{ //记录车站与公交线路之间的关系和站与站之间的信息

intstationId; //车站编号

introadId; //公交线路编号

intsep; //车站在此公交线路的序号

intdistance; //在此公交线路下这个车站到下一站的距离(单位:

km)

inttime; //在此公交线路下这个车站到下一站所需要的时间

(单位:

min)

intcityId; //所属城市编号

structrelation*next; //指向下一个站点与线路映射信息的指针,便于建立链表

};

intg_cityId=0; //记录当前城市编号的全局变量intMainInterface(); //主界面

structuser*Login(); //登录函数

structuser*Register(); //注册函数structuser*FindPassword(); //找回密码

voidinitialize(); //初始化

intUserInterface(structuser*p); //用户界面

intAdminInterface(structuser*p); //管理员界面

structuser*Logout(structuser*p); //注销函数

voidLineManage(); //线路管理函数

voidSiteManage(); //站点管理函数

voidLineQuery(); //线路查询函数

voidSiteQuery(); //站点查询函数

voidSiteToSiteQuery(); //站站查询函数structuser*ChangePassword(structuser*p); //修改密码函数voidInputpw(char*password,intlen); //密码掩盖函数

voidChangeCity(); //切换城市

voidAddCity(); //增加城市

voidSiteAdd(); //站点增加函数

voidSiteChange(); //站点修改函数

voidSiteDelete(); //站点删除函数

voidSiteDeleteDeal(intstationId); //站点删除处理函数voidLineAdd(); //线路增加函数

voidLineChange(); //线路修改函数

voidLineDelete(); //线路删除函数

voidLineInsertSite(introadId); //插入站点形成公交线路

voidLineDeleteSite(introadId); //删除公交线路上所有的站点

voidLineShow(introadId); //显示公交线路上所有的公交站点voidSiteShow(intstationId); //显示经过公交站点所有的公交线路

voidShowAllWay(intstart,intend); //显示从起点到终点两次换乘及以下的所有乘车方式

voidgraphFound(); //将当前城市所有的公交线路和站点构成一张图

voidshowRoadName(introadId); //根据线路编号显示公交线路名voidshowStationName(intstationId); //根据站点编号显示公交站点名

intmain(){

structuser*p;intoption;initialize();while

(1){

system("cls");

option=MainInterface();switch(option){

case49:

p=Login();break;case50:

p=Register();break;

case51:

p=FindPassword();break;default:

exit(-1);

}

//printf("a");if(p==NULL){

continue;

}else{

//printf("\t\t你的身份:

");if(p->identity){

while(p){ //避免函数调用函数导致内存爆炸b:

option=AdminInterface(p);

switch(option){

case49:

LineManage();break;case50:

SiteManage();break;case51:

ChangeCity();break;case52:

AddCity();break;

case53:

gotoa;/*UserInterface(p)*/;break;case54:

p=Logout(p);break;

default:

exit(-1);

}

}

}else{

while(p){ //避免函数调用函数导致内存爆炸a:

option=UserInterface(p);

switch(option){

case49:

LineQuery();break;case50:

SiteQuery();break;

case51:

SiteToSiteQuery();break;case52:

ChangeCity();break;

case53:

p=ChangePassword(p);break;case54:

if(p->identity){gotob;

}else{

p=Logout(p);break;

}

default:

exit(-1);

}

}

}

}

//system("pause");

}

return0;

}

voidSiteAdd(){

system("cls");

printf("--------------------------站点增加界面 ");

FILE*fp;inti=1;

boolmark=false;intstationId,cityId;

intstationIdMark=0; //记录新建公交站点的编号(应大于所有已有的公交站点)charstationName[20];

structstation*head,*p,*q;

head=(structstation*)malloc(sizeof(struc

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

当前位置:首页 > IT计算机 > 电脑基础知识

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2