《C语言程序设计》课程设计教学大纲
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《C语言程序设计》课程设计大纲
课程中文名称:C语言程序设计课程设计
课程英文名称:C language programming curriculum design
课程编号:090010031 适用专业:计算机、网络、信管、软件学时数:2周学分数:2
课程类别:必修应开课学期:第三学期
执笔者:安葳鹏审核人:基础教学部
批准人:高岩定稿日期:2013年5月7日
一、课程的目的和意义
《C语言程序设计》课程设计是在学习《C语言程序设计》课程之后进行的一个实践教学环节,学生运用所学的知识,在教师指导下,独立进行。课程设计的目的和意义是:
1、进一步加深对所学基本理论知识的理解和掌握,完善理论和实践的衔接;进一步培养学生结构化程序设计的思想,加深对高级语言基本语言要素和控制结构的理解;
2、针对C语言中的重点和难点内容进行训练,独立完成有一定工作量的程序设计任务,同时强调好的程序设计风格。
3、掌握C语言的编程技巧和上机调试程序的方法。
4、掌握程序设计的常用算法,培养学生运用所学知识分析问题,解决问题的能力。
二、课程设计基本要求
1.独立、按时、按质、按量完成本课程设计;
2.充分理解并掌握相关理论,熟悉程序设计的控制结构以及设计流程;
3.完成课程设计后,将设计任务书、设计说明书按要求装订成册。
三、设计内容及任务
原则上,学生从以下题目中任选一题进行课程设计。在课程设计指导老师的指导下,也可以选择其他题目,但要保证工作量,并满足课程设计的相关要求。
1、人机猜数游戏
由计算机“想”一个四位数,请人猜这个四位数是多少。人输入这个四位数后,计算机首先判断这四个数中有几个猜对了,并且在猜对的数字中又有几位位置也是对的,将结果显示出来,给人以提示,请人再猜,直到人猜出计算机所想的四位数为止。请编程实现该游戏,游戏结束时,显示人猜一个数用了几次。
提示:用库函数random()产生一个随机数。
2、编一程序,实现将输入的一个无符号整数转换为二进制、八进制和十六进制表示,分别存入字符数组中并输出。(提示:算法采用模拟人工法。) 说明:计算机模拟人工是编程中常用的方法,这种方法要求编程者首先分析在人工方式下解决问题的过程,从中找出步骤和规律,然后编写程序,按照人工解决问题的步骤和规律进行操作。
3、计算分数的精确值。使用数组精确计算M/N(0 说明:由于计算机内字长有限,常规的浮点运算都有精度限制,为了得到高精度的计算结果,就必须自行设计算法。 提示:可将商存放在一维数组中,进行除法运算时,可模拟人的手工操作,即每次求出商的一位后,将余数乘以10,再计算商的下一位。若某次余数为0,则为有限不循环小数。若某次计算后的余数与前面的某个余数相同时,则M/N 是无限循环小数。 4、用梯形法求定积分(数值求解算法)用梯形法编程求函数 f(x)=x^2+2x+1的定积分的值。 提示:把积分区间[a,b]等分为n等分(a,b,n的值由程序输入),可得到若干个小梯形,积分面积就近似为这些小梯形面积之和。 5、约瑟夫问题(掌握一维数组的用法)。15个基督徒和15个异教徒在海上遇险,必须将一半的人投入大海,其余的人才能幸免于难,于是想了一个办法:30个人围成一个圆圈,从第一个人开始依次报数,每数到第9个人就将他扔入大海,如此循环直到仅余15个人为止。问怎样排法,才能使每次投入大海的都是异教徒。 说明:①30个人顺序编号,自增量k报数,k%9==0时,此人投入大海。投入大海标志为置数组元素值为0(或-1)。投入大海的人不再报数。 程序输出要求:程序运行后,显示原始顺序,每次投入大海的人的信息及剩下人的顺序。 6、文件操作。从磁盘读入一个文本文件(该文件由单词和空格组成),编程计算该文本文件中有多少个空格和多少个单词(规定单词间以一个或多个空格分开)。 7、数值算法。用递归法计算解决汉诺塔问题,并能够演示解决汉诺塔问题过程中圆盘搬移过程。 8、某人从2000年1月1日起,开始“三天打鱼,两天晒网”。从键盘输入任意一天(年月日),问该人是在打鱼,还是在晒网? 9、通讯录管理系统设计(结构体数组、函数、指针、算法、流程结构及文件等的综合应用) 程序说明:有N条通讯记录,每条记录的数据包含手机号码(不重复)、姓名、性别、通讯地址,邮政编码等信息,试设计一管理系统,提供以下功能:(1)主菜单 (2)各菜单项功能 ①信息录入:输入手机号码(不重复)、姓名、性别、通讯地址,邮政编码等信息; ②信息查询:(至少一种查询方式)。 按手机号查询记录。 按照姓名查询记录。 ③通讯录排序 根据通讯录的手机号或姓名,对记录进行升序或降序排序; ④退出系统:退出整个系统(即主菜单)。 10、学生成绩管理系统设计(结构体数组、函数、指针、算法、流程结构及文件等的综合应用) 程序说明:有N个学生,每个学生的数据包含学号(不重复)、姓名、三门课的成绩及平均成绩,试设计一学生成绩管理系统,使之能提供以下功能: (1)主菜单 (2)各菜单项功能 ①成绩录入:输入学生的学号、姓名及三门课的成绩; ②成绩查询:(至少一种查询方式)。 按学号查询学生记录。 查询不及格学生的记录。 ③成绩统计: 计算学生的平均分; 根据学生的平均分高低,对学生的数据进行排序后输出; 对学生单科成绩排序,输出学生姓名与该科成绩; ④退出系统:退出整个系统(即主菜单)。 四、课程设计方法及步骤 设计步骤的规范不但可以培养学生科学的工作方法和作风,而且还能有效地减少错误,提高工作效率。因此必须严格执行良好的实验步骤规范(包括上机操作规范)。本课程设计的基本步骤与要求是: 1、问题分析及解决方案框架确定 充分地分析和理解问题本身,弄清要求做什么。在确定解决方案框架过程中,考虑怎样使程序结构清晰、合理、简单和易于调试,并确定每个函数的简单功能,以及函数之间的调用关系。 2、详细设计和编码 确定算法的主要流程,再此基础上进行代码设计,每个明确的功能模块程序代码一般不超过60行,否则要进一步划分。 3、上机前编写程序与检查 上机前程序检查可有效提高调试效率,减少上机调试程序时的错误。 程序检查主要有两种途径:用一组测试数据手工执行程序;通过阅读或给别人讲解自己的程序而深入全面地理解程序逻辑,把程序中的明显错误事先排除。 4、上机调试程序 5、完成课程设计报告 ①问题描述:题目要解决的问题是什么。