课程设计任务书15级文档格式.docx
《课程设计任务书15级文档格式.docx》由会员分享,可在线阅读,更多相关《课程设计任务书15级文档格式.docx(13页珍藏版)》请在冰豆网上搜索。
本次课设共提供若干个不同难易程度的题目,其中前面5个为必做题,满分70分(系统功能完善、人机交互界面简单、直观、便捷,否则逐项减分);
后面为选做题,共30分,题目难易程度不等,题目*越多难度越大,根据实际选做题目的难度和数量以及实现程序的完善性可以适当加减分;
同学们在选题时,要结合个人实际情况,确保及格,力争多做。
1、单位员工通讯录管理系统(线性表的应用)
[问题描述]
为某个单位建立一个员工通讯录管理系统,可以方便查询每一个员工的办公室电话、手机号、及电子邮箱。
其功能包括通讯录链表的建立、员工通讯信息的查询、修改、插入与删除、以及整个通讯录表的输出。
[实现提示]
可以采用单链表的存储结构,如可定义如下的存储结构:
typedefstruct{/*员工通讯信息的结构类型定义*/
charnum[5];
/*员工编号*/
charname[10];
/*员工姓名*/
charphone[15];
/*办公室电话号码*/
charcall[15];
/*手机号码*/
charmail[25];
/*邮箱*/
}DataType;
/*通讯录单链表的结点类型*/
typedefstructnode
{DataTypedata;
/*结点的数据域*/
structnode*next;
/*结点的指针域*/
}ListNode,*LinkList;
2、停车场管理(栈和队列的应用)
设停车场是一个可以停放n辆汽车的狭长通道,且只有一个大门可供汽车进出。
汽车在停车场内按车辆到达时间的先后顺序,依次有北向南排列(大门在最南端,最先到达的第一车停放在车场的最北端),若车场内已停满n辆车,那么后来的车只能在门外的便道上等候,一旦有车开走,则排在便道上的第一辆车即可开入;
当停车场内某辆车要离开时,在它之后进入的车辆必须先退出车场为它让路,待该辆车开出大门外,其他车辆再按原次序进入车场,每辆停放在车场的车在它离开停车场时必须按它停留的时间长短交纳费用。
试为停车场编制按上述要求进行管理的模拟程序。
以栈模拟停车场,以队列模拟车场外的便道。
每一组输入数据包括三个数据项:
汽车“到达”或“离去”信息、汽车牌照号码以及到达或离去的时刻。
对每一组输入数据进行操作后的输出信息为:
若是车辆到达,则输出汽车在停车场内或便道上的停车位置;
若是车辆离去,则输出汽车在停车场内停留的时间和应交纳的费用(在便道上停车不收费)。
栈以顺序存储结构实现,队列以链表结构实现。
3、哈夫曼编码/译码系统(树应用)
利用哈夫曼编码进行通信,可以压缩通信的数据量,提高传输效率,缩短信息的传输时间,还有一定的保密性。
现在要求编写一程序模拟传输过程,实现在发送前将要发送的字符信息进行编码,然后进行发送,接收后将传来的数据进行译码,即将信息还原成发送前的字符信息。
在本例中设置发送者和接受者两个功能,
发送者的功能包括:
①输入待传送的字符信息;
②统计字符信息中出现的字符种类数和各字符出现的次数(频率);
②根据字符的种类数和各自出现的次数建立哈夫曼树;
③利用以上哈夫曼树求出各字符的哈夫曼编码;
④将字符信息转换成对应的编码信息进行传送。
接受者的功能包括:
①接收发送者传送来的编码信息;
②利用上述哈夫曼树对编码信息进行翻译,即将编码信息还原成发送前的字符信息。
从以上分析可发现,在本例中的主要算法有三个:
(1)哈夫曼树的建立;
(2)哈夫曼编码的生成;
(3)对编码信息的翻译。
4、校园导游咨询(图的应用)
设计一个校园导游程序,为来访的客人提供各种信息查询服务。
(1)设计学校的校园平面图,所含景点不少于10个,以图中顶点表示校内各景点,存放景点名称、代号、简介等信息;
以边表示路径,存放路径长度等相关信息;
(2)提供基本信息的修改功能;
(3)为来访客人提供图中任意景点相关信息的查询;
(4)为来访客人提供景点的问路查询,即已知一个景点,查询到某景点之间的一条最短路径及长度。
1.南苑操场
|
2.滴水涌泉---------|------------3.生态湖
||
|---5.四号楼|-----|
4.二号组团楼-|---6.三号楼---------8.图书馆
|---7.二号楼
|----------------------|------------9.学校大门
|
10.中心操场---|
5、药店的药品销售统计系统(排序应用)
设计一系统,实现医药公司定期对销售各药品的记录进行统计,可按药品的编号、单价、销售量或销售额做出排名。
在本设计中,首先从数据文件中读出各药品的信息记录,存储在顺序表中。
各药品的信息包括:
药品编号、药名、药品单价、销出数量、销售额。
药品编号共4位,采用字母和数字混合编号,如:
A125,前一位为大写字母,后三位为数字,按药品编号进行排序时,可采用基数排序法。
对各药品的单价、销售量或销售额进行排序时,可采用多种排序方法,如直接插入排序、冒泡排序、快速排序,直接选择排序等方法。
在本设计中,对单价的排序采用冒泡排序法,对销售量的排序采用快速排序法,对销售额的排序采用堆排序法。
药品信息的元素类型定义:
{charnum[4];
/*药品编号*/
charname[10];
/*药品名称*/
floatprice;
/*药品单价*/
intcount;
/*销售数量*/
floatsale;
/*本药品销售额*/
}DataType;
存储药品信息的顺序表的定义:
typedefstruct
{DataTyper[MaxSize];
intlength;
}SequenList;
6、散列表的设计与实现(*)
任务:
设计散列表实现电话号码查找系统。
要求:
(1)设每个记录有下列数据项:
用户名、电话号码、地址;
(2)从键盘输入各记录,以用户名(汉语拼音形式)为关键字建立散列表;
(3)采用线性探测再散列法解决冲突;
(4)查找并显示给定电话号码的记录;
(5)通讯录信息文件保存;
(6)要求人机界面友好,使用图形化界面;
选作内容:
(1)系统功能的完善;
(2)设计不同的散列函数,比较冲突率;
(3)在散列函数确定的前提下,尝试各种不同类型处理冲突的方法,考察平均查找长度的变化。
7、一元稀疏多项式的计算(*)
能够按照指数降序排列建立并输出多项式;
能够完成两个多项式的相加、相减,并将结果输出;
要求:
以链式存储结构实现多项式。
8、迷宫求解(*)
任务:
以一个m*n的长方阵表示迷宫,0和1分别表示迷宫中的通路和障碍。
设计一个程序,对任意设定的迷宫,求出一条从入口到出口的通路,或得出没有
通路的结论。
首先实现一个栈类型,然后编写一个求解迷宫的非递归程序。
求得的通路以三元组(i,j,d)的形式输出,其中(i,j)指示迷宫中的一个坐标,d表示走到下一坐标的方向。
9、排序综合(**)
利用随机函数产生N个随机整数(20000以上),对这些数进行多种方法进行排序。
(1)至少采用三种方法(希尔排序、快速排序、堆排序)实现上述问题求解;
(2)统计每一种排序方法的性能(以上机运行程序所花费的时间为准进行对比),找出其中两种较快的方法;
(3)统计每种算法所用的比较次数和交换次数,最后列表显示;
(4)如果采用4种或4种以上的方法者,可适当加分。
10、教学计划编制问题(**)
大学的每个专业都要制定教学计划。
假设任何专业都有固定的学习年限,每学年含两学期,每学期的时间长度和学分上限值均相等。
每个专业开设的课程都是确定的,而且课程在开设时间的安排必须满足先修关系。
每门课程有哪些先修课程是确定的,可以有任意多门,也可以没有。
每门课恰好占一个学期。
试在这样的前提下设计一个教学计划编制程序。
1、输入参数应包括:
学期总数,一学期的学分上限,每门课的课程号(可以是固定占3位的字母数字串)、学分和直接先修课的课程号。
2、应允许用户指定下列两种编排策略之一:
一是使学生在各学期中的学习负担尽量均匀;
二是使课程尽可能地集中在前几个学期中。
3、若根据给定的条件问题无解,则报告适当的信息;
否则将教学计划输出到用户指定的文件中。
计划的表格格式可以自己设计。
4、可设学期总数不超过12,课程总数不超过100。
如果输入的先修课程号不在该专业开设的课程序列中,则作为错误处理。
11、二叉排序树的基本操作(**)
编写算法实现对依次输入的关键字序列建立二叉排序树,并能实现二叉排序树的查找、插入和删除运算。
12、运动会分数统计(**)
参加运动会有n个学校,学校编号为1……n。
比赛分成m个男子项目,和w个女子项目。
项目编号为男子1……m,女子m+1……m+w。
不同的项目取前五名或前三名积分;
取前五名的积分分别为:
7、5、3、2、1,前三名的积分分别为:
5、3、2;
哪些项目取前五名或前三名由学生自己设定。
(m<
=20,n<
=20)
功能要求:
(1)可以输入各个项目的前三名或前五名的成绩;
(2)能统计各学校总分,
(3)可以按学校编号、男女团体总分排序输出;
(4)可以按学校编号查询学校某个项目的情况;
可以按项目编号查询取得前三或前五名的学校。
规定:
输入数据形式和范围:
20以内的整数(如果做得更好可以输入学校的名称,运动项目的名称)
输出形式:
有中文提示,各学校分数为整形
界面要求:
有合理的提示,每个功能可以设立菜单,根据提示,可以完成相关的功能要求。
存储结构:
学生自己根据系统功能要求自己设计,但是要求运动会的相关数据要存储在数据文件中。
(数据文件的数据读写方法等相关内容在c语言程序设计的书上,请自学解决)请在最后的上交资料中指明你用到的存储结构;
相关数据结构(参考):
项目名次及分值:
用二位数组Score[m+w][5];
单项获奖情况登记表(项目编号,获奖名次、获奖学校,得分(自动得分))
学校获奖名次表(学校编号,团体总分,名次)
测试数据:
要求使用1、全部合法数据;
2、整体非法数据;
3、局部非法数据。
进行程序测试