资源描述
资料内容仅供您学习参考,如有不当之处,请联系改正或者删除。
数据结构课程设计
一、 考核方法和内容
根据课程设计过程中学生的学生态度、 题目完成情况、 课程设计报告书的质量和回答问题的情况等按照10%、 40%、 30%、 20%加权综合打分。成绩评定实行优秀、 良好、 中等、 及格和不及格五个等级。
评分标准:
优秀: 答辩所有问题都能答出+报告良好
或 报告良好+实现”提高部分”的功能;
良好: 答辩所有问题都能答出+报告一般;
或 报告一般+实现”提高部分”的功能;
中等: 答辩大部分问题能答出+报告良好;
及格: 答辩大部分问题能答出+报告一般;
以下四种, 都不及格:
1) 答辩几乎答不出问题;
2) 报告几乎都是代码;
3) 雷同部分达到60%;
4) 课设报告与数据结构和c/c++关联不大。
课设报告的装订顺序如下:
任务书( 签名, 把题目要求贴在相应位置, 注意下划线) -----目录( 注意目录的格式, 页码) -----1、 设计任务( 题目要求) -----2、 需求分析( 准备选用什么数据逻辑结构? 数据元素包含哪些属性? 需要哪些函数? 为什么要这样设计? 最后列出抽象数据类型定义) -----3、 系统设计( 设计实现抽象数据类型, 包含选择什么物理存储方式? 数据元素的结构体或类定义, 以及各函数的设计思路, 算法, 程序流程图等) ----4、 编码实现( 重要函数的实现代码) -----5、 调试分析( 选择多组测试数据、 运行截图、 结果分析) -----6、 课设总结( 心得体会) -----7、 谢辞-----8、 参考文献;
课设报告打印要求:
B5纸张打印, 报告总页数控制在10—15页内, 报告中不能全是代码, 报告中代码总量控制在3页内。
版式: 无页眉, 有页码, 页码居中
字号: 小四, 单倍行距
字体: 宋体+Times new Romar
截图: 截图要配图的编号和图的题目, 如: ”图1 Insert函数流程图”
二、 课程设计的题目
1.长整数的加法运算
2.通讯录管理系统的设计与实现——顺序表
3.广义表的应用
4.学生成绩管理系统的设计与实现
5.家谱管理系统的设计与实现
6.集合的并、 交和差运算的程序
7.运动会分数统计
8.一元多项式计算器
9.文章编辑
10.哈夫曼树及其编码
11.校园导游咨询
12.通讯录管理系统的设计与实现——单链表
13.地图着色问题
14.内部排序算法比较
15.火车售票系统
16.图书管理系统
17.客户消费积分管理系统
18.产品进销存管理系统
19. 迷宫求解
20.通讯录管理系统的设计与实现——哈希表---线性探测再散列
21.语言中平衡符号的问题
22.算术表示式求解
23.数制转换问题
24.九宫格问题
25.停车场管理
26.关键路径问题
27.通讯录管理系统的设计与实现——哈希表——链地址法
28.歌星大奖赛
29.病人就医管理
30.简单目录管理系统的设计与实现
31.最短旅程的求解
32.通讯录管理系统的设计与实现——哈希表——二次探测再散列
33.宿舍管理查询软件
34.表示式求值, 并能给出分数, 可供小学生作业练习的小程序
35.服装销售系统
36.机房机位预约模拟系统
37.歌曲信息管理系统
38.学生点名系统
39.猜数游戏
三、 数据结构课程设计的具体内容( 想要优, 必须实现”提高部分”的功能, 其它, 不用完成”提高部分”)
要求: 全部采用数据结构课程中的内容实现, 采用C或C++实现, 逻辑结构只能选线性结构、 树型结构、 图型结构、 集合结构中的一种, 不能用数据库。
1.长整数的加法运算
基本要求: 设计一个实现任意长的整数进行加法、 减法运算的演示程序。
⑴利用链表实现长整数的存储, 每个结点含一个整型变量。提醒: 任何整型变量int的范围是-(2^15-1)~(2^15-1)。
⑵输入和输出形式按照中国对于长整数的表示习惯, 每四位一组, 组间用逗号隔开。 如: -2345, 6789, 3211;
⑶演示程序以用户和计算机的对话方式执行, 可进行多次运算。
提高部分: 增加利用顺序表存储结构来实现长整数的加、 减和输出功能。
2.通讯录管理系统的设计与实现——顺序表
基本要求: 利用顺序表完成通讯录的一般性管理工作。其中, 每条记录至少包括姓名、 手机号、 QQ、 电子邮箱、 地址等信息。功能主要包括:
(1)添加信息: 可新增人员信息;
(2)显示信息: 能够按照手机号或联系人的姓名拼音排序显示;
(3)查找: 用名字和手机号分别作为查找的依据, 进行查找;
(4)编辑信息: 修改完善人员信息;
(5)删除信息: 删除人员信息;
(6)界面友好, 演示程序以用户和计算机的对话方式进行, 可重复操作。
提高部分: 利用外部.txt文件同步存储通讯录信息。
3.广义表的应用
基本要求: 要求实现的广义表的建立、 查找、 输出、 取表头和取表尾以及求深度等。
演示程序以用户和计算机的对话方式执行, 并可进行多次交互。
用一个主控菜单程序控制, 共分为6个子功能。 ( 1) 建立广义表 ( 2) 输出广义表 ( 3) 结点的查找 ( 4) 求广义表表头 ( 5) 求广义表表尾 ( 6) 求广义表的深度。( 7) 求广义表的长度。
提高部分: 利用外部.txt文件输入数据信息建立广义表。
4.学生成绩管理系统的设计与实现
基本要求: 能够实现对学生成绩的常见管理功能。
⑴采用一定的存储结构对学生成绩进行管理;
⑵能够进行成绩的录入、 查询、 修改、 删除等操作;
⑶能够查询某门课程的平均分, 学生的排名, 不同分数段的学生人数及学生信息等;
⑷能够查询某学生的各课程分数, 总分及学生的班级排名等;
⑸能够按学号排序输出全部学生的成绩信息、 总分及班级排名等。
⑹演示程序以用户和计算机的对话方式进行。
提高部分: 利用外部.txt文件同步存储学生成绩信息。
5.家谱管理系统的设计与实现
基本要求: 设计并实现一个简单的家谱管理系统。
( 1) 建立家族关系树, 并能存储到外部文件中。
( 2) 实现家族成员的添加、 删除功能。
( 3) 能够查询家族成员的双亲、 祖先、 兄弟、 孩子和后代等信息。
( 4) 按某种顺序输出家谱信息( 树的遍历操作) 、 以树型结构输出家谱资料等功能。
( 5) 界面友好, 演示程序以用户和计算机的对话方式进行, 可重复操作。
提高部分: 经过读取外部.txt文件, 建立家族关系树, 添加和删除后的结果同步到外部文件。
6.集合的并、 交和差运算的程序
基本要求: 编制一个能演示执行集合的并、 交和差运算的程序。
(1)集合的元素限定为大小写字母符[′a′….′z′′A′….′Z′], 集合的大小n<53。
(2)集合输入的形式为一个以"回车符"为结束标志的字符串, 串中字符顺序不限, 且允许出现重复字符或非法字符, 程序应能自动滤去非法字符和重复字符。
(3)输出的运算结果字符串中将不含重复字符或非法字符。
(4)演示程序以用户和计算机的对话方式执行, 可多次进行运算。
提高部分: 采用顺表和链式两种存储结构实现。
7.运动会分数统计
基本要求:
参加运动会的n个学校编号为1~n。比赛分成m个男子项目和w个女子项目, 项目编号分别为1~m和m+1~m+w。由于各项目参加人数差别较大, 有些项目取前五名, 积分分别为11, 7, 4, 2, 1; 有些项目只取前三名, 积分分别为5, 3, 2。哪些项目取前五名或前三名在输入比赛结果时自己设定。写一个统计程序产生各种成绩单和得分报表。
(1)各项目结束时, 输入项目编号、 所有运动员的姓名、 学校名称和比赛名次( 成绩) , 并对前三名或前五名的运动员所在团体和学校, 记录比赛积分;
(2)产生每个学校的成绩单, 内容包括该学校所取得的每项成绩的项目号、 运动员姓名、 名次( 成绩) , 并统计学校总分;
(3)实现按学校编号查询学校的比赛情况, 查询结果包含参加各项目的项目编号、 运动员姓名、 取得的名次、 比赛的积分、 学校总分、 团体总分等;
(4)实现按项目编号查询取得前三或前五名的学校的名称;
(5)演示程序以用户和计算机的对话方式执行, 可多次操作。
提高部分: 实现按学校编号排序输出( 至少包括学校排名, 学校编号, 学校名称, 学校总分) ; 按男团总分排序输出( 至少包括男团排名, 学校名称, 男团总分) ; 按女团总分排序输出( 至少包括女团排名, 学校名称, 女团总分) ;
8.一元多项式计算器
基本要求:
设有一元多项式Am(x) 和Bn(x).
Am(x) = A0+A1x1+A2x2+A3x3+… +Amxm
Bn(x) = B0+B1x1+B2x2+B3x3+… +Bnxn
试求M(x)= Am(x)+Bn(x)、 M(x)= Am(x)-Bn(x)和M(x)= Am(x)×Bn(x)。
⑴首先判定多项式是否稀疏;
⑵要求结果M(x)中无重复阶项和无零系数项;
⑶要求输出结果的升幂和降幂两种排列情况。
⑷演示程序以用户和计算机的对话方式执行, 可进行多次运算。
提高部分: 采用顺表和链式两种存储结构实现。
9.文章编辑
基本要求: 输入一页文字, 能够统计出文字、 数字、 空格的个数。
(1)利用外部.txt文件存储一页文章, 每行最多不超过80个字符, 共N行。
(2)分别统计出其中英文字母和空格数及整篇文章总字数。
(3)统计某一字符串在文章中出现的次数, 并输出该次数。
(4)删除某一子串, 并将后面的字符前移, 对文章的修改, 同步到.txt文件中。
提高部分: 采用顺表和链式两种存储结构实现。
10.哈夫曼树及其编码
基本要求: 设计一个利用哈夫曼算法的编码系统。
⑴初始化: 利用外部.txt文件输入字符集大小n、 n个字符和n个权值, 建立哈夫曼树;
⑵编码: 利用建好的哈夫曼树生成哈夫曼编码;
⑶输出哈夫曼树及哈夫曼编码;
⑷演示程序以用户和计算机的对话方式执行, 重复地显示并处理以上三个项目, 直到选择退出为止。
假设字符集及频度如下表:
字符 空格 A B C D E F G H I J K L M
频度 197 64 13 22 32 103 21 15 47 57 5 1 20 32
字符 N O P Q R S T U V W X Y Z
频度 57 63 1 15 48 16 80 23 8 18 1 51 1
提高部分: 输出树形的哈夫曼树。//////进行编码和译码
11.校园导游咨询
基本要求: 设计一个校园导游程序, 为来访的客人提供各种信息查询服务。
⑴设计华东交通大学南区的校园平面图( 无向图) , 所含景点不少于10个。以图中顶点表示校内各景点, 存放景点名称、 代号、 简介等信息; 以边表示路径, 存放路径长度等相关信息。
⑵为来访客人提供图中任意景点相关描述信息的查询。
⑶为来访客人提供图中任意景点的问路查询, 即查询任意两个景点之间的最短路径。
提高部分: 查询任意两个景点之间的所有路径。
12.通讯录管理系统的设计与实现——单链表
基本要求: 利用单链表完成通讯录的一般性管理工作。其中, 每条记录至少包括姓名、 手机号、 QQ、 电子邮箱、 地址等信息。功能主要包括:
(1)添加信息: 可新增人员信息;
(2)显示信息: 能够按照手机号或联系人的姓名拼音排序显示;
(3)查找: 用名字和手机号分别作为查找的依据, 进行查找;
(4)编辑信息: 修改完善人员信息;
(5)删除信息: 删除人员信息;
(6)界面友好, 演示程序以用户和计算机的对话方式进行, 可重复操作。
提高部分: 利用外部.txt文件同步存储通讯录信息。
13.地图着色问题
基本要求:
设计地图着色软件, 对江西地图中11个地级市进行着色, 要求相邻地级市所使用的颜色不同, 并保证使用的颜色最少。
⑴地图采用图型数据结构, 每个地级市为一个节点, 边表示对应的两个地级市相邻。
⑵设计着色算法, 保证邻接点不是同一种颜色。
⑶输出着色结果。
⑷演示程序以用户和计算机的对话方式进行。
提高部分: 利用外部.txt文件输入地图数据, 并把着色结果追加到.txt文件内。
14.内部排序算法比较
基本要求: 试经过随机数据比较各算法的关键字比较次数和关键字移动次数, 以取得直观感受。
⑴至少采用三种方法实现对同一组数据的排序( 提示, 可采用的方法有插入排序、 希尔排序、 起泡排序、 快速排序、 选择排序、 堆排序、 归并排序) 。
⑵待排序表的表长不小于100, 其中的数据要用伪随机数产生程序产生; 至少要用5组不同的输入数据作比较; 比较的指标为有关键字参加的比较次数和关键字的移动次数( 关键字交换计为3次移动) 。
⑶最后对结果作出简单分析, 包括对各组数据得出结果波动大小的解释。
⑷演示程序以用户和计算机的对话方式进行。
提高部分: 利用外部.txt文件存储各次排序的数据、 排序的结果、 结果的简单分析。
15.火车售票系统
基本要求:
经过此系统能够实现售票、 退票、 车票剩余情况查询等功能。每张车票包含车次、 车厢、 座位信息。
⑴在售票、 退票、 查询剩余票等环节中, 都必须显示出车票的信息, 即车次、 车厢、 座位情况。
⑵为简单起见, 在此假设所有出售的车票均为同一车次的车票。同一车次, 有多个车厢, 每个车厢有多个座位。
⑶购票时, 能够显示余票信息, 并能够选择买哪张票。
⑷退票时, 必须是车站售出的车票才能退, 否则视为无效票, 不能退票, 而且退票能够再次销售。
⑸演示程序以用户和计算机的对话方式进行。
提高部分: 利用外部.txt文件同步存储车票的余票和已售票信息。
16.图书管理系统
基本要求: 设计一个计算机管理系统完成图书管理基本业务。
⑴每种书的登记内容包括书号、 书名、 著作者、 现存量、 库存量和借阅信息;
⑵对书号建立索引顺序表以提高查找效率;
⑶系统主要功能如下:
①采编入库: 新购一种书, 确定书号后, 登记到图书帐目表中, 如果表中已有, 则只将库存量增加;
②借阅: 如果一种书的现存量大于0, 则借出一本, 登记借阅者的书证号和归还期限, 改变现存量;
③归还: 注销对借阅者的登记, 改变该书的现存量。
⑷演示程序以用户和计算机的对话方式进行。
提高部分: 利用外部.txt文件同步存储图书信息。
17.客户消费积分管理系统
基本要求: 针对客户的消费情况, 进行客户管理, 根据客户的消费积分对客户实行不同程度的打折优惠。
⑴采用一定的存储结构进行客户信息的存储;
⑵对客户的信息能够进行修改、 删除、 添加;
⑶能够根据消费情况进行客户积分的累加;
⑷根据积分情况, 对客户实行不同程度的打折优惠;
⑸演示程序以用户和计算机的对话方式进行。
提高部分: 利用外部.txt文件同步存储客户和积分信息。
18.产品进销存管理系统
基本要求: 针对某一种行业的库房产品进行进销存情况的管理。
⑴采用一定的存储结构对库房的货品及其数量进行分类管理;
⑵能够实现进库房时, 产品类的添加、 产品的添加、 产品数量的添加;
⑶能够查询库房每种产品的总量、 进货日期、 销出数量、 销售时间等;
⑷能够实现产品出库房时, 产品数量修改以及达到临界值提醒的功能;
⑸演示程序以用户和计算机的对话方式进行。
提高部分: 利用外部.txt文件同步存储库房产品的详细信息。
19. 迷宫求解
基本要求: 以一个m*n的长方阵表示迷宫, 设置两个门, 一个入口, 另一个是出口。设计一个程序, 对任意随机生成的迷宫, 求出一条从入口到出口的通路, 或得出没有通路的结论。
⑴首先实现一个栈类型, 然后编写一个求解迷宫的非递归程序。
⑵求得的通路以三元组(i,j,d)的形式输出, 其中(i,j)指示迷宫中的一个坐标, d表示走到下一坐标的方向。
⑶输出迷宫图, 以#号表示障碍物, ‘ ’空格表示非障碍物, *表示通路。
提高部分: 同时实现递归和非递归两种求解算法。
20.通讯录管理系统的设计与实现——哈希表---线性探测再散列
基本要求: 利用哈希表完成通讯录的一般性管理工作。其中, 每条记录至少包括姓名、 手机号、 QQ、 电子邮箱、 地址等信息。分别以电话号码和用户名为关键字建立不同的哈希表。功能主要包括:
(1)添加信息: 可新增人员信息;
(2)显示信息: 按照哈希表的存储位置信息排序显示;
(3)查找: 用名字和手机号分别作为查找的依据, 进行查找;
(4)编辑信息: 修改完善人员信息;
(5)删除信息: 删除人员信息;
(6)界面友好, 演示程序以用户和计算机的对话方式进行, 可重复操作。
提高部分: 利用外部.txt文件同步存储通讯录信息。
21.语言中平衡符号的问题
基本要求: 设C语言程序代码中包含如下符号/* */, (), [], {}, 编写程序检测一段C代码中上述符号是否正确, 并指出错在哪里。
提高部分: 建立外部文件存储需要检测的c代码。
22.算术表示式求解
基本要求: 给定一个算术表示式, 经过程序求出最后的结果。
(1)从键盘输入要求解的算术表示式;
(2)采用栈结构进行算术表示式的求解过程;
(3)能够判断算术表示式正确与否; 对于错误表示式给出提示; 对于正确的表示式给出最后的结果, 并能够显示运算的整个过程。
(4)演示程序以用户和计算机的对话方式进行。
提高部分: 建立外部.txt文件存储全部运算过程。
23.数制转换问题
基本要求: 任意给定一个M进制的数x, 实现如下要求:
(1) 求出此数x的10进制值;
(2) 实现对X向任意的一个非M进制数的转换;
(3) 至少用两种或两种以上的方法实现上述要求( 用栈解决, 用数组解决, 其它方法解决) ;
(4) 提供交互界面, 以便人机交互。
提高部分: 必须实现进制M大于16的情况。
24.九宫格问题
基本要求: 在一个3×3的九宫格中有1—8这8个数字, 混乱排序, 一个空格随机地摆放在一个格子里, 九宫格布局随机生成。现要求将该九宫格调整为正常按逆序的格式。调整的规则是: 每次只能将与空格( 上、 下或左、 右) 相邻的一个数字平移到空格中。编程实现这一问题的求解, 并输出求解过程。
提高部分: 利用外部.txt文件同步记录九宫格的初始布局及求解过程。
25.停车场管理
基本要求: 设停车场内只有一个可停放n辆汽车的狭长通道, 且只有一个大门可供汽车进出。汽车在停车场内按车辆到达时间的先后顺序, 依次由北向南排列( 大门在最南端, 最先到达的第一辆车停放在车场的最北端) ; 若车场内已停满n辆汽车, 则后来的汽车只能在门外的便道上依次等候, 一旦有车开走, 则排在便道上的第一辆车即可开入; 当停车场内某辆车要离开时, 在它之后开入的车辆必须先退出车场为它让路, 待该辆车开出大门外, 其它车辆再按原次序进入车场; 每辆停放在车场的车在它离开停车场时必须按它停留的时间长短交纳费用。
(1)为停车场编制按上述要求进行管理的模拟程序。
(2)可随时查询停车场内及便道的停车情况。
(3)界面友好, 演示程序以用户和计算机的对话方式进行, 可重复操作。
提高部分: 利用外部.txt文件同步记录所有数据。
26.关键路径问题
基本要求:
设计一个程序, 求出完成整项工程至少需要多少时间, 以及整项工程中的关键活动。
(1)从键盘输入一个描述工程的AOE网, 并判断其是否能够顺利进行。
(2)若该工程能顺利进行, 输出完成整项工程至少需要多少时间, 以及每一个关键活动所依附的两个顶点、 最早发生时间、 最迟发生时间。
(3) 界面友好, 演示程序以用户和计算机的对话方式进行, 可重复操作。
提高部分: 利用外部.txt文件同步记录所有数据。
27.通讯录管理系统的设计与实现——哈希表——链地址法
基本要求: 利用哈希表完成通讯录的一般性管理工作。其中, 每条记录至少包括姓名、 手机号、 QQ、 电子邮箱、 地址等信息。分别以电话号码和用户名为关键字建立不同的哈希表。功能主要包括:
(1)添加信息: 可新增人员信息;
(2)显示信息: 按照哈希表的存储位置信息排序显示;
(3)查找: 用名字和手机号分别作为查找的依据, 进行查找;
(4)编辑信息: 修改完善人员信息;
(5)删除信息: 删除人员信息;
(6)界面友好, 演示程序以用户和计算机的对话方式进行, 可重复操作。
提高部分: 利用外部.txt文件同步存储通讯录信息。
28. 歌星大奖赛
基本要求:
( 1) 在歌星大奖赛中, 每位歌手演唱完, 有10个评委为参赛的选手打分, 分数为1~100分。选手最后得分为: 去掉一个最高分和一个最低分后其余8个分数的平均值。歌手的人数在大奖赛开始时键盘输入。
( 2) 同时对评委评分进行裁判, 即在10个评委中找出最公平( 即评分最接近平均分) 和最不公平( 即与平均分的差距最大) 的评委。
( 3) 保存每位歌星比赛时的所有评委分数, 包括最高分, 最低分和最后得分, 并在比赛过程的任意时刻, 都可对当前比赛结果排序输出;
( 4) 界面友好, 演示程序以用户和计算机的对话方式进行, 可重复操作。
提高部分: 利用外部.txt文件同步记录所有数据。
29. 病人就医管理
基本要求: 编写一个程序实现就医管理。在病人就医过程中, 主要发生三件事:
⑴预检, 分科室, 挂号。不同科室都是从1号开始挂号。如, 内科1号, 外科1号, 眼科1号等;
⑵病人到达诊室, 将病历本交给护士, 排到等待队列中候诊, 不同科室, 不同队列。
⑶护士从等待队列中取出一位病人的病历, 该病人进入诊室就诊。
程序采用菜单方式, 其选项及功能说明如下:
⑴挂号------预检, 分科室, 生成就诊号。
⑵排队------输入病人的就诊号, 加入到不同科室的病人排队队列中。
⑶就诊-------病人排队队列中最前面的病人就诊, 并将其从队列中删除。
⑷查看排队------从队首到队尾列出所有的排队病人的病历号。
⑸下班---------退出运行。
提高部分: 利用外部.txt文件同步记录所有就诊数据。
30.简单目录管理系统的设计与实现
基本要求: 利用树型结构设计并实现一个简单的目录管理系统。功能主要包括:
(1)系统能够对所有目录进行管理, 类似C盘、 D盘、 E盘;
(2)实现子目录和文件的新建、 删除、 查询、 子目录和文件名称修改等功能;
(3)按某种顺序输出所有子目录及文件信息( 树的遍历操作) ;
提高部分: 以树型结构输出所有子目录和文件的信息。
31.最短旅程的求解
基本要求: 有n个城市( 编号从1到n) , 它们之间经过双向的道路相连。那里只有n-1条道路, 可是, 它们的连接方式使得从任意城市都能够走到其它的任何城市。 一天, 某个游客到了编号为k的城市。她计划从城市k开始, 游遍所有的城市m1, m2, m3……, mi, …( 不一定要按这个顺序旅游) 。每个城市mi都是不同的, 而且, 也与k不同。她想要以最短的路程旅行完所有的城市( 从城市k开始) 。求旅游完上述的城市最短需要多少路程。
提高部分: 输出最短旅程的详细旅游路线。
32.通讯录管理系统的设计与实现——哈希表——二次探测再散列
基本要求: 利用哈希表完成通讯录的一般性管理工作。其中, 每条记录至少包括姓名、 手机号、 QQ、 电子邮箱、 地址等信息。分别以电话号码和用户名为关键字建立不同的哈希表。功能主要包括:
(1)添加信息: 可新增人员信息;
(2)显示信息: 按照哈希表的存储位置信息排序显示;
(3)查找: 用名字和手机号分别作为查找的依据, 进行查找;
(4)编辑信息: 修改完善人员信息;
(5)删除信息: 删除人员信息;
(6)界面友好, 演示程序以用户和计算机的对话方式进行, 可重复操作。
提高部分: 利用外部.txt文件同步存储通讯录信息。
33.宿舍管理查询软件
基本要求: 为宿舍管理人员编写一个宿舍管理查询软件, 程序设计要求:
(1)采用交互工作方式;
(2)能够增加、 删除、 修改信息;
(3)可实现按关键字( 姓名、 学号、 房号) 进行排序显示;
(4) 查询: a.按姓名查询 、 b.按学号查询 、 c.按房号查询, 输出任一查询结果( 能够连续操作) 。
提高部分: 建立外部.txt文件, 同步宿舍全部人员的数据, 并按关键字房号排序存储。
34.表示式求值, 并能给出分数, 可供小学生作业练习的小程序
基本要求:
⑴建立试题库文件, 从文件中, 随机抽取n个题目;
⑵题目涉及加减乘除, 带括号的混合运算;
⑶随时能够退出程序;
⑷保留历史分数, 能回顾历史, 给出与历史分数比较后的评价;
⑸界面友好, 演示程序以用户和计算机的对话方式进行, 可重复操作。
提高部分: 保存所有曾经练习过的题目、 输入的答案及对错到外部.txt文件。
35.服装销售系统
基本要求: 包含三类用户: 管理员、 店长、 销售员;
( 1) 管理员功能: 自身密码修改; 其它用户的添加、 删除; 用户信息的修改、 统计; 商品信息的添加、 修改、 删除、 查找、 统计。
( 2) 店长功能: 登录、 注销、 自身密码修改、 自身信息修改; 商品信息的修改、 统计; 查看日报表、 月报表、 商品销售量报表、 营业员业绩报表; 查找、 浏览、 修改商品储备信息。
( 3) 销售员功能: 商品浏览、 查找、 出售商品, 以及查看自己本日报表、 本月报表。
( 4) 界面友好, 演示程序以用户和计算机的对话方式进行, 可重复操作。
提高部分: 利用外部.txt文件同步记录所有数据。
36.机房机位预约模拟系统
基本要求: 20台机器, 从早8点到晚8点, 每两个小时一个时间段。实现如下功能:
( 1) 查询, 根据输入时间, 输出当前全部机位信息和可用空闲机位信息;
( 2) 机位预定, 根据输入的日期和时间段查询是否有空机位, 若有则预约, 若无则提供最近时间段的空机信息。另外, 如果用户要求在非空时间上机, 则将用户信息插入该时间段的等待列表。
( 3) 退出预定, 根据输入的时间撤销该时间的预定。
( 4) 查询是否有等待信息, 若有则按顺序显示联系方式, 若无则显示提示信息。
提高部分: 利用外部.txt文件同步记录所有数据。
37.歌曲信息管理系统
基本要求:
( 1) 歌曲信息包括歌曲名、 作者、 演唱者、 发行年月等。
( 2) 能够对歌曲信息进行输入、 删除、 编辑、 浏览。
( 3) 能够根据歌曲名、 作者、 演唱者查询歌曲信息。
( 4) 提供按作者分组显示功能。
提高部分: 利用外部.txt文件同步记录所有数据。
38.学生点名系统
基本要求:
( 1) 读入外部文件存储的学生信息, 包括姓名, 学号;
( 2) 可选择学生班级, 对不同班级的学生分别进行点名;
( 3) 对学生按在班编号显示名字, 进行点名, 接收键盘输入的点名时间和能代表缺课、 请假、 正常的点名信息;
( 4) 查询各班学生的历史点名信息。
( 5) 提供交互界面, 以便人机交互。
提高部分: 利用外部.txt文件同步记录所有数据。
39.猜数游戏
基本要求: 开始游戏后, 输入用户名, 由计算机随机”想”一个数, 并给出数值范围, 请人猜, 如果人猜对了, 则一局游戏结束, 进入下一局。否则, 计算机给出提示, 告诉人所猜的数是太大还是太小, 直到人猜对为止。计算机记录游戏者每次猜的次数, 以此反映出猜数者”猜”的水平。
( 1) 把猜数记录最好的前五名的数据保存在一定的存储结构里, 包括游戏者的名字, 成绩和排名, 并排序输出, 每个用户只取最好成绩存储。
( 2) 提供交互界面, 以便人机交互。
提高部分: 利用外部.txt文件同步记录所有数据。
------------------------------------------------------------------------------------------------------------------------------------
四、 教学目的和要求
课程设计是加强学生实践能力的一个强有力手段。综合课设1主要针对数据结构和c/c++语言开展的实践性课程。要求学生掌握数据结构的应用、 算法的编写、 类C语言的算法转换成C( C++) 程序并上机调试的基本方法。课程设计要求学生在完成程序设计的同时能够写出比较规范的课程设计报告。培养学生综合运用所学理论知识解决复杂实际问题的实践能力、 研究性学习能力和团队合作能力。
五、 课程设计要求
1、 选好题目: 每题一人, 每班每个题目只允许一人选做, 学习委员将选题情况在课设第一天统计上交。
2、 课设报告独立思考, 独立完成: 课设报告出现雷同超过60%, 不论什么原因, 一律不及格。
3、 做好上机准备: 每次上机前, 要事先编制好准备调试的程序, 认真想好调试步骤和有关环境的设置方法, 准备好有关的文件。
4、 设计要点:
⑴需求分析:
在该部分中叙述总共几个模块, 每个模块的功能要求。
⑵系统设计
总体设计: 定义某个数据结构的抽象数据类型及其它算法的功能说明。
详细设计: 在此定义存储结构, 每个部分的算法设计说明( 建议描述算法采用流程图) 。
⑶编码实现
各个算法实现的源程序, 对每个题目要有相应的源程序( 每个功能模块采用不同的函数实现) 。源程序要按照程序的规则来编写, 要结构清晰, 重点函数的重点变量, 重点功能部分要加上清晰的程序注释。
程序能够运行, 要有基本的容错功能, 尽量避免出现操作失误时出现死循环。
⑷调试分析
给出实现功能的一组或多组测试数据, 程序调试后, 将按照此测试数据进行测试的结果列出来。时间复杂度分析, 每个模块设计和调试时存在问题的思考( 问题是哪些? 问题如何解决? ) , 算法的改进设想。
⑸课设总结: 课程设计过程的收获、 遇到问题、 遇到问题解决问题过程的思考、 程序调试能力的思考、 对数据结构这门课程的思考、 在课程设计过程中对《数据结构》课程的认识等内容。
5、 实现的结果必须进行检查和演示; 程序源代码和程序的说明文件必须上交, 作为考核内容的一部分; ( 上交时文件夹的取名规则为: ”课设题目( ***设计完成) ”, 如”资源管理系统的设计与实现( 张三设计完成) ”。该文件夹下包括三个目录: ”源代码”、 ”可执行文件”、 ”张三_课程设计报告”。由学习委员按规定时间统一上交) 。
6、 报告提交
形式: 纸介质(要求B5纸张打印, 加封皮)和电子文档。
展开阅读全文