任务要求:

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

(1)录入班次信息(信息用文件保存),可不定时地增加班次数据
(2)浏览班次信息,可显示出所有班次当前状总(如果当前系统时间超过了某班         次的发车时间,则显示“此班已发出”的提示信息)。
(3)查询路线(起点、终点):可按班次号查询 ,可按终点站查询

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

系统设计:

一.车票管理系统的功能为: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  菜单界面

图3-1菜单界面

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

  1. 录入班次功能

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

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

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

3.2查询所有班次功能

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

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

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

3.3增加班次功能

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

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

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

3.3售票功能

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

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

图3-3-3订票的界面

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

3.4退票功能

图3-4-1退票界面

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

3.5修改班次功能

图3-5-1修改界面

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

3.6  删除班次功能

图3-6-1删除界面

3.7  退出功能

图3-7-1退出界面

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

部分程序:

#include<stdio.h>               ///宏定义函数

#include<string.h>            //串操作及内存操作函数

#include<stdlib.h>             /调用系统函数

#include<time.h>               ///时间库函数   

#include<conio.h>                 ///输入输出函数

#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,,,不用每次输 

void ShowTable2(int i);     //线框调用2,,,不用每次输   

void Display();           //显示所有函数

void add();             //增加记录

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[]={"*****************欢迎使用火车票查询系统*****************",

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

"\n                  1. 录入班次                        ",

"\n                  2. 显示所有班次                    ",

"\n                  3. 查询班次                        ",

"\n                  4. 增加班次                        ",

"\n                  5. 售票                            ",

"\n                  6. 退票                            ",

"\n                  7. 修改班次                        ",

"\n                  8. 删除班次                        ",

"\n                  9. 退出                            "};                              

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

void main()

   system("cls");            //刷屏

   while(1)                    //菜单函数循环

   {

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

      {

      case 1: NewMessage();break;     新纪录*录入函数******

      case 2: Display();break;               // //显示

      case 3: search();break;           //查找函数**

      case 4: add();break;               // //增加记录

      case 5: Ticketorder();break;           *售票函数***

      case 6: Ticketdelete();break;        //删除函数*

      case 7: change();break;              //修改函数**

      case 8: deletemessage();break;     //选择调用删除函数

      case 9: quit();break;      //退出函数******

      }

   }

}

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

int menu_select()         /菜单函数*

{

   char s[5];           ///定义要输入的数字功能

   int c,i;        

   system("cls");           //刷屏

   system("color 07");//改变颜色

   for(i=0;i<11;i++)

   {

      printf("%s",menu[i]);   //输出菜单各项

   }

   i=0;

    while(c<0||c>9)             //判断是否是19的命令

   { 

      printf("\n");               ///输出换行

     

        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<class_num;i++)             

      { 

          system("cls");    //刷屏

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

          h=-1;

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

          {

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

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

             for(h=0;h<i;h++)

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

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

                {

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

                   break;          ///返回

                }              

          }

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

          j=5;        

      }

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

   } 

}

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

资料包括:

需要完整的资料可在我的资源里下载,也可以加入我的纷传圈子,里面有资源压缩包的百度网盘下载地址及提取码。

纷传点击用微信打开即可,过程有点繁琐请见谅。

C语言程序设计--火车订票系统相关推荐

  1. c语言程序设计飞机,C语言程序设计――飞机订票系统

    <C语言程序设计――飞机订票系统>由会员分享,可在线阅读,更多相关<C语言程序设计――飞机订票系统(7页珍藏版)>请在人人文库网上搜索. 1.C语言程序设计飞机订票系统代码如下 ...

  2. spring boot火车订票系统 毕业设计源码031012

    火车订票系统的设计与实现 摘 要 信息化社会内需要与之针对性的信息获取途径,但是途径的扩展基本上为人们所努力的方向,由于站在的角度存在偏差,人们经常能够获得不同类型信息,这也是技术最为难以攻克的课题. ...

  3. 火车时刻表C语言报告,终稿火车订票系统的设计与实现课程设计.doc最终版(范文1)...

    <火车订票系统的设计与实现课程设计.doc>由会员分享,可免费在线阅读全文,更多与<(终稿)火车订票系统的设计与实现课程设计.doc(最终版)>相关文档资源请在帮帮文库(www ...

  4. C语言课程设计之火车订票系统

    C语言课程设计之火车订票系统 下载链接 运行效果图 文档报告 答辩PPT 下载链接 运行效果图 文档报告 答辩PPT

  5. 火车订票系统(c语言)

    火车订票系统 详细代码 #include <conio.h> #include <stdio.h> #include <stdlib.h> #include < ...

  6. java计算机毕业设计火车订票系统(附源码、数据库)

    java计算机毕业设计火车订票系统(附源码.数据库) 项目运行 环境配置: Jdk1.8 + Tomcat8.5 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(In ...

  7. java计算机毕业设计火车订票系统源码+mysql数据库+系统+lw文档+部署

    java计算机毕业设计火车订票系统源码+mysql数据库+系统+lw文档+部署 java计算机毕业设计火车订票系统源码+mysql数据库+系统+lw文档+部署 本源码技术栈: 项目架构:B/S架构 开 ...

  8. 计算机论文订票系统,计算机系毕业论文火车订票系统的设计与实现.doc

    计算机系毕业论文火车订票系统的设计与实现 火车订票系统的设计与实现 摘 要 随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用 ...

  9. C#WPF 项目开发(一)(火车订票系统)

    C#WPF 项目开发(一)(火车订票系统) 一.架构模式 I.了解架构模式 1.如何设计大型企业级的系统,在开始主要的代码开发之前,我们必须选择一种 合适的体系架构. (1).架构模式是对给定上下文的 ...

最新文章

  1. css3循环播放一组动画,CSS3 无穷循环的动画演示
  2. LAN,城域网,广域网,国际互联网
  3. -9 逆序输出一个整数的各位数字_【每日算法】基础算法——归并排序[求逆序对的数量](四)(思想很经典)...
  4. php添加项目,thinkphp添加一个项目
  5. Java基础入门笔记-对象与引用
  6. CNN发展历史【从LeNet到DenseNet】
  7. PostgreSQL 13 Beta 1 发布,大量新特性
  8. Rancher 1.6发布:EBS支持、密文管理和CLI增强
  9. python exec函数和eval函数_Python exec()和eval()的使用注意事项
  10. error: conflicting types for 错误原因及解决办法
  11. oracle audit_actions,Oracle Audit 功能的使用和说明
  12. [vue学习笔记]数组+事件+v-model的使用
  13. vue中a标签的href属性的写法
  14. 腾讯游戏天美工作室实习感悟
  15. 金融计算机次方的计算,金融理财计算器使用方法CASIOFC100,200.pdf
  16. 【全志T113-S3_100ask】15-1 内核5.4驱动spi屏幕——ILI9341
  17. 三星G9006W 6.0 root
  18. 网络问题 – bitbucket同步数据
  19. 云信小课堂|如何实现音视频安全检测?
  20. 零基础入门Jetson Nano——远程连接

热门文章

  1. Linux(Centos8)防火墙设置
  2. android汉明距离,C++实例之海明距离问题解析
  3. 定义在N个元素上的集合A上的等价关系一共有多少种
  4. 米家扫地机器人重置网络_米家扫地机器人如何重置系统
  5. php去前两字符,php 截取删除/去掉最后/第一个字符 前面几个字条
  6. bzoj 5308 [ZJOI2018] 胖
  7. 用SS5在Linux上搭建Socks5 Proxy代理服务器
  8. springboot 整合健康检查actuator <dependency> <groupId>org.springframework.boot</groupId>
  9. 中央层面首次!数据可作为生产要素按贡献参与分配,专家解析
  10. 基于python批量统计表格中的某一列去除异常值后的平均值