数据结构课程设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、高校社团管理
在高校中,为了丰富学生的业余生活,在学校的帮助下,会成立许多社团,少则几个,多则几十个。为了有效管理这些社团,要求编写程序实现以下功能:1.社团招收新成员;
2.修改社团相应信息
3.老成员离开社团
4.查询社团情况;
5.统计社团成员数;
二、简单文本编辑器
设计一个文本编辑器,允许将文件读到内存中,也就是存储在一个缓冲区中。这个缓冲区将作为一个类的内嵌对象实现。缓冲区中的每行文本是一个字符串,将每行存储在一个双向链表的结点中,要求设计在缓冲区中的行上执行操作和在单个行中的字符上执行字符串操作的编辑命令。
基本要求:
包含如下命令列。可用大写或小写字母输入。
R:读取文本文件到缓冲区中,缓冲区中以前的任何内容将丢失,当前行是文件的第一行;
W:将缓冲区的内容写入文本文件,当前行或缓冲区均不改变。
I:插入单个新行,用户必须在恰当的提示符的响应中键入新行并提供其行号。
D:删除当前行并移到下一行;
F:可以从第1行开始或从当前行开始,查找包含有用户请求的目标串的第一行;
C:将用户请求的字符串修改成用户请求的替换文本,可选择是仅在当前行中有效的还是对全文有效的。
Q:退出编辑器,立即结束;
H:显示解释所有命令的帮助消息,程序也接受?作为H的替代者。
N:当前行移到下一行,也就是移到缓冲区的下一行;
P:当前行移到上一行,也就是移到缓冲区的上一行;
B:当前行移到开始处,也就是移到缓冲区的第一行;
E:当前行移到结束处,也就是移到缓冲区的最后一行;
G:当前行移到缓冲区中用户指定的行;
V:查看缓冲区的全部内容,打印到终端上。
三、电话客户服务模拟
一个模拟时钟提供接听电话服务的时间(以分钟计),然后这个时钟将循环的
自增1(分钟)直到达到指定时间为止。在时钟的每个"时刻",就会执行一次检查来看看对当前电话服务是否已经完成了,如果是,这个电话从电话队列中删除,模
拟服务将从队列中取出下一个电话(如果有的话)继续开始。同时还需要执行一个检查来判断是否有一个新的电话到达。如果是,其到达时间被记录下来,并为其产生一个随机服务时间,这个服务时间也被记录下来,然后这个电话被放入电话队列中,当客户人员空闲时,按照先来先服务的方式处理这个队列。当时钟到达指定时间时,不会再接听新电话,但是服务将继续,直到队列中所偶电话都得到处理为止。
基本要求:
(1)程序需要的初始数据包括:客户服务人员的人数,时间限制,电话的到达速率,平均服务时间
(2)程序产生的结果包括:处理的电话数,每个电话的平均等待时间
四、停车场管理
设停车场是一个可停放n辆车的狭长通道,且只有一个大门可供汽车进出。在停车场内,汽车按到达的先后次序,由北向南依次排列(假设大门在最南端)。若停车场内已停满n辆车,则后来的汽车需在门外的便道上等候,当有车开走时,便道上的第一辆车即可开入。当停车场内某辆车要离开时,在它之后进入的车辆必须先退出停车场为它让路,待该辆车开出大门后,其他车辆再按原次序返回车场。每辆车离开停车场时,应按其停留时间的交费(从进入便道开始计时)。在这里假设汽车从便道上开走时不收取任何费用
基本要求:
(1)汽车的输入信息格式为(到达/离去的标识,汽车牌照号码,到达/离去的时间)
(2)对于不合理的输入信息应提供适当的提示信息,要求离开的汽车没在停车场或便道时可显示“此车未在停车场或便道上”。
五、算术表达式求值
从键盘上输入中缀算术表达式,包括括号,计算机出表达式的值
要求:
1.程序对所输入的表达式作简单的判断,如表达式有错,能报错。
2.能处理单目运算符;+和-
六、加密软件
用哈夫曼编码设计一个压缩软件,能对输入的任何类型的文件进行哈夫曼编码,产生编码的文件—压缩文件;也能对输入的压缩文件进行译码,生成压缩前的文件—解压文件
七、排课软件
大学的每个专业都要进行排课。假设任何专业都有固定的学习年限,每学年含两学期,每个专业开设的课程都是确定的,而且课程在开设时间的安排必须满足先修关系。每门课程有哪些先修课程是确定的。每门课恰好占一个学期,假定每天上午与下午各有5节课。试在这样的前提下设计一个教学计划编制程序。
要求:
1.输入数据包括:各学期所开的课程数(必须使每学期所开的课程数之和与课程总数相等),课程编号、课程名称、周学时数、指定开课学期、先决条件。如指定开课学期为0,表示由电脑自行指定开课学期。
2.如输入数据不合格,应显示适当的提示信息。
3.用文本文件存储输入数据
4.由文本文件存储产生的各学期的课表
八、学生成绩管理系统
该系统实现对若干个大学生的学习成绩进行管理。至少包括以下信息:
学号、姓名、科目、成绩,学期。学期取值范围可为1-8。
功能要求:
1.使用中文菜单;
2. 将学生信息保存在文本文档中,具体对学生信息进行插入删除查询操作时,将保存在文本文档中的学生信息提取出来,保存在链表中,然后再对链表进行操作,所有操作完成,或者在相应的命令后,再将学生信息保存到文本文档中。
3.具有数据输入功能;
4.具有数据删除功能;
5.具有多种查询(如按学号查询、按姓名查询、按成绩查询等)及输出功能;
6.其它功能(如各种统计)
九、文件目录管理与显示
给出树形文件目录和文件信息,要求编程实现将其排列成一棵有一定缩进的树形目录。
基本要求:
(1)设计文件和目录信息树的存储结构。
(2)从文件或键盘输入目录和文件信息,输入格式采用绝对路径法。
(3)设计有层次带缩进的树形目录和文件输出格式。
(4)设计从目录树中查找指定目录或文件的算法。
(5)设计在目录树中添加新目录或新文件的算法。
(6)设计在目录树中删除指定目录或文件的算法,子目录能够被删除的前提是其为空,即不包含任何子目录和文件;根目录不能删除。
(7)设计足够多的测试用例。
(8)扩充目录或文件信息,如创建时间、读写权限、文件长度或子目录包含的子目录和文件数等。
(9)对同一层次下的子目录或文件按创建时间有序输出。
较高要求
(1)如何实现相对路径表示法。