当前位置:首页 >> 其它课程 >>

程序设计与算法综合训练


程序设计与算法综合训练
一、课程概述
《程序设计与算法综合训练》是一门面向计算机科学与技术学院各个专业的综合实践课程,是配 合专业学科平台课程《高级语言程序设计》和《数据结构》而开设的实践性教育环节。 该课程是专业必修课程,共 80 学时,先修课程为《高级语言程序设计(C 语言版) 》和《数据结 构(C 语言版) 》 。

二、课程的教学目

标与任务
通过本课程的综合实践训练,使学生加深对《高级语言程序设计》和《数据结构》课程中基本知 识与基本原理的理解;掌握各种数据类型的使用技巧和模块化程序设计的方法;掌握程序设计的过程 和技巧,确立分析问题、建立模型和运用程序进行问题求解的思维方式;掌握复杂数据结构在计算机 中的存储表示及其运算,建立正确的数据组织与数据处理的设计思想,培养学生综合运用数据结构课 程的相关设计理论与实际问题相结合解决数据组织与分析、数据处理与算法设计等设计问题的能力。

三、课程要求
1.通过综合训练,要求在数据结构的逻辑特性和物理表示、数据结构的选择应用、算法的设计 及其实现等方面加深对课程基本内容的理解。同时,在程序设计方法以及上机操作等基本技能和科学 作风方面受到比较系统和严格的训练。 2.学生必须仔细研读《程序设计与算法综合训练》课程的要求,以学生自学为主、指导教师指 导为辅,认真、独立地完成综合训练的任务,有问题及时主动与指导教师沟通。 3.本次综合训练按照教学要求需要在 2 周时间内独立完成,学院安排上机时间学生不得缺席。 学生要发挥自主学习的能力,充分利用时间,安排好设计计划,并在设计过程中不断检测自己的计划 完成情况,及时地向指导教师汇报。 4.每位学生须按照综合训练项目的要求,设计、调试、运行源程序,提交设计报告。

四、课程考核及成绩评定方式
针对每个设计项目,按照设计报告占 30%,设计作品占 50%,设计过程中的工作态度占 20%进 行综合打分。总成绩取 8 个设计项目成绩的平均值。 上机程序检查未通过者、无设计报告者、严重抄袭他人设计者以及缺席 2 次及以上者,成绩为不 及格。

五、课程具体内容及基本要求
项目一 迷宫问题的求解 (8 学时) 1.问题描述:以一个 m*n 的长方阵表示迷宫,0 和 1 分别表示迷宫中的通路和障碍。设计一个 程序,对任意设定的迷宫,求出一条从入口到出口的通路,或得出没有通路的结论。 2.基本要求 (1)首先实现一个以链表作存储结构的栈类型,然后编写一个求解迷宫的非递归程序。求得的 通路以三元组(i,j,d)的形式输出。其中: (i,j)指示迷宫中的一个坐标,d 表示走到下一坐标的
1

方向。如,对于教材第 50 页图 3.4 所示的迷宫,输出一条通路为: (1,1,1) , (1,2,2) , (2,2,2) , (3,2,3) , (3,1,2) ,?。 (2)编写递归形式的算法,求得迷宫中所有可能的通路。 (3)以方阵形式输出迷宫及其通路。 (4)按照题意要求独立进行设计,设计结束后按要求写出设计报告。 项目二 停车场管理系统的设计与实现 (8 学时) 1.问题描述:停车场内只有一个可停放 n 辆汽车的狭长通道,且只有一个大门可供汽车进出。 汽车在停车场内按车辆到达时间的先后顺序,依次由北向南排列(大门在最南端,最先到达的第一辆 车停放在停车场的最北端) ,若车场内已停满 n 辆汽车,则后来的汽车只能在门外的便道上等候,一旦 有车开走,则排在便道上的第一辆车即可开入;当停车场内某辆车要离开时,在它之后开入的车辆必 须先退出车场为它让路,待该辆车开出大门外,其它车辆再按原次序进入车场,每辆停放在车场的车 在它离开停车场时必须按它停留的时间长短交纳费用。试为停车场编制按上述要求进行管理的模拟程 序。 2.基本要求 (1)以栈模拟停车场,以队列模拟车场外的便道,按照从终端读入的输入数据序列进行模拟管 理。 (2)每一组输入数据包括三个数据项:汽车“到达”或“离去”信息、汽车牌照号码及到达或离去 的时刻,对每一组输入数据进行操作后的输出数据为:若是车辆到达,则输出汽车在停车场内或便道 上的停车位置;若是车离去;则输出汽车在停车场内停留的时间和应交纳的费用(在便道上停留的时 间不收费) 。 (3)栈以顺序结构实现,队列以链表结构实现。 (4)按照题意要求独立进行设计,设计结束后按要求写出设计报告。 项目三 银行业务模拟系统的设计与实现 (8 学时) 1.问题描述:假设某银行有四个窗口对外接待客户,从早晨银行开门起不断有客户进入银行。 由于每个窗口在某个时刻只能接待一个客户,因此在客户人数众多时需在每个窗口前顺次排队,对于 刚进入银行的客户,如果某个窗口的业务员正空闲,则可上前办理业务,反之,若四个窗口均有客户 所占,他便会排在人数最少的队伍后面。现在需要编制程序以模拟银行的这种业务活动并计算一天中 客户在银行逗留的平均时间。 2.基本要求 (1)初始化(OpenForDay) ,模拟银行开门时各数据结构的状态。 (2)事件驱动(EventDrived), 对客户到达和离开事件做相应处理。 (3)下班处理(CloseForDay) ,模拟银行关门时的动作,统计客户平均逗留时间。 (4)按照题意要求独立进行设计,设计结束后按要求写出设计报告。 项目四 哈夫曼编/译码系统的设计与实现 (16 学时)

2

1.问题描述:利用哈夫曼编码进行通信可以大大提高信道利用率,缩短信息传输时间,降低传 输成本。但是,这要求在发送端通过一个编码系统对待传数据预先编码,在接收端将传来的数据进行 译码(解码) 。对于双工信道(即可以双向传输信息的信道) ,每端都需要一个完整的编 /译码系统。 试为这样的信息收发站设计一个哈夫曼编译码系统。 2.基本要求 (1)初始化(Initialzation) 。从数据文件 DataFile.data 中读入字符及每个字符的权值,建立哈夫 曼树 HuffTree; (2)编码(EnCoding) 。用已建好的哈夫曼树,对文件 ToBeTran.data 中的文本进行编码形成报 文,将报文写在文件 Code.txt 中; (3)译码(Decoding) 。利用已建好的哈夫曼树,对文件 CodeFile.data 中的代码进行解码形成原 文,结果存入文件 Textfile.txt 中; (4)输出(Output) 。输出 DataFile.data 中出现的字符以及各字符出现的频度(或概率) ;输出 ToBeTran.data 及其报文 Code.txt;输出 CodeFile.data 及其原文 Textfile.txt; (5)按照题意要求独立进行设计,设计结束后按要求写出设计报告。 项目五 通讯录查询系统的设计与实现 (8 学时) 1.问题描述:为某个单位建立一个员工通讯录管理系统,可以方便查询每一个员工的电话与地 址。设计散列表存储,设计并实现通讯录查找系统。 2.基本要求 (1)每个记录有下列数据项:电话号码、用户名、地址; (2)从键盘输入各记录,分别以电话号码为关键字建立散列表; (3)采用二次探测再散列法解决冲突; (4)查找并显示给定电话号码的记录; (5)通讯录信息文件保存。 (6)按照题意要求独立进行设计,设计结束后按要求写出设计报告。 项目六 电视大赛观众投票及排名系统的设计与实现 (8 学时) 1.问题描述:在很多的电视大赛中,通常当选手表演结束后,现场观众通过手中的按键对参赛 选手进行投票,然后对选手获得的票数进行统计,从高到低进行降序排序,从而自动产生冠军、亚军 和季军。要求编写算法模拟实现上述系统的功能。 2.基本要求 (1)首先输入参赛选手的人数(范围为 1-9 个) ,然后根据人数通过 malloc 函数来分配存放选手 信息的顺序表; (2)将选手的编号和姓名依此存入顺序表中; (3)观众通过按键进行投票,按’1’为 1 号选手投票,按’2’为 2 号选手投票,以此类推,以按’ 0’作为投票结束标志;

3

(4)投票结束后进行排序,在此采用各种排序算法,然后为每个选手计算名次,得票相同的名 次也相同; (5)按照题意要求独立进行设计,设计结束后按要求写出设计报告。 项目七 药店的药品销售统计系统的设计与实现 (8 学时) 1.问题描述:设计一系统,实现医药公司定期对销售各药品的记录进行统计,可按药品的编号、 单价、销售量或销售额做出排名。 2.基本要求 (1)药品的信息包括:药品编号、药名、药品单价、销出数量、销售额。其中药品编号共 4 位, 采用字母和数字混合编号,如:A125,前一位为大写字母,后三位为数字; (2)从数据文件中读出各药品的信息记录,存储在顺序表中; (3)按药品编号进行排序时,可采用基数排序法。 (4)对各药品的单价、销售量或销售额进行排序时,可采用多种排序方法。要求对单价的排序 采用冒泡排序法,对销售量的排序采用快速排序法,对销售额的排序采用堆排序法。 (5)按照题意要求独立进行设计,设计结束后按要求写出设计报告。 项目八 旅游景点咨询系统的设计与实现 (16 学时) 1.问题描述:创建一个至少有 15 个点的有向网表示的某个旅游景点的导游图。顶点代表景点, 类型为字符串(例如,泰山导游图: “天地广场门” , “十八盘” , “冯玉祥墓” , “桃花峪门” , “中天门” , “南天门” , “玉皇顶”等) ,弧表示两个景点之间可以直达,弧上的权值表示两个景点之间的路程(公 里数) ,弧上还有到达方法的信息(有步行和索道两种) 。建立一个游客咨询系统。 2.基本要求 (1)创建图的存储结构。 (2)输入两个景点名,就可以得到从一个景点到达另一个景点的所有简单路径、相应路径的路 程公里数、行走的方法(每一段是步行,还是坐索道) ; (3)输入两个景点名,就可以得到其最短路径,即:路程最短的行进方法;如果两者无路径可 通,就得出“两景点不可达的信息” 。 (4)按照题意要求独立进行设计,设计结束后按要求写出设计报告。

六、设计报告模板

4

《程序设计与算法综合训练》设计报告****(填序号)
学号: 姓名: 年级: 专 业:

项目名称:*************(填具体项目名)
1.需求分析

完成日期:2016 年***月***日

在该部分中根据设计题目的要求,充分地分析和理解问题,叙述系统的功能要求,明确问题要求 做什么?限制条件是什么? (1)问题描述 (2)基本要求 ①输入的形式和输入值的范围; ②输出的形式; ③程序所能达到的功能。 2.概要设计 说明本程序中用到的所有抽象数据类型的定义。主程序的流程以及各程序模块之间的层次(调用) 关系。 (1) 数据结构 (2)程序模块 (3) 各模块之间的调用关系以及算法设计 3. 详细设计 实现概要设计中定义的所有数据类型, 对每个操作写出 C 语言算法; 对主程序和其他模块也都需 要写出 C 语言算法;写出函数和过程的调用关系。 4. 测试与分析 测试数据,输出测试的结果(给出程序运行截图) ,这里的测试数据应该完整和严格。并对结果 进行分析。 5. 总结 总结可以包括:课程设计过程的收获、遇到问题、遇到问题解决问题过程的思考、程序调试能力 的思考、对数据结构这门课程的思考、在课程设计过程中对所学课程的认识等内容。 6. 附录 源程序清单。

5


相关文章:
程序设计与算法综合训练教学大纲2016
程序设计与算法综合训练》教学大纲课程编号: 课程名称:程序设计与算法综合训练 英文名称:Comprehensive Training of Programming Design and Algorithm 学分/学时: /...
程序设计与算法综合训练
程序设计与算法综合训练一、课程概述《程序设计与算法综合训练》是一门面向计算机科学与技术学院各个专业的综合实践课程,是配 合专业学科平台课程《高级语言程序设计》...
《程序设计综合训练》指导书
程序设计综合训练程序设计综合训练综合训练——C—— 语言版 指导书 ...学生可以根据指导书和相关文献上的参考算法, 自己设 计出相应的应用程序,也可以...
算法与程序设计综合评价练习题
算法与程序设计综合评价练习题_其它课程_高中教育_教育专区。算法与程序设计综合评价练习题一、利用计算机解决问题的基本过程 判断题: 1、一个算法有一个或多个输出...
《程序设计综合训练》指导书new
程序设计综合训练》指导书new_互联网_IT/计算机_专业资料。《程序设计综合训练...学生可以根据指导书和相关文献上的参考算法, 自己设 计出相应的应用程序,也可以...
综合训练程序设计报告
综合训练程序设计报告一、 程序实现的功能及算法分析本程序的主要任务就是从磁盘文件中读入数据并对数据进行处理,然后再另 建一个文件夹将所显示的结果写入。其具体...
算法与程序设计分析题专项训练及答案
高二信息技术学业水平学案 分析题专项训练编制:刘洪强 审核:王磊 编号:10 时间:...答案: (超市) (2) 在综合性百货商场,购买哪一类打折商品的人最多?答案: (...
程序设计综合训练
程序设计综合训练_计算机软件及应用_IT/计算机_专业资料。程序设计综合训练中的运动员管理系统 程序设计综合训练运动员管理系统 #include <stdlib.h> #include <...
《程序设计与算法》课程标准
程序设计与算法》课程标准课程代码 课程类型 课程学分 修读学期 0205210011 理...综合训练 实验名称: 综合训练 (一) 理解选择结构、循环 -3- 4 (二) 教学...
程序设计综合训练
程序设计综合训练》 实验报告班级: 姓名: 学号: 学院: 指导老师: 1 学生成绩管理系统 #include<stdio.h> #include #include<conio.h> /*清屏*/ #include...
更多相关标签:
算法与程序设计 | 分形算法与程序设计 | 算法与程序设计ppt | 高中算法与程序设计 | 程序设计的典型算法有 | 算法与程序设计 教案 | 程序设计与算法语言 | 程序设计算法 |