数据结构课程设计火车票务系统的设计与实现 地铁建设问题1.docx

上传人:b****1 文档编号:412080 上传时间:2022-10-09 格式:DOCX 页数:24 大小:155.32KB
下载 相关 举报
数据结构课程设计火车票务系统的设计与实现 地铁建设问题1.docx_第1页
第1页 / 共24页
数据结构课程设计火车票务系统的设计与实现 地铁建设问题1.docx_第2页
第2页 / 共24页
数据结构课程设计火车票务系统的设计与实现 地铁建设问题1.docx_第3页
第3页 / 共24页
数据结构课程设计火车票务系统的设计与实现 地铁建设问题1.docx_第4页
第4页 / 共24页
数据结构课程设计火车票务系统的设计与实现 地铁建设问题1.docx_第5页
第5页 / 共24页
点击查看更多>>
下载资源
资源描述

数据结构课程设计火车票务系统的设计与实现 地铁建设问题1.docx

《数据结构课程设计火车票务系统的设计与实现 地铁建设问题1.docx》由会员分享,可在线阅读,更多相关《数据结构课程设计火车票务系统的设计与实现 地铁建设问题1.docx(24页珍藏版)》请在冰豆网上搜索。

数据结构课程设计火车票务系统的设计与实现 地铁建设问题1.docx

数据结构课程设计火车票务系统的设计与实现地铁建设问题1

 

【设计目的】

数据结构是计算机专业的核心课程,是一门实践性很强的课程。

课程设计是加强学生实践能力的一个强有力手段,要求学生掌握数据结构的应用、算法的编写、类C语言的算法转换成C(C++)程序并上机调试的基本方法,还要求学生在完成程序设计的同时能够写出比较规范的设计报告。

严格实施课程设计这一环节,对于学生基本程序设计素养的培养和软件工作者工作作风的训练,将起到显著的促进作用,学以至用,才能真正的培养学生的能力。

【设计要求】

1、课程设计题目共两题,每个学生必须独立完成;

2、课程设计时间为1.5周;

3、设计语言C(C++)不限;

4、课余时间完成源程序和课程设计报告等文档书写工作,上机时间只能做调试工作。

上机时带上源程序、数据结构教材、C语言教材。

题目一火车票务系统的设计与实现

设计一个火车票务系统,并完成如下功能:

列车记录包含6项:

车次、始发站、终点站、发车时间、到站时间、票价

Z38、武昌、北京西、21:

06、07:

01、272

(1)列车信息录入:

输入列车基本信息。

(2)列车信息删除:

删除车次信息。

(列车线路停运)

(3)列车信息修改:

删除车次信息。

(列车时间、票价等信息有变动)

(4)列车信息输出:

根据格式对齐输出列车信息。

(5)列车信息查询:

可根据车次号、始发站、终点站查询满足条件的列车信息。

(6)列车信息排序:

可根据票价对列车信息进行排序并输出。

 

【需求分析】

一 根据题目要求系统主界面应有以下几个功能:

1录入信息

2显示信息

3查询信息

4增加信息

5修改信息

6删除信息

7排序

对于各种有关信息操作,必须包括有车次、始发站、终点站、发车时间、到站时间、票价

二查询包括:

由车次,起点站和终点站的分别查询

三排序:

由票价排序

【设计分析】

头文件:

#include

#include

#defineMAX100

#defineN50

typedefstructtime//时间类型

{

intx,y,z;//分别对应年,月,日

}TIME;

typedefstructcnode//票信息类型

{

intno;//票号

intid;//购票人证件号

TIMEdate;//购票日期

structcnode*next;

}CNODE;

typedefstructtnode//车次信息类型

{

chardata;//车次编号

structtnode*lchild,*rchild;

CNODE*head;

}TNODE;

voidcreate();//按车次建立二叉排序树

voidinsert(int);//增加新的车次(二叉排序树的插入)

voiddel();//取消车次(二叉排序树节点删除)

voidinorder(TNODE*);//中序遍历车次二叉排序树(仅显示车次信息)

voidinorder_all(TNODE*);//中序遍历车次二叉排序树(显示车次及售票信息)

voidpreorder(TNODE*);//先序遍历车次二叉排序树(仅显示车次信息)

TNODE*search();//按车次编号搜索

CNODE*insert_c(CNODE*);//插入新的售票信息(单张)

CNODE*insert_c_more(CNODE*);//插入新的售票信息(批量)

CNODE*del_c(CNODE*,CNODE*);//退票处理(删除售票信息)

CNODE*search_c(CNODE*,int);//按票号查询

voidsearch_c_id(CNODE*,int);//按购票人证件号搜索(限定某车次)

voidsearch_c_id_all(TNODE*,int);//按购票人证件号搜索(所有车次)

voidsearch_date(CNODE*,TIME);//按购票日期搜索(限定某车次)

voidsearch_date_all(TNODE*,TIME);//按购票日期搜索(所有车次)

voidprint_c(CNODE*);//输出售票纪录(单张)

voidprint_c_all(CNODE*);//输出售票纪录(批量)

TNODE*root=NULL;

voidmain()

{

inti,func,no,ok;

TNODE*t;

CNODE*c;

TIMEd;

printf("\n\n\n");

for(i=0;i<15;i++)printf("=");

printf("列车售票信息管理系统");

for(i=0;i<15;i++)printf("=");

printf("\n");

printf("\t1.车次信息管理\n");

printf("\t2.售票记录管理\n");

printf("\t3.售票记录查询\n");

printf("\t4.售票记录一览\n");

printf("\t5.退出系统\n");

for(i=0;i

printf("\n请选择您所需要的功能:

");

fflush(stdin);

scanf("%d",&func);

switch(func){

case1:

printf("\n\n车次信息管理>>>>\n");

for(i=0;i

printf("\n\t1.增加新的车次");

printf("\n\t2.取消车次");

printf("\n\t3.返回上级菜单\n");

for(i=0;i

printf("\n请选择您所需要的功能:

");

fflush(stdin);

scanf("%d",&func);

switch(func){

case1:

create();

printf("\n售票信息更新成功!

\n\n");

break;

case2:

del();break;

case3:

main();break;

default:

printf("\n[错误]功能号输入有误!

请重新输入!

");

}

break;

case2:

printf("\n\n售票记录管理>>>>\n");

for(i=0;i

printf("\n\t1.增加新的售票记录");

printf("\n\t2.退票");

printf("\n\t3.返回上级菜单\n");

for(i=0;i

printf("\n请选择您所需要的功能:

");

fflush(stdin);

scanf("%d",&func);

switch(func){

case1:

t=search();

if(t!

=NULL)t->head=insert_c_more(t->head);

break;

case2:

t=search();

printf("需要退票的票号:

");

scanf("%d",&no);

t->head=del_c(t->head,search_c(t->head,no));

break;

case3:

main();break;

default:

printf("\n[错误]功能号输入有误!

请重新输入!

");

}

break;

case3:

printf("\n\n售票记录查询>>>>\n");

for(i=0;i

printf("\n\t1.按票号搜索");

printf("\n\t2.按购票者证件号搜索");

printf("\n\t3.按购票日期搜索");

printf("\n\t4.返回上级菜单\n");

for(i=0;i

printf("\n请选择您所需要的功能:

");

fflush(stdin);

scanf("%d",&func);

switch(func){

case1:

t=search();

if(t!

=NULL){

printf("\n请输入您所要查询的票号:

");

scanf("%d",&no);

c=search_c(t->head,no);

if(c==NULL)printf("[错误]没有该票号的纪录!

该票还未售出或为废票!

自动返回上级菜单\n...");}

break;

case2:

printf("\n请输入您所要查询的购票者证件号:

");

scanf("%d",&no);

search_c_id_all(root,no);

printf("搜索完毕!

自动返回上级菜单\n...");

break;

case3:

do{

printf("\n请输入您所要查询的日期(格式:

yy-mm-dd):

");

scanf("%d-%d-%d",&d.x,&d.y,&d.z);

if(d.y<13&&d.y>0){

if(d.y==1||d.y==3||d.y==5||d.y==7||d.y==8||d.y==10||d.y==12)

if(d.z<32&&d.z>0)ok=1;

elseif(d.z==2)

if(d.z<30&&d.z>0)ok=1;

else

if(d.z<31&&d.z>0)ok=1;

}

elseok=0;

if(!

ok)printf("\n[错误]日期输入有误!

请重新输入!

");

}while(!

ok);

printf("\n指定车次吗?

(1->是,0->否):

");

scanf("%d",&ok);

if(ok)search_date(search()->head,d);

elsesearch_date_all(root,d);

break;

case4:

main();break;

default:

printf("\n[错误]功能号输入有误!

自动返回上级菜单\n...");

}

break;

case4:

printf("\n\n售票记录一览>>>>\n");

for(i=0;i

printf("\n\t1.仅浏览车次");

printf("\n\t2.指定车次已售票记录");

printf("\n\t3.所有车次已售票记录");

printf("\n\t4.测试:

先序遍历车次");

printf("\n\t5.返回上级菜单\n");

for(i=0;i

printf("\n请选择您所需要的功能:

");

fflush(stdin);

scanf("%d",&func);

switch(func){

case1:

printf("\n+++仅浏览车次\n");

if(root==NULL)printf("[错误]无车次纪录!

");

else{inorder(root);printf("\n");}

break;

case2:

printf(

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

当前位置:首页 > 考试认证 > 从业资格考试

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1