1、高级语言程序设计课程设计任务书一、课程设计的目的高级语言程序设计是本科工科类各专业的重要基础课,课程以影响深远的、传统的、面向过程的优秀编程语言 C 语言为基础,学习程序设计的基本概念和方法,通过本门课程学习,应使同学掌握高级语言的基本原理,熟练掌握程序设计的基础知识、基本概念;掌握程序设计的思想和编程技巧。课程设计是在学生已经具备了使用 C 语言编写简单的应用程序的能力,为使学生对 C 语言有更全面的理解,进一步提高运用 C 语言编程解决实际问题的能力,通过提出算法、指定输入输出来设计一个解决方案。经过该实践环节,培养学生的探索精神和创新能力。通过答辩训练学生的综合表达能力。二、课程设计教学
2、的基本内容和要求1、课程设计教学基本内容高级语言课程设计不仅是对程序设计能力的综合锻炼,更是对团队合作、软件开发与项目管理过程的训练。因此,课程设计根据题目的难度由小组合作完成,每个小组 1-4 人。整个课程设计分为以下几个阶段进行:选题与开题、系统设计、系统编码实现、系统测试、撰写课程设计报告、系统评价与验收。(1)选题与开题:题目可来自教师指定的参考题目,也可自由选题,特别是鼓励有创新性的题目或是在已知题目的基础上进行创新。(2)系统设计:系统设计的任务是对所确定的题目从问题需求、数据结构、程序结构、难点及关键技术等方面进行分析,形成的系统设计方案,并进行详细的分工。(3)系统编码实现:小
3、组成员根据初步的系统设计方案,对系统编程实现。(4)系统测试:在各程序模块编码完成并集成后,就可以开始对整个系统进行测试。(5)撰写课程设计报告:完成文档整理,按照要求完成课程设计报告。(6)系统评价与验收:通过小组答辩的形式对程序的功能进行评价与验收。课程设计参考课题见附件。2、课程设计教学的要求参加本课程设计的学生,应当认真完成本课程设计的全部过程。并以最终课程设计成果来证明其独立完成各种实际任务的能力。从而反映出理解和运用本课程知识的水平和能力。具体如下:(1)数据组织方面尽量使用到:数组、链表、结构体、文件;(2)程序结构方面做到函数调用,尽量采用指针运算;(3)代码编写规范,形成良好
4、的编程习惯;(4)程序须有一定的健壮性和必要的提示信息,考虑问题的多种可能和边界数据。(5)课设完成须进行答辩,提交课设报告电子稿、装订的打印稿。课设报告内容包括以下几个方面: 程序的总体设计和算法分析。 程序流程图、函数说明 源程序代码清单 测试数据和测试过程记录 遇到的问题及解决方法分析 课程设计小结三、课程设计的进度安排系统整体设计和详细设计 1 天系统编码实现 1 天系统测试 1 天撰写课程设计报告 1 天演示软件和答辩 1 天四、课程设计的考核评价是检测学生理解问题和解决问题能力的一个重要手段,教师将根据学生提交的课程设计报告,严格检查以下各项任务完成情况:1、设计文档中要求项目是否
5、齐全。2、程序中运行时的屏幕提示信息是否准确:如果在程序执行期间有足够的指导信息显示在屏幕上显示,这些用户文档可以是很简要的,也许只限于解释如何装入并运行程序。3、问题和或任务的陈述(描述问题,而且问题是合理原始的、应当包括输入、输出及其预期范围)是否正确。问题的解决方案采取由顶向下设计的形式,在适当的地方使用伪代码,把整个解决方案划分成若干模块。5、程序完成后的代码应当加以注解。最少应清楚指出每一个模块。6、用于检查程序的测试数据,或者对一个控制程序给出测试的例程。测试应考虑探索通过程序的几条路径,在合适的地方选择打印输出来。7、程序的技术文档:必须包含函数的原型说明和所用变量的全体清单8、
6、程序顺利运行,结果正确;测试程序是否工作且满足设计指标并评价其效率。五、指导书、参考资料 C 程序设计 谭浩强编 清华大学出版社C 程序设计思想与方法 尹宝林编著 机械工业出版社六、其他课程设计选题参考,见附件整体要求及考核办法使用 VC 集成开发环境完成课题,程序的运行界面友好,代码的可维护性好,有必要的注释和相应的文档。根据提交的课程设计报告(包括程序主要完成的功能、设计思路和框图、主要代码,程序中有何创新,有何收获和所存在的不足以及需要改进的地方) ,程序功能的实现(要求演示)进行考核:(1)无课程设计报告,无程序(对于从网上下载的,不能讲解出程序实现思路或细节的程序,视为无程序) ,得
7、 0 分;(2)课设报告有拼凑痕迹,格式混乱,没有思路,程序不能运行,不及格;(3)课设报告描述基本清晰,格式基本规范,程序实现了基本功能,及格;(4)课设报告描述清晰准确,格式规范,程序实现了所有功能,良好;(5)课设报告描述清晰严谨,格式细致规范,深入分析了自己进行实验的体会感想,程序实现了全部功能,功能完善,并有一定程度的创新,优秀。总评成绩=平时(出勤+纪律)20%+程序代码+答辩 50%+课程设计报告 30%。附:课程设计选题参考1、多功能计算器实现以下功能:1)整数的加、减、乘、除2)实数的加、减、乘、除3)分数的计算。将分数定义为两个整数之比,如:1/2,3/4,24/48,64
8、/2 等;分数也可以是负数,如-1/2,15/-24;分数运算结果要是最简化的,如:4/-8,应表示成等价的-1/2。4)复数的加、减、乘、除2、文件移位加密与解密将某一已知文件的内容(仅限于英文字母)以字符形式读出,根据密钥(用户从键盘输入)将对应字符进行移位操作即可,解密时移动相反。例如:加密:设原文为 abcdef,密钥为 5,则有 abcdef 每个字母按字母表向后移动 5 们(注:z 后接 a)可得到密文(乱码)fghijkl;对该文件 解密:文件内容为fghijk1,密钥为 5,则有 fghijk1 每个字母向前移动 5 位(注 a 后接 z) ,可得到原文 abcdef。注:本课
9、题可考虑其他加密算法3、以本班同学的具体数据为背景,设计一个本班同学通讯录,通讯录至少应该有以下数据项:姓名,地址,电话,邮编,E-mail。实现以下功能:1) 通讯录编辑(添加、删除) ;2) 按不同的项进行查找;3) 对已存在的通讯录按不同的项排序;4) 将通讯录写入文件;5) 从文件读入通讯录。4、设计一个学生成绩排名系统,成绩记录以下信息:班级,学号,姓名,四门成绩(百分制) 。实现以下功能:1) 具备对成绩的管理功能(添加、删除、排序) ;2) 具备对成绩的统计功能(最高分,最低分,平均分,及格率等) ;3) 具备按学号、姓名、或课程名查询成绩的功能;5、设计一个课题随机选题程序设有
10、 n 个课题,每个学生输入学号后,系统随机生成三题的序号(序号不重复) ,将选题结果排序后写入文件记录6、运动会管理系统实现以下功能:(1)初始化输入:N-参赛学校总数,M-男子竞赛项目数,W-女子竞赛项目数;(2)各项目名次取法如下:取前 3 名:第 1 名得分 5,第 2 名得分 3,第 3 名得分 2;(3)由程序提醒用户填写比赛结果,输入各项目获奖运动员的信息;(4)所有信息记录完毕后,用户可以查询各个学校的比赛成绩,生成团体总分报表,查看参赛学校信息和比赛项目信息等。7、成绩记录簿实现以下功能:1) 创建信息并以磁盘文件保存;2) 读取磁盘文件并显示输出所有学生的成绩;3) 按学号或
11、姓名查询成绩;4) 添加成绩记录;5) 修改指定姓名或学号的学生的成绩并可存盘;6) 显示输出 60 分以下、6079、8089、90 分以上各分数段的学生信息。备注:每个学生信息包括:学号、姓名、C 语言成绩。8、学生籍贯信息记录簿实现以下功能:1) 创建信息并以磁盘文件保存;2) 读取磁盘文件并显示输出所有学生的籍贯信息;3) 按学号或姓名查询其籍贯;4) 按籍贯查询并输出该籍贯的所有学生;5) 能添加、删除和修改学生的籍贯信息;6) 显示输出四川籍和非四川籍学生的信息并可分别存盘。备注:每个学生信息包括:学号、姓名、籍贯。9、职工信息管理系统设计实现以下功能:1) 系统以菜单方式工作2)
12、 职工信息录入功能(职工信息用文件保存);3) 职工信息浏览功能;4) 查询和排序功能;5) 职工信息删除、修改功能。备注:职工信息包括职工号、姓名、性别、年龄、学历、工资、住址、电话等(职工号不重复) 。10、图书信息管理系统设计实现以下功能:1) 系统以菜单方式工作;2) 图书信息录入功能(图书信息用文件保存);3) 图书信息浏览功能;4) 查询和排序功能;备注:图书信息包括:登录号、书名、作者名、分类号、出版单位、出版时间、价格等。11、学生信息管理系统设计实现以下功能:1) 系统以菜单方式工作;2) 学生信息录入功能(学生信息用文件保存) ;3) 学生信息浏览功能;4) 查询、排序功能
13、(至少两种查询依据和两种排序依据) ;5) 学生信息删除、修改功能。备注:学生信息包括:学号,姓名,年龄,性别,出生年月,地址,电话,E-mail 等。12、学生选修课程系统设计实现以下功能:1)系统以菜单方式工作;2)课程信息录入功能(课程信息用文件保存);3)课程信息浏览功能;4)按课程性质查询查询功能:(至少两种查询方式,按学分查询备注:假定有 n 门课程,每门课程有课程编号,课程名称,课程性质,总学时,授课学时,实验或上机学时,学分,开课学期等信息,学生可按要求(如总学分不得少于 60)自由选课。13、职工工作量统计系统完成以下功能:1)输入职工工号和完成的产品数量,程序允许同一职工有
14、多次输入,由程序对其完成的产品数量实现累计;2)按完成数量对职工排序,并确定名次;3)按完成的产品数量由多到少的顺序,输出名次、同一名次的职工人数及他们的工号(工号由小到大顺序输出)。14、销售管理系统某公司有四个销售员(编号:1-4) ,负责销售五种产品(编号:1-5) 。每个销售员都将当天出售的每种产品各写一张便条交上来。每张便条包含内容: 销售员的代号,产品的代号,这种产品的当天的销售额;每位销售员每天可能上缴 0-5 张便条。完成以下功能:1)计算上个月每个人每种产品的销售额。2)按销售额对销售员进行排序,输出排序结果(销售员代号)3)统计每种产品的总销售额,对这些产品按从高到底的顺序
15、,输出排序结果(需输出产品的代号和销售额)4)输出统计报表15:C 语言关键字的翻译及统计程序功能要求:(1)程序中 dic.dat 中读入 C 语言的所有关键字及其对应的中文;(2)用户输入中文的名词和关键字,可以将其翻译成英语,如输入“基本整型”+回车,得到 int;输入英文的单词 int,则可以翻译成中文“基本整型” 。可多次查询,输入 bye 时退出。(3)从 source.c 中读取一份 C 语言的源代码,统计出其中各个关键字的出现的次数。16、奖学金评定程序要求实现以下功能:1)输入学生信息并以文件 Score.dat 保存;2)读取 Score.dat 文件并显示所有学生的成绩;
16、3)按学号或姓名查询某学生的所有成绩;4)修改指定姓名或学号的学生的成绩并可存盘;5)按各门课程的总分排名得出各等级奖学金的名单;6)将各等级奖学金获得者的名单写入文件 Bonus.dat。7)显示输出 60 分以下、6079、8089、90 分以上各分数段的学生信息。备注:每个学生信息包括:班级、学号、姓名、C 语言成绩、高数成绩、大学英语成绩、大学物理成绩、马哲成绩。规定一等奖学金的比例为 5%,二等奖学金的比例为 10%,三等奖学金的比例为 15%,按比例算出的人数若出现带小数的情况,则按四舍五入处理。17、小学生测验面向小学 12 年级学生,随机选择两个整数和加减法形成算式要求学生解答
17、。功能要求:(1)电脑随机出 10 道题,每题 10 分,程序结束时显示学生得分;(2)确保算式没有超出 12 年级的水平,只允许进行 50 以内的加减法,不允许两数之和或之差超出 050 的范围,负数更是不允许的;(3)每道题学生有三次机会输入答案,当学生输入错误答案时,提醒学生重新输入,如果三次机会结束则输出正确答案;(4)对于每道题,学生第一次输入正确答案得 10 分,第二次输入正确答案得 7 分,第三次输入正确答案得 5 分,否则不得分;(5)总成绩 90 以上显示“SMART”,80-90 显示“GOOD” ,70-80 显示“OK”,60-70 显示“PASS” ,60 以下“TR
18、YAGAIN” 。18、用英文单词模拟数学计算读入两个小于 100 的正整数 A 和 B,计算 A+B。需要注意的是:A 和 B 的每一位数字由对应的英文单词给出,具体的输入输出格式规定如下。输入格式:测试输入包含若干测试用例,每个测试用例占一行,格式为“A+B=” ,相邻两字符串有一个空格间隔。当 A 和 B 同时为 zero 时输入结束,相应的结果不要输出。输出格式:对每个测试用例输出 1 行,即 A+B 的值。输入样例:one+two=three four+five six=zero seven+eight nine=zero+zero=输出样例:threenine zeronine s
19、ix19、计算 24 游戏要求:随机产生或者输入十组整数,每组四个,通过加、减、乘、除等运算符计算出24。所有的整数处于 110 之间,如果某组整数无法计算出 24,则给出无法得到的提示。要求显示计算过程,并将运算过程和结果写入文件 Game24.dat。20、年历显示功能要求:(1)输入一个年份,输出是在屏幕上显示该年的日历。假定输入的年份在 1940-2040年之间。(2)输入年月,输出该月的日历。(3)输入年月日,输出距今天还有多少天,星期几,是否是公历节日;今天通过系统时间获取。21、实验设备管理系统实现以下功能:1)系统以菜单方式工作2)对设备信息的录入3)对设备信息的修改4)对设备进行分类统计6)设备的查询备注:实验设备信息包括:设备编号,设备种类(如:微机、打印机、扫描仪等等) ,设备名称,设备价格,设备购入日期,是否报废,报废日期等。