欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOC文档下载  

    软件课程设计报告飞机票销售系统 .doc

    • 资源ID:3851699       资源大小:1.39MB        全文页数:45页
    • 资源格式: DOC        下载积分:8金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要8金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    软件课程设计报告飞机票销售系统 .doc

    软件课程设计报告 班级: 光信1005班 姓名: 学号: 1软件设计11.1设计题目11.2设计要求11.3设计思想11.4流程图22软件测试92.1航班信息查询模块测试92.2订票模块测试142.3机票信息查询模块测试172.4退票模块测试183算法改进214开发体会22附录:源代码清单24参考文献42设计题目 1.1设计题目飞机票销售系统。1.2设计要求 运用C语言基本知识,结合相关算法思想和数据结构,编写一个单微机系统下运行的飞机票销售系统。飞机票销售系统应实现航班信息查询、机票购买、机票信息查询、机票退购等功能。1.3设计思想 程序分为四个功能模块,即航班信息查询、订票、乘客机票信息查询和退票。程序中定义了2种结构为 struct airline,struct passenger,分别用于航班信息、旅客机票信息的存取和修改。其中又为了方便从txt文件用链表读取和处理数据又创建了linecreat()和passengercreat()两个函数。其中对数据的查找与处理我觉得不是很大可以放入各个功能模块中进行。对于已经处理过的数据一般都要储存,所以为了储存文件信息分别创建了saveairline,与savepassenger两个函数。其中函数中需要的信息与数据分别存在“乘客信息.txt”与“南航公司航班信息.txt”航班信息查询模块的功能主要由函数insult实现,而航班信息查询模块中又分为按航班号查询航班信息模块、按目的地查询航班信息模块和按起飞时间段查询航班信息模块三个小模块 。订票模块的功能由函数book( )实现。机票信息查询模块功能由函数search( )实现。退票模块功能由函数returnticket( )实现。每个模块的函数都通过对结构链表和文件的操作来实现对数据的存取和修改,从而实现各自的功能。程序中采用的查找数据方式为顺序查找。1.4流程图以下依次为Main函数流程图;Insult函数流程图;Book函数流程图;Search函数流程图;Returnticket函数流程图; 2软件测试2.1航班信息查询模块测试运行程序,首先进入主菜单界面。选择1进入航班信息查询按照起飞时间查询,输入可以乘机的时间段找到的航班信息如下按任意键继续,软件可以由此退出选择2,航班号查询得到界面如下如果选取3按照目的地查询2订票进入买票系统进入后依次输入信息买票如果输入航班有误则会出现若一人未购票先查找买票查询可见刚才购票成功。3退出售票系统进入查询系统选择查询方式,如果选择按照姓名查询如果选择机票号查询与用姓名查询的结果相同如果没有相应的乘客4,退票模块查询输入相应的乘客的姓名与编号即可删除如果有一人已购票查询得:删除之;再次查询未找到即证明已经删除算法改进改进1在该程序调试时我发现程序中很多的输入与输出可以做成一些功能模块,像是查错与提示错误的功能便是经常需要的部分。如果能够将这些部分做成一些简单的函数则能够显著提高函数的可读性与函数的内聚性改进2在查找过程中,由于文件储存时就是按照顺序储存的,可以采用二分法查找。这样可以大大提高函数的运行效率。改进3函数在运行过程中我发现并没有航班的添加程序,可以加一个管理员系统,这样就可以更加好的去管理航班销售系统。开发体会在此次软件开发过程当中,发现了自己好多的不足。首先就是于软件开发过程当中,对于各类函数的不熟悉。造成我犯了很多知识性的错误。我体会到要想在编程上有所突破光靠自己的奇思妙想是不够的,必须建立在对程序充分的熟悉上。对于各类算法只有充分的熟悉,才能够知道自己在哪些方面的不足。然后就是,我觉得对于函数的返回操作做的并不是很好。主要就是采用WHILE循环然而在做这个的过程中发现自己对于这个其实做的也不是很好然后我感觉到程序的编写有的时候并不是一蹴而就的,必须要做到胸有成竹。做到自顶而下不断细分,只有这样才能够加强对软件的理解。做软件和做事情一样需要有一个清晰地规划。做好规划也就是成功的一半。所以遇到事情以后应当先充分的了解对象。建立在对事物的充分了解之上才能够进一步的去按照需求改进它。在做软件的过程中虽然很累很枯燥,但是还是会感到一种荣誉与骄傲当看到软件调试失败时确实会感到沮丧,但是一旦运行成功就会有一种莫名的高兴与动力。也许这就叫一种荣誉感吧。有的时候问题并不是自己做的好不好而是是否真正的体会到了什么,可以说在做软件的过程中,真正的体味到彩虹总在风雨后。甚至有的时候感觉有种蓦然回首那人却在灯火阑珊处,也许治学最高境界就是这样吧。其实在做软件的过程中叶体会到了友谊的味道。正所谓当局者迷旁观者清,遇到同学纠结的问题旁边的同学站在一个新的视角或许就会找出问题的所在,而在这过程中,可以体会到一种非常温馨的感觉。写到这里忽然想起来,有一次一个女同学调试半天不成功后哭了。在同学的安慰下她终于艰难地完成了,有的时候我真的会莫名的感动觉得有一种年轻的力量在我的身体里荡漾。或许真的就是一种不服输的精神我们的先人们才能够创造出这样一个美好的世界。那么说到自己,我觉得在以后的人生路上遇到什么样的挫折与磨难,自己也应当有一种不服输的劲头吧,不轻言放弃,永不言败才能到达人生理想的彼岸。恩,无论怎么样软件课程设计还是结束了在这过程中确实收获了很多。我觉得学校很多的课程都可以设计成这样,体味一种近乎实战的环境才能够让我们学有所用。才是真的授之以渔而非授之以鱼。在当今填鸭式的中国教育模式下我觉得这或许可以做 一个突破点。然而,不幸的是据传学校居然在以后的学生当中不开设这门课了,我表示非常的不爽。为什么现在很多人都说高等学校教育质量越来越差就是因为这吗让学弟学妹们体验这非一般的难度,才能让他们有所成长源代码#include<stdio.h>#include<stdlib.h>#include<malloc.h>#include<string.h>#include<conio.h> typedef struct airline/定义变量储存飞机信息char linenum20;char des20;char start20;char time20;int last;int sold;int price;struct airline *next;struct passenger/定义结构体储存乘客信息char linenum20;int ticketnum;char des20;char time20;char name20;char gender20;int price;struct passenger *next; ;static int M=10;static int N=50;void insult();/航班查询函数void book();/机票订购void search();/机票查找函数void returnticket();/退票函数struct airline *linecreat();/为航班创立链表struct passenger *passengercreat();/为乘客信息创立链表void saveline(struct airline *pp);/保存信息至文件当中void savepassenger(struct passenger *pp);/保存信息至文件当中void main()int i,x; while(1)/采用while循环以便返回 printf(" t * n" "t 欢迎进入南航公司机票销售系统 n" "t * n"/输出主界面 "t n" "t <-*飞机票销售系统*-> n" "t n" "t & 机票信息查询请输入 1 n" "t & 购买机票请输入 2 n" "t & 查询机票信息请输入 3 n" "t & 如需退票请输入 4 n" "t * n" "t welcome to NANHANG CHINA n" "t * n" "t 请选择 bb");scanf("%d",&i);/选择需要进行的服务类型 system("cls");/清屏函数 switch(i)/用switch函数进行选择 case 1: insult(); printf("请记住您要乘坐的航班号以便购票,按回车回到主界面继续n"); getch(); system("cls"); break; case 2: book(); printf("按回车回到主界面"); getch(); system("cls"); break; case 3: search(); printf("按回车回到主界面"); getch(); system("cls"); break; case 4: returnticket(); printf("按回车回到主界面"); getch(); system("cls"); break; printf("退出请输入0,继续请输入1n");/退出程序 scanf("%d",&x); if(x=0)break; void insult() int i,n;struct airline *pp ; char str120,str220; pp=linecreat(); n=0;puts("按照起飞的时间查询请选择1nn");/输出选项 puts("按照航班号查询请选择2nn"); puts("按照目的地查询请输入3nn"); scanf("%d",&i);if(i<=3)&&(i>=1) switch(i) case 1:/按照所选时间段进行查询 printf("请输入您的乘机时间段:输入格式如01:00-02:00n"); scanf("%s",str1);printf("到");scanf("%s",str2); while(pp->next!=NULL)/利用strcmp函数查询符合时间段的航班并输出 if(strcmp(pp->time,str1)>=0)&&(strcmp(pp->time,str2)<=0)/选择起飞时间在该时间段的航班 printf("航班号t目的地t始发地t起飞时间t剩余票数t已售票数t票价n "); printf("%s%9s%9s%9s%9d%9d%9dn",pp->linenum,pp->des,pp->start,pp->time,pp->last,pp->sold,pp->price); n+; pp=pp->next; if(n=0)printf("sorry not foundn"); break; case 2:/按照航班号进行查询 printf("请输入航班号n"); scanf("%s",str1); while(pp->next!=NULL)/利用strcmp函数查询符合时间段的航班并输出 if(strcmp(pp->linenum,str1)=0) printf("航班号 目的地 始发地 起飞时间 剩余票数 已售票数 票价n "); printf("%s%9s%9s%9s%9d%9d%9dn",pp->linenum,pp->des,pp->start,pp->time,pp->last,pp->sold,pp->price); n+;pp=pp->next; if(n=0)printf("sorry not foundn"); break; case 3:/按照目的地查询 printf("请输入目的地n"); scanf("%s",str1); while(pp->next!=NULL)/利用strcmp函数查询符合时间段的航班并输出 if(strcmp(pp->des,str1)=0) printf("航班号 目的地 始发地 起飞时间 剩余票数 已售票数 票价n "); printf("%s%9s%9s%9s%9d%9d%9dn",pp->linenum,pp->des,pp->start,pp->time,pp->last,pp->sold,pp->price); n+; pp=pp->next; if(n=0)printf("sorry not foundn");/是否查找到,定义一个int型的数来判断 break; else printf("对不起您的输入有误,按回车回到主界面"); getch(); return; void book() struct airline *head1,*p1,*p2; struct passenger *head2,*q1,*q2; int j,flag; printf("您确定要买票吗?确定请输入1,退出请输入0 n");/确定进入买票系统 scanf("%d",&j); head1=p2=p1=linecreat(); head2=q2=passengercreat(); j=1; flag=0; if(j!=0) while(p2->next!=NULL)/利用strcmp函数查询符合时间段的航班并输出 printf("%10s%10s%10s%10s%7d%7d%7dn",p2->linenum,p2->des,p2->start,p2->time,p2->last,p2->sold,p2->price);/输出航班信息方便 p2=p2->next; while(j!=0) printf("请依次填写以下信息:n"); printf("航班号:"); scanf("%s",q1->linenum);/输入乘客信息 printf("姓名:"); scanf("%s",q1->name); printf("性别:"); scanf("%s",q1->gender); while(p1!=NULL) if(strcmp(q1->linenum,p1->linenum)=0) strcpy(q1->time,p1->time); strcpy(q1->des,p1->des);/将航班中的某些信息放到乘客信息中 q1->price=p1->price; p1->sold+=1; p1->last-=1; flag=flag+1; q1->ticketnum=N+1;/静态变量加一 saveline(head1);/保存信息至文本信息中while(q2->next!=NULL) q2=q2->next;/调整q2至文章末尾 q2->next=q1; q1->next=NULL; N=N+1; savepassenger(head2);/保存文件 break; p1=p1->next; if(flag=0) printf("对不起您输入的航班有误,重新输入请输入1,退出售票请输入0:n"); scanf("%d",&j); else printf("购票成功n"); N=N+1; printf("退出售票请输入0,继续请输入1n"); scanf("%d",&j); else printf("欢迎使用本系统"); return; void search() int i,j,n; char string120; struct passenger *pp; n=0; pp=passengercreat(); printf("请选择查询方式:n"); printf("按照姓名查询请输入1n");printf("按照机票信息查询请输入2n");/选择查询方式 scanf("%d",&i);switch(i)case 1:printf("请输入您的姓名:");scanf("%s",string1);while(pp!=NULL ) ; if(strcmp(pp->name,string1)=0)/寻找与之相符的量 printf("航班号t机票号t时间t目的地t姓名tn"); printf("%s%7d%7s%9s%9sn",pp->linenum,pp->ticketnum,pp->time,pp->des,pp->name); n=n+1; break; pp=pp->next;if(n=0)printf("对不起,未找到符合条件的信息");break;case 2:printf("请输入您的机票编号:");scanf("%d",&j); while(pp!=NULL) if(j-pp->ticketnum)=0)/寻找机票号一致的乘客 printf("航班号t机票号t时间t目的地t姓名tn"); printf("%7s%7d%7s%9s%9sn",pp->linenum,pp->ticketnum,pp->time,pp->des,pp->name);/输出 n=n+1; break; pp=pp->next; if(n=0)printf("对不起,未找到符合条件的信息"); break; return; void returnticket() char string120;int i,flag;struct passenger *p1,*p2,*head1;struct airline *q1,*head2;flag=0;printf("请输入您的姓名:"); scanf("%s",string1); printf("请输入您的机票编号:"); scanf("%d",&i);head1=p1=passengercreat();while(p1!=NULL)if(strcmp(p1->name,string1)=0)&&(p1->ticketnum-i)=0)/二者都要符合才能够确定 p2->next=p1->next;flag=1;/链表删除 Break; p2=p1; p1=p1->next; if(flag=1) head2=q1=linecreat(); while(q1!=NULL) if(strcmp(q1->linenum,p1->linenum)=0) q1->last+=1;/修改航班文件中的信息 q1->sold-=1; printf("删除成功n");savepassenger(head1);/保存至文件当中saveline(head2); break; q1=q1->next; else printf("对不起,未找到该乘客"); return; struct airline *linecreat() int i; struct airline *head,*p1,*p2; FILE *fp;p1=p2=(struct airline *)malloc(sizeof(struct airline ); if(fp=fopen("南方航空公司航班信息.txt","rt+")=NULL)/内存中分配文件的空间 printf("不能打开文件,按任意键退出!"); getch(); exit(1); fscanf(fp,"%s%s%s%s%d%d%dn",p1->linenum,p1->des,p1->start,p1->time,&p1->last,&p1->sold,&p1->price);/先读取一次 head=p1; for(i=0;i<M;i+) p2->next=p1; p2=p1; p1=(struct airline *)malloc(sizeof(struct airline); fscanf(fp,"%s%s%s%s%d%d%dn",p1->linenum,p1->des,p1->start,p1->time,&p1->last,&p1->sold,&p1->price);/将航班的信息读入到内存当中p2->next=p1; p1->next=NULL; return(head);/free(p1); /free(p2);struct passenger *passengercreat()int i; struct passenger *head,*p1,*p2; FILE *fp;p1=p2=(struct passenger *)malloc(sizeof(struct passenger ); if(fp=fopen("乘客信息.txt","rt+")=NULL)/内存中分配文件的空间 printf("不能打开文件,按任意键退出!"); getch(); exit(1); fscanf(fp,"%s%d%s%s%s%s%dn",p1->linenum,&p1->ticketnum,p1->des,p1->time,p1->name,p1->gender,&p1->price); head=p1; for(i=0;i<N-1;i+) p1=(struct passenger *)malloc(sizeof(struct passenger);/分配内存空间fscanf(fp,"%s%d%s%s%s%s%dn",p1->linenum,&p1->ticketnum,p1->des,p1->time,p1->name,p1->gender,&p1->price); /将航班的信息读入到内存当中 p2->next=p1; p2=p1; p2->next=p1; p1->next=NULL; return(head); / free(p1); /free(p2);void saveline(struct airline *pp) FILE *fp; if(fp=fopen("南方航空公司航班信息.txt","rt+")=NULL)/内存中分配文件的空间 printf("不能打开文件,按任意键退出!"); getch(); exit(1); while(pp->next!=NULL) fprintf(fp,"%10s%10s%10s%10s%10d%10d%10dn",pp->linenum,pp->des,pp->start,pp->time,pp->last,pp->sold,pp->price);/用fprintf写入文件所指的空间中pp=pp->next; fclose(fp); return; void savepassenger(struct passenger *pp)FILE *fp; if(fp=fopen("乘客信息.txt","wt+")=NULL)/内存中分配文件的空间 printf("不能打开文件,按任意键退出!"); getch(); exit(1); while(pp!=NULL)fprintf(fp,"%st%dt%st%st%st%st%dtn",pp->linenum,pp->ticketnum,pp->des,pp->time,pp->name,pp->gender,pp->price); pp=pp->next; fclose(fp); return;

    注意事项

    本文(软件课程设计报告飞机票销售系统 .doc)为本站会员(laozhun)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开