C语言程序设计选题
2、运动会分数统计 任务:参加运动会有n个学校,学校编号为1,2,…,n。比赛分成m个男子项目和w个女子项目。男子项目编号为1,2,…,m,女子项目编号为m+1,m+2,…,m+w。不同的项目取前五名或前三名积分;取前五名的积分分别为:7、5、3、2、1,前三名的积分分别为:5、3、2;哪些取前五名或前三名由学生自己设定。(m<=20,n<=20,w<=20)。 功能要求:可以输入各个项目的前三名或前五名的积分;能统计各学校总分;可以按学校编号、学校总分、男女团体总分排序输出;可以按学校编号查询学校某个项目的情况;可以按项目编号查询取得前三或前五名的学校。 规定:输入数据形式和范围为20以内的整数(如果做得更好可以输入学校的名称,运动项目的名称);输出形式,有中文提示,各学校分数为整型;界面要求,有合理的提示,每个功能可以设立菜单,根据提示,可以完成相关的功能要求。 存储结构:学生自己根据系统功能要求自己设计,请在最后的上交资料中指明你用到的存储结构。 参考的数据结构: (1)项目信息表结构 typedef struct xm_table{ int item; // 项目编号 char name[20];//项目名称 int count; //该项目得分人的数量 }XM_TABLE; (2)学生信息表结构 struct STUDENT{ char name[20]; //姓名 int score; //得分成绩 int range; //得分名次 int item; //得分项目 int sex; //性别 }; (3)参赛学校信息结构 //参赛学校 typedef struct SchoolStruct { int count; //计算实际运动员个数 int serial; //学校编号 char Name[20];//学校名称 int menscore; //男子团体总分 int womenscore; //女子团体总分 int totalscore; //团体总分 int jifeng; //学校积分 struct STUDENT students[10]; //参赛运动员 struct SchoolStruct *next; //下一个参赛学校 }SCHOOLSTRUCT; 操作需求:(1)建立参赛学校链表;(2)添加获奖学生;(3)成绩统计;(4)按项目编号查询取得前三或前五名的学校;(5)按学校编号查询学校某个项目;(6)输出数据。 3、订票系统 通过此系统可以实现如下功能: 录入:可以录入航班情况(数据可以存储在一个数据文件中,数据结构、具体数据自定) 查询:可以查询某个航线的情况(如输入航班号,查询起降时间,起飞抵达城市,航班票价,票价折扣,确定航班是否满仓;输入起飞抵达城市,查询飞机航班情况。) 订票:可以订票,如果该航班已经无票,可以提供相关可选择航班;(订票情况可以存在一个数据文件中,结构自己设定) 退票:可退票,退票后修改相关数据文件; 客户资料有姓名,证件号,订票数量及航班情况,订单要有编号。 修改航班信息:当航班信息改变可以修改航班数据文件 要求:根据以上功能说明,设计航班信息,订票信息的存储结构,设计程序完成功能; 航班信息数据结构 typedef char keytype; //航班信息结构 typedef struct { char start[6];//起点站 char end[6];//终点站 char sche[10];//航班期 char time1[5];//起飞时间 char time2[5];//到达时间 char model[4];//机型 int price; //票价 }infotype; //定义航班节点 typedef struct { keytype keys[keylen];//航班号 infotype others;//航班信息 int next; //下一航班 }slnode; //航班表 typedef struct { slnode sl[maxspace]; int keynum; int length; }sllist; 操作实现: (1)录入航班信息: (2)查询航班信息: 可以查询某个航线的情况(如,输入航班号,查询起降时间,起飞抵达城市,航班票价,票价折扣,确定航班是否满仓); 可以输入起飞抵达城市,查询飞机航班情况; 航班信息查询系统:可以按航班号、起点站、.终点站、起飞时间、到达时间进行查询。 (3)航班订票:可以订票,如果该航班已经无票,可以提供相关可选择航班;(订票情况可以存在一个数据文件中,结构自己设定) (4)航班退票:可退票,退票后修改相关数据文件; 客户资料有姓名,证件号,订票数量及航班情况,订单要有编号。 (5)修改航班信息:当航班信息改变可以修改航班数据文件 注:因为航班号为两位字母后跟数字,所以在排序时应该使用多关键字的基数排序对航班号进行排序。 4、joseph环 任务:编号是1,2,…,n的n个人按照顺时针方向围坐一圈,每个人只有一个密码(正整数)。一开始任选一个正整数作为报数上限值m,从第一个仍开始顺时针方向自1开始顺序报数,报到m时停止报数。报m的人出列,将他的密码作为新的m值,从他在顺时针方向的下一个人开始重新从1报数,如此下去,直到所有人全部出列为止。设计一个程序来求出出列顺序。 要求:利用单向循环链表存储结构模拟此过程,按照出列的顺序输出各个人的编号。 测试数据:m的初值为20,n=7 ,7个人的密码依次为3,1,7,2,4,7,4,首先m=6,则正确的输出是什么? 要求:输入数据:建立输入处理输入数据,输入m的初值,n ,输入每个人的密码,建立单循环链表。 输出形式:建立一个输出函数,将正确的输出序列 数据结构: typedef struct Node { int data; int password; struct Node *next; }Node, *LinkList; 基本操作:初始化单链表;给每个人赋密码;确定需要处理的人数;确定开始的上限值;得到正确的顺序;输出结果。 5、学生成绩管理 实现功能:输入、输出、插入、删除、查找、追加、读入、显示、保存、拷贝、排序、索引、分类合计、退出。 能实现对学生信息的简单管理。 具体要求: 建立一个4个学生的信息登记表,每个学生的信息包括:学号,姓名,和3门课程的成绩(FOX,C,ENGLISH)。 程序运行时显示一个简单的菜单,例如: (1)信息输入(INPUT) (2)总分统计(COUNT) (3)总分排序(SORT) (4)查询(QUERY) 其中: (1)对4个学生的信息进行输入; (2)对每个学生的3门课程统计总分; (3)对4个学生的总分按降序排序并显示出来; (4)查询输入一个学号后,显示出该学生的有关信息; 数据结构: struct student { int num;//学号 char name[20];//姓名 int foxscore;//fox成绩 int cscore;//C语言 int englishscore;//英语成绩 struct student *next; }; 操作:成绩信息输入;统计总分;排序;查询。 6、模拟旅馆管理系统中的床位的分配与回收 问题描述:某旅馆有n个等级的房间,第i等级有a个房间,每个等级有b个床位(1<=i<=n)。模拟旅馆个管理系统中床位的分配和回收功能,设计能为单个旅客分配床位,在其离店便回收床位(供下次分配)的算法。 数据结构: struct Room { int roomgrade; //房间等级 int roomprice; int roomnumber; int bed[N]; //每个等级i的每个房间有对应等级i铺床 int sex; int peoplein; int arrtime; }room[100]; 数据结构的具体说明: 程序中假设有N(10)个不同等级的房间,每个等级 i 有对应 i 个房间,每个房有第 i 铺床,如等级为3的房间有3个房间,每个房间有3铺床.并且程序用静态room[100]数组来实现。 程序设计思路及其测试提示: (1)首先先创建旅馆房间的信息,即对房间信息进行初始化,用函数create()来实现.并且创建的信息保存在文件里,每执行一次服务都对文件重新写入,保持着最近更新的数据. (2)先令t=1,满足条件,紧接着输入s的值,第一次输入s的值时输入非0的数,满足进行订房服务的条件,接着进行旅客订房登记服务,需要注意的是本程序只适合对单个旅客进行服务。 (3)根据程序的提示,一直对输入s的值进行测试,如果输入s的值为0则进行退房服务,接着输入t的值,如果输入t的值非0,则可以继续进行服务,接下去是输入s的值,如果输入的s为0,则可以进行退房服务,否则进行订房登记服务。 (4)程序中实现连续多次订房服务是利用输入s的非0来实现的,如果想连续多次进行退房服务,则在输入t(非0)之后,输入s的值为0,循环这种操作,即可实现连续多次的退房服务。
源码下载
链接:https://pan.baidu.com/s/1OAQnaOFX5_PuuzdRUSGYZg?pwd=1111 提取码:1111
|