欢迎来到冰豆网! | 帮助中心 分享价值,成长自我!
冰豆网
全部分类
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • 党团工作>
  • ImageVerifierCode 换一换
    首页 冰豆网 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    数据结构课程设计.docx

    • 资源ID:30629926       资源大小:158.05KB        全文页数:31页
    • 资源格式: DOCX        下载积分:10金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要10金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

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

    数据结构课程设计.docx

    1、数据结构课程设计数据结构课程设计航空订票系统一、设计目的: 编写一个航空订票系统,可以在系统中录入并修改各个航班的具体情况,帮助乘客准确的查询个航班的最新信息(包括航班号、航班的起始时间和地点。票价)和各个项目业务的及时办理(包括订票、退票等)。二、任务:航空客运定票的业务活动包括:查询航线、客票预定和办理退票等。试设计一个航空客运定票系统,以使上述业务可以借助计算机来完成。三、功能要求:1) 录入:可以录入航班情况(数据可以存储在一个数据文件中,数据结构、具体数据自定)2) 查询:可以查询某个航线的情况(如,输入航班号,查询起降时间,起飞抵达城市,航班票价,票价折扣,确定航班是否满仓);可以

    2、输入起飞抵达城市,查询飞机航班情况;3) 订票:(订票情况可以存在一个数据文件中,结构自己设定)可以订票,如果该航班已经无票,可以提供相关可选择航班;4) 退票: 可退票,退票后修改相关数据文件;5) 客户资料:有姓名,证件号,订票数量及航班情况,订单要有编号;6) 修改航班信息:当航班信息改变可以修改航班数据文件。四、设计程序:#include#include#include#define N 100/最大容量 typedef struct Flight/航班信息 char FlightNumber6;/航班号 char SPlace10;/起始地 char DPlace10;/目的地 ch

    3、ar Stime5;/起飞时间 char Etime5;/降落时间 int price;/票价 int RemnantSeat;/剩余座位数Flight; typedef struct Order/订单信息 int OrderNumber;/订单编号 char PName10;/乘客姓名 char ID20;/身份证号 char FlightNumber6;/航班号 int num;/订票数量Order;Flight flN;Order odN;int i,j;/两个常用角标变量 int lenf=0;/航班数 int leno=0;/订单数 char ch;/获取用户选择的变量char fi

    4、lenamef=flight.txt;/航班文件名char filenameo=order.txt;/订单文件名void save()/保存信息 FILE *fp; if(fp=fopen(filenamef,w)!=NULL)/打开文件 保存航班信息 for(i=0;ilenf;i+)/写入文件 fprintf(fp,%st%st%st%st%st%dt%dn,fli.FlightNumber,fli.SPlace,fli.DPlace,fli.Stime,fli.Etime,fli.price,fli.RemnantSeat); fclose(fp);/关闭文件 if(fp=fopen(f

    5、ilenameo,w)!=NULL)/打开文件 保存订单信息 for(i=0;ileno;i+)/写入文件 fprintf(fp,%dt%st%st%st%dn,odi.OrderNumber,odi.PName,odi.ID,odi.FlightNumber,odi.num); fclose(fp);/关闭文件 void load()/读取信息 FILE *fp; if(fp=fopen(filenamef,r)!=NULL)/打开文件 读取航班信息 i=0; while(!feof(fp)/读取文件 fscanf(fp,%s%s%s%s%s%d%d,&fli.FlightNumber,&f

    6、li.SPlace,&fli.DPlace,&fli.Stime,&fli.Etime,&fli.price,&fli.RemnantSeat); if(!feof(fp) i+; lenf=i;/航班数量 fclose(fp);/关闭文件 if(fp=fopen(filenameo,r)!=NULL)/打开文件 读订单信息 i=0; while(!feof(fp)/读取文件 fscanf(fp,%d%s%s%s%d,&odi.OrderNumber,&odi.PName,&odi.ID,&odi.FlightNumber,&odi.num); if(!feof(fp) i+; leno=i;

    7、/订单数量 fclose(fp);/关闭文件 int check(char s)/检查是否重复 int g=0; for(;glenf;g+) if(strcmp(flg.FlightNumber,s)=0 & g!=i)/对比是否相同 相同就说明重复了 return g;/表示重复了 return -1;/遍历了整个数组都没发现重复的 表示没有重复void input()/录入信息 system(cls);/清屏 for(i=lenf;iN;i+) printf(请输入航班号:); gets(fli.FlightNumber); while(check(fli.FlightNumber)!=

    8、-1)/检查是否重复 printf(航班号重复,请重新输入:); gets(fli.FlightNumber); printf(请输入下列信息:n); printf(出发地:); gets(fli.SPlace); printf(目的地:); gets(fli.DPlace); printf(起飞时间:); gets(fli.Stime); printf(降落时间:); gets(fli.Etime); printf(票价:); scanf(%d,&fli.price); printf(剩余座位数:); scanf(%d,&fli.RemnantSeat); getchar();/消除回车 l

    9、enf+;/航班数加1 printf(航班信息录入完成! 是否继续录入下一列航班信息?(y/n):); while(1) ch=getchar(); getchar();/消除上一步产生的回车符 if(ch=y | ch=Y | ch=n | ch=N) break; else printf(请重新输入:); if(ch=n | ch=N) break; save();/保存 void modify()/修改信息 char s20; system(cls);/清屏 printf(请输入要修改的航班号:); gets(s); for(i=0;ilenf;i+)/查询是否存在输入的信息 if(st

    10、rcmp(fli.FlightNumber,s)=0) break;/存在 结束循环 if(i=lenf) printf(没有您输入航班信息,请按回车返回); getchar(); return; printf(请输入新的航班号:); gets(fli.FlightNumber); while(check(fli.FlightNumber)=1)/检查是否重复 printf(航班号重复,请重新输入:); gets(fli.FlightNumber); printf(请更新下列信息:n); printf(出发地:); gets(fli.SPlace); printf(目的地:); gets(fl

    11、i.DPlace); printf(起飞时间:); gets(fli.Stime); printf(降落时间:); gets(fli.Etime); printf(票价:); scanf(%d,&fli.price); printf(剩余座位数:); scanf(%d,&fli.RemnantSeat); getchar();/消除回车 save();/保存 printf(修改成功!n); system(pause);/任意键继续 void book() / 订票 system(cls);/清屏 i=leno; printf(请输入您的姓名:); gets(odi.PName); printf

    12、(请输入您的身份证号:); gets(odi.ID); printf(请输入订票的航班号:); gets(odi.FlightNumber); for(j=0;jlenf;j+) if(strcmp(flj.FlightNumber,odi.FlightNumber)=0 )/对比是否相同 break; if(j=lenf)/ 表示航班不存在 printf(航班号不存在!请按回车返回); getchar(); return; printf(请输入订票数量:); scanf(%d,&odi.num); flj.RemnantSeat-=odi.num;/新的剩余票数 printf(请输入订单编号

    13、:); scanf(%d,&odi.OrderNumber); getchar();/消除回车 leno+;/订单数加1 save();/保存到文件 printf(定票成功。n); system(pause);/任意键继续 void back() / 退票 int num; system(cls);/清屏 printf(请输入要退票的订单编号:); scanf(%d,&num); getchar();/消除回车 for(i=0;ileno;i+) if(odi.OrderNumber=num)/检查是否存在订单编号 break; if(i=leno) printf(航班号不存在!请按回车返回)

    14、; getchar(); return; j=check(odi.FlightNumber);/获取航班的下标 flj.RemnantSeat+=odi.num;/新的剩余票数 odi=odleno-1;/最后一条订单覆盖退票的订单 leno-;/订单数减1 save();/保存 printf(退票成功。n); system(pause);/任意键继续 void search_num() /航班信息查询(按航班号) char s20; system(cls);/清屏 printf(请输入要查询的航班号:); gets(s); for(i=0;ilenf;i+)/查询是否存在输入的信息 if(s

    15、trcmp(fli.FlightNumber,s)=0) break;/存在 结束循环 if(i=lenf) printf(航班号不存在!请按回车返回); getchar(); return; printf( 查询成功!n); printf(*n); printf(航班号 起始地 目的地 起飞时间 降落时间 票价 剩余座位数nn); printf(%-8s%-10s%-10s %-10s%-10s %-6d%dn,fli.FlightNumber,fli.SPlace,fli.DPlace,fli.Stime,fli.Etime,fli.price,fli.RemnantSeat); prin

    16、tf(*n); system(pause);/任意键继续void search_line() /航班信息查询(按路线) char s20,e20; int flag=0; system(cls);/清屏 printf(请输入要查询的路线的起点:); gets(s); printf(请输入要查询的路线的终点:); gets(e); printf( 查询成功!n); printf(*n); printf(航班号 起始地 目的地 起飞时间 降落时间 票价 剩余座位数nn); for(i=0;i=1&n=20)y=1; if(y)break; else printf(输入数据有误,请重新输入:); 这

    17、样的循环体现了很好的容错性,输入数据不合理会返回让用户重新输入的提示,更友好。本程序中我设计让男子项目去前五名,女子项目取前三名。因此对应的名次可以分别积分7、5、3、2、1和5、3、2。然后定义了print函数,可以按不同要求输出成绩和编号等信息。而后定义bianhao( )、zongfen( )、malezf( )、femalezf( )可以分别按学校编号、学校总分、男子总分和女子总分输出结果。然后定义了菜单函数solve( )来调用不同的排序函数。最后定义了cxsch( )和cxxm( )两函数以实现按学校和项目查询成绩。该题我规定了男子项目取前五名,女子项目取前三名。函数调用关系如下图

    18、: main( ) Input( ) solve( ) bianhao( ) zongfen( ) malezf( ) femalezf( ) cxsch( ) cxxm( ) print( )4、算法流程图 五、算法设计分析 功能要求有:可以输入各个项目的前三名或前五名的成绩;能统计各学校总分;可以按学校编号、学校总分、男女团体总分排序输出;可以按学校编号查询学校某个项目的情况。所以利用结构体创建两个数组,数组sch 包含学校名称、编号、总分、男子总分、女子总分等内容;数组pro 包含项目名称、项目编号以及该项目前三名或前五名的学校编号。 需要注意的是,预处理命令中使用了iostream、i

    19、omanip、fstream等头文件,因此可以更方便的使用一些C+中的输入输出语句。六、源代码#include #include #include #includeusing namespace std; int n; /n个学校 int m; /m个男子项目 int w; /w个女子项目 struct pro /表示项目的结构体 string name; /项目名称 int snum6; /前3或5名学校的编号 p21; struct school /表示学校的结构体 int num; string name; /学校名称 int score; /学校总分 int male; /男子总分 i

    20、nt female; /女子总分 sch21; int qianwu5=7,5,3,2,1; /前五名得分 int qiansan3=5,3,2; /前三名得分void input() /输入前三或前五成绩 int i,j,y,x; printf(输入学校数目:); y=0; while(1) scanf(%d,&n); if(n=1&n=20)y=1; if(y)break; else printf(输入数据有误,请重新输入:); for(i=1;ischi.name; schi.score=0; schi.female=0; schi.male=0; schi.num=i; printf(输入男子项目数和女子项目数:); y=0; while(1) scanf(%d,%d,&m,&w); if(m=1&w=1)y=1; if(y)break; else printf(输入数据有误,请重新输入:); for(i=1;ipi.name; printf(输入第%d个项目(男子)的前5名的学校编号:n,i); for(j=1;j=1&x=20)y=1; if(y)break; else printf(输入数据有误,请重新输入:); pi.snumj=x; schx.score+=qianwuj-1; schx.male+=qianwuj-1; for(i=m+1;ipi.name;


    注意事项

    本文(数据结构课程设计.docx)为本站会员主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(点击联系客服),我们立即给予删除!

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




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2022 冰点文档网站版权所有

    经营许可证编号:鄂ICP备2022015515号-1

    收起
    展开