数据结构课程设计-字符型界面的设计与实现(共12页)_第1页
数据结构课程设计-字符型界面的设计与实现(共12页)_第2页
数据结构课程设计-字符型界面的设计与实现(共12页)_第3页
数据结构课程设计-字符型界面的设计与实现(共12页)_第4页
数据结构课程设计-字符型界面的设计与实现(共12页)_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、精选优质文档-倾情为你奉上成绩评定教师签名嘉应学院 计算机学院实验报告课程名称:数据结构课程设计开课学期:2017-2018学年第2学期班 级:指导老师:实验题目:字符界面的设计与实现学 号:姓 名:上机时间:1. 界面背景颜色设置 界面背景颜色设置需要调用system(color)函数,并且包含头文件stdlib.h。其中,颜色属性有两十六进制数字指定,第一个为背景色,第二个则为前景色。函数system(“color 1f”)中,1代表背景为蓝色,f代表前景字体为亮白色。表1-10是前景色和背景色取值含义的对照表,颜色的取值有16种,从0到F。2. 界面背景大小设置 界面背景颜色设置需要调用

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

3、("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&qu

4、ot;);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.Yell

5、own");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;c

6、ase '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并回车,退出应用程序。总结:应用程序的界面是与用户交流最直接的

7、渠道。使用方便,布局合理,颜色和谐,界面文字简介规范。使用户更能接受并使用该应用程序。完整代码如下:#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

8、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; /

9、数据信息 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

10、; 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为收集链

11、表的头指针 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"

12、,"CA1544","合肥","北京","1245 ","10:55","12:40","733",960,NULL, "MU5341","MU5341","上海","广州","每日 ","14:20","16:15","M90",1280,NULL, "CZ3869",&quo

13、t;CZ3869","重庆","深圳","246 ","08:55","10:35","733",1010,NULL, "MU3682","MU3682","桂林","南京","23467","20:50","22:15","M90",1380,NULL, "HU1836","H

14、U1836","上海","北京","每日 ","09:40","11:20","738",1250,NULL, "CZ3528","CZ3528","成都","厦门","13457","15:10","16:50","CRJ",1060,NULL,; /-信 息 显 示-/按表的格式输出某个航班信息/显示头部

15、信息void Cout_info1() cout<<" *n"<<endl;cout<<" * 欢 迎 您 使 用 *n"<<endl; cout<<" * 航 班 信 息 表 *n"<<endl; cout<<" *n"<<endl; cout<<" 航班号 起飞时间 到达时间 起飞站 终点站 班期 机型 票价n"<<endl; /显示主体信息void Cout_info2_

16、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_ad

17、dress; 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<<

18、;" "<<Fi.start_time; cout<<" "<<Fi.arrived_time; cout<<" "<<Fi.start_address; cout<<" "<<Fi.arrived_address; cout<<" "<<Fi.work_date; cout<<" "<<Fi.FlightType; cout<<&q

19、uot; "<<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

20、_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->

21、;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_

22、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.

23、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 addr

24、ess(按起飞地点查询)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<<"请输入服务命令:&qu

25、ot; 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<<" 谢谢惠顾! "&l

26、t;<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)

27、/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

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论