软件工程10-2班 《C语言程序设计》课程设计题目
① 航班信息:航班号、最大载客数、起飞地点、起飞时间、降落地点、降落时间,单价;
② 乘客信息:航班号、身份证号码、姓名、性别、出生年月、座位号。 乘客订票的主要方式是:乘客提出航班号、起飞地点、起飞时间、降落地点、订票数等订票要求,根据事先保存的航班数据决定乘客能否订票?只有全部满足了乘客的订票要求并且所订航班有足够的未订座位之后才能完成订票处理,并且修改该航班的未订座位数(每个航班的未订座位数的初始值就是该航班的最大载客数);否则,订票失败,并且给出不能订票的原因。
要求将航班数据保存在数据文件中,在处理时按航班的起飞地点建立不同的链表。
功能要求 :
⑴ 增加航班记录。将新的航班记录增加到原有的航班数据文件中。在进行处理时必须检查所要增加的航班记录是否存在,如果已经存在,应给出提示信息后停止增加;
⑵ 航班取消。如果某次航班的乘客数太少(已订票的少于本次航班最大载客数的10%),将取消该航班,但该航班的记录仍然保存在原有的航班数据文件中;
⑶ 航班查询。应该有以下几种基本的查询方式:按航班号、按起飞地点和起飞时间、按降落地点,按起飞地点和降落地点;
⑷ 航班订票。按上述问题描述中的乘客订票方式完成航班订票处理。 ⑸ 设计一个菜单,至少具有上述操作要求的基本功能。
7学生成绩管理
问题描述:
设学生信息包括:学号、姓名、学期、每门课程的成绩(每学期的课程门数是不一样的) ,对学生的成绩信息进行管理。
实现要求:
实现:学生信息的录入;修改;删除和查询,按学期、学号、成绩不及格等查询。
6
软件工程10-2班 《C语言程序设计》课程设计题目
⑴ 输入学生的成绩信息,包含学号、姓名、性别等基本信息和各课成绩 ⑵ 显示全部学生各科成绩信息;
⑶ 对各科成绩统计分析(总分、平均分、最高分、最低分、及格率等); ⑷ 统计各科各分数段人数;
⑸ 按学号或姓名查找并显示某个学生的各科成绩; ⑹ 按课程成绩或总分由高到低排序显示; ⑺ 更新某个学生的基本信息或课程成绩;
⑻ 设计一个菜单,具有上述规定的操作要求、退出系统等最基本的功能。
8 运动会管理系统
问题描述:
校际运动会管理系统。设有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;
③ 团体项目的名次取法和上面相同,但分数加倍。
功能要求 :
⑴ 运动员报名登记,以学校为单位进行运动员报名登记,登记的限制要求按问题描述的要求;
⑵ 参赛信息查询,查看参赛学校信息和比赛项目信息; ⑶ 竞赛检录,每项比赛开始前完成参赛运动员的检录;
⑷ 竞赛成绩登记,填写比赛名次,然后根据竞赛检录的运动员人数和上述的记分方式自动完成各学校的成绩登记并实时生成各学校的团体总分;
⑸ 比赛成绩查询,可以按竞赛项目、参赛学校、参赛运动员查看比赛成绩;
7
软件工程10-2班 《C语言程序设计》课程设计题目
⑹ 竞赛成绩排序,以学校为单位,按总成绩的高低,分别排序输出每个学校的总成绩、男子总成绩、女子总成绩;
⑺ 设计一个菜单,至少具有上述操作要求的基本功能。 (本题⑸由2人完成)
9 银行存款方案比较
问题描述:
设银行整存整取不同期限的月利率分别是:活期月息为0.75%,一年期月息为1.75%,三年期月息为2.15%,五年期月息为2.75%,且银行对定期存款过期部分不支付利息。
现在某人将手头多余的钱存入银行,其多余的钱是第一年每月2000元,以后每年每月多余的钱在上一年队每月多余钱的基础上再增加8%,现在该人计划按上述方式在银行存款15年。
实现要求:
⑴ 按活期存款,15年里共存入的本金有多少?利息有多少?15年后全部取出后本、息之和是多少?
⑵ 按一年定期存款,15年里共存入的本金有多少?利息有多少?15年后全部取出后本、息之和是多少?
⑶ 按三年定期存款,15年里共存入的本金有多少?利息有多少?15年后全部取出后本、息之和是多少?
⑷ 按五年定期存款,15年里共存入的本金有多少?利息有多少?15年后全部取出后本、息之和是多少?
⑸ 设计一个菜单,具有上述要求的所有功能、退出系统等最基本的功能。
问题描述:
10 集合运算
设有两个用单链表表示的集合A、B,其元素类型是int且以非递减方式存储,其头结点分别为a、b。要求下面各问题中的结果集合同样以非递减方式存储,结果集合不影响原集合。
实现要求:
8
软件工程10-2班 《C语言程序设计》课程设计题目
⑴ 编写集合元素测试函数IN_SET,如果元素已经在集合中返回0,否则返回1;
⑵ 编写集合元素输入并插入到单链表中的函数INSERT_SET,保证所输入的集合中的元素是唯一且以非递减方式存储在单链表中;
⑶ 编写集合元素输出函数,对建立的集合链表按非递增方式输出; ⑷ 编写求集合A、B的交C=A∩B的函数,并输出集合C的元素; ⑸ 编写求集合A、B的并D=A∪B的函数,并输出集合D的元素; ⑹ 求集合A与B的对称差E=(A-B)∪(B-A) 的函数,并输出集合D的元素; ⑺ 设计一个菜单,具有输入集合元素、求集合A、B的交C、求集合A、B的并D、求集合A与B的对称差E、退出等基本的功能。
测试数据:由读者自定,但集合A、B的元素个数不得少于16个。
11 矩阵的操作
设有两个矩阵A=(aij)m×n,B=(bij)p×q。 实现要求:
⑴ 编写矩阵输入函数INPUT_MAT,通过该函数完成矩阵的输入并返回保存矩阵的三元组(不能使用全局变量);
⑵ 编写矩阵输出函数OUTPUT_MAT,通过该函数完成矩阵的输出,输出的形式是标准的矩阵形式(即二维数组的形式);
⑶ 求矩阵的转置,矩阵的转置A=(aji)n×m,转置前输出原矩阵,转置后
’
输出转置矩阵;
⑷ 求矩阵A、B的和。矩阵A和B能够相加的条件是:m=p,n=q;矩阵A和B如果不能相加,请给出提示信息;若能够相加,则求和矩阵C并输出C;
C=A+B=(cij)m×n,其中cij=aij+bij
⑸ 求矩阵A、B的差。矩阵A和B能够相减的条件是:m=p,n=q;矩阵A和B如果不能相减,请给出提示信息;若能够相减,则求差矩阵C并输出C;
C=A-B=(cij)m×n,其中cij=aij-bij
9
软件工程10-2班 《C语言程序设计》课程设计题目
⑹ 求矩阵A、B的积。矩阵A和B能够相乘的条件是:p=n;矩阵A和B如果不能相乘,请给出提示信息;若能够相乘,则求积矩阵D并输出D;
D=A×B=(dij)m×q,其中dij=∑aik×bkj,k=1,2,??,n
⑺ 设计一个菜单,具有求矩阵的转置、求矩阵的和、求矩阵的积、退出等基本的功能。在求矩阵的和或求矩阵的积时要求能够先提示输入两个矩阵的,然后再进行相应的操作。
12 数据汇总
问题描述:
在数据处理中经常需要对大量数据进行汇总,将相同关键字记录的某些数据项的值叠加起来,生成一个分类汇总表。
假设某超级市场销售有m种商品(假设商品的编号为1,2,3,┅┅,m),有n台前台收款机(假设收款机的编号为1,2,3,┅┅,n)进行收款,以记录的形式提供给计算机,每个记录表示某台收款机的一种商品一次交易的数量和销售额。记录由4个域组成:收款机编号、商品编号、销售数量、销售金额。构造一个结构体类型,每次销售数据以一个结构体变量保存在一个数据文件中。
实现要求:
⑴ 编写实现将数据记录插入到数据文件的最后的函数;
⑵ 编写以收款机为单位的数据分类处理函数。构造n个单链表,每个链表保存一台收款机的销售记录,这n个单链表的头指针存放在一个指针数组中,通过数组的下标就可以知道是哪台收款机。读取数据文件的记录,将所有的销售记录(数据文件中的全部记录)分解插入到n个单链表;
⑶ 编写以商品为单位的数据分类处理函数。构造m个单链表,每个链表保存一种商品的销售记录,这m个单链表的头指针存放在一个指针数组中,通过数组的下标就可以知道是哪种商品。读取数据文件的记录,将所有的销售记录(数据文件中的全部记录)分解插入到m个单链表;
⑷ 统计每台收款机的销售总额;
⑸ 以收款机为单位,将所有收款机按销售总额的非递减顺序构造一个单链表并输出;
10