0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

C语言程序设计--火车订票系统

白茶茶668 来源:白茶茶668 作者:白茶茶668 2023-08-01 00:40 次阅读

任务要求:

创建一个火车票管理系统,功能包括:

(1)录入班次信息(信息用文件保存),可不定时地增加班次数据

(2)浏览班次信息,可显示出所有班次当前状总(如果当前系统时间超过了某班 次的发车时间,则显示“此班已发出”的提示信息)。

(3)查询路线(起点、终点):可按班次号查询 ,可按终点站查询

(4)增加及修改班次和删除班次信息 (5)售票和退票功能

系统设计:


wKgaomTH5A6AJDpWAAHzNxKvY5o565.png

一.车票管理系统的功能为:1.录入班次2. 显示所有班次3.查询班次4.增加班次 5.售票6.退票7.修改班次8.删除班次9.退出

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

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

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

(3)完成每次功能,可保存用户的修改的信息,及时更新文件信息。下次查询时内容为最新信息。实时的信息更新对比等。

一个名TICKET的结构体进行定义,包括num[10] hour[3]; min[3] from[10]; to[10]; hours max; now;等结构体成员。

然后对调用函数进行定义。int system_time()系统时间,void NewMessage() 新纪录录入函数,void ShowTable1() void ShowTable2(int i) 线框调用1和2不用每次输,void Display()显示所有函数,void add()增加记录,void save() 保存函数,void save()保存函数,void load() 按班次查询函数,void search() 查询函数,void change()修改函数,void quit()退出函数,void Ticketorder() 售票函数,void Ticketdelete()删除函数,int menu_select()菜单函数, int whether(int)判断时间是否超出函数,void find(char s1[],char s2[]) 查询函数★//s1为班次//s2为终点站,void deletemessage()删除函数,int findnum(char s1[])班次查询函数,void get(int,int)修改及增加班次,char *menu[]菜单函数。

该系统将这些信息均放在文件d:车票管理系统0中。

最后定义main()函数,利用函数调用,实现程序的各种功能。将其放在系统文件d:车票管理系统0中。

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

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

程序测试:

3.0 菜单界面


wKgZomTH5A-AKkK2AADWaJohyqQ064.png

图3-1菜单界面

如上图所示,该程序为用户提供菜单界面,用户可以对程序的各种功能进行选择,方便用户使用。选择1-9并按enter键进行操作。如选择出错,系统将提出警告,并提醒用户重新进行选择。

录入班次功能



wKgaomTH5A-AE4vnAABYmTFzyag396.png

图3-1- 1第一次输入时的界面

wKgZomTH5A-AGvC0AABcfLOXT9s830.png

图3-1- 2第二次输入时的界面

如上图所示,该功能实现录入班次信息。选择1按enter键进入该功能,程序提醒用户输入车次.发车时间.起始站.终点站.行车时间.额定载量.已售票数,输入完毕后按enter键将完成录入班次结果,同时程序将再次提醒用户进行新的选择。而第二次输入时提醒已经输过,不能在加。

3.2查询所有班次功能



wKgaomTH5A-AbtSRAAEIWifmPQE205.png

图 3-2-1查询班次界面


wKgZomTH5BCAGuQ4AABVLBN3ybg038.png

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

该功能将实现程序运行班次的查询。选择3并按enter键将实现该功能。分班次和终点站两种方式查询。


3.3增加班次功能


wKgaomTH5BCAEa4SAACr0KoMEvo448.png

添加图片注释,不超过 140 字(可选)

wKgZomTH5BCAe_WUAABtWKdzStw232.png

图3-2-3增加班次功能界面

wKgaomTH5BCAAWaLAAHZkl7Vxzs170.png

图3-2-4增加班次后界面

该功能将增加班次信息,帮助用户更新班次信息。选择4并按enter键将实现该功能,再按提示输入就行。按任意键返回主菜单。

3.3售票功能


wKgZomTH5BGAdPjdAABGYmEBDLY347.png

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


wKgaomTH5BGAKtFlAABkN34_Nxg551.png

图3-3-2选择售票后的界面



wKgZomTH5BKAUht5AAFicOfBPY4000.png

图3-3-3订票的界面

选择5按enter键实现该功能,按任意键关闭程序。买票程序可提示买票成功否,且自动判断是否可卖。

3.4退票功能


wKgaomTH5BKACxg4AAEWO-xzGh4954.png

编辑切换为居中

图3-4-1退票界面

选择6按enter键实现该功能,按任意键关闭程序。退票程序可提示退票成功否,且自动判断是否可退。

3.5修改班次功能


wKgZomTH5BKAQ3n-AADUAhWtNco344.png

编辑切换为居中

图3-5-1修改界面

选择7按enter键实现该功能,按任意键关闭程序。按提示操作修改班次。

3.6 删除班次功能


wKgaomTH5BOACy0MAAEZ5w-RfRs234.png

编辑切换为居中

图3-6-1删除界面

3.7 退出功能


wKgZomTH5BOAVzk5AAFHLJKSdgQ104.png

编辑切换为居中

图3-7-1退出界面


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


部分程序:


#include ///宏定义函数

#include //串操作及内存操作函数

#include /////调用系统函数

#include ///时间库函数

#include ///输入输出函数

#define N 1000 //宏定义多条记录

typedef struct TICKET ////定义新结构体TICKET

{

char num[10]; //车次编号

char hour[3]; //时间,,小时

char min[3]; //分钟

char from[10]; //起始站

char to[10]; //终点站

float hours; //车程实际时间

int max; //最大车载容量

int now; //已售票数

}CLASS;

int class_num=0; ///初始班次总数为0

CLASS records[N]; // 多条记录

int system_time(); //系统时间

void NewMessage(); //新纪录*录入函数******

void ShowTable1(); //线框调用1,,,不用每次输


printf("******************************************************");

printf("n请选择(1-9):");

scanf("%s",s);

c=atoi(s); //atoi将字符串转换成一个整数值

} ///输出菜单面

return c; ////返回请求

}

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

void NewMessage() //*录入函数******

{

int i=0,j=5,h; ////

char s[5];

FILE *fp; ////定义文件型指针变量

system("cls"); //刷屏

if((fp=fopen("d:车票管理系统0.dat","rb"))!=NULL) //fopen打开文件

{

printf("车票信息已经存在请选择增加功能!n");

printf("任意输入则返回菜单n");

scanf("%s",s);

i=1; //通过是1

}

if(i==0)

{

system("cls"); //刷屏

printf("请输入要录入班次总数:n");

scanf("%d",&class_num); //指向班次指针

system("cls"); //刷屏

for(i=0;i

{

system("cls"); //刷屏

printf("请输入第%d个班次信息:n",i+1);

h=-1;

for(;h!=i;) ///循环输出

{

printf("请输入班次:n");

scanf("%s",records[i].num);

for(h=0;h

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

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

{

printf("输入错误!该班次已存在!n");

break; ///返回

}

}

get(i,j); ////修改及增加班次*

j=5;

}

save(); //调用保存函数

}

}

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


wKgaomTH5BOAaUIoAAVYDYa41-E062.png

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • C语言
    +关注

    关注

    180

    文章

    7533

    浏览量

    128783
  • 程序设计
    +关注

    关注

    3

    文章

    258

    浏览量

    30197
收藏 人收藏

    评论

    相关推荐

    C语言程序设计》学习指南

    。通过该课程学习,使你掌握面向过程语言--C语言的基本语法、程序设计的基本思想和程序调试的基本方法,初步具备利用
    发表于 03-03 15:12

    c语言程序设计教程视频

    c语言程序设计教程视频
    发表于 07-24 10:46

    c语言程序设计大全

    c语言程序设计大全
    发表于 06-10 09:48

    单片机原理及c语言程序设计

    0417、C语言程序设计及应用实例单片机的C语言应用程序设计 0413、单片机原理与应用及
    发表于 08-14 16:31

    c语言程序设计实例

    c语言程序设计实例
    发表于 12-09 14:10

    单片机的C语言程序设计与应用

    《单片机的C语言程序设计与应用-第4章(PPT)》由会员分享,可在线阅读,更多相关《单片机的C语言程序设
    发表于 07-14 08:06

    c语言程序设计案例教程

    c语言程序设计案例教程篇一下面让我们看一下如何学习C语言。了解C
    发表于 07-20 07:25

    嵌入式C语言程序设计基础大汇总

    是运行速度快、编译效率高、移植性好和可读性强。C语言具有简单的语法结构和强大的处理功能,并可方便地实现对系统硬件的直接操作。C语言支持模块化
    发表于 11-09 07:13

    C语言模块化程序设计理解

    程序设计语言,在模块的划分上主要依据功能(依功能进行划分在面向对象设计中成为一个错误,牛顿定律遇到了相对论),C语言模块化程序设计需理解如下概念:  (1) 模块即是一个.
    发表于 12-15 06:34

    C51语言程序设计技巧

    1 C51语言程序设计\技巧 C语言 是一种高级程序设计语言,它提供了十分完备的规范化流程控制结构。因此采用C51语言设计单片机应用
    发表于 05-17 14:02 5815次阅读
    C51<b class='flag-5'>语言</b><b class='flag-5'>程序设计</b>技巧

    C语言程序设计

    C语言程序设计
    发表于 05-16 11:05 0次下载

    C语言程序设计第四讲结构化程序设计之选择

    C语言程序设计第四讲结构化程序设计之选择
    发表于 12-22 10:34 0次下载

    C语言程序设计.pdf

    C语言程序设计.pdf
    发表于 12-29 17:36 0次下载

    C语言程序设计火车订票系统

    任务要求:创建一个火车票管理系统,功能包括:(1)录入班次信息(信息用文件保存)可不定时地增加班次数据(2)浏览班次信息可显示出所有班次当前状总(如果当前系统时间超过了某班         次的发车
    发表于 04-03 09:32 4次下载

    C语言程序设计(ppt版)

    C语言程序设计(ppt版)
    发表于 08-07 15:33 12次下载