软件工程城市公交查询系统课程设计说明书Word格式文档下载.docx
- 文档编号:949519
- 上传时间:2023-04-29
- 格式:DOCX
- 页数:88
- 大小:355.80KB
软件工程城市公交查询系统课程设计说明书Word格式文档下载.docx
《软件工程城市公交查询系统课程设计说明书Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《软件工程城市公交查询系统课程设计说明书Word格式文档下载.docx(88页珍藏版)》请在冰点文库上搜索。
可以在此功能中配置系统需要的分组名,并且将分组名保存到文件中。
(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班
卓琳
14软件2班
潘怡
14软件3班
何海江
14软件4班
钟旭
14软件5班
杨凤年
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)写出需求分析(做什么)
(2)要求问题分析和功能定义准确
(1)根据问题描述,设计系统的结构
(3)完成数据结构中各个函数的定义
(4)用户界面的设计
(5)要求数据结构定义合理,类层次结构清晰
(3)撰写实训报告书
第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站点管理模块
选择要增加站点的
线路
输入站点名
是否重复
增加新站点
保存站点信息
图4.2-1增加站点
选择要删除站点的
选择要删除的站点
该线路站点个
数是否等于2
删除该站点
保存信息
图4.2-2删除站点
选择线路
选择要改名的站点
输入修改名
修改名是否已
存在
修改名称
4.3线路管理模块
图4.2-3修改站点
输入线路名
是否为空
依次输入站点名
线路名是否存在
保存新增线路和
站点信息
图4.3-1增加路线
选择要删除的线路
是否删除
删除所选线路的信
息
图4.3-2删除线路
选择要修改的线路
名
名字是否变化
修改名是否存在
保存新信息
图4.3-3修改线路
4.4公交查询模块
是否存在
查找经过该站点的
n条线路
依次显示这些
线路所经过的站点
图4.5-1站点查询
查询该线路所经过
的站点
站点
图4.5-2线路查询
输入起点站
和终点站
是否一样
查询经过起点的线
所有路
查询经过终点的线
依次取其中一条路
线,直到所有
依次取出其中一
条,直到所有
判断是否相等
记录信息
是否有交点
找出最短站点数
显示直连路线
显示换乘一次
路线
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<
stdio.h>
#include<
iostream>
stdlib.h>
string.h>
conio.h>
structuser //记录账号信息
{
intidentity;
//用户身份,值等于false时为普通用户,否则为管理员
intuserId;
//用户编号
charloginName[40];
//用户登录名charloginPassword[20];
//登录密码
structuser*next;
//指向下一个用户信息的指针,便于建立链表
};
structcity{ //记录城市信息
intcityId;
//城市编号
charcityName[20];
//城市名
structcity*next;
//指向下一个城市信息的指针,便于建立链表
structstation //记录车站信息
intstationId;
//车站编号
charstationName[20];
//车站名称
//所属城市编号
structstation*next;
//指向下一个站点信息的指针,便于建立链表
structroad //记录公交线路信息
introadId;
//公交线路编号
charroadName[20];
//公交线路名称intcityId;
structroad*next;
//指向下一个公交线路信息的指针,便于建立链表
structrelation{ //记录车站与公交线路之间的关系和站与站之间的信息
intsep;
//车站在此公交线路的序号
intdistance;
//在此公交线路下这个车站到下一站的距离(单位:
km)
inttime;
//在此公交线路下这个车站到下一站所需要的时间
(单位:
min)
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();
case51:
p=FindPassword();
default:
exit(-1);
}
//printf("
a"
if(p==NULL){
continue;
}else{
\t\t你的身份:
"
if(p->
identity){
while(p){ //避免函数调用函数导致内存爆炸b:
option=AdminInterface(p);
switch(option){
LineManage();
SiteManage();
case51:
ChangeCity();
case52:
AddCity();
case53:
gotoa;
/*UserInterface(p)*/;
case54:
p=Logout(p);
default:
while(p){ //避免函数调用函数导致内存爆炸a:
option=UserInterface(p);
LineQuery();
SiteQuery();
SiteToSiteQuery();
p=ChangePassword(p);
if(p->
identity){gotob;
//system("
pause"
return0;
voidSiteAdd(){
printf("
--------------------------站点增加界面 "
FILE*fp;
inti=1;
boolmark=false;
intstationId,cityId;
intstationIdMark=0;
//记录新建公交站点的编号(应大于所有已有的公交站点)charstationName[20];
structstation*head,*p,*q;
head=(structstation*)malloc(sizeof(struc
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 城市 公交查询 系统 课程设计 说明书