火车订票管理系统主程序流程.doc_第1页
火车订票管理系统主程序流程.doc_第2页
火车订票管理系统主程序流程.doc_第3页
火车订票管理系统主程序流程.doc_第4页
火车订票管理系统主程序流程.doc_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

程序简介此程序是采用多文件模块化形式编写;其中自定义头文件中包括了程序中所有调用的函数的声明,以及需要的所有系统头文件。#include #include #include #include #include #include extern void searchtrain(link l);extern void Modify(link l);extern void showtrain(link l);extern void SaveTrainInfo(link l);extern void printdata(Node *q);extern void printhead();等编写时的分块包括订票块、查询块、输出块,及已订票修改部分等。订票块则包含了定票流程的所有代码。查询块中是通过车次号码或是到达城市来查询的。输出部分包括了主界面的输出,已定车票信息的输出,所查车次信息输出的头部分。订票修改即是改定过程的编程。即此程序包括了查询、订票、改定的流程。编程过程在编写该程序时,遇到了信息的保存问题。订票时与改定时的录入信息的保存不知如何处理;之后将保存的部分分为链表暂存和文件的保存,在录入信息时是暂存在链表中的,当离开此系统是会提示是否保存信息,若是则保存到文件中。此举方便了票的改定,将数据分割开了,也精简了程序,更便于阅读。编程模块划分后,编写程序之后的编译时,总是连分文件编译时都无法通过。但是写入的代码经过检查又没有问题,一直困扰着我。直到想起老师教的课本以外的知识,并以一种玩玩试一试的心态用条件编译得以解决此问题。同时在编程时多次用到“清屏”,保证了输出界面的简洁。在分出模块后,未完成所有部分的编程时的试运行时出现刚一进入子程序时便会回到主界面,后发现时由于只有输出部分没有输入部分,每当运行完子程序后回到主程序时都会被“清屏”,结果造成编译时正常,到运行时却漏洞百出。在编程时,由于对文件的处理不熟悉,以及计算机的设置问题没考虑,使用了w+的调用方式,使得在保存数据到文件时出现无法写入文件的现象。在百度,问同学以及问老师后才用wb+和别的方式调用,并写入成功。这个程序时我学习计算机c以来编写的最大型涵盖面最广的一个程序,没有之一。但同时我也知道这在c语言编程中也只是很小的一个小程序而已,我在这编程中发现:我要学的还有很多,大型程序也不是一个人能写出来的,会一些编程技巧是很有必要的,与人合作是必须的,当然了,我不是在写诗,而是真的这么觉得。一个人会的有限,专精方向也不同,若能好好的合作肯定可以超过一个人单干。部分源代码订票程序#ifndef TRAINHEAD_H#define TRAINHEAD_H#includetrainhead.h#endif/*条件编译,作用是防止头文件被重复引用*/int saveflag = 0;void Bookticket(link l,booklink k)Node *p10,*q;char c2,tnum10,str10,str110;Book *r,*s;int i = 0,t = 0,flag = 0,dnum;r = k;while(r-next!=NULL)r = r-next;printf(Input the city you want to go:);scanf(%s,&str);q = l-next ;while(q!=NULL) if(strcmp(q-data.reachcity,str)=0) pi = q ; i+; q = q-next ; printf(nthe number of record have %dn,i); printhead(); for(t=0;ti;t+) printdata(pt); if(i=0) printf(nSorry!Cant find the train for you!n); else printf(ndo you want to book it?n); scanf(%s,c);if(strcmp(c,Y)=0|strcmp(c,y)=0)/*判断是否订票*/ s = (Book*)malloc(sizeof(Book); printf(nInput your name: ); scanf(%s,&); printf(nInput your ID: ); scanf(%s,&str1); strcpy(s-data.num,str1);printf(nplease input the number of the train:);scanf(%s,tnum);for(t=0;tdata.num,tnum)=0)if(pt-data.ticketnum data.ticketnum);flag = 1;break;if(flag=0)printf(ninput error);Sleep(2);return;printf(nInput your bookNum: );scanf(%d,&dnum);pt-data.ticketnum=pt-data.ticketnum-dnum;/*定票成功则可供订的票数相应减少*/s-data.bookNum = dnum ;s-next = NULL ;r-next = s ;r = s;printf(nLucky!you have booked a ticket!);getch();saveflag = 1 ; 使用说明运行程序时,首先进入到菜单部分,菜单部分提供了菜单显示和输入功能部分。其运行效果如图19.1所示。在主界面上输入数字06,实现相应的功能。图19.1 火车订票系统主界面主界面输入“1”,进入添加火车信息界面,如图19.2所示。根据屏幕上给出的提示输入火车的车次,起点,终点,出发时间,到达时间,票价和可以订购的票数。图19.2 输入效果图主界面输入“2”,可以查询火车信息,可以选择查询的方法有两种,一种是按照车次查询,一种是按照你想要到达的地方查询,运行效果如图19.3所示。图19.3 查询效果图当在主界面输入“3”时,进入订票界面,按照提示输入你想要到达的城市,会自动显示出你终点站为你输入城市的信息,根据提示输入你是否决定订票以及你的个人信息,运行效果如图19.4所示。图19.4 订票效果图当在主界面输入“4”时,进入修改界面,根据提示输入你要修改的内容,修改模块的运行效果如图19.5所示。图19.5 修改

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论