任务:通过此系统可以实现如下功能:
录入: 可以录入航班情况(数据可以存储在一个数据文件中)
浏览:航班信息浏览功能需要提供显示操作;
查询:可提供按照航班号、起点站、终点站、飞行时间、查询,可以查询某个航线的情况(如,输入航班号,起飞抵达城市,确定航班是否满仓);另外要提供键盘式选择菜单以实现功能选择。
要求:根据以上功能说明,设计航班信息,订票信息的存储结构,设计程序完成功能。可以建立航班结构体,结构体成员包括航班号、起点站、终点站、飞行时间、预售票总数、已售票数。
源代码:
- #include<stdio.h> /*头文件包含命令*/
- #include<stdlib.h>
- #define N 50
- struct flight /*结构体存放航班信息的结构*/
- {
- int flight_no;
- char startstation[20];
- char endstation[20];
- char flytime[10];
- int plan_ticket;
- int sell_ticket;
- }fly[N];/*定义结构体变量*/
- FILE* fp;
- void Browse();
- void printf_oneflight(int i);
- void menu();
- void input(i) /* 把航班信息输入到文件*/
- {
- struct flight t;
- printf("\nflight_no startstation endstation flytime plan_ticket sell_ticket\n");
- scanf("%d%s%s%s%d%d",&t.flight_no,t.startstation,t.endstation,t.flytime,&t.plan_ticket,&t.sell_ticket);
-
- fp=fopen("flydata.txt","ab");
- if(!fp){printf("can not open this file\n");exit(0);}
- else fwrite(&t,sizeof(struct flight),1,fp);
- fclose(fp);
- }
- void printf_oneflight(int i) /*输出一个 航班信息*/
- {
- printf("\n%5d%20s%20s%10s%4d%4d\n",fly[i].flight_no,fly[i].startstation,fly[i].endstation,fly[i].flytime,fly[i].plan_ticket,fly[i].sell_ticket);
- }
- void printf_face() /*输出文件内容结构*/
- {
- printf("\n\tNO. startstation endstation flytime plan_ticket sell_ticket\n");
- }
- int load()/*载入函数实现文件内容载入程序,并返回飞机航班数值*/
- {
- FILE *fp;
- int i;
- if((fp=fopen("flydata.txt","rb"))==NULL)
- {
- printf("\nCan not open file\n");
- exit(0);
- }
- for(i=0;!feof(fp);i++)
- fread(&fly[i],sizeof(struct flight),1,fp);
- fclose(fp);
- return(i-1);
- }
- void printf_back() /*返回退出函数实现程序退出、返回*/
- {
- int w;
- printf("\n\n\tSuccessful.^_^\n\n");
- printf("What do you want to do?\n\n\t1).Browse all now\t2).back:[]\b\b");
- scanf("%d",&w);
- if(w==1) Browse();
- else menu();
- }
- void enter()/*航班信息录入*/
- {
- int i,n;
- printf("How many flights do you want input? :[ ]\b\b");
- scanf("%d",&n);
- printf("\n Enter data now\n\n");
- for(i=0;i<n;i++)
- {
- printf("\n Input %dth float record.\n",i+1);
- input(i);
- }
- printf_back();
- }
- void Browse()
- {
- int i,n;
- n=load();
- printf_face();
- for(i=0;i<n;i++)
- {
- if(i%10==0)
- {
- printf("\nPress any key to contiune ...");
- getchar();
- puts("\n\n");
- }
- puts("\n\n");
- printf_oneflight(i);
- }
- printf("\tThere are %d record.\n",n);
- printf("\nPress any key to back ...\n");
- getchar(); /*没有返回植*/
- menu();
- }
- void Search()/*查询*/
- {
- int m,i,flight_no,flag=0;
- printf("Please input flight_no:\n");
- scanf("%d",&flight_no);
- m=load();
- for(i=0;i<m;i++)
- {
- if(flight_no==fly[i].flight_no)
- {
- flag=1;
- printf("\nThe flight message is:\n");
- printf_oneflight(i);
- }
- }
- if(flag==1)
- printf("Found!");
- else
- printf("Not Found!");
- printf_back();
- }
- void menu()
- {
- int n,w;
- do
- {
- puts("\t\t***********************MENU***************************\n\n");
- puts("\t\t\t\t 1.enter new data");
- puts("\t\t\t\t 2.Browse all");
- puts("\t\t\t\t 3.Search");
- puts("\t\t\t\t 4.exit");
- puts("\n\n\t\t *******************************************************\n");
- printf("Choice your number(1-4): [ ]\b\b");
- scanf("%d",&n);
- if(n<1||n>4)
- {
- w=1;
- getchar();
- }
- else w=0;
- }
- while(w==1);
- switch(n)
- {
- case 1:enter();break;
- case 2:Browse();break;
- case 3:Search();break;
- case 4:exit(0);
- }
- }
- /*********************************主函数***********************************/
- main()
- {
- menu();/*菜单函数的功能是替主函数调用个功能模块函数*/
- }
复制代码
【必读】版权免责声明
1、本主题所有言论和内容纯属会员个人意见,与本论坛立场无关。2、本站对所发内容真实性、客观性、可用性不做任何保证也不负任何责任,网友之间仅出于学习目的进行交流。3、对提供的数字内容不拥有任何权利,其版权归原著者拥有。请勿将该数字内容进行商业交易、转载等行为,该内容只为学习所提供,使用后发生的一切问题与本站无关。 4、本网站不保证本站提供的下载资源的准确性、安全性和完整性;同时本网站也不承担用户因使用这些下载资源对自己和他人造成任何形式的损失或伤害。 5、本网站所有软件和资料均为网友推荐收集整理而来,仅供学习用途使用,请务必下载后两小时内删除,禁止商用。6、如有侵犯你版权的,请及时联系我们(电子邮箱1370723259@qq.com)指出,本站将立即改正。
|
|