乘客订票的主要方式是:乘客提出航班号、起飞地点、起飞时间、降落地点、订票数等订票要求,根据事先保存的航班数据决定乘客能否订票?只有全部满足了乘客的订票要求并且所订航班有足够的未订座位之后才能完成订票处理,并且修改该航班的未订座位数(每个航班的未订座位数的初始值就是该航班的最大载客数);否则,订票失败,并且给出不能订票的原因。
要求将航班数据保存在数据文件中,在处理时按航班的起飞地点建立不同的链表。 功能要求 :
⑴ 增加航班记录。将新的航班记录增加到原有的航班数据文件中。在进行处理时必须检查所要增加的航班记录是否存在,如果已经存在,应给出提示信息后停止增加;
⑵ 航班取消。如果某次航班的乘客数太少(已订票的少于本次航班最大载客数的10%),将取消该航班,但该航班的记录仍然保存在原有的航班数据文件中;
⑶ 航班查询。应该有以下几种基本的查询方式:按航班号、按起飞地点和起飞时间、按降落地点,按起飞地点和降落地点;
⑷ 航班订票。按上述问题描述中的乘客订票方式完成航班订票处理。 ⑸ 设计一个菜单,至少具有上述操作要求的基本功能。 17. 运动会管理系统
问题描述:
校际运动会管理系统。设有n个学校参加校际运动会,共有男子竞赛项目数m,女子竞赛项目数w。每个学校可以参加所有竞赛项目,也可以只参加部分竞赛项目,每个学校对每个项目的参赛运动员不能超过4人,每个运动员最多只能参加3项单项比赛,团体赛不受限制。
各项目名次取法有如下几种:用户自定义:(各名次权值由用户指定) ① 参赛人数超过6人,取前5名:第1名得分 7,第2名得分 5,第3名得分3,第4名得分2,第5名得分 1;
②参赛人数不超过6人,取前3名:第1名得分 5,第2名得分 3,第3名得分2;
15
③ 团体项目的名次取法和上面相同,但分数加倍。 功能要求 :
⑴ 运动员报名登记,以学校为单位进行运动员报名登记,登记的限制要求按问题描述的要求;
⑵ 参赛信息查询,查看参赛学校信息和比赛项目信息; ⑶ 竞赛检录,每项比赛开始前完成参赛运动员的检录;
⑷ 竞赛成绩登记,填写比赛名次,然后根据竞赛检录的运动员人数和上述的记分方式自动完成各学校的成绩登记并实时生成各学校的团体总分;
⑸ 比赛成绩查询,可以按竞赛项目、参赛学校、参赛运动员查看比赛成绩; ⑹ 竞赛成绩排序,以学校为单位,按总成绩的高低,分别排序输出每个学校的总成绩、男子总成绩、女子总成绩;
⑺ 设计一个菜单,至少具有上述操作要求的基本功能。 18. 银行存款方案比较 问题描述:
设银行整存整取不同期限的月利率分别是:活期月息为0.75%,一年期月息为1.75%,三年期月息为2.15%,五年期月息为2.75%,且银行对定期存款过期部分不支付利息。
现在某人将手头多余的钱存入银行,其多余的钱是第一年每月2000元,以后每年每月多余的钱在上一年队每月多余钱的基础上再增加8%,现在该人计划按上述方式在银行存款15年。
实现要求:
⑴ 按活期存款,15年里共存入的本金有多少?利息有多少?15年后全部取出后本、息之和是多少?
⑵ 按一年定期存款,15年里共存入的本金有多少?利息有多少?15年后全部取出后本、息之和是多少?
⑶ 按三年定期存款,15年里共存入的本金有多少?利息有多少?15年后全部取出后本、息之和是多少?
⑷ 按五年定期存款,15年里共存入的本金有多少?利息有多少?15年后全部取出后本、息之和是多少?
16
⑸ 设计一个菜单,具有上述要求的所有功能、退出系统等最基本的功能。 19. 超市数据汇总
问题描述:
在数据处理中经常需要对大量数据进行汇总,将相同关键字记录的某些数据项的值叠加起来,生成一个分类汇总表。
假设某超级市场销售有m种商品(假设商品的编号为1,2,3,┅┅,m),有n台前台收款机(假设收款机的编号为1,2,3,┅┅,n)进行收款,以记录的形式提供给计算机,每个记录表示某台收款机的一种商品一次交易的数量和销售额。记录由4个域组成:收款机编号、商品编号、销售数量、销售金额。构造一个结构体类型,每次销售数据以一个结构体变量保存在一个数据文件中。
实现要求:
⑴ 编写实现将数据记录插入到数据文件的最后的函数;
⑵ 编写以收款机为单位的数据分类处理函数。构造n个单链表,每个链表保存一台收款机的销售记录,这n个单链表的头指针存放在一个指针数组中,通过数组的下标就可以知道是哪台收款机。读取数据文件的记录,将所有的销售记录(数据文件中的全部记录)分解插入到n个单链表;
⑶ 编写以商品为单位的数据分类处理函数。构造m个单链表,每个链表保存一种商品的销售记录,这m个单链表的头指针存放在一个指针数组中,通过数组的下标就可以知道是哪种商品。读取数据文件的记录,将所有的销售记录(数据文件中的全部记录)分解插入到m个单链表;
⑷ 统计每台收款机的销售总额;
⑸ 以收款机为单位,将所有收款机按销售总额的非递减顺序构造一个单链表并输出;
⑹ 以商品为单位,统计每种商品的销售总额;
⑺ 以商品为单位,将所有销售的商品按销售总额的非递减顺序构造一个单链表并输出;
⑻ 设计一个菜单,具有上述要求的所有功能、退出系统等最基本的功能。 20.模拟餐馆点菜系统
17
可以到一个餐馆去仔细研究一下餐馆的业务流程:餐馆事先准备好自己的招牌菜及一些常规的菜式,有营业场所,服务人员等;顾客来了以后,服务生先给客人找一张桌子坐下来,然后递上菜谱等待顾客点菜,顾客可以点一个菜,也可以退菜,完了之后结账走人,这张桌子又可以用来招待下一批顾客。
样例程序 好友信息管理程序设计
一、【设计目的】
培养学生综合利用C语言进行程序设计的能力,主要是培养学生利用系统提供的标准函数进行创新设计。 二、【设计条件】
在安装Windows XP和TC环境或VC++6.0的微机上进行。 三、【设计内容】
1. add添加好友信息 2. revice修改好友信息 3. delete删除一个好友信息
4. name 按名字查找一个好友信息
5. birthday按生日查找一个好友信息电子通讯录功能如下: Function choose 1.Read 2.Append 3.Delete 4.Search
5.Save and exit 6.Quit
说明:上图是电子通讯录的主菜单,利用它,将能够轻松地录入一个朋友的电话号 码,通讯地址和出生日期,而且它还提供了检索和删除功能。在后面还将提供按生 日先后排序的功能,这些都有助于该通讯录的管理。 四、【设计准备】选定题目后查找资料、准备设计材料。 五、【设计思想】
1.用顺序表设计电子通讯录的结构 为了表示较为复杂的数据内容,一般用结构这种数据类型,第一步就是在结构中定义所需要的各项信息。一般的通讯录都包括姓名,性别,出生年月,通讯地址和联系电话这几项,而在这几项中,出生年月又包括年份,月份和日期三项,通讯地址包括邮编和家庭地址二项,我们把这些联系较为紧密的内容又用单独的结构表示,这样就产生了电子通讯录的基本结构:
struct addr /*通讯地址结构定义*/ { char post_num[10]; /*邮编*/
18
char addr[40]; /*家庭地址*/ };
struct birth /*出生年月结构定义*/ { int year; /*年份*/ int month; /*月份*/ int day; /*日期*/ };
struct friend /*电子通讯录结构定义*/ { int number; /*序号*/ char name[20] /*姓名*/ char sex; /*性别*/
struct birth birth; /*出生年月*/ struct addr addr; /*通信地址*/ char telephone[13]; /*联系电话*/ };
定义的主结构friend包含了前述的五项内容 name,sex,和telephone分别代表了姓名,性别和联系电话。为了让结构中的各项组分更加清晰,定义了二个小结构birth 和addr分别代表出生年月和通讯地址,因此实际上friend包含了8项内容。有了结构定义后,我们可以很轻松地构造出电子通讯录的主体: stryct friend friends[50];
采用一维数组 friends[50],正是用到了顺序表这种最简单的数据结构来表示问题。 2.增添电子通讯录中的内容
对于电子通讯录这样一张顺序表来说,内容的录入是必不可少的操作。由于采用的是顺序存储结构。这项工作很简单,只需要在把输入的信息按顺序放在空的friends数组元素中即可。函数Data_Input完成了信息的录入工作: void {
Data_input(int j)
friends[j].number=j;
printf(\%d record\
printf(\ /*读入姓名*/ scanf(\
printf(\ /*读入姓别*/ scanf(\
printf(\ /*读入出生年月*/ printf(\
scanf(\printf(\
scanf(\printf(\
scanf(\
printf(\number:\ /*读入邮编*/ scanf(\
19
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库程序设计基础课程设计指导书(4)在线全文阅读。
相关推荐: