火车票订票系统
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
火车票订票系统 Revised at 2 pm on December 25, 2020.
目录
软件技术基础课程设计说明书题目:火车订票系统的设计
学生姓名:
学号:
院(系):电气与信息工程学院
专业:电子信息科学与技术
指导教师:杨帆
2015 年 06月26日
课程设计报告
1 课程设计介绍
课程设计内容
软件技术基础课程是非计算机本科专业学习计算机软件基础知识的综合性基础课程。学习本课程,要求学生对软件技术的各个组成部分的基础知识、发展趋势有全面、系统的了解;掌握基本数据结构,达到能熟练运用解决实际问题的程度;掌握操作系统基本原理和类型,了解系统各种管理功能。通过自学了解软件工程的基本概念,软件设计开发的过程和相关技术。
实践环节具体任务:设计、开发一种火车订票系统。通过此系统可以实现如下功能:火车车次信息录入、车次信息查询、火车票订票、火车票退票等。
课程设计要求
系统应该至少提供以下模块:
火车车次信息录入:
可以录入车次情况(包含车次编号、出发时间、出发站、到达站、到达时间、途经主要大站(需要考虑如何保存这些信息)等信息)
车次信息查询:
可以查询某个车次的情况(如,输入车次号,查询出站、到站时间,票价,票价折扣,确定车次是否满员);可以输入出发站点、到达站点城市,查询火车车次情况;
火车票订票:
可以订票,如果该车次已经无票,可以提供相关可选择车次(同样到达点、途经出发站的其他火车)——订票时需要提供时间、车次、车厢号、座位号、票价、订票人姓名、订票人联系方式、证件号码、订票数量、订单号等,只能比这个多,不能少于这些信息;
火车票退票:
可退票,退票后修改相关数据;客户资料有姓名,证件号,订票数量及车次情况,订单要有编号。
要求:
根据以上功能说明,设计火车票订票系统订票环节涉及的信息,订票信息的存储结构,设计程序完成功能。
2 概要介绍
系统总体设计
首先考虑好选用链表结构存储通讯录。经过对程序设计题目的分析可知,整个程序的设计实现大致分为六个模块,每一个模块对应一个函数。这些函数分别为:火车信息录入函数,火车车次查询函数,火车票订票函数,火车票退票函数,显示火车信息函数,主函数(包括菜单控制程序函数)。
各子模块设计
实现程序最初运行时的菜单界面,以及对其他模块的调用。同时建立火车信息单链表。其中采用switch 函数实现对菜单目录的每个模块的运行。
结构框图:
主要实现程序最初运行时火车信息的录入。用头插入法建立带有头结点的单链表。 结构框图:
证号等基本信息并依次保存到客户链表位置。
结构框图:
结构框图:
3个小模块,分别是按编号查
询、按出发站查询、按终点站查询,用if 选择语句实现对这三个小模块的运行选择。查询功能用strcmp 比较函数实现,
Strcmp 函数比较原理:
例如:strcmp (str1,str2);
比较的结果由函数值带回。
如果字符串1=字符串2,则函数值为0.
如果字符串1>字符串2,则函数值为一个正整数.
如果字符串1<字符串2,则函数值为一个负整数.
流程图:
实现功能为显示链表中所有的火车信息。原理是遍历链表,并输出所有信息。
结构框图:
3 详细设计
主函数模块所涉及的函数分析源代码:
#include<>
#include<>
#include<>车信息录入\n");
printf(" \ 2.火车信息查询\n");
printf(" \ 3.购票\n");
printf(" \ 4.退票\n");
printf(" \ 5.显示火车信息\n");
printf(" \ 6.退出管理系统\n");
printf(" \ 请按键选择\n");
while(true)
{
printf("请按键选择操作:\n");
fflush(stdin); 按编号查询 \n");
printf(" 2. 按出发站查询 \n");
printf(" 3. 按到达站查询 \n");
printf("==================\n");
printf(" 请选择: ");
p=head->next;
scanf("%d",&y);
if (y==1)
{
printf("请输入要查找的编号:");
scanf("%s",num);
while(p!=NULL)
{
if(strcmp(p->num,num)==0)
{
printf("编号:%s\n",p->num);
printf("出发时间:%s\n",p->ltime); printf("到达时间:%s\n", p->atime); printf("出发站:%s\n",p->leave);
printf("到达站:%s\n",p->arrive);
printf("票价:%s\n",p->price);
printf("途经城市:%s\n",p->through); printf("剩票:%s\n",p->shengpiao); return;
}
p=p->next;
}
}
else if(y==2)
{ printf(" 请输入要查找的出发站:"); scanf("%s",leave);
while(p!=NULL)
{
if(strcmp(p->leave,leave)==0)
{
printf("编号:%s\n",p->num);
printf("出发时间:%s\n",p->ltime);
printf("到达时间:%s\n", p->atime);
printf("出发站:%s\n",p->leave);
printf("到达站:%s\n",p->arrive);
printf("票价:%s\n",p->price);
printf("途经城市:%s\n",p->through); printf("剩票:%s\n",p->shengpiao);
return;
}
p=p->next;
}
printf("不存在此出发站的车次\n");
}