信息工程学院1010级软件工程专业
数据结构课程设计计划
设计名称 《数据结构》课程设计 专业、班级 软件10级1班 课程性质 必修 设计周数 2周 课程学期学时数 68学时 学期学分 4分 指导教师签字 系主任审核签字 一.课程设计的目的
通过课程设计的综合训练,旨在帮助学生进一步系统的掌握数据结构这门课的主要内容,并进一步培养学生分析问题和解决问题的能力,主要体现在能够让学生针对实际问题有效地组织数据,选择合适的数据结构,并进行正确和高效的算法设计,并用程序实现算法。该课的课程设计是一个良好的程序设计技能训练的过程使学生能够:
1.了解并掌握数据结构与算法的设计方法,具备初步的独立分析和设计能力;
2.初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能;
3.提高综合运用所学的理论知识和方法独立分析和解决问题的能力; 4.训练用系统的观点和软件开发一般规范进行软件开发,培养软件工程专业学生所应具备的科学的工作方法和作风。 二.实习内容及安排 时间 第1天 第2天 第3天 第4天 第5天 第6天 第7天 第8天 第9天 地点 校内 校内 校内 校内 校内 校内 校内 校内 校内 内容 课程设计内容宣讲和选题 问题分析和任务定义 概要设计 详细设计 程序编码 程序调试与测试 程序调试与测试 程序调试与测试 程序调试与测试 负责人 黄橡丽 黄橡丽 黄橡丽 黄橡丽 黄橡丽 黄橡丽 黄橡丽 黄橡丽 黄橡丽 1
第10天 第11天 校内 校内 编写课程设计报告 课程设计内容总体展示与成绩评定 黄橡丽 黄橡丽 三.课程设计主要内容 1.设计题目
题目1:运动会分数统计 【问题描述】
参加运动会有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) 可以按学校编号查询学校某个项目的情况;可以按项目编号查询取得前
三或前五名的学校;
(5) 学生自己根据系统功能要求自己设计存储结构,但是要求运动会的相关数据要存储在数据文件中并能随时查询;
(6) 输入数据形式和范围:可以输入学校的名称,运动项目的名称; (7) 使用汉字显示。
题目2:飞机订票系统 【问题描述】
编写一个飞机订票系统,完成如下功能:
(1)录入:可以录入航班情况(数据可以存储在一个数据文件中,数据结构、具体数据自定);
(2)查询:可以查询某个航线的情况(如,输入航班号,查询起降时间,起飞抵达城市,航班票价,票价折扣,确定航班是否满仓);可以输入起飞抵达城市,查询飞机航班情况;
(3)订票:(订票情况可以存在一个数据文件中,结构自己设定)可以订票,如果该航班已经无票,可以提供相关可选择航班;
(4)退票: 可退票,退票后修改相关数据文件;
(5)修改航班信息:当航班信息改变可以修改航班数据文件。 【设计要求】
(1)客户资料有姓名,证件号,订票数量及航班情况,订单要有编号。 (2)根据以上功能说明,设计航班信息,订票信息的存储结构,设计程序完成功能。
(3)使用汉字显示。
题目3:通讯录的制作 【问题描述】
用《数据结构》中的链表作数据结构,结合C语言基本知识。编写一个通讯
2
录管理系统,完成如下功能:
(1) 输入信息; (2) 显示信息;
(3) 查找以姓名作为关键字; (4) 删除信息; (5) 存盘; (6) 装入。 【设计要求】
(1) 每条信息至少包含 :姓名(NAME )、街道(STREET)、城市(CITY)邮编(EIP)、国家(STATE)几项;
(2) 作为一个完整的系统,应具有友好的界面和较强的容错能力; (3) 使用汉字显示。
题目4:学生成绩管理系统 【问题描述】
现有学生成绩信息文件1(1.txt)和文件2(2.txt),试编写一管理系统,完成如下功能:
(1) 实现对两个文件数据进行合并,生成新文件3.txt;
(2) 抽取出三科成绩中有补考的学生并保存在一个新文件4.txt; (3) 合并后的文件3.txt中的数据按总分降序排序;
(4) 输入一个学生姓名后,能查找到此学生的信息并输出结果; (5) 要求使用结构体,链或数组等实现上述要求。 【设计要求】
(1) 每条信息至少包含 :姓名、学号、语文、数学、英语;
(2) 作为一个完整的系统,应具有友好的界面和较强的容错能力; (3) 使用汉字显示。
题目5:活期储蓄帐目管理 【问题描述】
活期储蓄处理中,储户开户、销户、存入、支出活动频繁。试编写一个活期储蓄帐目管理系统对其进行管理。 【基本要求】
(1) 能比较迅速地找到储户的帐户,以实现存款、取款记账;
(2) 能比较简单,迅速地实现插入和删除,以实现开户和销户的需要; (3) 使用汉字显示。
题目6:客户消费积分管理系统 【问题描述】
针对客户的消费情况,进行客户管理,根据客户的消费积分对客户实行不同程度的打折优惠。 【基本要求】
(1) 采用一定的存储结构进行客户信息的存储; (2) 对客户的信息可以进行修改、删除、添加; (3) 能够根据消费情况进行客户积分的计算; (4) 根据积分情况实行不同程度的打折优惠;
3
(5) 使用汉字显示。
题目7:产品进销存管理系统 【问题描述】
针对某一种行业的库房的产品进销存情况进行管理。 【基本要求】
(1) 采用一定的存储结构对库房的货品及其数量进行分类管理; (2) 可以进行产品类的添加、产品的添加、产品数量的添加;
(3) 能够查询库房每种产品的总量、进货日期、销出数量、销售时间等; (5) 使用汉字显示。
题目8:一元稀疏多项式计算器 【问题描述】
设计一个一元稀疏多项式简单计算器,可以计算任意两个一元多项式的加法、减法以及乘法。 【基本要求】
(1) 输入并建立多项式; (2) 输出多项式;
(3) 多项式A和B相加,建立多项式A+B; (4) 多项式A和B相减,建立多项式A-B; (5) 使用汉字显示。
题目9:算术表达式的求解 【问题描述】
给定一个算术表达式,通过程序求出最后的结果。 【基本要求】
(1) 从键盘输入要求解的算术表达式;
(2) 采用栈结构进行算术表达式的求解过程; (3) 能够判断算术表达式正确与否; (4) 对于错误表达式给出提示;
(5) 对于正确的表达式给出最后的结果; (6) 使用汉字显示。
题目10:车厢调度 【问题描述】
假设停在铁路调度站入口处的车厢序列的编号依次为1,2,3……N。设计一个程序,求出所有由此输出的长度为N的车厢序列。 【基本要求】
(1) 采用栈数据结构实现上述求解; (2) 使用汉字显示。
题目11:数制转换问题 【问题描述】
任意给定一个M进制的数x,实现将其转换成任意的一个非M进制的数。 【基本要求】
4
(1) 求出此数x的10进制值(用MD表示);
(2) 实现对x向任意的一个非M进制的数的转换;
(3) 至少用两种或两种以上的方法实现上述要求(用栈解决,用数组解决,其它方法解决);
(4) 使用汉字显示。
题目12:任意长的整数加法 【问题描述】
设计一个程序实现两个任意长的整数的求和运算。 【基本要求】
(1) 利用双向循环链表,设计一个实现任意长的整数进行加法运算的演示程序。要求输入和输出每四位一组,组间用逗号隔开。如:1,0000,0000,0000,0000。
(2) 使用汉字显示。
题目13:学生搭配问题 【问题描述】
一班有m个女生,有n个男生(m不等于n),现要开一个舞会。男女生分别编号坐在舞池的两边的椅子上。每曲开始时,依次从男生和女生中各出一人配对跳舞,本曲没成功配对者坐着等待下一曲找舞伴。请设计一系统模拟动态地显示出上述过程。 【基本要求】
(1)输出每曲配对情况;
(2)计算出任何一个男生(编号为X)和任意女生(编号为Y),在第K曲配对跳舞的情况.至少求出K的两个值;
(3) 使用汉字显示。
提示:用队列来解决比较方便。
题目14:猴子吃桃子问题 【问题描述】
有一群猴子摘了一堆桃子,他们每天都吃当前桃子的一半且再多吃一个,到了第10天就只余下一个桃子。用多种方法实现求出原来这群猴子共摘了多少个桃子。
【基本要求】
(1) 采用数组数据结构实现上述求解; (2) 采用链数据结构实现上述求解; (3) 采用递归实现上述求解; (4) 使用汉字显示。
题目15:二叉树的遍历 【问题描述】
二叉树的中序、前序、后序的递归、非递归遍历算法,层次序的非递归遍历算法的实现。 【基本要求】
(1) 作为一个完整的系统,应具有友好的界面和较强的容错能力;
5