好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

2836.车票管理系统实验报告.doc

18页
  • 卖家[上传人]:s9****2
  • 文档编号:460781113
  • 上传时间:2022-08-22
  • 文档格式:DOC
  • 文档大小:224.50KB
  • / 18 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 车票管理系统本文源码索取,请联系:68661508一. 车票管理系统功能描述(1)录入班次信息(信息用文件保存),可不定时地增加班次数据(2)浏览班次信息,可显示出所有班次当前状总(如果当前系统时间超过了某班次的发车时间,则显示“此班已发出”的提示信息)3)查询路线(起点、终点):可按班次号查询 ,可按终点站查询(4)售票和退票功能 当查询出已定票人数小于额定载量且当前系统时间小于发车时间时才能售票,自动更新已售票人数退票时,输入退票的班次,当本班车未发出时才能退票,自动更新已售票人数二. 结构图开始车票管理系统按任意键从文本录入班次信息输入选择买卖票系统查询班次信息浏览班次信息查询方法选择买卖票选择买 卖 票查询主菜单结 束三.模块设计: 1.头文件,定义所需结构体,全局变量 #include"stdio.h"#include"string.h"#include"malloc.h"#include"windows.h"struct time //定义记录时间的结构体 { int hour; //包含小时 int minute; //分钟 }; struct ticket //定义记录车票信息的结构体 { int number; //定义车次 struct time ft ; //记录发车时间 char origin_station[20]; //起始站名称数组 char last_station[20]; //终点站名称数组 float last_time; //持续时间 int max_number; //车次最大运载量 int sold_ticket; //已售车票}train[100]; int i; int syshour; //记录系统时间小时 int sysminute; //记录系统时间分钟 char filename[50]; //文件名数组 int record; //记录条数记录 2.开始菜单printf("*****欢迎使用车票管理系统*****\n");显示开始菜单,欢迎使用系统;3.主菜单显示(mainmenu): void mainmenu() { system("cls"); printf("当前时间:"); system_time(); printf("**********************主菜单*********************\n"); printf("* 1.录入班次信息 *\n"); printf("* 2.浏览班次信息 *\n"); printf("* 3.查询班次信息 *\n"); printf("* 4.售票 *\n"); printf("* 5.退票 *\n"); printf("* 0.退出系统 *\n"); printf("*************************************************\n");}其中加入显示系统时间函数(system_time())int system_time() { SYSTEMTIME sys; GetLocalTime( &sys ); //调用系统时间 printf( "%4d /%02d/%02d %02d:%02d:%02d 星期%1d\n", sys.wYear, sys.wMonth, sys.wDay, sys.wHour, sys.wMinute, sys.wSecond, sys.wDayOfWeek); syshour=sys.wHour; sysminute=sys.wMinute; return 0;}主菜单运行结果: 其中第一行调用时间函数显示当前时间4.主菜单选择函数(chose()) void chose(){ int n; printf(" 请输入您想做的操作: "); scanf("%d",&n); switch(n) { case 1:load(); system("cls"); //每次进入主菜单清空 mainmenu(); break; case 2:show();break; case 3:searsh();break; case 4:buy_system();break; case 5:back_ticket();break; case 0:exit(0); //调用系统函数退出程序 }}主菜单选择模块要求输入0-5选择用户想做操作。

      5.输入数据模块(load())void load(void) //载入文件 { char n; //定义变量记录输入字符 FILE *fp; int i; sin : printf("请输入文件名或者文件路径名:"); //标记当前位置 scanf("%s",filename); getchar(); printf("您确定您输入的文件路径(y/n):"); //确定文件输入正确 scanf("%c",&n); if(n=='y') { if((fp=fopen(filename,"r"))==NULL) //判断文件的存在,是否可读 { printf("文件%s不可读,请确认文件%s存在或者文件路径正确.\n\n",filename,filename); system("pause"); //暂停显示文件状态 } else{ //文件载入成功 printf("!!!!!录入成功!!!!!\n"); system("pause"); for(i=0; !feof(fp)&&!ferror(fp);i++) /*将文件数据读出,数据给数组,一直到文件中数据结尾*/ { fscanf(fp,"%03d",&train[i].number); if(train[i].number==0){i--;continue;} fscanf(fp,"%d%02d",&train[i].ft.hour,&train[i].ft.minute); fscanf(fp,"%s%s%f",&train[i].origin_station,&train[i].last_station,&train[i] .last_time); fscanf(fp,"%d%d",&train[i].max_number,&train[i].sold_ticket); /***************************数据按格式化到数组***********************/ } record=i; //将数据条数给record 记录 fclose(fp); //关闭文件 } } else goto sin; //当文件名输入错误时,选择‘n‘可返回标记处}6.浏览数据模块(show()) void show(){ int i; printf("班次\t发车时间\t起点\t终点\t行车时间(小时)\t额定载量\t已定票人数\t状态\n"); for(i=0;i

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.