列车时刻表信息管理系统实践报告C语言源代码_第1页
列车时刻表信息管理系统实践报告C语言源代码_第2页
列车时刻表信息管理系统实践报告C语言源代码_第3页
列车时刻表信息管理系统实践报告C语言源代码_第4页
列车时刻表信息管理系统实践报告C语言源代码_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

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

文档简介

1、ttinclude zstdio. h ttinclude zstdlib ,axcludezstring. hv*定义头文件,处理文件及字符数组时要用到相应功能#define n 10 void fmenu() (system(/ cis ); printf (*vl 20*n );%cl.查询列车欢迎使用苏州列车时刻表信息管理系统printf ( ttttn3)printf (z n,z%c2.修改列车n3)printf ( ttt t%c3.增加列车n3)printf cw);%c4.取消列车n3)printf (t ttt%c5.保存信息n3)printf cn2);r ax* f,p

2、rintf (,2 t%co.vizkxxkxxxxxklx*、”);tttprintf j ; if选择要执行的操作:n); /*菜单程序,用于各种功能的选择*/ struct train/*定义结构体*/ );phiiatfi4rnfs;t t,tchar checi 6;旺1吁翦;yr);tint month;printf ( t把* totite;ttt lie咕件用011y杏定义一个结构体数组*/ void paixu(struct train *p) ;/*函数声明*/void chaxun (struct train *p)/*子程序其功能是查询列车*/ (paixu(liech

3、e) ;/*先排序一下,方便查看*/ char a 8 ;/*定义一个字符数组,输入要查 询的列车 int k=0, i, c;printf (请输入要查询的列车:n ); scanf (%s,a); for(i=0;in;i+)if (strcmp(pi , name, a) =0)printf (? 2 苏州 一%st%s (车次)t%d 年 %dt%d*%02dn, pi name, pi checi, pi year, pi , month, p_i , day, pi hour, pi , minute) ;/* 车的信息全部打出*/k+;)if(k=0)printf (z抱歉,没有

4、这趟列车n ) ; /*没有查到时,打出通知*/ printf c按1继续,按0退出);/选择继续或者退出*/ scanf (/ %d/ ,&c);if (c!=0)chaxun(lieche);void xiugai (struct train *p)/*子程序用于修改列车时间*/ (char a 8, b 6;int i, x, c, k 二 0, h, mi, y, m, d, q;printf (/请输入要修改的列车:n );scanf (%s, a);for(i=0;in;i+)(if (st rcmp (pi name, a) =0)printf (z,苏 州 一%st%s ()车

5、次 t%d 年 %dt%d*%02dn, pi name, pi checi, pi. year, pi month, p. i , day, pi hour, pi , minute)printf (要修改这趟列车吗? nl.是0.否n ); scanf &q) ; if (q=l)printf (请输入修改后的车次:n,z) ; scanf (刎,b);printf (请输入修改后的年月日:n); scanf ( %d%d%d, &y, &m, &d);scanf (/z%d%d ,&h, &mi);printf c确定修改吗? nl.是2 .否n ); /*选择是否确定修改列车时%d日将

6、所错误操作*/问,防小杳万iiscan f (d 9 &x);if (x=l) (strcpy (pi checi, b) ; pi. yearly;%d日pi month z1 m; pi. day=d; pi hour=h; pi minute 二 mi; printfc 己经修 改此列车);k+;)! if (k=0)printfc抱歉,没有这趟列车n ) ; /*没有查到时,打出通知*/ printf。按继 续,按scanf &c); 0退出n);if (c!=0)xiugai (lieche);void zengjia(struct train*p) /*子程序,用于列车增加*/st

7、ruct train a;char空白位置,在此处插入所填列车*/b 口二 / 0000000 / ;/*printf (/请输入要增加的列车目的地 : 尸scanf (s, a. name);printf (/请输入修改后的车次:rt);scanf a. checi);printf (/请输入所增加列车的年月日:);scanf (,z%d%d%d/z, &a, year, &a, month, &a, day);printf(/请输入所增加列车的小时和分钟:n);scanf (d%d, &a, hour, &a, minute);printf (确定要增加这一趟列车吗?nl.是0.否n);s

8、canf&x);if(x=l) for (i=0;in-l;i+)if (strcmp (pi name, b) =0) (strcpy (pi , name, a. name) ; strcpy (pij. checi, a. checi);pi. year=a , year;pi , month=a month; pi , day=a day; pi hour=a hour;pi , minute=a minute;strcpy (pli+l. name, b) ;/*找到位置,插入列车,并把0000000给后面一个结构体*/printfc已经增加这趟列车“);break; paixu(l

9、ieche) ; printf ( 按 1 继续,按 0 退出 n); scanf (%d, &c) ; if (c!=0) zengjia (lieche);1 voidpaixu(struct train *p)/*子程序,用于同名列车时刻排序*/ int i, x; char a6;for(i=0;ipi+l. year)/根据年份排序,strcpy (a, pi , checi);strcpy (pi checi, pi+l checi);strcpy(pi+l. checi, pi , checi) ; x 二 pi , year; pi year=pi+l. year; year二

10、x;x=pi month;pi month 二 pi+l , month;pi+l , month 二 x;x 二 pi. day;pi day=pi+l day;pi+l day=x;x 二 pi hour;pi hour 二hour;pi+l , hour=x;x 二 pi. minute;pi. minute=pi+l minute;pi+l. minute 二 x;else if (pli year 二二 pi+l. year)if (pil. monthpi+l. month)/ 相同年数,根据月份排序。strcpy(a, pi checi) ; strcpy(pli , checi

11、, pi+l checi);strcpy(pi+l checi, pi. checi) ; x=pli , month;pi. month h pli+1 month;pi+l month 二 x;x 二 pi , day;pi. day=pi+l day;pi+l day=x;x 二 pi , hour;pi , hour 二 pi+l , hour;pi+l hour二x;x 二 pi , minute;pi , minute 22 pi+l minute;pi+l minuter;)else if (pli month 二二 pi+l month)if (pij. daypi+l. da

12、y)相同月份、根据天排序strcpy (a, pi checi) ; strcpy (pi checi, pi+l , checi);strcpy(pi+l checi, pi checi) ; x 二 pi , day;pit.day 二 pi+l. day;pi+l day=x;x 二 pi , hour;pi , hour 二 pi+l hour;pi+l. hour=x; x 二 pi , minute;pi , minute=pi+ minute; pi+l. minute 二 x; )else if(pi. day=pi+l. day)if (pi. hourpi+l. hour)

13、相同天数,根据小时排序1strcpy (a, p i , checi);strcpy(pi. checi, pi+l , checi);strcpy (pi+l checi, pi checi); x=pi , hour;pi hour 二 pi+l hour;pi+l , hour=x;x 二 pi . minute;pi. minute 二 pi+l minute;pi+l minute 二 x;排序else if (pi. hour=pi+l.hour)/相同小时,根据分strcpy (a, pi checi);strcpy (pi , checi, pi+l checi);strcpy

14、 (pi+l checi, pi checi) ; x=pi , minute;pi minute z1 pi+l , minute; pi+l , minute二x;void quxiao (struct train *p)/* 子程序,用于取消列车 */char a8;char b 口二 0000000 ;int i, x, c, k=0, s;printf。请输入要取消的列车n); scanf a);for(i=0;in;i+) (if (strcmp (pi name, a) =0)printf c 苏 州 一 %st%s (车 次)t%d 年/d 月/d flt%d%02dnz, ,

15、 pi. name, pi checi, pi year, pi. month, pi. day, pi hour, pi. minute) ; printf(”确定要删除这一次列车吗?nl,是0.否);/*询问是否取消*/scanf&x);if (x=l)for (s=i ; s (n-1; s+)(strcpy (p s , name, p s+1 , name);strcpy(ps checi, ps+l. checi); ps year=ps+l. year;ps month 二 ps+l month;*/ps. day 二 ps+l , day;ps hour 二 ps+l, hou

16、r;ps. minute二ps+l. minute;/*将列车取消,把后一个结构体往前移一位k+;if (k=0)printfc抱歉,没有这趟列车);/*先查一下有没有要取消的列车*/ printfc按1继续,按0退出);scanf&c);if (c!=0)quxiao(lieche);)void baocun(struct train *p)/* 子程序,用于数据保存 */int c, i 二 0, x;char b 二0000000;printfc确定要保存修改吗? nl.是2.否n );scanf ( d : &x);if (x!=0)9har a 20 ; printfc /请输入要保

17、存的路径及文件名(扩展名为.txt) : w) ;/*自己指定位置*/ scanfa);file *pps;(pps 二 fopen(a, w+)二二 null)/* 打开一个新的文本文件 */printfc不能打开此文件勿-exit (0);while (strcmp(liechei name, b) !二0) (fprintf (pps, /z%s %s %d %d %d %d:%02dn, ,)pfi. name, pi. checi, pi. year, pi, month, pi. day ,pi. hour, pi. minute) ;/*将结构体数组的数据写进里面*/fprint

18、f (pps, %s,b) ; printf c 文件己保存 rt);printf 0按1继续,按0退出n );scanf&c);if (c!=0)baocun(lieche);void main。/*主程序,负责整个程序架构及函数调用等*/system。2color 3b);/*更改前景和背景颜色*/ char b = / 0000000 / ;file *fp;/*/int x, i ;实践 wwenjian. txtz/,? j r+/f )二二null)/* 打开文件,输入数据 */(printfg不能打开数据库文件n );exit (0);for(i=0;in;i+)fscanf (fp, %s%s%d%d%d%d:%02d, liechei. name, liechei. checi, &liechei. year, &lieche i . month, &liechei. day, &liechei. hour, &liechei. mi

温馨提示

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

评论

0/150

提交评论