ImageVerifierCode 换一换
格式:DOC , 页数:29 ,大小:159.54KB ,
资源ID:4058964      下载积分:8 金币
验证码下载
登录下载
邮箱/手机:
验证码: 获取验证码
温馨提示:
支付成功后,系统会自动生成账号(用户名为邮箱或者手机号,密码是验证码),方便下次登录下载和查询订单;
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/4058964.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  
声明  |  会员权益     获赠5币     写作写作

1、填表:    下载求助     留言反馈    退款申请
2、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
3、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
4、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
5、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【快乐****生活】。
6、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
7、本文档遇到问题,请及时私信或留言给本站上传会员【快乐****生活】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。

注意事项

本文(航班信息管理系统.doc)为本站上传会员【快乐****生活】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4008-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

航班信息管理系统.doc

1、C语言课程设计报告课 程 设 计课程名称 C语言课程设计 题目名称 航班信息管理系统 学生学院 物理与光电工程学院 专业班级 电子科学与技术(4)班学 号 学生姓名 指导教师 2015 年 10 月 23 日目 录一 设计目的- 2 二 课程设计的内容- 2 -三 课程设计的要求与数据- 2 -四 课程设计应完成的工作 3 五 总体设计- 3 六 详细设计- 3 七 调试分析- 9 -7.1 源程序及注释 9 7。2 调试与测试 30 -7。2.1 算法调试过程中出现的问题及解决方法: 30 -7.2.2 主要程序运行结果 32 八 总结- 35 -九 参考文献 36 - 27 -一 设计目的

2、进一步加深、巩固所学专业课程(C语言程序设计)的基本理论知识,理论联系实际,进一步培养自己综合分析问题和解决问题的能力。掌握运用C语言独立地编写、调试应用程序和进行其他相关设计的技能.二 课程设计的内容对航班信息(包括航班号、最大载客数、起飞地点、起飞时间、降落地点、降落时间、单价)和乘客信息(包括航班号、身份证号码姓名、性别、出生年月、座位号)进行管理,包括航班信息与乘客信息的输入、输出、查询、删除、统计、退出。假设现收集到了一个机场的所有的航班信息,要求用C语言编写一个简单的航班信息管理系统,可进行录入、查询、修改和浏览航班信息的功能;乘客提出航班号、起飞地点、起飞时间、降落地点、订票数等

3、订票要求,根据事先保存的航班数据决定乘客能否订票。只有全部满足了乘客的订票要求并且所订航班有足够的未订座位之后才能完成订票处理,并且修改该航班的未订座位数(每个航班的未订座位数的初始值就是该航班的最大载客数),否则,订票失败,并且给出不能订票的原因。三 课程设计的要求与数据1、对航班信息(包括航班号、最大载客数、起飞地点、起飞时间、降落地点、降落时间、单价)和乘客信息(包括航班号、身份证号码、姓名、性别、出生年月、座位号)进行管理,包括航班信息与乘客信息的输入、输出、查询、删除、统计、退出;2、航班信息内容较多,要求设计的管理系统能够完成以下功能:(1)、航班信息录入功能:航班信息用文件保存,

4、可以一次完成若干条记录的输入;(2)、航班信息浏览功能:完成全部航班记录的显示;(3)、查询功能:完成按航班号或按目的地查找航班记录,并显示;(4)、航班信息的修改:按航班号进行修改某个航班的信息;(5)、航班信息的删除:按航班号进行删除某个航班的信息;(6)、订票处理:按乘客的订票方式完成航班订票处理;(7)、应提供一个界面来调节各个功能,调用界面和各个功能的操作界面应尽可能清晰美观! 四 课程设计应完成的工作1、 编写算法;2、 算法测试,并有具体的测试结果和结果分析;3、 撰写课程设计报告,内容包括:(1) 封面扉页(2) 设计任务书(3) 目录(4) 总体设计方案(包括流程图)(5)

5、使用说明及运行实例(包括界面)(6) 成员设计内容简介(7) 项目源代码(注意注释的使用)(8) 指导老师评语五 总体设计1、 功能1:航班信息的输入并对输入的内容进行错误检查;2、 功能2:航班信息的显示浏览;3、 功能3:航班信息的修改并对修改的内容进行错误检查;4、 功能4:航班信息的删除;5、 功能5:航班信息的查询;6、 功能6:乘客信息输入并对输入的内容进行错误检查;7、 功能7:订票处理检查是否还有空座位;8、 退出系统。六 详细设计系统的整体框图如图1所示:开始输出菜单打开文件根据菜单输入n的值选择程序退出保存删除修改查询显示输出输入结束图1 整体框图1、 打开存放着航班信息与

6、乘客信息的文件:分别打开航班文件与乘客文件,存放在链表中,供后续函数调用;可用函数void read_psg_data(void)、void read_pla_data(void)来实现此操作。这是两个无参函数,用来读取存储在文件中的信息当到达文件尾时关闭文件并退出函数,带回指向链表头的一个指针和指向链表尾的指针。算法:fopen()函数打开文件后读取一定长度的信息存到malloc()分配的内存地址空间,声明两个全局指针pla_head和psg_head,每读取一组数据就将其地址存放在pla1节点中,并链接到之前列表的尾端。NS流程图如图2所示(以读取航班信息为例):fp=fopen(文件)w

7、hile(不到文件尾) malloc()分配内存pla1是否成功否是分配内存失败返回菜单 fread()读取一定长度字节数据到pla1pla1置为NULL是否pla_head是否为空 pla_endnext = pla1; pla_head = pla1; pla_end = pla1; pla_end = pla1;pla_end_next置为NULL读取成功标志位置为0关闭文件图2 打开文件读取数据流程图2、 输入航班数据与乘客数据(以航班数据为例):输入信息包括航班号、最大载客数、起飞地点等相关信息;用函数void add_pla_info(void),函数再调用int check_pl

8、a_num(PLA pla)、void check_time(int hour, int *min)、void check_string(char name20)分别进行航班号、输入的时间、输入的地点等信息的正确性验证,从源头避免出错。算法:打开待保存输入信息的文件,在一个while循环里面分配内存并输入数据,对输入的数据进行正确性验证,如果出错则会提示重新输入,正确输入完一个航班后将数据保存到链表尾端并将新的航班数据写入打开的文件中。NS流程图如图3所示(以读取航班信息为例):fp=fopen(文件)while(继续输入)是 提示出错后返回否malloc()分配内存pla是否成功输入航班号

9、重新输入否是航班记录已存在?输入载客数是 重新输入否是否数字且在正常范围 输入起飞时间否是 重新输入 时间格式正确? 输入降落地点 重新输入是否 地点格式正确?输入降落时间 重新输入是否时间格式正确?输入单价是 重新输入否是否数字?是否pla_head为空? pla_endnext = pla; pla_head = pla; pla_end = pla;pla_end = pla;保存新航班数据到文件图3 输入航班数据流程图3、 显示浏览航班信息:显示信息包括航班号、最大载客数、起飞地点、起飞时间、降落地点、降落时间、单价、剩余票数,调用了时间函数localtime()获取当前系统时间;用函

10、数void display_pla_info(void)完成此操作。算法:把读取文件后产生的链表按照一定的格式输出到屏幕上。N-S流程图如图4所示:将链表头赋给航班结构体局部变量while(未到链表尾)printf(pla1);pla1 = pla1next;图4 显示航班信息流程图4、 删除航班信息:删除一个航班的所有信息,调用函数void delete_pla_data(void)完成是删除操作.算法:显示所有航班信息,要求用户输入需删除的航班号,在while循环中遍历链表,找到数据则显示出来,再次要求用户确认删除,若删除,该数据的下一条数据地址将会取代当前的数据地址,即从链表中删除了,调

11、用save_pla_info()保存新的链表;若没有找到航班则要求用户重新输入。N-S流程图如图5所示:输入航班号否是 到达链表尾?是否提示找不到航班,重新输入 输入的航班号与pla1_num相同?是否pla2 = pla1;输出该航班信息否是pla1 = pla1next;确认删除?返回菜单删除的航班是链表头?pla_head = pla1-next; pla2next = pla1next;释放pla1;保存文件标志位置位;调用save_pla_info()保存新的链表;提示删除成功;返回菜单图5 删除航班信息流程图5、 修改航班信息:修改一个航班的信息,调用void modify_dat

12、a(void)实现此操作。算法:显示所有航班信息,用户输入一个航班号,在while循环中遍历链表,找到要修改的数据则显示出来,再次要求用户确认修改,若修改,则开始输入信息;若没有找到航班则返回菜单。这里用到了添加航班时的信息检查函数。N-S流程图如图6所示:输入航班号是否while(未到链表尾) 输入的航班号与pla1_num相同?是否pla2 = pla1; 输出该航班信息pla1 = pla1-next;确认修改?返回菜单输入新的航班号、载客数、起飞时间、降落地点、降落时间、单价,并检查每一项的格式是否符合要求提示修改成功返回菜单提示未找到该航班并返回菜单图6 修改航班信息流程图6、 查询

13、航班信息:查询信息时分为航班号查询与目的地查询,用户可输入航班号或目的地进行查询并订票,调用void search(void)函数,内部再调用void search_pla_num(void)和void search_destination(void)两个函数实现此操作。算法:进入查询后显示另一个菜单要求用户选择相应的查询条件.按航班号查询时,用户输入一个航班号,在while循环中遍历链表,找到要修改的数据则显示出来,询问用户是否要订票,若订票则会进入订票函数buy_check();若不订票则返回菜单;若没有找到相应的航班信息则返回上一层菜单.NS流程图如图7所示:按目的地显示菜单选择程序按航

14、班号 选择相应的操作输入航班号输入目的地否是否while(不到链表尾)while(不到链表尾)航班号相同? 目的地相同?是pla2 = pla1;显示航班信息pla2 = pla1;显示航班信息否pla1 = pla1-next; 询问是否订票pla1 = pla1next;进入search_pla_num()返回 执行订票流程询问是否订票 未找到相应的航班信息未找到相应的航班信息图7 查询航班信息流程图7、 订票处理:进入订票时,会调用search_pla_num()函数完成操作.算法:调用display_pla_info()输出所有航班信息,然后调用search_pla_num()和buy

15、_check()订票并完成乘客身份信息的输入与格式检验.NS流程图如图8所示:display_pla_info()显示所有航班信息提示用户输入相应的航班号while(未到链表尾)否是 航班号相同? pla2 = pla1;显示信息否是 pla1 = pla1-next;调用buy_check()检查该航班已满人数?提示用户选择其他航班调用buy_ticket()函数完成乘客信息的录入(包括姓名、身份证号、性别等信息),并对正确性进行检查,然后把信息存放到乘客文件中.提示订票成功并返回提示未找到航班信息后返回菜单8、退出系统:用户在主菜单界面时按照提示即可退出系统,调用一个exit()函数来实现

16、。七 调试分析7。1 源程序及注释/ 航班信息管理系统 */#include #include stdio。hinclude stdlib。hinclude string.hinclude math。h#include define LEN1 sizeof(PSG)define LEN sizeof(PLA)define FORMAT %3d%7d%5d%7d:%2d%12s8d:2d%6s8dn#define INFO pla_num, pla1-p_num, pla1-l_num, pla1up_hour, pla1up_min, pla1addr_dst, pla1-down_hour,

17、 pla1down_min, pla1-price, (pla1l_num pla1buy_num)typedef struct passengerint p_num; / 航班号char id_num20; / 身份证号char name20; char sex5; int year_born;char dot;int month_born;int site_num;struct passenger next; / 下一个乘客 PSG;typedef struct planeint p_num; / 航班号int l_num; / 载客数int up_hour; / 起飞时int up_mi

18、n; / 起飞分char addr_dst20; / 降落地点int down_hour; / 降落时int down_min; / 降落分char price10; / 单价int buy_num; / 已订票数struct plane *next; / 下一航班struct PSG *first; / 第一位乘客 PLA;PSG psg_head = NULL, psg_end = NULL; / 乘客信息链表头指针和尾指针PLA *pla_head = NULL, pla_end = NULL; / 航班信息链表头指针和尾指针char gfirst, pfirst, gsave, psa

19、ve; / 判断标志int bflag = 0; / 订票成功标志 / 保存乘客数据 */void save_psg_info(void)FILE *fd;PSG *psg1;if (0 = psave) return;if ((fd = fopen(passenger.dat,wb”) = NULL) printf(n无法打开文件passenger.dat!”);getch();return;psg1 = psg_head;while (psg1) if (fwrite(psg1, LEN1, 1, fd) != 1) printf(”n写入数据出错!”);fclose(fd);getch(

20、);return;psg1 = psg1-next;psave = 0;fclose(fd);/ 保存航班数据 /void save_pla_info(void)FILE *fp;PLA *pla1;if (0 = gsave) return;if ((fp = fopen(”airplanes.dat”,wb) = NULL) printf(n无法打开文件airplanes。dat!);getch();return;pla1 = pla_head;while (pla1) if (fwrite(pla1, LEN, 1, fp) != 1) printf(”n写入数据出错!);fclose(

21、fp);getch();return;pla1 = pla1-next;gsave = 0;fclose(fp);void make_line(char ch, int i)while (i-)putchar(ch);putchar(n);/ 检查时间输入正确 /void check_time(int hour, int *min)int i;for (i=1; i != 2; i=1) if ((i = scanf(”d:%d, hour, min)) != 2) printf(输入格式错误! 请以”小时:分钟”格式重新输入: );fflush(stdin); continue;if (!(

22、hour 24 & hour = 0) printf(”小时不在正常范围! 请重新输入: );fflush(stdin); continue;if (!(min next;/ 删除数据 /void delete_pla_data(void)int num;char del_pla; PLA pla1, *pla2;system(”cls);display_pla_info();del_again:printf(请输入要删除的航班号(非数字键返回上层:”);fflush(stdin);if (!(scanf(”d”, num))return;pla1 = pla_head;pla2 = pla1

23、;while (pla1) if (num = pla1p_num) printf(”n航班号 载客数 起飞时间 降落地点 降落时间 单价n”);make_line(_, 50);printf(%4d%6d7d:2d13s7d:%2d%6sn”, pla1-p_num, pla1l_num, pla1-up_hour, pla1-up_min, pla1addr_dst, pla1-down_hour, pla1-down_min, pla1price);make_line(_, 50);printf(警告!您确定要删除该航班吗? (y / n) );fflush(stdin);del_pla

24、 = getchar();if (del_pla != y & del_pla != Y)return;if (pla_head = pla1)pla_head = pla1-next;else pla2-next = pla1next;free(pla1);gsave = 1;save_pla_info();printf(”删除成功! 任意键返回n);getch();return;else pla2 = pla1;pla1 = pla1next;printf(”n未找到航班信息!n);goto del_again;return; /* 检查字符串 */void check_string(ch

25、ar name20)int i, flag = 0;char check20;for (i = 0; i 32 | checki97 & checki90 | checki=127 & checki122) flag = 1;break;if (flag = 1) for (i = 0; i p_num; / 航班号psg1site_num = pla1-buy_num; / 座位号printf(警告:请勿恶意输入,否则将导致您订票失败!n”);printf(”请输入您的相关信息:n);fflush(stdin);make_line(_, 70);printf(身份证号:);id_again:

26、for (i = 0; i id_num);if (psg1id_num17=0 | psg1-id_num18!=0) printf(n您输入的身份证号码长度有误,请检查后重新输入: );goto id_again;for (i = 14; i 17; i+) if (psg1id_numi65 & psg1id_numi57 | psg1id_numi48 | psg1id_numiid_numi90 | psg1-id_numi=127 & psg1id_numi122) printf(n您输入的身份证号码有误,请检查后重新输入: ”);goto id_again;for (i = 0;

27、 i 14; i+) if ( !(psg1-id_numi=9 & psg1id_numi=0) ) printf(”n您输入的身份证号码有误,请检查后重新输入: ”);goto id_again;printf(”姓名:”);check_string(psg1name);printf(”性别(男/女/male/female):”);sex_again:fflush(stdin);scanf(”s, psg1-sex);if (strcmp(psg1-sex, 男) strcmp(psg1-sex, ”女”) & strcmp(psg1-sex, ”male) & strcmp(psg1sex

28、, ”female)) printf(”n输入出错,请输入您的正确性别:);goto sex_again;printf(”出生年月(如:199410):);/psg1-born = (char *)malloc(8);born_again:/for (i = 0; i month_born) != 2) fflush(stdin);printf(”n输入出错,请重新输入: ”);if (psg1-year_born 2015 | psg1-year_born 1900 psg1month_born 12 | psg1month_born next = NULL;if (pla1first =

29、NULL) / 指向第一个乘客pla1-first = psg1;else psg_end = pla1-first;while (psg_end) if (NULL = psg_endnext) psg_endnext = psg1;else psg_end = psg_endnext;if (fwrite(psg1, LEN1, 1, fd) != 1) printf(”保存信息出错!n”);fclose(fd);getch();return;fclose(fd);/free(psg1-born); free(psg1);return;/ 订票检查 */void buy_check(PLA

30、 *pla1)char find = y;if (pla1-l_num - pla1-buy_num) up_hour, pla1up_min, pla1-addr_dst, pla1-p_num, +pla1-buy_num);bflag = 1; / 订票成功 gsave = 1;save_pla_info(); / 保存文件/* 按航班号查询 /void search_pla_num(void)int num;char find;PLA pla1, *pla2;while (1) buy_again:printf(”请输入你需要预订的航班号(非数字键返回上层):”);fflush(std

31、in);if (!(scanf(”d”, num)return;pla1 = pla_head;pla2 = pla1;while (pla1) if (num = pla1p_num) printf(”n航班:d的信息如下:, pla1-p_num);printf(”n航班号 载客数 起飞时间 降落地点 降落时间 单价 剩余票数n);make_line(_, 70);printf(%d9d%6d:2d11s%7d:%2d%7s8dn”, pla1p_num, pla1l_num, pla1up_hour, pla1up_min, pla1addr_dst, pla1down_hour, pl

32、a1-down_min, pla1price, (pla1-l_num - pla1buy_num);make_line(_, 70);buy_check(pla1);make_line(_, 70); printf(”继续订票请键入”y,其他键返回上一层菜单:);fflush(stdin);find = getchar();if (y != find & Y != find)return;goto buy_again;else pla2 = pla1;pla1 = pla1next;printf(”n未找到该航班信息!n”);/getch();/return;/* 按降落地点查询 /void

33、 search_destination(void)int num = 0;char dst15;PLA *pla1, pla2;printf(请输入目的地:);scanf(%s”, dst);pla1 = pla_head;pla2 = pla1;while (pla1) if (strcmp(dst, pla1addr_dst) = 0) / 有多个航班有同一个降落地点时 / if (num = 0) / 只显示一次 printf(n航班号 载客数 起飞时间 降落地点 降落时间 单价 剩余票数n);make_line(_, 70);num+;printf(%d%9d%6d:%2d%10s8d

34、:%2d%7s7dn, pla1p_num, pla1l_num, pla1up_hour, pla1up_min, pla1addr_dst, pla1-down_hour, pla1down_min, pla1-price,(pla1l_num - pla1buy_num));make_line(_, 70);pla2 = pla1;pla1 = pla1next;if (0 = num) printf(”n抱歉,飞往%s的航班尚未开通。n任意键返回上层菜单. , dst);getch();return;search_pla_num();/ 查询航班信息 */void search(void)char n = 1;while (n)

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服