欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    数据结构课程设计-字符型界面的设计与实现(共12页).docx

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

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

    数据结构课程设计-字符型界面的设计与实现(共12页).docx

    精选优质文档-倾情为你奉上成绩评定教师签名嘉应学院 计算机学院实验报告课程名称:数据结构课程设计开课学期:2017-2018学年第2学期班 级:指导老师:实验题目:字符界面的设计与实现学 号:姓 名:上机时间:1. 界面背景颜色设置 界面背景颜色设置需要调用system(color)函数,并且包含头文件stdlib.h。其中,颜色属性有两十六进制数字指定,第一个为背景色,第二个则为前景色。函数system(“color 1f”)中,1代表背景为蓝色,f代表前景字体为亮白色。表1-10是前景色和背景色取值含义的对照表,颜色的取值有16种,从0到F。2. 界面背景大小设置 界面背景颜色设置需要调用system(mode con)函数,并且包含头文件stdlib.h。例如,要设置背景大小为: 长35行,宽78列的矩形。调用格式为:system(“mode con: cols=78 lines=35”);3. 字符菜单设计,源代码:#include<stdio.h>#include<stdlib.h>void Red()printf("Redn"); system("pause");system("color 4f");void Blue()printf("Bluen"); system("pause");system("color 9f");void Green()printf("Greenn"); system("pause");system("color 2f");void Yellow()printf("Yellown"); system("pause");system("color 6f");void Gray()printf("Grayn"); system("pause");system("color 8f");void main()system("color 1f");/设置界面为白字蓝底system("mode con: cols=78 lines=35"); /设置界面大小char c;do/循环语句保证主菜单始终出现在界面system("cls");printf("t 1.Redn");printf("t 2.Greenn");printf("t 3.bluen");printf("t 4.Yellown");printf("t 5.Grayn");printf("t 6.Goodbyen");printf("Please Input choose(1-6): ");scanf("%s",&c);switch(c)/实现菜单功能的选择case '1': Red(); break;case '2': Green(); break;case '3': Blue(); break;case '4': Yellow(); break;case '5': Gray(); break;case '6': printf("Goodbye!n"); exit(0);default: printf("Error,please input again!n"); break;while(c!='6');4.测试运行界面主菜单输入选择1并回车后,运行结果如图输入选择2并回车后,运行结果如图输入选择3并回车后,运行结果如图输入选择4并回车后,运行结果如图输入选择5并回车后,运行结果如图输入选择6并回车,退出应用程序。总结:应用程序的界面是与用户交流最直接的渠道。使用方便,布局合理,颜色和谐,界面文字简介规范。使用户更能接受并使用该应用程序。完整代码如下:#include<iostream.h>#include<string.h>#include<stdio.h>#define N 6 /航班数/航班信息typedef struct flight char flight_number10; /航班号 char start_address10; /起飞站 char arrived_address10; /终点站 char work_date10; /班期 char start_time6; /起飞时间 char arrived_time6; /到达时间 char FlightType4; /机型 int fare; /票价 DataType;struct flight FlightN;/-按航班号进行基数排序-typedef char KeyType;#define D 7 / D为排序码的最大位数 #define R 'a' / R为基数,这里为小于字母'a'代表的整型值 struct Node; /单链表结点类型 typedef struct Node RadixNode;struct Node KeyType keyD; /关键字 DataType info; /数据信息 RadixNode *next;typedef RadixNode * RadixList;typedef struct QueueNode RadixNode *f; /对列的头指针 RadixNode *e; /对列的尾指针 Queue;Queue queueR;/用队列表示桶void radixSort(RadixList * plist, int d, int r) int i,j,k; RadixNode *p, *head; head=(*plist)->next; for(j=d-1; j>=0; j-) /进行d次分配和收集 p=head; for(i=0; i<r; i+) queuei.f=NULL; queuei.e=NULL; /清队列 while(p!=NULL) k=p->keyj; /按排序码的第j个分量进行分配 if(queuek.f=NULL) queuek.f=p; / 若第k个堆为空,则当前记录为队头 else (queuek.e)->next=p; / 否则当前记录链接到第k队的队尾 queuek.e=p; p=p->next; i=0; while(queuei.f=NULL) i+; / 从r个队列中找出第一个非空的队列 p=queuei.e; head=queuei.f; /head为收集链表的头指针 for(i+; i<r; i+) if(queuei.f!=NULL) p->next=queuei.f; p=queuei.e; / 收集非空队列 p->next=NULL; (*plist)->next=head;/初始化航班信息struct Node elementN+1= " "," "," "," "," "," "," "," ",0,NULL,/表头 "CA1544","CA1544","合肥","北京","1245 ","10:55","12:40","733",960,NULL, "MU5341","MU5341","上海","广州","每日 ","14:20","16:15","M90",1280,NULL, "CZ3869","CZ3869","重庆","深圳","246 ","08:55","10:35","733",1010,NULL, "MU3682","MU3682","桂林","南京","23467","20:50","22:15","M90",1380,NULL, "HU1836","HU1836","上海","北京","每日 ","09:40","11:20","738",1250,NULL, "CZ3528","CZ3528","成都","厦门","13457","15:10","16:50","CRJ",1060,NULL,; /-信 息 显 示-/按表的格式输出某个航班信息/显示头部信息void Cout_info1() cout<<" *n"<<endl;cout<<" * 欢 迎 您 使 用 *n"<<endl; cout<<" * 航 班 信 息 表 *n"<<endl; cout<<" *n"<<endl; cout<<" 航班号 起飞时间 到达时间 起飞站 终点站 班期 机型 票价n"<<endl; /显示主体信息void Cout_info2_1(Node p)/方式一 cout<<" "<<p->info.flight_number; cout<<" "<<p->info.start_time; cout<<" "<<p->info.arrived_time; cout<<" "<<p->info.start_address; cout<<" "<<p->info.arrived_address; cout<<" "<<p->info.work_date; cout<<" "<<p->info.FlightType; cout<<" "<<p->info.fare<<"元"<<endl;void Cout_info2_2(flight F,int i)/方式二 cout<<" "<<Fi.flight_number; cout<<" "<<Fi.start_time; cout<<" "<<Fi.arrived_time; cout<<" "<<Fi.start_address; cout<<" "<<Fi.arrived_address; cout<<" "<<Fi.work_date; cout<<" "<<Fi.FlightType; cout<<" "<<Fi.fare<<"元"<<endl;/显示所有航班信息void output_ALL_info1(Node element) /方式一 RadixList p=element; Cout_info1(); p=p->next; while(p!=NULL) Cout_info2_1(p); p=p->next; cout<<endl;void output_ALL_info2(flight F) /方式二 Cout_info1(); for(int i=0;i<N;i+) Cout_info2_2(F,i); cout<<endl;/-信 息 复 制-/将排好的序列(链表)转化成顺序表存储形式void copy(flight F,Node element) RadixList p=element; p=p->next; int i; for(i=0;i<N && p!=NULL;i+) strcpy(Fi.flight_number,p->info.flight_number); strcpy(Fi.start_time,p->info.start_time); strcpy(Fi.arrived_time,p->info.arrived_time); strcpy(Fi.start_address,p->info.start_address); strcpy(Fi.arrived_address,p->info.arrived_address); strcpy(Fi.work_date,p->info.work_date); strcpy(Fi.FlightType,p->info.FlightType); Fi.fare=p->info.fare; p=p->next; /-服 务 菜 单-void F_By_Time(flight F,int);void F_By_Address(flight F,int);void F_By_fare(flight F);void F_By_FN(flight F); /主菜单void mainmenu() char ch; int y; cout<<" 主菜单n"<<endl; cout<<" =n"<<endl; cout<<" Please choose: (input the number)(输入查询/排序命令)n"<<endl; cout<<" 0. show the mainmenu (显示主菜单)n"<<endl; cout<<" 1. Find by flight number(按航班号查询)n"<<endl; cout<<" 2. Find by start time(按起飞时间查询)n"<<endl; cout<<" 3. Find by arrived time(按到达时间查询)n"<<endl; cout<<" 4. Find by start address(按起飞地点查询)n"<<endl; cout<<" 5. Find by arrived address(按目的地点查询)n"<<endl; cout<<" 6. Find by the fare(按票价范围查询)n"<<endl; cout<<" -其他键退出"<<endl; cout<<" =n"<<endl; while(1) cout<<"请输入服务命令:" cin>>y; switch(y) case 0: mainmenu();break; case 1:F_By_FN(Flight);break; case 2:F_By_Time(Flight,1);break; case 3:F_By_Time(Flight,2);break; case 4:F_By_Address(Flight,1);break; case 5:F_By_Address(Flight,2);break; case 6:F_By_fare(Flight);break; default :cout<<" 谢谢惠顾! "<<endl;break; cout<<"是否退出?(Y/N):" cin>>ch; if(ch='Y'|ch='y') break; /-查 询 系 统-/通过航班号实现二分查找法查找void F_By_FN(flight F) int low=0,high=N,mid; char Num10; cout<<"请输入您要查询的航班号:" cin>>Num; Cout_info1();/显示头部信息 while(low<=high) mid=(low+high)/2; if(strcmp(Num,Fmid.flight_number)=0) Cout_info2_2(F,mid);break; else if(strcmp(Num,Fmid.flight_number)<0) high=mid-1; else low=mid+1; cout<<" *对不起,没有您要查找的航班号* "<<endl;/通过起飞/到达时间查询void F_By_Time(flight F,int Time) int i; char T6; cout<<"请输入您要查询的航班的起飞/抵达时间:" cin>>T; Cout_info1();/显示头部信息 for(i=0;i<N;i+) if(Time=1) /按起飞时间查询 if(strcmp(T,Fi.start_time)=0) Cout_info2_2(F,i); if(Time=2) /按抵达时间查询 if(strcmp(T,Fi.arrived_time)=0) Cout_info2_2(F,i); cout<<" *对不起,该时间没有航班* "<<endl;/通过站点查询void F_By_Address(flight F,int AD) char str10; cout<<"请输入您要查询的航班的起飞/抵达地址:" cin>>str; Cout_info1(); for(int i=0;i<N;i+) if(AD=1) /按起点站查询 if(strcmp(str,Fi.start_address)=0) Cout_info2_2(F,i); if(AD=2) /按目的站查询 if(strcmp(str,Fi.arrived_address)=0) Cout_info2_2(F,i); cout<<" *对不起,该站点不存在* "<<endl;/通过票价范围查询void F_By_fare(flight F) int T1,T2,i; cout<<"请输入您要查询的航班的最低票价(单位:元):" cin>>T1; cout<<"请输入您要查询的航班的最高票价(单位:元):" cin>>T2; Cout_info1(); for(i=0;i<N;i+) if(T1<=Fi.fare && T2>=Fi.fare) Cout_info2_2(F,i); cout<<" *对不起,没有适合您的航班,请修改您的票价范围*" <<endl;/-主 函 数-int main() RadixList p=element; for(int i=0;i<N;i+) elementi.next=&elementi+1; element10.next=NULL; radixSort(&p, D, R); /基数排序 output_ALL_info1(element); /输出排序后的有序序列(航班信息) copy(Flight,element); /另存储排序后的航班信息 mainmenu(); /给出主菜单 return 0;专心-专注-专业

    注意事项

    本文(数据结构课程设计-字符型界面的设计与实现(共12页).docx)为本站会员(飞****2)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

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




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开