一、高校社团管理
在高校中,为了丰富学生的业余生活,在学校的帮助下,会成立许多社团,少则几个,多则几十个。
为了有效管理这些社团,要求编写程序实现以下功能: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)如何实现相对路径表示法。
(2)为了增加目录或文件的查找速度,最好的存储方式是散列存储。
如何实现?当采用散列存储时,如何实现上述格式的输出?
(3)对输入数据的后校验,在创建、查找、删除需要输入路径时,若输入不合格,给出提示“不能接受”。
(4)通配符的使用。
如用“?”代表任意一个字符,用“*”代表任意多个任意字符。
十、教学计划编制问题
在学的每个专业都要制定教学计划。
假设任何专业都有固定的学习班年限,每学期含两个学期,每学期的时间长度和学分上限值均相等。
每个专业开设的课程都是确定的,而且课程开设时间的安排必须满足先修关系。
每门课程有哪些先修课程是确定的,可以有任意多门,也可以没有,每门课恰好占一个学期。
试在这样的前提下设计一个教学计划编制程序。
(设学期总数不超过8,课程总数不超过100。
)
基本要求
(1)输入参数包括:学期总期总数,一学期的学分上限,每门课的课程号(固定占3位的字母数字串)课程名等信息均以文件方式存放在磁盘中;
(2)安排教学计划时以使学生在各学期中的学习负担尽量均匀;
(3)输出的计划存入文件中。
十一、通讯录管理系统的设计与实现
电子通讯录已成为手机、电子词典等电子设备中不可缺少的工具软件。
请设计一个能够满足这种需求的软件。
基本功能包括:输入、显示、查找、插入、删除、保存、读入、排序、修改、移动、退出。
基本要求:
设计通讯录数据的逻辑结构和物理结构。
通讯录至少包括下列数据信息:姓名、电话、单位等。
完成上述基本功能,软件易用、操作简单。
根据自己使用通讯录的体会,扩充其他功能,如按姓名查找、按号码查找、按序号删除等。
设计足够多的测试用例。
较高要求
数据输入有效性检验:如姓名不能为空、号码中不能有非法字符等。
提供分组管理的相关功能,如:分组显示、加入组、组创建、组查询等。
可视化的界面设计。
实现提示
如果提供多种有序显示,如按姓名、按关系、按号码,可以通过建立索引表来实现,而不是把整个通讯录以不同的序存储多个。
这样可以有效避免数据存储的冗余和错误。
但当原数据表数据发送改变(如修改、插入、删除、移动)时,要及时更新索引表。
建索引表,设计对原始数据记录按关键字排序。
可以对原记录按关键字建立二叉排序树,二叉排序树的中序序列即为有序序列。
当然也可采用其他排序方法。