C语言程序课程设计大纲.doc_第1页
C语言程序课程设计大纲.doc_第2页
C语言程序课程设计大纲.doc_第3页
C语言程序课程设计大纲.doc_第4页
C语言程序课程设计大纲.doc_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

C语言程序课程设计教学大纲一、课程的基本信息课程编号08065350课程名称C语言程序课程设计适用专业计算机科学与技术、网络工程、信息工程开课学期2总学时16学时总学分1预修课程C语言程序设计并修课程建议教材广树建,新编C/C+程序设计教程,华南理工大学出版社参考书谭浩强,C语言程序设计,清华大学出版社二、目的与要求C语言课程设计是在学习C语言程序设计基础课程之后进行的一个实践教学环节,课程设计的目的是进一步培养学生结构化程序设计的思想,加深对高级语言基本语言要素和控制结构的理解;针对C语言中的重点和难点内容进行训练,独立完成有一定工作量的程序设计任务,同时强调好的程序设计风格。1、 掌握C语言的编程技巧和上机调试程序的方法。2、 掌握程序设计的常用算法。三、内容与时间安排课题类型应该覆盖本专业培养目标和教学基本要求以及相关专业基本要求,包括软件设计和硬件设计,根据学生的实际情况确定课题,给学生较充分的选择余地,充分调动学生的积极性和创造性。以下是供学生参考的课程设计题目:1、猜数游戏(掌握程序结构及随机函数应用)程序说明:游戏的开始由机器产生一个随机数(1100之间,用库函数random(),用法见后面的说明),然后游戏者在程序的提示下猜数,若输入的数比这个数大,程序提示:Your answer is HIGH,try again. ,否则,程序提示:Your answer is LOW,try again.,直到猜对为止。程序可实现连续猜数,直到游戏者退出。程序输出要求:累计游戏者猜对一个数所需次数n,当n=15时,用exit(0)库函数退出程序。2、简单计算器请编写一个程序计算表达式:data1 op data2的值。其中,op为运算符、*、/。3、字符串处理函数编写三个函数:求字符串长度函数(函数原型为:int strlen(char *p)),字符串复制函数(函数原型为:void strcpy(char *p1,char *p2)),字符串比较函数(函数原型为:int strcmp(char *p1,char *p2),返回值为第一个不相同字符的ASCII码差。)。要求:在主函数中根据用户需要调用不同的函数功能。4、编一程序,实现将输入的一个无符号整数转换为二进制和八进制表示,分别存入字符数组中并输出。(提示:算法采用模拟人工法。)注:计算机模拟人工是编程中常用的方法,这种方法要求编程者首先分析在人工方式下解决问题的过程,从中找出步骤和规律,然后编写程序,按照人工解决问题的步骤和规律进行操作。5、计算分数的精确值 使用数组精确计算MN(0MN=100)的值。如果 MN是无限循环小数,则计算并输出它的第一循环节(精度要求小数点后20位),同时要求输出循环节的起止位置(小数位的序号。)注:由于计算机内字长有限,常规的浮点运算都有精度限制,为了得到高精度的计算结果,就必须自行设计算法。提示:可将商存放在一维数组中,进行除法运算时,可模拟人的手工操作,即每次求出商的一位后,将余数乘以10,再计算商的下一位。若某次余数为0,则为有限不循环小数。若某次计算后的余数与前面的某个余数相同时,则MN是无限循环小数。6、用梯形法求定积分(数值求解算法)用梯形法编程求函数f(x)=x2+2x+1的定积分提示:把积分区间a,b等分为n等分(a,b,n的值由程序输入。),可得到若干个小梯形,积分面积就近似为这些小梯形面积之和。7、约瑟夫问题(掌握一维数组的用法)。15个基督徒和15个异教徒在海上遇险,必须将一半的人投入大海,其余的人才能幸免于难,于是想了一个办法:30个人围成一个圆圈,从第一个人开始依次报数,每数到第9个人就将他扔入大海,如此循环直到仅余15个人为止。问怎样排法,才能使每次投入大海的都是异教徒。提示:30个人顺序编号,自增量k报数,k%90时,此人投入大海。投入大海标志为置数组元素值为0(或1)。投入大海的人不再报数。 程序输出要求:程序运行后,显示原始顺序,每次投入大海的人的信息及剩下人的顺序。8、人机猜数游戏由计算机“想”一个四位数,请人猜这个四位数是多少。人输入这个四位数后,计算机首先判断这四个数中有几个猜对了,并且在猜对的数字中又有几位位置也是对的,将结果显示出来,给人以提示,请人再猜 ,直到人猜出计算机所想的四位数为止。请编程实现该游戏,游戏结束时,显示人猜一个数用了几次。提示:用库函数random()产生一个随机数。如:Int z;z= random(9999);9、输入三行文字,找出其中有多少个空格和多少个单词(规定单词间以一个或多个空格分开)。若一个单词恰好在行末结束,则下一行的开头应有空格,句号和逗号后面也应有空格。10、数值算法,用递归法计算解决汉诺塔问题,并能够演示解决汉诺塔问题过程中圆盘搬移过程。 11、学生成绩管理系统设计(结构体数组、函数、指针、算法、流程结构及文件等的综合应用)程序说明:有N个学生,每个学生的数据包含学号(不重复)、姓名、三门课的成绩及平均成绩,试设计一学生成绩管理系统,使之能提供以下功能:学生成绩管理系统1、 成绩录入2、 成绩查询3、 成绩统计4、 退出(1)主菜单(2)各菜单项功能 成绩录入:输入学生的学号、姓名及三门课的成绩; 成绩查询:(至少一种查询方式)。v 按学号查询学生记录。v 查询不及格学生的记录。成绩统计:v 计算学生的平均分;v 根据学生的平均分高低,对学生的数据进行排序后输出;v 对学生单科成绩排序,输出学生姓名与该科成绩;退出系统:退出整个系统(即主菜单)。(3)结构体数组:define N 30struct studentint num; /* 定义学号*/ char name20; /* 定义姓名*/float score3; /* 定义存贮三门课成绩的数组*/float average; /* 定义平均成绩*/;struct student stuN; /* 定义结构体数组,存贮多个学生的记录*/附:随机数发生器函数 random()用法 函数原型: int random(int num); 程序例: #include /*包含库函数random()的头文件*/#include /* prints a random number in the range 0 to 99 */ int main(void) int n;randomize(); /*初始化随机数发生器*/n= random (100); /*产生一个0-100的随机数。*/ printf(Random number in the 0-99 range: %dn,n); ; 课程设计安排在第二学期期末,每人一台机器。每天半天的时间编制程序,半天的时间调试程序。课程设计完成后提交课程设计报告,画出程序流程图,并经上机调试,测试,演示程序运行结果。课程设计进度表:序号内容所用时间1布置任务及调研1天以内2软件设计和调试2天以内3 课程设计报告 2天以内合计一周四、作业(报告)要求 设计步骤的规范不但可以培养学生科学的工作方法和作风,而且还能有效地减少错误,提高工作效率。因此必须严格执行良好的实验步骤规范(包括上级操作规范)。本课程设计的基本步骤与要求是: 1、问题分析及解决方案框架确定 充分地分析和理解问题本身,弄清要求做什么。在确定解决方案框架过程中,考虑怎样使程序结构清晰、合理、简单和易于调试,并确定每个函数的简单功能,以及函数之间的调用关系。 2、详细设计和编码 确定算法的主要流程,再此基础上进行代码设计(Coding),每个明确的功能模块程序一般不超过60行,否则要进一步划分。 3、上机前编写程序与检查 上机前程序检查可有效提高调试效率,减少上机调试程序时的无谓错误。 程序检查主要有两种途径:用一组测试数据手工执行程序;通过阅读或给别人讲解自己的程序而深入全面地理解程序逻辑。把程序中的明显错误事先排除。 4、上机调试程序 5、完成课程设计报告 问题描述:题目要解决的问题是什么。 设计 设计算法:主要算法思想,用流程图表示。 实现注释:各项功能的实现程度。 调试报告:调试过程中遇到的主要问题,是如何解决的;对设计和编码的回顾讨论和分析;改进设想;经验和体会等 附录:源程序清单和结果。如果题目规定了测试数据,则结果要包含这些测试数据和运行输出,当然还可以含其他测试数据和运行输出。五、考核方式通过程序实现、总结报告

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论