火车票管理系统——C语言程序设计实训报告Word文档格式.docx

上传人:wj 文档编号:218954 上传时间:2023-04-28 格式:DOCX 页数:21 大小:58.36KB
下载 相关 举报
火车票管理系统——C语言程序设计实训报告Word文档格式.docx_第1页
第1页 / 共21页
火车票管理系统——C语言程序设计实训报告Word文档格式.docx_第2页
第2页 / 共21页
火车票管理系统——C语言程序设计实训报告Word文档格式.docx_第3页
第3页 / 共21页
火车票管理系统——C语言程序设计实训报告Word文档格式.docx_第4页
第4页 / 共21页
火车票管理系统——C语言程序设计实训报告Word文档格式.docx_第5页
第5页 / 共21页
火车票管理系统——C语言程序设计实训报告Word文档格式.docx_第6页
第6页 / 共21页
火车票管理系统——C语言程序设计实训报告Word文档格式.docx_第7页
第7页 / 共21页
火车票管理系统——C语言程序设计实训报告Word文档格式.docx_第8页
第8页 / 共21页
火车票管理系统——C语言程序设计实训报告Word文档格式.docx_第9页
第9页 / 共21页
火车票管理系统——C语言程序设计实训报告Word文档格式.docx_第10页
第10页 / 共21页
火车票管理系统——C语言程序设计实训报告Word文档格式.docx_第11页
第11页 / 共21页
火车票管理系统——C语言程序设计实训报告Word文档格式.docx_第12页
第12页 / 共21页
火车票管理系统——C语言程序设计实训报告Word文档格式.docx_第13页
第13页 / 共21页
火车票管理系统——C语言程序设计实训报告Word文档格式.docx_第14页
第14页 / 共21页
火车票管理系统——C语言程序设计实训报告Word文档格式.docx_第15页
第15页 / 共21页
火车票管理系统——C语言程序设计实训报告Word文档格式.docx_第16页
第16页 / 共21页
火车票管理系统——C语言程序设计实训报告Word文档格式.docx_第17页
第17页 / 共21页
火车票管理系统——C语言程序设计实训报告Word文档格式.docx_第18页
第18页 / 共21页
火车票管理系统——C语言程序设计实训报告Word文档格式.docx_第19页
第19页 / 共21页
火车票管理系统——C语言程序设计实训报告Word文档格式.docx_第20页
第20页 / 共21页
亲,该文档总共21页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

火车票管理系统——C语言程序设计实训报告Word文档格式.docx

《火车票管理系统——C语言程序设计实训报告Word文档格式.docx》由会员分享,可在线阅读,更多相关《火车票管理系统——C语言程序设计实训报告Word文档格式.docx(21页珍藏版)》请在冰点文库上搜索。

火车票管理系统——C语言程序设计实训报告Word文档格式.docx

该系统要求实现一个简单、实用的火车票管理程序,主要功能包括火车票数据的录入、查找、删除、显示、售票、退票等。

所有火车票数据都要利用文件系统保存,以备系统下次运行时使用。

通过此课题,熟练掌握文件、数组、指针的各种操作,以及一些基本算法思想的应用。

本火车票管理系统应该具备如下功能:

1)录入班次:

车次信息包括:

班次、发车时间、起点站、终点站、行车时间、额定载量、已售票)

2)显示所有班次

3)查询班次

4)增加班次

5)售票

6)退票

7)修改班次

8)(退票)删除班次

9)退出

2、系统设计

2.1总体设计

采用模块化的程序设计方法,即将较大的任务按照一定的原则分为一个个较小的任务,然后分别设计各个小任务。

需要注意的是划分出来的模块应该相对独立但又相关,且容易理解。

可以用模块化层次结构图(即模块图)来分析其任务的划分,一般从上到下进行,最上面一层是主模块,下面各层是其上一层模块的逐步细化描述。

1

调用

录入班次

6调用

退票

5调用

售票

4调用

增加班次

2调用

显示所有班次

3调用

查询班次

9调用

退出

8调用

删除班次

7调用

修改班次

火车票信息管理系统

调用主菜单选项

完成功能后返回主菜单

车票管理系统软件的功能模块有:

(1)提供菜单界面,方便用户对程序个功能进行选择,选择要实现的功能按enter键进入该功能。

(2)接受用户输入的功能项,按enter键结束输入并将进入该系统,其需要的结果显示出来,方便用户查看。

(3)完成每次功能,可保存用户的修改的信息,及时更新文件信息。

下次查询时内容为最新信息。

实时的信息更新对比等。

一个名TICKET的结构体进行定义,包括num[10]hour[3];

min[3]from[10];

to[10];

hoursmax;

now;

等结构体成员。

然后对调用函数进行定义。

intsystem_time()系统时间

voidNewMessage()新纪录录入函数

voidShowTable1()voidShowTable2(inti)线框调用1和2不用每次输

voidDisplay()显示所有函数

voidadd()增加记录

voidsave()保存函数

voidload()按班次查询函数

voidsearch()查询函数

voidchange()修改函数

voidquit()退出函数

voidTicketorder()售票函数

voidTicketdelete()删除函数

intmenu_select()菜单函数

intwhether(int)判断时间是否超出函数

voidfind(chars1[],chars2[])查询函数//s1为班次//s2为终点站

voiddeletemessage()删除函数

intfindnum(chars1[])班次查询函数

voidget(int,int)修改及增加班次

char*menu[]菜单函数。

该系统将这些信息均放在文件d:

”车票管理系统0”中。

最后定义main()函数,利用函数调用,实现程序的各种功能。

将其放在系统文件d:

”车票管理系统0”中。

程序分为多个小模块,通过调用实现各种功能,增强了程序的可建设性。

程序把每种功能分开实现,更简单,实用程序更易理解。

2.2详细设计

主控main()函数执行流程

判断键值,调用相应函数,

完成相应功能

开始

登录,确定访问权限

输入[0~9]中的一个数值,选择相应操作,并选择判断输入值

结束

登录框

主界面

选择窗口

图2.2主控函数执行流程图

3、程序测试

3.0 菜单界面

图3-0菜单界面

如上图所示,该程序为用户提供菜单界面,用户可以对程序的各种功能进行选择,方便用户使用。

选择1-9并按enter键进行操作。

如选择出错,系统将提出警告,并提醒用户重新进行选择。

3.1录入班次功能

图3-1输入时的界面

如上图所示,该功能实现录入班次信息。

选择1按enter键进入该功能,程序提醒用户输入车次.发车时间.起始站.终点站.行车时间.额定载量.已售票数,输入完毕后按enter键将完成录入班次结果,同时程序将再次提醒用户进行新的选择。

3.2显示所有班次

图3-2查询班次界面

可以显示所有录入的信息。

3.3查询所有班次功能

图3-3选择查询方式的界面

该功能将实现程序运行班次的查询。

选择3并按enter键将实现该功能。

分班次和终点站两种方式查询。

3.4增加班次功能

图3-4增加班次界面

该功能将增加班次信息,帮助用户更新班次信息。

选择4并按enter键将实现该功能,再按提示输入就行。

按任意键返回主菜单。

3.5售票功能

图3-5-1选择售票功能界面

图3-3-2订票的界面

选择5按enter键实现该功能,按任意键关闭程序。

买票程序可提示买票成功否,且自动判断是否可卖。

3.6退票功能

图3-6退票界面

选择6按enter键实现该功能,按任意键关闭程序。

退票程序可提示退票成功否,且自动判断是否可退。

3.7修改班次功能

图3-7修改界面

选择7按enter键实现该功能,按任意键关闭程序。

按提示操作修改班次。

3.8删除班次功能

图3-8删除界面

3.9退出功能

图3-9退出界面

该功能可退出系统,选择9按enter键实现该功能

4、详细程序

#include<

stdio.h>

//宏定义函数

string.h>

//字符串操作及内存操作函数

stdlib.h>

//调用系统函数

time.h>

///时间库函数

conio.h>

///输入输出函数

#defineN1000//宏定义多条记录

typedefstructTICKET////定义新结构体TICKET

{

charnum[10];

//车次编号

charhour[3];

//时间:

小时

charmin[3];

分钟

charfrom[10];

//起始站

charto[10];

//终点站

floathours;

//车程实际时间

intmax;

//最大车载容量

intnow;

//已售票数

}CLASS;

intclass_num=0;

//初始班次总数为0

CLASSrecords[N];

//多条记录

intsystem_time();

//系统时间

voidNewMessage();

//新纪录*录入函数******

voidShowTable1();

//线框调用1,不用每次输

voidShowTable2(inti);

//线框调用2,不用每次输

voidDisplay();

//显示所有函数

voidadd();

//增加记录

voidsave();

//保存函数

voidload();

//按班次查询函数

voidsearch();

//查询函数

voidchange();

//修改函数**

voidquit();

//退出函数**

voidTicketorder();

//售票函数**

voidTicketdelete();

//删除函数**

intmenu_select();

//菜单函数**

intwhether(int);

//判断时间是否超出函数***

voidfind(chars1[],chars2[]);

//查询函数//s1为班次//s2为终点站

voiddeletemessage();

//删除函数

intfindnum(chars1[]);

//班次查询函数

voidget(int,int);

//修改及增加班次*

char*menu[]={"

*****************欢迎使用火车票查询系统*****************"

"

\n*****************1751200204何荣荣*********************"

\n*******************MENU功能菜单*********************"

\n1.录入班次"

\n2.显示所有班次"

\n3.查询班次"

\n4.增加班次"

\n5.售票"

\n6.退票"

\n7.修改班次"

\n8.删除班次"

\n9.退出"

};

/**************************主函数*************************/

voidmain()

{

while

(1)//菜单函数循环

{

switch(menu_select())//菜单函数*

{

case1:

NewMessage();

break;

//新纪录*录入函数******

case2:

Display();

//显示函数****

case3:

search();

//查找函数**

case4:

add();

//增加记录**

case5:

Ticketorder();

//*售票函数***

case6:

Ticketdelete();

//(退票)删除函数*

case7:

change();

//修改函数**

case8:

deletemessage();

//选择调用删除函数

case9:

quit();

//退出函数******

}

}

}

/***********************菜单函数**************************/

intmenu_select()//菜单函数*

chars[5];

//定义要输入的数字功能

intc,i;

for(i=0;

i<

11;

i++)

printf("

%s"

menu[i]);

//输出菜单各项)

i=0;

while(c<

0||c>

9)//判断是否是1到9的命令

{

\n"

);

//输出换行

printf("

******************************************************"

\n请选择(1-9):

scanf("

s);

c=atoi(s);

//atoi将字符串转换成一个整数值

}///输出菜单面

returnc;

////返回请求

/*******************************录入函数************************************/

voidNewMessage()//*录入函数*

{

inti=0,j=5,h;

FILE*fp;

//定义文件型指针变量

if((fp=fopen("

d:

车票管理系统0.dat"

"

rb"

))!

=NULL)//fopen打开文件

车票信息已经存在请选择4增加功能!

任意输入则返回菜单\n"

i=1;

//通过是1

}

if(i==0)

{

请输入要录入班次总数:

%d"

&

class_num);

//指向班次指针

for(i=0;

class_num;

i++)

{

printf("

请输入第%d个班次信息:

i+1);

h=-1;

for(;

h!

=i;

)//循环输出

{

printf("

请输入班次:

scanf("

records[i].num);

for(h=0;

h<

i;

h++)

if(strcmp(records[h].num,records[i].num)==0)

//判断字符串比较是否相等,待比较的字符串

{

printf("

输入错误!

该班次已存在!

break;

//返回

}

}

get(i,j);

//修改及增加班次*

j=5;

save();

//调用保存函数

/*******************************显示所有函数********************************/

voidDisplay()//显示所有函数

inti,j;

load();

//调用按班次查询函数

ShowTable1();

//线框调用1,不用每次输

for(i=0,j=0;

i++,j+=2)/////按班次顺序输出

\n|----------|----------|----------|----------|--------|--------|--------|\n"

if(whether(i))//判断时间是否超出函数***

|%10s|%5s:

%-4s|%10s|%10s|%8.1f|%8d|%8d|"

records[i].num,records[i].hour,

records[i].min, records[i].from,records[i].to,records[i].hours,

records[i].max,records[i].now);

else

|%10s|已发车|%10s|%10s|%8.1f|%8d|%8d|"

records[i].num,

records[i].from,records[i].to,records[i].hours,records[i].max,records[i].now);

ShowTable2(j);

//线框调用2

printf("

\n按任意键继续....\n"

getch();

/////从控制台读取一个字符,但不显示在屏幕上

/**********************************打印表头***********************************************/

voidShowTable1()//线框调用1,不用每次输

inti=2;

**************************MESSAGE车程信息**********************************\n"

\n|班次|发车时间|起点站|终点站|行车时间|额定载量|已售票|\n"

/***************************************打印表尾************************************************/

voidShowTable2(inti)//线框调用2,不用每次输。

{

/**************************查找函数11**************************/

voidsearch()////查询调用

inti;

chars1[10]={'

\0'

},s2[10]={'

1.按班次查询\n"

2.按终点站查询\n"

3.退出\n"

请选择(1-3):

scanf("

i);

switch(i)//多分枝选择语句

case1:

printf("

请输入要查询的班次:

//////s1为班次

s1);

find(s1,s2);

/////调用查找函数2

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

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

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

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