当前位置:文档之家› 课程设计一:火车售票系统

课程设计一:火车售票系统

课程设计一:火车售票系统
课程设计一:火车售票系统

数据结构与算法课程实验报告课程设计一:火车售票系统设计及实现

姓名:cll

班级:

学号:

一、实验内容:

火车售票系统在现实中的应用已经非常普遍,目前通常使用可视化的方法实现,例如采用C/S模式下的程序设计或者采用B/S模式下的程序设计,通常都具有较为友好的界面和较为完善的功能。火车售票系统的实现过程中,主要涉及到数据格式的设计,也就是数据结构的设计。通常在采用数据库的情况下,可以运用数据库的设计来实现。在没有采用数据库情况下需要,单独设计相应数据结构和算法。

二、实验目的:

按给定需求,通过查找相关资料,完成火车售票系统设计及实现,在设计过程中充分运用数据结构与算法课程中所学知识,从而熟练地掌握和应用线性表、单链表等重要数据结构和常用算法。提前熟悉软件需求分析,软件测试等环节,运用相应程序设计语言实现该系统,从而进一步提高程序设计能力。

三、问题描述

(1)此系统可以实现售票、退票、车票剩余情况查询等功能。

(2)每张车票包含车次、座位信息。在售票、退票、查询剩余票等环节中,都必须显示出车票的信息,即车次、座位情况。

(3)退票时,必须是车站售出的车票才能退,否则视为无效票,不能退票。

(4)演示程序以用户和计算机的对话方式进行,即在计算机终端上显示“提示信息”之后,由用户在键盘上输入程序中规定的运算命令;相应的输入数据(滤去输入中的非法字符)和运算结果显示在后。

(5)由订票系统的主要功能使程序的命令包括:

1)查询;2)订票;3)退票4)退出订票系统

四、问题的实现

4.1所用的数据结构(包括所用数据结构的抽象数据类型定义和说明)typedefstructLNode{

//数据域

char name[10];//订票姓名

intdnum;//订票数量

char dj[50];//证件编号

intzhekou; //1代表折扣对象

float pay;//付费

structLNode *next;//指针域

intzuohao[200];

}LNode,*LinkList;//构造单链表(已订票)

typedefstructTickets{

char *endname;//终点站名

char *hnum;//车次名

intfnum;//票价

float discut;//折扣

int day;//日期

intwholenum;//总票额

intlastnum;//余票量

inttuipiao[100]; //退票处理,记录退票的座位号

inttpcs;//记录目前退票次数

intmcps;//记录卖出去的票数(包括退票)

LinkList la;//已订票链表

}Tickets;//构造结构类型(火车票)

typedefstruct{

struct Tickets *elem;//存储空间的基址

int length;

intlistsize;//当前分配的存储容量(以sizeof(Tickets)为单位)

}SqList;//构造顺序表

4.2主要实现思路

1、火车站的火车票采用顺序表表示。每趟火车出售的票用链表表示。

2、查询:输入终点站信息,输出该趟火车的票价,日期,余票数等信息;

订票:输入终点站信息,确认有该趟车之后,输入该趟车的基本信息,之后输入购票数,系统查询是否有余票,确认之后,输入个人基本信息;系统查询是否有退票,若有退票则,先售出退票。插入新的结点。

退票:输入终点站的信息,输入个人信息,1、若退出所有票,则删除该结点,若,只退部分票,则更改该结点的购票信息。

退出:退出系统;

【程序演示】

输入2 订票,购买到温州的火车票十张,姓名:a;证件号:a;

退票:输入3退票,输入终点站温州,姓名:a;证件号:a;

退票之后,继续订票3张

【实现代码】

intInitList_L(LinkList *h){//初始化带头结点的单链表

*h = (LinkList)malloc(sizeof(LNode));//生成头结点

if(!h){

printf("初始化链表错误!\n");

return 0;

}

(*h) -> next = NULL;

return 1;

}

intCreate_Sq(SqList *L){//初始化并创建顺序表

L->elem=(Tickets *)malloc(ListInitSize*sizeof(Tickets));

if(!L->elem){

printf("存储分配失败!");// 存储分配失败

return 0;

}

L->length=5;

//赋值

L->listsize=ListInitSize;

int j;

for(j = 0; j < L->length; j++){

L->elem[j].mcps=0;//初始化,记录买出去的票

L->elem[j].tpcs=0;//记录退票数

}

inti;

for(i = 0;i < L->length; i++){

InitList_L(&L->elem[i].la);

}

L->elem[0].endname="北京"; //终点站名

L->elem[0].hnum="G2378";//车次名

L->elem[0].day=1;//日期

L->elem[0].fnum=346;//票价

L->elem[0].discut=0.5;

L->elem[0].wholenum=L->elem[0].lastnum=10;

L->elem[1].endname="温州";

L->elem[1].hnum="K351";

L->elem[1].day=2;

L->elem[1].fnum=254;

L->elem[1].discut=0.5;

L->elem[1].wholenum=L->elem[1].lastnum=10;

L->elem[2].endname="合肥";

L->elem[2].hnum="G782B";

L->elem[2].day=3;

L->elem[2].fnum=224;

L->elem[2].discut=0.5;

L->elem[2].wholenum=L->elem[2].lastnum=10;

L->elem[3].endname="武汉";

L->elem[3].hnum="D2903";

L->elem[3].day=4;

L->elem[3].fnum=200;

L->elem[3].discut=0.5;

L->elem[3].wholenum=L->elem[3].lastnum=10;

L->elem[4].endname="厦门";

L->elem[4].hnum="T112";

L->elem[4].day=5;

L->elem[4].fnum=450;

L->elem[4].discut=0.5;

L->elem[4].wholenum=L->elem[4].lastnum=10;

return 1;

}//创建顺序表

void Demand(SqList L){

int n1;

do{

char endstop[100];

printf("*******查票窗口********\n");

printf("请输入终点站名:\n");

do{

gets(endstop);

} while(!endstop[0]);

inti;

for(i=0;i

if(strcmp(L.elem[i].endname,endstop)==0){

printf("\t\t杭州-->%s\n",endstop);

printf("\t\t车次:%s\n",L.elem[i].hnum);

printf("\t\t日期:%d日\n",L.elem[i].day);

printf("\t\t票价:%d\n",L.elem[i].fnum);

printf("\t\t折扣价(学生/军人等5折):%f\n",L.elem[i].fnum*L.elem[i].discut);

printf("\t\t总票量:%d\n",L.elem[i].wholenum);

printf("\t\t余票量:%d\n",L.elem[i].lastnum);

break;

}

if(i==L.length-1){

printf("没有找到%s的车票!\n",endstop);

}

}

printf("1.返回主菜单;2.继续\n");

scanf("%d",&n1);

}while(n1==2);

}

void GetTicket(SqList *L){//订票

int n2=2,zhekou;//n2=1,继续订票;n2=2,返回主菜单;n2=0,确定,即订票成功

intnum; //订票数

float money; //存储应付的总票额

char endstop[100]; //记录终点站名

char name[100];

char ID[100]; //记录证件号

do{

printf("*******订票窗口********\n");

printf("终点站名:");

do{

gets(endstop);

} while(!endstop[0]);

inti = 0;

for(i=0;ilength;i++){

if(strcmp(L->elem[i].endname,endstop)==0){ //有该趟火车

printf("\t\t杭州-->%s\n",endstop);

printf("\t\t车次:%s\n",L->elem[i].hnum);

printf("\t\t日期:%d日\n",L->elem[i].day);

printf("\t\t票价:%d\n",L->elem[i].fnum);

printf("\t\t折扣价(学生/军人等5折):%f\n",L->elem[i].fnum*L->elem[i].discut);

printf("\t\t总票量:%d\n",L->elem[i].wholenum);

printf("\t\t余票量:%d\n",L->elem[i].lastnum);

printf("请输入订票数:");

scanf("%d",&num);

if(L->elem[i].lastnum == 0){

printf("对不起,到%s的车票已卖完!\n",endstop);

printf("\n\t1.继续订票;2.返回主菜单;\n");

scanf("%d",&n2);

}else if(num> L->elem[i].lastnum){

printf("对不起,到%s的车票只剩%d张。\n",endstop);

printf("\n1.继续订票;2.返回主菜单;\n");

scanf("%d",&n2);

}else{

printf("购票请输入个人信息:\n");

printf("姓名:");

do{

gets(name);

}while(!name[0]);

printf("是折扣对象吗?若是,请输入相关证件号,不是请输入身份证号(1.是;0.不是)\n");

scanf("%d",&zhekou);

while(zhekou != 1 &&zhekou != 0){

printf("不合法输入,请重输!\n");

scanf("%d",&zhekou);

}

printf("证件号码:");

//fflush(stdin);

do{

gets(ID);

}while(!ID[0]);

//输出订票信息,待客户确认

printf("\t请核对您的订票信息:\n");

printf("\t姓名:%s\n",name);

printf("\t证件号码:%s\n",ID);

printf("\t杭州--%s:\n",endstop);

printf("\t车次:%s\n",L->elem[i].hnum);

printf("\t日期:12月%d日",L->elem[i].day);

//输出票价(两种情况)

if(zhekou==1){

printf("折扣价(学生/军人等5折):%f\n",L->elem[i].fnum*L->elem[i].discut);

money=L->elem[i].fnum*L->elem[i].discut*num;//money用于暂时存储应付的总票额

}else{

printf("票价:%d\n",L->elem[i].fnum);

money = L->elem[i].fnum*num;

}

printf("订票数:%d\n",num);

printf("座位号:");

//如果有退票,优先卖退票

int k=0; //k用于记录买到的票是退票的数目

int data[100]; //临时记录座位号,用于后面的保存

int j;//只用于for循环的参数,不保存数据;

for(j=L->elem[i].tpcs-1 ; j>=0 ; j--){//只需要num张就够了,L.elem[i].jishu1为退票总数

printf("%d\t",L->elem[i].tuipiao[j]); //退票的座位号tuipioa[j]

k++; //买到退票数目+1

if(k>=num)break; //说明买的全部都是退票

}

//退票数目不够<买票数目

if(k

for(j=0;j

L->elem[i].mcps += 1; //卖出去票的数目+1(包括退票)此时卖出的票数即为座位号

data[j]=L->elem[i].mcps;

printf("%d\t",L->elem[i].mcps);

}

}

printf("\n总票额:%f\n",money);

printf("\n 0.确认;1.取消;2.返回主菜单\n");

scanf("%d",&n2);

if(n2==0){

printf("订票成功!\n");

L->elem[i].lastnum-=num; //更新余票的数目

//在链表中插入新结点

LinkListp,s; //已订票链表的指针类型

p = L->elem[i].la;//第i趟车的已订票列表(头结点)

s = (LinkList)malloc(sizeof(LNode)) ; //新的结点

if(!s){

printf("内存分配失败!");

}else{

s->next=p->next;//在头部插入

p->next=s;

s->dnum=num; //订票数量

s->pay=money; //票价

s->zhekou=zhekou; //折扣信息

strcpy(s->name,name); //姓名

strcpy(s->dj,ID); //证件号

//将座位号记入客户信息

int flag=0;

for(j=L->elem[i].tpcs-1 ; j>=0 ; j--){//只需要num张就够了,L.elem[i].jishu1为可买退票的张数

s->zuohao[flag]=L->elem[i].tuipiao[j];

flag++;

k++; //买到退票数目+1

if(k>=num)break; //说明买的全部都是退票

}

//退票数目不够<买票数目

if(k

for(j=0;j

s->zuohao[flag]=data[j];

flag++;

}

}

}

}

}

break;

}

if(i==L->length-1){

printf("没有到%s的车票!\n",endstop);

n2=2;

}

}

}while(n2==1);

}

void ReturnTicket(SqList *L){

int n3=2,k; //n3=1,继续退票;n3=2,返回主菜单;n3=0,确定,即退票成功,k记录要退的票的数目

LinkList p;

char name[100];

char ID[100];

char endstop[100];

do{

printf("*******退票窗口********\n");

printf("终点站:");

do{

gets(endstop);

} while(!endstop[0]);

inti;

for(i=0;ilength-1;i++){

if(strcmp(L->elem[i].endname,endstop)==0){

printf("姓名:");

do{

gets(name);

}while(!name[0]);

printf("证件号:");

do{

gets(ID);

}while(!ID[0]);

p = L->elem[i].la;

if(!p->next){

printf("没有客户!");

}else{

p = p->next;

while(!(strcmp(p->name,name)==0 &&strcmp(p->dj,ID)==0) && p->next) {

p=p->next;

}

if(strcmp(p->name,name)==0 &&strcmp(p->dj,ID)==0){

printf("您的车票信息如下:\n");

printf("\t姓名:%s\n",p->name);

printf("\t证件号码:%s\n",p->dj);

printf("\t杭州-->%s\n",L->elem[i].endname);

printf("\t车次:%s\n",L->elem[i].hnum);

printf("\t日期:12月%d日\n",L->elem[i].day);

if(p->zhekou==0){//非折扣对象

printf("\t票价:%d\n",L->elem[i].fnum);

}else{//折扣对象

printf("\t折扣价:%f\n",L->elem[i].fnum*L->elem[i].discut);

}

printf("\t订票数:%d\n",p->dnum);

printf("\t座位号为:");

int flag;

for(flag = 0;flagdnum;flag++){

printf("%d\t",p->zuohao[flag]);

}

printf("总票额:%f\n",p->pay);

printf("退几张?\n");

scanf("%d",&k); //k用来记录退票的张数

if(k > p->dnum){

printf("您只有%d票,请重新确认!\n",p->dnum);

printf("1.重新确定;2.返回主菜单\n");

scanf("%d",n3);

}else{

printf("0.确认;1.取消;2.返回主菜单\n");

scanf("%d",&n3);

if(n3==0){

printf("退票成功!\n");

int i1 = L->elem[i].tpcs;

L->elem[i].tpcs+=k;//更新退票数

for(flag=p->dnum;flag>p->dnum-k;flag--,i1++){

L->elem[i].tuipiao[i1] = p->zuohao[flag-1];

}

L->elem[i].lastnum+=k;//更新余票

if(k==p->dnum){ //票全部退完的情况,删除链表中的结点

LinkList q = L->elem[i].la;

while(q->next!=p){

q = q->next;

}

q->next = p->next;

free(p); //释放资源

n3=2; //返回主菜单

}else{

if(p->pay == p->dnum*L->elem[i].fnum){ //判断是否是折扣票

p->pay-=L->elem[i].fnum*k;

}else{

p->pay-=L->elem[i].fnum*k*L->elem[i].discut;

}

p->dnum-=k;

printf("你还有%d张票",p->dnum);

n3=2;

}

}//if(n3==0)

}// else

}else{//

if(strcmp(p->name,name)==0&&strcmp(p->zhengjian,zhengjian)==0)

printf("没有该客户买票的信息!请重新确认!");//最后一个结点也不是要找的结点的情况

n3=2;

}

}

break;

}//if(strcmp(L.elem[i].endstop,endstop)==0)

if(i==L->length-1){ //查找到了最后一个

printf("不是本站售出的票,请重新确认!\n");

n3=2;

}

}

}while(n3==1);

}

void Quit(){

printf("成功退出系统!感谢您的支持!\n");

}

void main(){

LinkList L0;

InitList_L(&L0);

SqList L; //顺序表,用于存放车票信息

Create_Sq(&L); //初始化并创建顺序表

int n;

do{

printf("\n **************杭州火车站订票系统***************\n");

printf("\n ******************本站车票信息******************\n");

printf(" * 车次目的地日期票价*\n\n");

inti;

for(i=0;i

printf("\n * %s %s 12月%d日%d * \n",L.elem[i].hnum,L.elem[i].endname,L.elem[i].day,L.elem[i].fnum);

}

printf("\n * 1.查询 3.退票*\n");

printf("\n * 2.订票 4.退出*\n");

printf("

***************************************************\n");

printf("\n请按菜单提示输入:\n");

scanf("%d",&n);

switch(n){

case 1 : Demand(L);

break;

case 2 :GetTicket(&L);

break;

case 3 :ReturnTicket(&L);

break;

case 4 : Quit();

break;

}

}while(n!=4);

}

火车售票系统

摘要 摘要 铁路运输一直都是我国重要的经济命脉,而且由于我国是内陆国家,这铁路运输的意义就显得更加突出了,对于这样重要的一件事,当然需要良好的管理了。经过几十年的发展,我国拥有总里程超过五万公里的铁路线,是世界上最大的铁路运输网之一。而铁路客运服务在其中又占有非常重要的地位。事实早就证明了使用计算机软件来辅助自己比单纯的人工处理手段高明的多,在这样的背景下,研究这样的课题的意义也就不言而明了。一个大型的计算机管理系统必须有一个正确的设计指导思想,通过合理的选择数据结构,操作系统以及开发环境,构成一个完善的网络系统,才能充分发挥计算机信息管理优势。在此背景下,本文论述了小型列车票务管理系统的设计与实现。通过对各种数据库管理系统(DBMS)的模型分析,结合火车站售票查询的实际需求,同时本文还说明了列车订票管理系统的开发过程及各种技术细节。本系统是适应时代发展的需要,提高管理的效率而开发设计的。结合所要开发的系统的特点,此列车票务管理系统系统采用SQL语言进行编写,后台数据库在IBM DB2环境下运行。整个系统力求做到操作简便、界面友好、灵活、实用和安全。可实现现代化的集预定车票、售票、退票、查询及其他各种服务及功能,车站售票组织庞大,服务项目多,信息量大,要想提高劳动生产,降低成本,提高服务质量和管理水平,进而促进经济效益,必须借助数据库设计来进行现代化的信息管理。系统运行结果证明,本文所设计的列车票务管理系统可以满足购票者、票务工作人员和票务系统管理员等几方面的需要。 关键词:SQL语言;IBM DB2;数据库设计;列车票务管理系统 已售出的列车票表信息、列车管理功能、售票员登陆 I

机票预订系统课程设计报告

《数据库原理及应用课程设计》 系统开发报告 学号: 姓名: 题目:机票预订系统 指导教师: 提交时间: 2015年12月 计算机工程系 目录 一.概述 (2) 1.1 课程实训目的与要求 (2) 1.2 机票预订系统 (2) 1.2.1 系统功能的基本要求 (2) 1.2.2 数据库要求 (3) 二.需求分析 (3) 2.1背景分析 (3) 2.2 功能分析 (3) 2.3 数据词典 (4) 三.概念结构设计 (6) 3.1概念结构设计的方法与步骤 (6) 3.2 局部 E-R 图设计 (6) 3.4总体概念 E-R 图结构 (7) 四.逻辑结构设计 (9) 4.1 逻辑结构设计 (9) 4.2 数据库表的建立 (10) 五.物理结构设计 (10) 5.1 表的建立与数据载入 (10) 5.2 视图建立 (11) 5.3 索引建立 (11) 5.4 存储过程 (11) 5.5 触发器 (11) 5.6 创建登陆账户和添加数据库用户 (12) 六.数据流图及程序结构框图 (13) 6.1 功能模块图 (13) 6.2数据流图 (13) 七.界面设计与功能测试................................ 错误!未定义书签。 7.1登录界面及代码 (14) 7.2 进入系统界面 (15) 7.3 订票过程 (15) 八.总结 (19)

一.概述 应用对数据库技术及应用的理论学习通过上机实践的方式将理论知识与实 践更好的结合起来巩固所学知识。 实践和巩固在课堂教学中学习的关于数据库的有关知识熟练掌握对于给定 实训任务的数据库的创建、基本操作、程序系统的建立和调试以及系统评价。 实践和巩固在课堂教学中学习的关于关系数据库原理的有关知识和数据库 系统的建立方法熟练掌握对于给定实际问题为了建立一个关系数据库信息管 理系统必须得经过系统调研、需求分析、概念设计、逻辑设计、物理设计、系 统调试、维护以及系统评价的一般过程为将来在学习工作中的应用打下基础。1.1 课程实训目的与要求 课程实训的目的是本次课程实训的主要任务是运用在《数据库原理及应用》课程中学到的理论知识来指导实践了解数据库设计过程及其实现方法学会用 数据库建模的方法解决实际问题。掌握数据库原理、范式理论、规范化等相关知识掌握数据库分析设计的具体步骤与基本方法掌握 SQL 语言的基本语法和 基本内容并能运用 SQL Server 2005 实现设计数据库掌握 SQL Server 2005 数据库、表、视图、约束、索引、存储过程、触发器的使用利用一种前台开发工 具实现数据库管理系统的开发实现特定的业务功能。通过综合课程实训提高 实践动手技能培养独立分析分析问题和解决问题的能力。 课程实训的要求本次课程实训的选题比较灵活可以是自主选题也可以 自己选择比较感兴趣的题目重点是完成数据库的分析、设计与实现题目要符 合《数据库原理及应用》的要求并且具备一定的难度和深度除此以外可以 从备选题目之外选择一个题目完成。 1.2 机票预订系统 在所给的实训题目中我选择的是机票预订系统的设计。 1.2.1 系统功能的基本要求 每个航班信息的输入 每个航班的坐位信息的输入 当旅客进行机票预定时输入旅客基本信息系统为旅客安排航班打印取 票通知和帐单 旅客在飞机起飞前一天凭取票通知交款取票 旅客能够退订机票

火车票订票系统

火车票订票系统 Revised at 2 pm on December 25, 2020.

目录

软件技术基础课程设计说明书题目:火车订票系统的设计 学生姓名: 学号: 院(系):电气与信息工程学院 专业:电子信息科学与技术 指导教师:杨帆 2015 年 06月26日

课程设计报告 1 课程设计介绍 课程设计内容 软件技术基础课程是非计算机本科专业学习计算机软件基础知识的综合性基础课程。学习本课程,要求学生对软件技术的各个组成部分的基础知识、发展趋势有全面、系统的了解;掌握基本数据结构,达到能熟练运用解决实际问题的程度;掌握操作系统基本原理和类型,了解系统各种管理功能。通过自学了解软件工程的基本概念,软件设计开发的过程和相关技术。 实践环节具体任务:设计、开发一种火车订票系统。通过此系统可以实现如下功能:火车车次信息录入、车次信息查询、火车票订票、火车票退票等。 课程设计要求 系统应该至少提供以下模块: 火车车次信息录入: 可以录入车次情况(包含车次编号、出发时间、出发站、到达站、到达时间、途经主要大站(需要考虑如何保存这些信息)等信息) 车次信息查询: 可以查询某个车次的情况(如,输入车次号,查询出站、到站时间,票价,票价折扣,确定车次是否满员);可以输入出发站点、到达站点城市,查询火车车次情况; 火车票订票: 可以订票,如果该车次已经无票,可以提供相关可选择车次(同样到达点、途经出发站的其他火车)——订票时需要提供时间、车次、车厢号、座位号、票价、订票人姓名、订票人联系方式、证件号码、订票数量、订单号等,只能比这个多,不能少于这些信息; 火车票退票: 可退票,退票后修改相关数据;客户资料有姓名,证件号,订票数量及车次情况,订单要有编号。 要求: 根据以上功能说明,设计火车票订票系统订票环节涉及的信息,订票信息的存储结构,设计程序完成功能。 2 概要介绍 系统总体设计

火车票售票管理系统毕业设计

九江学院 毕业设计 课题名称:火车票售票管理系统班级:信B0911 学号:20914130124 姓名:汤泽景 指导老师:曾怡 2011年11月20日

火车票售票系统 摘要 本文针对火车站的售票实际情况,按照软件工程的结构化设计思想,经过项目的可行性研究和需求分析、总体设计、详细设计,以及编码实现和调试等步骤设计开发了火车站网上订票系统。并运用数据流图和数据字典、E-R图和数据库逻辑结构、层次图、系统流程图、以及程序流程图,对该系统的数据需求、数据库、系统软件结构、系统流程、以及处理过程等进行了分析和设计。 工具软件利用VS2005开发工具和SQL Server 2008数据库来开发这个火车站网上售票系统。该系统要解决的是火车站网上售票工作所要解决的问题,可以满足火车站网上售票的基本要求,包括查询、订票、退票等三个方面的功能。该系统能运用到火车站售票的工作中,根据用户的需求,设置其权限,并快捷方便的为用户提供服务。

目录 第一章. 概述...................................................1 1.1概述....................................................... 1 1.2意义.......................................................1 第二章. 系统的可行性研究与需求分析................2 2.1可行性研究................................................2 2.1.1经济可行性........................................2 2.1.2技术可行性...............................................2 2.1.3操作可行性................................................2 2.2需求分析...................................................3 2.2.1功能需求...............................................3 2.2.2数据需求...............................................4 2.2.3性能需求...................................................4 2.2.4数据库逻辑结构..........................................5 第三章. 系统的总体设计......................................7 3.1系统软件结构设计........................................ 7 3.1.1软件结构...................................................7 3.2系统流程图................................................7 第四章. 系统的详细设计....................9 4.1.1程序流程图........................................10

课程设计一火车售票系统

数据结构与算法课程实验报告课程设计一:火车售票系统设计及实现 姓名:cll 班级: 学号:

一、实验内容: 火车售票系统在现实中的应用已经非常普遍,目前通常使用可视化的方法实现,例如采用C/S模式下的程序设计或者采用B/S模式下的程序设计,通常都具有较为友好的界面和较为完善的功能。火车售票系统的实现过程中,主要涉及到数据格式的设计,也就是 数据结构的设计。通常在采用数据库的情况下,可以运用数据库的设计来实现。在没有采 用数据库情况下需要,单独设计相应数据结构和算法。 二、实验目的: 按给定需求,通过查找相关资料,完成火车售票系统设计及实现,在设计过程中充分运用数据结构与算法课程中所学知识,从而熟练地掌握和应用线性表、单链表等重要数据结构和常用算法。提前熟悉软件需求分析,软件测试等环节,运用相应程序设计语言实现该系统,从而进一步提高程序设计能力。 三、问题描述 (1)此系统可以实现售票、退票、车票剩余情况查询等功能。 (2)每张车票包含车次、座位信息。在售票、退票、查询剩余票等环节中,都必须显示出车票的信息,即车次、座位情况。 (3)退票时,必须是车站售出的车票才能退,否则视为无效票,不能退票。 (4)演示程序以用户和计算机的对话方式进行,即在计算机终端上显示“提示信息”之后,由用户在键盘上输入程序中规定的运算命令;相应的输入数据(滤去输入中的非法字符)和运算结果显示在后。 (5)由订票系统的主要功能使程序的命令包括: 1)查询;2)订票;3)退票4)退出订票系统 四、问题的实现 4.1所用的数据结构(包括所用数据结构的抽象数据类型定义和说明) typedef struct LNode{ //数据域 char name[10];//订票姓名 int dnum;//订票数量 char dj[50];//证件编号 int zhekou; //1代表折扣对象 float pay;//付费 struct LNode *next;//指针域 int zuohao[200]; }LNode,*LinkList;//构造单链表(已订票) typedef struct Tickets{ char *endname;//终点站名 char *hnum;//车次名 int fnum;//票价 float discut;//折扣 int day;//日期 int wholenum;//总票额 int lastnum;//余票量 int tuipiao[100]; //退票处理,记录退票的座位号

飞机订票系统课程设计报告

数据结构 课程设计报告 院系:信息管理学院 专业:软件工程 班级:软件Q1141 学号:11150132 姓名:王毅 教师:邓沌华 时间:2013. 4 一、问题描述 题目:飞机订票系统 题目要求: (1)可以录入航班情况 (2)可以查询某个航线的情况(如,输入航班号,查询起降时间, 起飞抵达城市,航班票价,票价折扣,确定航班是否满仓); 可以输入起飞抵达城市,查询飞机航班情况; (3)可以订票,如果该航班已经无票,可以提供相关可选择航班; (4)可以退票,退票后修改相关数据文件;

(5)当航班信息改变可以修改航班数据文件 二、系统分析及设计 1 2、概要设计 主函数中 flight a[15]; //全局航班数组,存储供测试的航班信息,一共15架飞机,航班信 息可以在所有文件中改变 o_customer co; //全局乘客数组存储已经买了票的顾客信息,顾客信息可以在所有文 件中调用、修改 int k = 15; //全局变量,当前的共有航班的辆数,也可被所有文件调用和修改供测试的航班情况如下:

○1按航班号查询航班int number_check() //有此辆航班则返回1,无则返回0 ○2按终点站查询航班int station_check() //有到该站的航班则返回1,无则返回0. ○3订票 int Init(int k);//录入乘客信息,订票成功返回1,否则返回0. order_f() //订票函数 { m = n = 0; m = number_check();//乘客选择航班号方式的查询航班,m = 1方可订票 n = station_check();//乘客选择终点站查询方法查询航班,n = 1,方可订票 if(Init(0) == 0){} //按编号查询,只显示一个编号的信息,票存在,但订票失败就给予其它方案 if(Init(k) == 0){}//按照终点站查询,订票失败时给予相应处理方法} ○4退票 void takeoff(){} //请用户输入他的证件号,避免同名现象造成的影响 //买票的乘客的信息已经存入全局数组中,直接从数组中找出该乘客信息,然后改变相应航班和乘客的信息

火车站售票管理系统的设计与实现-软件工程课程设计

山西大学商务学院 《软件工程课程设计》报告 题目:火车站售票管理系统的设计与实现 班级:10软件G2班 组长:景巧鑫 组员姓名:夏丹丹崔新华王伟

说明 一、火车站售票管理系统 二、小组成员及任务分配情况 姓名学号任务分配 景巧鑫2010847209需求分析、总体设计、系统实现夏丹丹2010847227可行性研究、详细设计、系统实现崔新华2010847204数据库的设计、系统实现 王伟2010847223系统界面设计与实现

信息学院《软件工程课程设计》报告 目录 1.开发目的和意义 (1) 1.1研究背景 (1) 1.2开发目的和意义 (1) 1.3完成情况 (2) 2.开发技术及方法 (3) 2.1开发环境和开发工具 (3) 2.2技术及方法 (3) 2.2.1B/S模式 (3) https://www.doczj.com/doc/6914524267.html, (3) https://www.doczj.com/doc/6914524267.html, (4) 3.系统分析 (5) 3.1可行性分析 (5) 3.1.1经济可行性 (5) 3.1.2技术可行性 (5) 3.1.3操作可行性 (5) 3.2需求分析 (5) 3.2.1功能需求 (5) 3.2.2数据需求 (8) 3.2.3性能需求 (9) 4.系统设计 (10) 4.1总体设计 (10) 4.2详细设计 (10) 4.2.1过程设计 (10) 4.3数据库设计 (16) 4.3.1用户表 (16) 4.3.2车次详细信息表 (17) 4.3.3订票纪录表 (17) 4.3.4退票纪录表 (18) 5.系统实现 (19) 5.1系统登录界面 (19) -II-

信息学院《软件工程课程设计》报告 5.2系统管理员登录界面 (19) 5.3票务管理员登录界面 (20) 5.4乘客登录界面 (21) 6.系统测试 (22) 6.1测试方法 (22) 6.2测试过程 (22) 6.3测试结果 (22) 7.总结 (24) 7.1小结 (24) 7.2实践感想 (24) 参考文献 (26) 附录1可行性分析文档 (27) 附录2需求分析文档 (30) 附录3详细设计文档 (33) 附录4系统测试文档 (39) -III-

(强烈推荐)火车票网上订票系统系统毕业论文设计

火车票网上订票系统系统 摘要 本文针对火车站的订票实际情况,按照软件工程的结构化设计思想,经过项目的可行性研究和需求分析、总体设计、详细设计,以及编码实现和调试等步骤设计开发了火车站网上订票系统。并运用数据流图和数据字典、E-R图和数据库逻辑结构、层次图、系统流程图、以及程序流程图,对该系统的数据需求、数据库、系统软件结构、系统流程、以及处理过程等进行了分析和设计。 工具软件利用JAVA 开发工具和SQL Server 2000数据库来开发这个火车站网上订票系统。该系统要解决的是火车站网上订票工作所要解决的问题,可以满足火车站网上订票的基本要求,包括查询、订票、退票等三个方面的功能。该系统能运用到火车站订票的工作中,根据用户的需求,设置其权限,并快捷方便的为用户提供服务。 关键词:信息管理,火车售票,JAVA,SQL Server2000

目录 第一章引言 (1) 第二章需求分析 (2) 第三章总体设计 (3) 第四章详细设计与实现 (6) 第五章系统测试 (12) 结论 (13) 参考文献 (14)

第一章引言 信息化的时代,我们除了在跟上时代的节拍外,更多的时候是一种理念的提升与升华。存在既有存在的道理,就像为什么之前我们有了电视,但是现在还需要有电脑一样。现在绝大多数公司都会借助电脑去工作,为什么,因为借助它让我们提高我们的办事效率,让我们的管理模式变得更简易更方便。CRM的产生也是同样的道理,我们在自己打好客户关系外,总是需要借助一个工具来帮我们管理的,如果是找人管理的话,那么多的数据不见得都能够记下来,而且也存在一些矛盾让你后期不便于管理,但是借助软件工具我们就可以省事省时省力了。随着信息技术的飞速发展和客户驱动市场的形成,制造业面临的竞争越来越激烈,许多企业通过ERP 、SCM等管理信息化系统强化了财务、生产、物流、产品管理后,发现自己的营销与服务能力的不足,特别是那些快速发展的企业,在全国各地建立了营销与服务网络,人员越来越庞大,营销费用增长迅速,但业绩提升缓慢,而且客户的满意度下降,竞争对手比自己跑得越来越快,各层次沟通不畅信息衰减严重。打造一个富有战斗力的营销服务体系,成本突破管理与发展瓶颈的明智选择,CRM强调建立以客户为中心的现代企业,以客户价值来判定市场需求,对于正在转变战略从“产品中心”向“客户中心”过渡的企业无疑是一拍即合,正是基于此,各大公司才决定制作CRM系统。

一个简单的火车票售票管理系统

一个简单的火车票售票管理系统(原创) #include #include #define MAX 100 #define N 50 typedef struct time //时间类型 { int x,y,z; //分别对应年,月,日 }TIME; typedef struct cnode //票信息类型 { int no; //票号 int id; //购票人证件号 TIME date; //购票日期 struct cnode *next; }CNODE; typedef struct tnode //车次信息类型 { char data; //车次编号 struct tnode *lchild,*rchild; CNODE *head; }TNODE; void create(); //按车次建立二叉排序树 void insert(int ); //增加新的车次(二叉排序树的插入) void del(); //取消车次(二叉排序树节点删除) void inorder(TNODE *); //中序遍历车次二叉排序树(仅显示车次信息)void inorder_all(TNODE *); //中序遍历车次二叉排序树(显示车次及售票信息)void preorder(TNODE *); //先序遍历车次二叉排序树(仅显示车次信息)TNODE *search(); //按车次编号搜索 CNODE *insert_c(CNODE *); //插入新的售票信息(单张) CNODE *insert_c_more(CNODE *); //插入新的售票信息(批量) CNODE *del_c(CNODE *,CNODE *); //退票处理(删除售票信息) CNODE *search_c(CNODE *,int); //按票号查询 void search_c_id(CNODE *,int); //按购票人证件号搜索(限定某车次) void search_c_id_all(TNODE *,int); //按购票人证件号搜索(所有车次) void search_date(CNODE *,TIME); //按购票日期搜索(限定某车次) void search_date_all(TNODE *,TIME); //按购票日期搜索(所有车次) void print_c(CNODE *); //输出售票纪录(单张) void print_c_all(CNODE *); //输出售票纪录(批量)

火车票网上售票系统开题报告

、选题的目的、意义和研究现状

、研究方案及预期结果 (一)研究内容 本火车站网上订票系统可划分为用户和管理员两大模块。其中用户模块部分为用户在前台页面操作部分和管理员模块为后台管理以及对网站相关信息操作部分,其具体功能如图2.1所示。 火车票网上售票系统 用户模块管理员模块 图2.1火车票网上订票系统功能模块图 该火车票网上售票系统除了应具备用户模块注册、登录、验证功能的实现和管理员登 录、验证的原始账号设置以及对新增加的管理员授权设置功能以外,还应该具备的基本网站使用功能如下:

及时了解与统计,从而便于更方便更快捷的对铁道资源的及时调度和应对突发情况的有效方针的及时预定。同时该系统采用相对稳定的框架进行开发,便于日后的维护和使用,使用MVC结构则方便以后新功能的扩展以及现有功能的修改。 (三)基本理论 系统的前端开发部分主要采用jsp框架实现页面的动态效果,并采用Ajax技术与服务器进行交互,提供良好的用户体验功能。 各子系统中,用户的内容评论等采用标签实现;注册使用引入了jQuery的Ajax技术实现验证功能;另外,采用jQuery的控件可以实现表单验证等功能,使得界面的样式更加流畅。 对于后台管理整体采用MVC模式,整个系统采用了SSH技术使得整体各个功能模块进行很好的分类和明晰。JSP进行view层的构建,控制器采用Action的控制。通过实体类javabea n可以很好的进行数据交互。 (四)方法及技术路线 本系统信息量大,实现的功能复杂,应具有合理的信息存贮、管理、传输功能,对系统的处理能力、可性、安全性要求高。因此,总体设计应遵循以下原则: 1科学性:采用开发Web应用的先进、开放式的技术,实现基于数据库B/S体系结构的信息系统。 2?可靠性:系统应有足够的数据吞吐能力和合理的程序处理功能,在Web多并发用户大批量对数据查询、更新时,能稳定可靠地运行。 3?易维护性:应采用先进的程序设计模式,使程序模块结构合理,程序代码共享性好,可扩展、可维护性好。 4?实用性:系统功能应满足各类用户的功能需求。 5?易操作性:建立友好的用户界面,操作方便。 6?安全性:应采用合理的安全技术,保证服务器、用户关键数据传输等安全。 软件环境是一个系统开发的工具,它取决于开发人员对软件的熟悉程度,如果开发人员选择一个不熟悉的软件开发会大大增加开发系统所需要投入的成本,所以说选择软件环境也是很重要的。 操作系统:Win dows XP/Wi ndows7 数据库:MySQL 系统开发工具:myEclipse 软件开发语言:Java

C语言飞机订票系统课程设计

第一章绪论 :项目背景描述 1、课程设计性质与目的: C语言程序设计是一门实践性很强的课程。C程序课程设计是学习C语言程序设计的非常重要的实践环节,通过本课程设计使学生进一步巩固课堂所学,全面熟悉,掌握C语言程序设计的基本方法和技巧,进一步提高编写程序、分析程序及上机操作、调试程序的能力,让学生加深理解,提高动手操作能力及分析问题和解决问题的能力。 2、课程设计包含的知识点: 1.掌握并熟练利用C语言的基本数据类型与各种表达式,程序的流程控制语 句。 2.掌握数组的基本概念。掌握一维数组与二维数组的使用,掌握字符数组与 字符串的关系。 3.熟练掌握指针、地址、指针类型的概念及其使用。掌握指针变量的定义与初始化、指针的间接访问和表达式,掌握指针与数组、函数、字符串的联系4.掌握函数的定义,函数的返回值,函数的调用,函数的声明,函数的形式参数和实际参数之间的关系,了解函数的作用区间。 5.掌握结构体的概念,结构体类型的定义,结构体变量的定义和初始化,结构体成员的表示。结构体与指针、函数的关系。

第二章可行性分析 一、问题描述: 假设某航空公司只有N架X个座位的飞机,每架飞机每天飞行一趟。通过该系统来实现机票的订购问题。 二、功能要求: 1、本系统采用一个包含N个数据的结构体数组,每个数据的结构应 当包括:起飞地、目的地航班号、航班定额。 2、本系统显示这样的菜单: 1.)录入:可以录入航班情况(数据可以存储在一个数据文件中) 2.)浏览:航班信息浏览功能需要提供显示操作; 1、查询:可提供按照航班号、起点站、终点站、飞行时间、查 询,可以查询某个航线的情况(如,输入航班号,起飞抵达城市,确定航班是否满仓);另外要提供键盘式选择菜单以实现功能选择。 (1)输入航班信息 (2)输出航班信息 (3)查找航班信息 (4)订票预约 (5)删除定票预约 (6)退出系统 2、本系统成功执行菜单的每个信息,选项4)和5)将要求额 外的输入,并且它们都允许用户收回其输入。 3、查找航班信息既可按线路查,也可按目的地查。 4、在两次运行之间,数据被保存于一个文件里,当本程序重新开 始的时候,它首先从该文件读入数据 三、算法提示: 1、数据结构:结构体类型数组 2、数据库结构:下表构成该系统的基本数据库。 四、测试数据: 录入北京到上海的星期一起飞的航班,假设其定额为30,上海到南京的航班起飞时间为星期二。 五、其它: 在实现系统基本功能后,完善系统的其它功能。在测试数据是发现退票系统出现问题,退票数会超过定额,在加上一个限定条件后成功。基于本系统可以尝试输出所定票的的顾客的完整信息,包括姓名,身份证号等个人信息,由于时间有限,尚未添加。

数据结构航空订票系统课程设计报告

攀枝花学院学生课程设计报告摘要 摘要 飞机在现代的生活中扮演者非常重要的角色。它能够快速的把人们送到自己想要去的地方,既快速,又方便。所以现在坐飞机时很普遍的。但是都到机场去买票浪费时间,因此,航空订票系统应运而生。有了航空订票系统,用户可以在该系统进行飞机票的查询,订票,退票等操作。方便了大家 关键词航空订票系统、查询、订票、退票

目录 摘要...................................................................................... I 1 需求分析 . (2) 1.1 需求概述 (2) 1.2 需求环境 (2) 1.3 功能描述 (2) 2 概要设计 (3) 2.1 程序功能模块 (3) 2.2 程序流程图 (3) 2.3 课程设计的思想 (3) 3 详细设计 (4) 3.1 程序初始化 (4) 3.1.1代码功能 (4) 3.1.2 功能实现代码 (4) 3.2 查询航班信息 (6) 3.2.1代码功能 (6) 3.2.3 功能实现代码 (7) 3.3 订票模块 (8) 3.3.1 代码功能 (8) 3.3.2 功能实现代码 (8) 4 测试与运行 (14)

5结束语.................................................................................................... . (16) 6 参考文献.................................................................................................... .. (17) 7附录.................................................................................................... . (18) 1 需求分析 1.1 需求概述 航线管理。每条航线所涉及的信息有:终点站名、航班号、飞机号、飞行周日(星期几)、乘员定额、余票量 客户管理。有关订票的客房信息(包括姓名、订票量、舱位等级(1,2和3)以及等替补的客房名单(包括姓名、所需标量)。

网上火车票订购系统报告

东华大学 ____软件设计实践___报告 专业计算机科学与技术 班级 学号 姓名 完成日期

一、需求分析 1.1.设计背景 铁路作为中国最重要的交通工具之一,在市场经济浪潮中,面临着严峻的考验。公路运输的便捷,航空运输的快速,这一切都对铁路运输构成很大的冲击。在对铁路客运服务存在的最大问题进行调查时,结果表明,有29.3%的乘客认为购票难排在各项选择的第一位。火车站市场的管理和规范问题,是困扰我们多年的一个老问题,也是政府管理中的一个难点,订票是客运业务中的一个最基本的业务,表面上看,它只是火车站业务的一个简单的部分,但是它涉及到管理与客户服务等多方面,因此,随着我国铁路交通的不断发展,过去传统的售票方式已经不能满足现代客运业务流量剧增的客观要求,简单的窗口售票模式已经不能满足方便人们出行的目的。采用先进的网络技术开发出方便快捷的网上订票系统是现代客运业务发展的必然需求。电子商务的出现,正好带给了铁路客运服务一个发展契机,推出新型的订票方式-- 网上订票,来缓解订票高峰时期的客运压力,并为用户提供方便快捷的订票服务。它既是技术上的创新,又将完善铁路服务,在一定程度上解决买票难这一大难题,增强铁路竞争力,为铁路争取到更多的客流。本次设计的火车票网上订票系统通过访问主页,可以实现个人信息注册、车次车票价格查询、在线订票退票等基本功能,为用户提供方便快捷的订票服务。 本次设计便是利用开发工具VS2008和SQL Server 2005数据库共同开发的一个火车站网上订票系统,它能方便快捷地运用在火车站订票业务的营运之中。该系统要解决的是火车站网上售票工作所要解决的问题,可以满足火车票网上售票的基本要求,包括查询、订票、退票三个方面的功能。该系统能运用到火车站售票的工作中,根据用户的需求,设置其权限,并快捷方便的为用户提供服务。 1.2 系统设计目标 本系统是利用网络的方便、快捷和计算机的准确、高效实现火车票网上订票系统。火车票网上订票系统是通过主页访问、身份识别实现区别不同身份用户完成车票、车次的管理操作。系统有三个大的功能模块:登录功能模块,验证登录信息;管理员功能模块,实现车票和车次管理;普通用户功能模块,实现车票和个人信息管理。

火车订票(课程设计)-软件工程

河北工业大学 课程设计报告 课程名称软件工程课程设计 设计题目火车预售票系统设计 专业计算机科学与技术 班级 学号 姓名 完成日期

课程设计任务书 设计题目:火车预售票系统设计 _________________________________________________________设计内容与要求: 为各类用户提供并实现以下功能: 1. 管理员:各类用户权限设置; 2. 操作员:查询与火车票销售/退票管理; 3. 普通用户:查询与网上预定/取消预定火车票。 课程设计报告的组成: 1. 需求规格说明书,包括用例图,数据流图,数据字典; 2. 概要设计说明书,包括系统模块结构图,功能模块清单,实体图,系统E-R图,数据库表结构设计。 3. 项目总结报告,包括实际完成情况表。 指导教师: 课程设计评语 成绩: 指导教师:_______________ 年月日 2

目录 目录 (1) 第一部分软件需求规格说明书 (1) 1引言 (1) 1.1编写目的 (1) 1.2背景 (1) 1.3术语定义 (1) 1.4参考资料 (2) 2任务概述 (2) 2.1目标 (2) 2.2用户的特点 (2) 3需求规定 (3) 3.1系统用例图 (3) 3.2数据流图与数据字典 (4) 3.3对性能的规定 (13) 4运行环境规定 (14) 4.1设备 (14) 4.2支持软件 (14) 1引言 (15) 1.1目的 (15) 1.2范围 (16) 1.3命名规则 (16) 1.4术语定义 (16) 1.5参考资料 (17) 2总体设计 (17) 2.1总体结构设计 (17) 2.2功能模块清单 (19) 3数据库设计 (19) 3.1数据库概念级设计(E-R图) (19) 3.2数据结构逻辑级设计 (22) 第三部分项目开发总结报告 (24) 1引言 (24) 1.1编写目的 (24) 1.2参考资料 (24) 2设计总结 (25) 2.1实际完成情况 (25) 2.2 收获 (25) 2.3有待改进之处 (28)

飞机订票系统课程设计报告

飞机订票系统课程设计报告 指导老师: 班级: 学生姓名: 学号: 完成日期: 计算机科学与技术系

飞机订票系统课程设计报告 一、系统分析。 1.1根据飞机订票系统的设计目的,设计内容和设计要求。本团队对飞机订票系统这一基础管理系统的业务进行了细致的分析讨论。最终我们决定将整个系统分成7个主要模块。采用结构体这一数据结构来存放教师的信息。首先是信息录入模块,接下来输出模块,即浏览,查询,排序信息三个模块,最后是订票,退票模块。为降低操作难度,以及出错率,决定使用全局数组及变量进行操作。 1.2飞机订票系统简易图 二、系统设计 2.1总体设计(主要功能)

本程序包含六大主要模块①添加信息模块;②浏览信息模块; ③信息查询模块;④信息排序模块;⑤订票模块;⑥退票模 块。 整体程序采用全局数组fj(飞机)进行存储,全局变量pd(判断)作为标识变量。宏定义输出格式。采用Y,N的方式进行操作回退或继续操作的选择。 航班信息包括:航班号,起点,终点,票价,数量及订票标志量(隐藏信息)。 输入模块,使用分条输入,以减少错误率并方便操作。 浏览,查询及排序模块,组合成输出模块。多方式输出更便于观察并方便记录,同时为后续模块的执行提供操作基础。 订,退票模块调用查询模块实现其功能。 2.2 软件、硬件环境 软件环境 VC2009 硬件环境处理器 Intel(R) Core(TM) i5-3210M CPU @2.50GHz 2.50GHz;显卡 GTX650。 内存 4.0GB 操作系统 Windows 7 2.3主要数据结构和程序的关系说明 主要数据结构是结构体 struct hbxx //定义结构体数组,航班信息 {

火车票售票管理系统毕业设计

火车票售票系统 摘要 本文针对火车站的售票实际情况,按照软件工程的结构化设计思想,经过项目的可行性研究和需求分析、总体设计、详细设计,以及编码实现和调试等步骤设计开发了火车站网上订票系统。并运用数据流图和数据字典、E-R图和数据库逻辑结构、层次图、系统流程图、以及程序流程图,对该系统的数据需求、数据库、系统软件结构、系统流程、以及处理过程等进行了分析和设计。 工具软件利用VS2005开发工具和SQL Server 2008数据库来开发这个火车站网上售票系统。该系统要解决的是火车站网上售票工作所要解决的问题,可以满足火车站网上售票的基本要求,包括查询、订票、退票等三个方面的功能。该系统能运用到火车站售票的工作中,根据用户的需求,设置其权限,并快捷方便的为用户提供服务。

目录 第一章. 概述...................................................1 1.1概述....................................................... 1 1.2意义.......................................................1 第二章. 系统的可行性研究与需求分析................2 2.1可行性研究................................................2 2.1.1经济可行性........................................2 2.1.2技术可行性...............................................2 2.1.3操作可行性................................................2 2.2需求分析...................................................3 2.2.1功能需求...............................................3 2.2.2数据需求...............................................4 2.2.3性能需求...................................................4 2.2.4数据库逻辑结构..........................................5 第三章. 系统的总体设计......................................7 3.1系统软件结构设计........................................ 7 3.1.1软件结构...................................................7 3.2系统流程图................................................7 第四章. 系统的详细设计....................9

数据结构课程设计 火车订票系统

软件课程设计--C语言设计火车票订票系统之源代码(模拟数据库功 能)(需求分析+可行性分析) 设计题目:火车订票系统 小组成员: 指导教师: 完成时间: 一.需求设计: 1.每条线路所涉及的信息有:起点、终点、站名、车次、、票价、时间、座位号。 2.作为示意系统,全部数据可以只放在内存中。 3.系统能实现的功能和操作如下: ①.查询路线:根据旅客提出的终点站名输入下列信息:车次、车站名。 ②.承办订票业务:根据客户提出的要求查询该车次票额的情况,若尚有余票,则为客户办理订票手续,输出座位号;若已满员或余票额少于订票额,则需重新查询客户要求,若需要可登记排队候补。 ③.承办退票业务:根据客户提供的情况(车次、时间、座位号)为客户办理退票手续,然后查询该车次是否有人排队候补,首先询问排在第一的客户,若所退票额能满足他的要求,则为他办理订票手续,否则依次询问其他排队候补的客户。 ④登记旅客情况:包括旅客姓名,性别,年龄,家庭住址,联系方式等。 ⑤统计功能:将每次车的订票,退票结果统计出来。 ⑥管理功能:列车管理员可以通过调用函数来查看车票极其用户情况. ⑦.查询功能:用户可以查询自己需要的车辆信息. 二.总体设计 1.程序流程图:

按2键 按3键 按4键 进入in函数 进入book函数 进入inquire函数 进入cancel函数 按5键 进入you函数 2.总体设计说明: ①.数据结构设计: 程序=数据结构+算法,一个好的程序必定有一个好的数据结构.本设计主要考虑车票信息和用户信息的数据结构. 车票信息采用半十字链表.横向链表中的每一个结点包含以下内容:车次,起始站,发车时间,指向下一个结点的指针,指向中途站的指针.纵向链表中每一个结点包含以下内容:从始发站开始的依次到站,票价,到达时间,是否已被购买标识,才用mark标识,当mark为1时车票已售出,当mark为0时车票还未售出.以及指向下一个结点的指针.纵向链表采用循环链表,尾指针指向首指针. 未购票用户信息使用队列来保存,因为考虑到用户会预订票,所以把用户以来订票的时间早晚排在队中.先来先买,后来后买.队列中的每个元素包含以下内容:用户姓名,身份证号码,想要购票的车次,起始站,要到的站,时间. 已经购票用户信息使用一个单链表来保存,链表中的没个结点包含以下内容:用户姓名,身份证号码,已购车票的车次,出发时间,到达时间. 车票信息链表示意图: 车次 起始站 发车时间 downn next

火车票订票管理系统++设计报告

摘要 随着时代的发展,计算系软件和系统的成熟,火车票的正当管理成为一个影响铁路部门正常运营的因素之一,而建立火车票订票管理系统是一个很好的解决办法。 作为计算机应用的一部分,使用计算机对火车票信息进行管理,具有手工管理所无法比拟的优点,例如检索迅速、查找方便、可靠性高、存储量大、保密性好等,这些优点能够极大的提高火车票信息管理的效率,也正体现了火车票的科学化正规化管理 现在随着社会的发展,数据量急剧增长,现在人们就借助计算机和数据库技术科学的保存大量的数据,以便能更好的利用这些数据资源。本论文就是通过MFC的整体设计把数据库与应用程序相连接,做成一个火车票的订票管理系统,使得火车票管理员能够有效的管理车次信息、旅客信息、退票信息等。同时用户可以通过查询到相关的火车票信息,选择是否适合自己,也可以在网上直接订票、退票,省时省力。 关键字:SQL2000,MFC,数据库设计,火车票订票系统 目录 第一章概述 1.1项目开发背景 1.2系统开发目的 1.3技术可行性研究 第二章开发平台介绍 2.1 系统的架构 2.2系统运行环境操作系统 2.3系统开发环境 2.4开发工具 第三章数据库设计 3.1系统详细调查 3.2数据流图 3.3数据库设计 第四章系统的界面设计 4.1主窗口界面 4.2旅客信息窗口 4.3车次信息窗口 4.4取票及退票窗口 第五章系统的实现 总结与展望 致谢 参考文献 需求分析 需求分析的任务 调查机票预定系统应用领域涉及的内容,对涉及到领域的各个应用的信息要求和操作要求进行详细分析,形成需求分析说明书。最重要的是调查、收集信息、分析购票人信息和火车预定流程。处理要求、数据的安全性与完整性要求。 要求系统能有效、快速、安全、可靠和无误的完成上述操作。并要求客户机的界面要简单明

相关主题
文本预览
相关文档 最新文档