第一章课程设计的步骤和报告规范课程设计的步骤:一、问题分析和任务定义在设计之前,首先应该充分地分析和理解问题,明确问题要求做什么?限制条件是什么?对所需完成的任务作出明确的回答。
二、系统设计系统设计分为逻辑设计和详细设计两步。
逻辑设计指的是,对问题描述中的操作对象定义相应的数据类型,并按照以数据结构为中心的原则划分模块,定义软件模块结构图;详细设计则为定义相应的存储结构,并写出各函数模块的伪码算法。
三、编码实现和调试四、总结和整理课程设计报告课程设计报告规范:课程设计报告的开头应给出题目、专业、班级、学号、姓名、指导老师和完成日期,并包括以下十个内容:一、问题描述二、基本要求三、数据结构的设计四、软件模块结构图五、程序流程图六、源程序七、调试分析八、测试数据九、用户使用手册十、心得体会第二章课程设计选题1、文本文件单词的检索与计数问题描述:要求编程建立一个文本文件,每个单词不包含空格且不跨行,单词由字符序列构成且区分大小写;统计给定单词在文本文件中出现的总次数;检索输出某个单词出现在文本中的行号、在该行中出现的次数以及位置。
该设计要求可分为三个部分实现:其一,建立文本文件,文件名由用户用键盘输入;其二,给定单词的计数,输入一个不含空格的单词,统计输出该单词在文本中的出现次数;其三,检索给定单词,输入一个单词,检索并输出该单词所在的行号、该行中出现的次数以及在该行中的相应位置。
(1)建立文本文件(2)给定单词的计数(3)检索单词出现在文本文件中的行号、次数及其位置。
2、火车票销售问题描述:试编制一个简单的火车票销售系统,可完成售票、退票、车票剩余情况查询等功能。
每张车票包含车次、座位等信息。
3、DES加密解密算法的实现问题描述:DES算法处理的数据对象是一组64比特的明文串。
设该明文串为m=m1m2…m64 (mi=0或1)。
明文串经过56比特的密钥K来加密,最后生成长度为64比特的密文E。
然后将密文E解密,还原成明文m。
4、RSA加密解密算法的实现问题描述:RSA是一个比较完善的公开密钥算法,其公钥和私钥是一对大素数的函数。
加密时,先将明文变换成0至n-1的一个整数M。
设密文为C,则加密过程为:C≡Me (mod n)。
解密过程为:M≡Cd (mod n)。
要求:分析RSA算法的功能需求,详细设计实现RSA算法的数据结构和流程,给出测试用例和测试步骤,得出测试和结论。
RSA算法的实现程序必须提供加密和解密两个接口:int encrypt()和int decrypt()。
当加密或者解密成功时返回CRYPT_OK,失败时返回CRYPT_ERROR。
5、二叉树的遍历及左右子树的交换问题描述:实现二叉树的中序、前序、后序遍历的递归、非递归遍历算法,层次遍历的非递归遍历算法,应包含建树的实现,其次将其所有结点的左右子树交换。
6、哈夫曼树在通信编码中的应用问题描述:设一份电文中有不同出现频率的字符,为了提高电文的输入和翻译效率,必须有一套简短而又不会产生歧义的字符代码。
试根据哈夫曼算法,对电文中的不同字符,构造出一棵哈夫曼树,对每个字符进行编码。
要求:1)将权值数据存放在数据文件(文件名为data.txt,位于执行程序的当前目录中)2)分别采用动态和静态存储结构3)初始化:键盘输入字符集大小n、n个字符和n个权值,建立哈夫曼树;4)编码:利用建好的哈夫曼树生成哈夫曼编码;5)输出编码;6)译码功能;7)显示哈夫曼树;7、二叉排序树的实现问题描述:用顺序和二叉链表作存储结构1)以回车('\n')为输入结束标志,输入数列L,生成一棵二叉排序树T;2)对二叉排序树T作中序遍历,输出结果;3)输入元素x,查找二叉排序树T,若存在含x的结点,则删除该结点,并作中序遍历(执行操作2);否则输出信息“无x”;8、通讯录的管理问题描述:试编程完成通讯录的一般性管理工作,如通讯录中记录的增加、修改、查找、删除、输出等功能。
每个记录包含姓名、电话号码、住址等个人基本信息。
设计内容:本系统应完成一下几方面的功能:1)输入信息——enter();2)显示信息———display( );3)查找以姓名作为关键字———search( );4)删除信息———delete( );5)存盘———save ( );6)装入———load( ) ;9、学生成绩统计、排序的实现问题描述:在学生成绩管理中,经常会遇到求平均成绩,统计不及格学生成绩,统计优秀学生人数,以及按成绩对学生进行排名等。
现假设有某个班级的若干名学生,每个学生都考试完成了4门课程,试对所有学生的成绩完成以下工作:(1)求每门课程的平均成绩。
(2)输出所有有不及格课程的学生的学号、姓名、全部课程的成绩、平均成绩。
(3)输出所有平均分在90分以上(含90分)的学生学号、姓名。
(4)对4门课程中的任何一门,可随意抽取1门按学生成绩进行排序10、多种基本内排序方法的实现问题描述:设计一个合成的排序程序。
可供排序的方法是:插入排序、快速排序、归并排序、堆排序。
要求程序具有(1)显示排序结果。
(2)提供最好和最坏情况下对比计时的功能。
(3)提供在不同数组元素的个数情况(当N分别等于100,1000,5000,20000时)下各种排序算法的计算时间的统计功能。
11、工程造价最小问题问题描述:如果以无向网表示n个城市之间的交通网络建设规划,顶点表示城市,边上的权表示该线路的造价,试设计一个方案,使这个交通网的总造价最小。
12、旅游导游系统问题问题描述:假设一个旅游景区由n个不同景点组成(有向网),并用带权邻接矩阵表示,权值表示两个景点间的步行时间,试编写程序求任意两个景点间的最短步行时间。
13、迷宫问题问题描述:从迷宫的入口开始寻找一条到出口的路径。
要求显示迷宫的布局,及找到的路径(最好显示寻找路径的过程)。
走到某一步后,假定往下有四个方向的可能,即上、下、左、右四个方向。
14、简易文本编辑器的实现问题描述:一个简易文本编辑器的功能包括:(1)文本文件的保存,读入;(2)字符的输入、修改、删除、换行;(3)利用模式匹配实现文本中字符串的定位。
15、运动会分数统计。
问题描述:某学校开运动会,共有m个班参加,比赛设有n个男子项目和L个女子项目。
假设项目编号为1~n,n+1~n+L,并且假设编号为偶数的项目取前5名,得分顺序为7,5,3,2,1,编号为奇数的项目取前3名,得分顺序为5,3,2。
请编写出一个统计程序以产生:各班成绩单(包括各班所得的各项成绩的项目号,名次,姓名和得分);团体总分报表(包括班级,男团总分,女团总分和团体总分);可假设m≤20,n≤15,L≤10,姓名长度不超过20个字符。
每个项目结束时,将其编号、类型符(区分取前5名还是取前3名)输入,并按名次输入运动员的姓名、班级、成绩。
16、停车场管理。
问题描述:设停车场内只有一个可停放n辆汽车的狭长通道,且只有一个大门可供汽车进出。
汽车在停车场内按其到达时间的先后顺序,依次由北向南排队(大门在最南端,最先到达的第一辆车停放在车场的最北端),若车辆内停满n辆汽车,则后来的汽车只能在门外的便道等候。
一旦有车开走,则排在便道上的第一辆车即可开入。
当停车场内某辆车要离开时,在它之后开入的车辆必须退出车场让路。
待该辆车开出大门后,退出的车辆再按原次序进入车场。
离开停车场的每辆车必须按它停留的时间交纳费用。
试为停车场编制按上述要求管理的模拟程序。
17、模拟旅馆管理系统的一个子功能―床位分配和回收。
问题描述:某旅馆有n个等级的房间;第i等级有a1个房间;每个房间有b1个床位(1≤i≤n)。
旅馆管理系统提供如下服务:(1)为单身旅客分配床位。
根据旅客性别要求(所需要房间等级),进行分配,若分配成功,输出旅客姓名、性别、房间等级、房间号码;分配失败时,若所有等级均无空位,则打印“客满”,若旅客需要的等级无空床位,但其他等级有床位,则打印“是否愿意更改等级”的询问。
若旅客愿意更改,则重新输入有关信息,再进行分配;否则,分配工作结束。
(2)当单身旅客离店时回收床位。
根据旅客提供情况(房间等级、房间号码、床位号码)进行回收。
18、树的应用要求:实现树与二叉树的转换的实现。
以及树的前序、后序的递归、非递归算法,层次序的非递归算法的实现,应包含建树的实现。
19、图遍历的演示。
问题描述:很多涉及图上操作的算法都是以图的遍历操作为基础的,试编一个程序,演示在连通图的无向图上行遍全部结点的操作。
20、最短路径。
问题描述:试设计一个程序,求图中一个源点到其他各顶点的最短路径。
要求:(1)用邻接表表示图。
(2)按长度非递减次序打印输出最短路径的长度及相应的路径。
21、教学计划编制问题。
问题描述:大学每个专业都要制定教学计划。
假设任何专业都有固定的学习年限,每学年含两个学期的时间长短和学分上限值均相等。
每个专业开设的课程都是确定的,而且课程在开设时间的安排上必须满足先修关系。
每门课有哪些先修课程也是确定的(但可以有多门先修课程,也可以没有先修课程)。
每门课恰好占一学期。
试在这些前提下设计一个教学计划编制程序。
22、散列表的设计与实现【问题描述】设计散列表实现电话号码查找系统。
【基本要求】1)设每个记录有下列数据项:电话号码、用户名、地址;2)从键盘输入各记录,分别以电话号码和用户名为关键字建立散列表;3)采用一定的方法解决冲突;4)查找并显示给定电话号码的记录;5)查找并显示给定用户名的记录。
6)设计不同的散列函数,比较冲突率;7)在散列函数确定的前提下,尝试各种不同类型处理冲突的方法,考察平均查找长度的变化。
23、编排字典。
问题描述:小王和小李自学英语,各自在阅读时把不会的单词记在纸条上,最后将字条上的单词按字母顺序抄写在本上。
两人互相交流经验时,认为对方的单词也是自己所需要的请你为他们编写一程序,将两单词本按字母顺序合并为一本。
24、拓扑排序问题问题描述:采用适当的存储结构,实现有向网的存储,建立,输入,显示,以及实现对有向无环图的拓扑有序序列的输出。
25、公司销售管理系统项目开发基本要求(1)客户信息管理:对客户的基本信息进行添加、修改和删除。
(2)产品信息管理:对产品的基本信息进行添加、修改和删除。
(3)供应商信息管理:对供应商的基本信息进行添加、修改和删除。
(4)定单信息管理:对定单的基本信息进行添加、修改和删除。
26、高校科研管理系统系统主要用于帮助高校或科研单位管理和维护各项科研相关资料项目开发基本要求(1)系统用户管理模块:为系统新用户设置用户名及口令;操作员更改自己的系统口令。
(2)数据字典管理模块:管理项目性质包括:分为国家自然科学基金、863、部省科委及企业集团四种情况;范围包括:分为全国、国际、地方三种情况;检索源包括:分为EI、SCI、核心和一般四种情况。