ImageVerifierCode 换一换
格式:DOCX , 页数:13 ,大小:23.65KB ,
资源ID:12096143      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/12096143.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(C语言程序设计课程设计XA.docx)为本站会员(b****4)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

C语言程序设计课程设计XA.docx

1、C语言程序设计课程设计XAC语言程序课程设计C programming curriculum design 课程设计大纲一、学时与学分总学时:1.5周 总学分:2二、课程设计的目的“C语言课程设计”是在学习“C语言程序设计基础”课程之后进行的一个实践教学环节,课程设计的目的是:1. 针对C语言中的重点和难点内容进行训练,巩固和加深C语言程序设计的能力,独立完成有一定工作量的程序设计任务,同时强调好的程序设计风格。2. 熟练掌握C语言的编程技巧和上机调试程序的方法3. 进一步培养学生结构化程序设计的思想,加深对高级语言基本语言要素和控制结构的理解。4. 重点掌握:常用经典算法的程序设计、递归函数

2、的程序设计、链表的处理方法、文件的I/O操作。为了使学生从课程设计中尽可能取得比较大的收获,对课程设计题目分成二类,一类为基础训练题目,学生从中学习到程序设计的常用算法。另一类为综合题目。学生从这两类型题目中各选择部分完成。三、课程设计的基本要求设计步骤的规范不但可以培养学生科学的工作方法和作风,而且还能有效地减少错误,提高工作效率。因此必须严格执行良好的实验步骤规范(包括上级操作规范)。本课程设计的基本步骤与要求是:1 问题分析及解决方案框架确定充分地分析和理解问题本身,弄清要求做什么(What to do?)。在确定解决方案框架过程中(How to do?),考虑怎样使程序结构清晰、合理、

3、简单和易于调试,并确定每个函数的简单功能,以及函数之间的调用关系。2 详细设计和编码确定算法的主要流程,再此基础上进行代码设计(Coding),每个明确的功能模块程序一般不超过60行,否则要进一步划分。3 上机前编写程序与检查上机前程序检查可有效提高调试效率,减少上机调试程序时的无谓错误。程序检查主要有两种途径:用一组测试数据手工执行程序;通过阅读或给别人讲解自己的程序而深入全面地理解程序逻辑。把程序中的明显错误事先排除。4 上机调试程序5 完成课程设计报告,Microsoft Office Word 2003 创建 问题描述:题目,即要解决的问题是什么。 设计 设计算法:主要算法思想,用流程

4、图表示,框图用Microsoft Office Visio 2003 创建,再插入到WORD文档中。 实现注释:各项功能的实现程度。 调试报告:调试过程中遇到的主要问题,是如何解决的;对设计和编码的回顾讨论和分析;改进设想;经验和体会等 附录:源程序清单和结果。如果题目规定了测试数据,则结果要包含这些测试数据和运行输出,当然还可以含其他测试数据和运行输出。 四、课程设计的内容 每人从五题中选做三题,选高者可得高分,其中必须有链表操作题(包括建立、插入、删除、打印等);文件操作题(包括建立、输入、输出;文本文件及二进制文件等)。1. 在“一、 基本要求题”的 14 题中选做一题;2. 在“一、

5、基本要求题”的 59 题中选做一题;3. 在“二、 提高训练题”中选做一题;-加分题4. 在“三、 综合训练题”的 12 题中选做一题;5. 在“三、 综合训练题”的 35 题中选做一题。五、课程设计的安排课程设计安排在第二学期期末,课程设计完成后提交课程设计报告。计算中心BC1/2按号入座; 19周三五9-12节六58节;20周一四9-12节。六、考核方式与评分办法通过程序实现、总结报告和学习态度综合考评,并结合学生的动手能力,独立分析解决问题的能力和创新精神。成绩分优、良、中、及格和不及格五等。考核标准:1 程序设计的正确性,程序结构是否合理、编程风格、算法的优劣(50%)。2 学生的工作

6、态度、动手能力、创新精神及出勤率。(30%)。 3 总结报告- 用Microsoft Office Word 2003 创建(20%)考核办法:1 演示所设计的程序;2 回答教师所提出的问题;3 查看课程设计报告;4 考勤;平时上机情况。课程设计报告写作格式与要求一、 封 面 包括:课程设计的名称,班级,学号,课程设计人,指导教师,设计日期。二、 内容提要简述报告的内容三、 目 次四、 正 文1. 任务名称;2. 实验的目的要求;3. 主要算法思想,及关键数据的数据类型、名称、用途的说明;4. 用Microsoft Office Visio 2003 创建算法框图;5. 关键算法的源程序代码(

7、要有注释); 6. 调试、运行情况的说明。五、 课程设计体会 六、 参考文献注意:课程设计完成后提交课程设计报告,报告中除封面外每页页脚(页码居中),报告必须用A4纸打印。报告、加注释的源程序及数据文件上传到FTP上。题 目 要 求一、 基本要求题注意:编写子函数的同时,还要编写主函数和其它相关子函数进行调试。1子函数为参数编写子函数为参数的通用函数,只编以下题目中的1小题。(1) 用梯形法求定积分的编程,求函数f(x)=x2+2x+1或自定函数的定积分。提示:把积分区间a,b等分为n等分(a,b,n的值由程序输入),可得到若干个小梯形,积分面积就近似为这些小梯形面积之和。(2) 用二分法求方

8、程的根,求自定方程的根 (3) 其它数值求解算法2. 进制转换编子函数,实现将输入的一个无符号整数转换为二进制和八进制表示,分别存入字符数组中并输出。注:计算机模拟人工是编程中常用的方法,这种方法要求编程者首先分析在人工方式下解决问题的过程,从中找出步骤和规律,然后编写程序,按照人工解决问题的步骤和规律进行操作。3. 位数大小排序子函数功能说明:输入一个五位整数,对此整数中的五个数值进行从大到小的顺序排序,形成一个新的五位整数。同时需要编写主函数和其它相关子函数进行调试。4. 平方回文数求所有不超过200的N值,N的平方是具有对称性质的回文数。回文数就是将一个数从左向右读是一样的,如满足题意要

9、求的数有:N11,112121。5. 计算分数的精确值由于计算机内字长有限,常规的浮点运算都有精度限制,为了得到高精度的计算结果,就必须自行设计算法。编子函数,使用数组精确计算MN(0MN=100)的值。如果 MN是无限循环小数,则计算并输出它的第一循环节,同时要求输出循环节的起止位置(小数位的序号。)提示:可将商存放在一维数组中,进行除法运算时,可模拟人的手工操作,即每次求出商的一位后,将余数乘以10,再计算商的下一位。若某次余数为0,则为有限不循环小数。若某次计算后的余数与前面的某个余数相同时,则MN是无限循环小数。6. 马克思手稿中的数学题(穷举算法)马克思手稿中有一道趣味数学题:有30

10、个人,其中有男人、女人和小孩,在一家饭馆吃饭共花了50先令:每个男人花3先令,每个女人花2先令,每个小孩花1先令,问男人、女人、小孩各有几人?7. 小孩吃梨问题小孩买了一些梨,当即吃了一半,还不过瘾,又多吃了一个,第二天早上又将剩下的梨吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半,并又多吃了一个。到第18天只剩下一个梨了,问小孩共买了多少梨?提示:据初始条件,用倒推法。8. 奇异的三位数一个自然数的七进制表达式是一个三位数,而这个自然数的九进制表示也是一个三位数,且这两个三位数的数码顺序正好相反,求这个三位数。9. 约瑟夫问题15个基督徒和15个异教徒在海上遇险,必须将一半的人投

11、入大海,其余的人才能幸免于难,于是想了一个办法:30个人围成一个圆圈,从第一个人开始依次报数,每数到第9个人就将他扔入大海,如此循环直到仅余15个人为止。问怎样排法,才能使每次投入大海的都是异教徒。程序输出要求:程序运行后,显示原始顺序,每次投入大海的人的信息及剩下人的顺序。提示:30个人顺序编号,自增量k报数,k%90时,此人投入大海。投入大海标志为置数组元素值为0(或1)。投入大海的人不再报数。 二、 提高训练题1. 回文数的形成任取一个十进制整数,将其倒过来后与原来的整数相加,得到一个新的整数后重复以上步骤,则最终可得到一个回文数。请编程验证。(回文数就是将一个数从左向右读是一样的,如1

12、21,11等)。(注:回文数不超过)回文数的这一形成规则目前还属于一个猜想,尚未获得数学上的验证,有些回文数要经历上百个步骤才能获得,请编程验证,打印形成过程。如输入整数78,则形成回文数的过程为:7887165,165561726,7266271353,135335314884。提示:一个函数用来求反序数,另一个函数判断是否为回文数,在主函数中输入输出。2. 人机猜数游戏1 由计算机“想”一个四位数,请人猜这个四位数是多少。人输入这个四位数后,计算机首先判断这四个数中有几个猜对了,并且在猜对的数字中又有几位位置也是对的,将结果显示出来,给人以提示,请人再猜,直到人猜出计算机所想的四位数为止。

13、请编程实现该游戏,游戏结束时,显示人猜一个数用了几次。提示:用库函数随机数发生器函数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 ra

14、nge: %dn,n); ; 3. 人机猜数游戏2程序说明:游戏的开始由机器产生一个随机数(1100之间,用库函数random()),然后游戏者在程序的提示下猜数,若输入的数比这个数大,程序提示:Your answer is HIGH,try again. ,否则,程序提示:Your answer is LOW,try again.,直到猜对为止。程序可实现连续猜数,直到游戏者退出。程序输出要求:累计游戏者猜对一个数所需次数n,当n=15时,用exit(0)库函数退出程序。4. 保龄球计分程序打保龄球是用一个滚球去撞击10个站立的瓶,将瓶击倒。一局分10 轮,每轮可滚球1次或多次,以击到的瓶数

15、为依据计分,一局得分为10轮得分之和,而每轮的得分不仅与本轮的滚球情况有关,还可能与后一轮或两轮的滚球情况有关,即:某轮某次滚球击倒的瓶数不仅要计入本轮得分,还可能会计入前一轮或两轮得分。计分规则如下: 1 若某一轮的第一次滚球就击倒全部10个瓶,则本轮不再滚球(若是第10轮还需加2次滚球),该轮得分为本次击倒瓶数10与以后2次滚球所击倒瓶数之和。2 若某一轮的第一次滚球未击倒全部10个球,则对剩下未击倒的瓶再滚球一次,如果这2次滚球击倒全部10个瓶,则本轮不再滚球(若是第10轮还需加1次滚球),该轮得分为这2次击倒瓶数10与以后1次滚球所击倒瓶数之和。3 若某一轮2次滚球未击倒全部10个瓶,

16、则本轮不在滚球,该轮得分为这2次滚球所击倒瓶数之和。实现提示1 模拟10个人各打一局保龄球比赛过程,统计每局各轮得分和累计总分。2 逐人逐轮逐次输入一次滚球击倒的瓶数。3 对10人的得分由低到高排序并显示。4 最后,把排序的存入文件中。5 简单计算器请编写一个程序计算表达式:data1 op data2的值。其中,op为运算符、*、/。三、 综合训练题1 学生成绩管理系统(结构体数组、函数、指针、链表及文件等的综合应用)程序说明:有N个学生,每个学生的数据包含学号(不重复)、姓名、三门课的成绩及平均成绩,试设计一学生成绩管理系统,使之能提供以下功能:(1) 成绩录入,插入后按学号自动排序,创建

17、链表;(2) 成绩文件的存取,创建链表;(3) 成绩的多种查询、修改;(4) 成绩的多种统计、排序;(5) 学生增加、删除、列表。提示:int num; /* 定义学号*/char name20; /* 定义姓名*/float score3; /* 定义存贮三门课成绩的数组*/float average; /* 定义平均成绩*/2 电话簿/通讯录的管理系统类似学生成绩管理系统,要求有结构体数组、函数、指针、链表及文件等的综合应用。具有:增加、删除、查询、修改、统计、排序、列表等功能。3 迷宫问题利用栈的先进后出的深度优先搜索,找出一条路径。4. 背包问题设有不同价值,不同重量的物品n件,求从这

18、n件物品中选取一部分物品的方案,使选中物品的总重量不超过指定的限制重量,且选中物品的价值之和为最大。算法思想:设n件物品的重量分别为w0,w1,wn-1,物品的价值分别为v0, v1, , vn-1。 采用递归寻找物品的选择方案。设前面已有了多种选择的方案,并保留了其中总价值最大的方案于数组option,该方案的总价值存于变量maxv。当前正在考察新方案,其物品选择情况保存于数组成cop。假定当前方案已考虑了前i-1件物品,现在要考虑第i件;当前方案已包含的物品的重量之和为tw;至此,若其余物品都选择是可能的话,本方案达到的总价值的期望值设为tv。算法引入tv是当一旦前方案的总价值的期望值也小

19、于前面方案的总价值maxv时,继续考察当前方案变成无意义的工作,应当终止当前方案,立即去考察下一个方案。因为当方案的总价值不比maxv大时,该方案不会再被考察。这同时保证函数后找到的方案比前面的方案更好。对于第i件物品的选择有两种可能:(1) 物品i被选择,这种可能性仅当包含它不会超过方案总重量的限制时才是可行的。选中后,继续递归去考虑其余物品的选择。(2) 物品i不被选择,这种可能性仅当不包含物品也有可能会找到价值更大的方案的情况。算法:try(物品i,当前选择已达到的重量和tw,本方案可能达到的总价值为tv)/*考虑物品i包含在当前方案中的可能性*/ if (包含物品i是可接受的) 将物品

20、i包含在当前方案中; if (in-1) try(i+1,tw+物品i的重量,tv); else /*又一个完整方案,因它比前面的方案好,以它作为最佳方案*/ 以当前方案作为临时最佳方案保存; 恢复物品i不包含状态;/*考虑物品i不包含在当前方案中的可能性*/if (不包含物品i仅是可考虑的) if (in-1) try(i+1,tw,tv-物品i的价值); else /*又一个完整方案,因它比前面的方案好,以它作为最佳方案*/ 以当前方案作为临时最佳方案保存;5. 八皇后问题求出在一个n*n的棋盘上,放置n个不能互相捕捉的国际象棋“皇后”的所有布局。这是来源于国际象棋的一个问题。皇后可以沿着

21、纵横和两条斜线四个方向相互捕捉。如图1所示,一个皇后放在棋盘第四行第三列位置上,则棋盘上凡打星号“*”的位置上的皇后就能与第四行第三列位置上的皇后相互捕捉。从图1得到以下启示,一个合适的解应使得每行. 每列上确定有一个皇后,且在一条斜线上也最多只有一个皇后。 * * * * * * * * * * Q * * * * * * * * * * * * * * *图1 皇后相互捕捉位置示意图算法思想:求解过程从空配置开始,在第1列至第m列为合理配置的基础上,再配置第m+1列。直至第n列配置也是合理时,就找到了一个解。接着改变第n列配置,希望获得下一个解。另外,在任一列上,可能性有n种配置。开始时,

22、配置在第一行,以后改变时。顺次选择第二. 第三直到第n行。当直至第n行也找不到一个合理的配置时,就要回溯,去改变前一列的配置。求解皇后问题的算法如下。算法: 输入棋盘大小值n; /*一个n*n的棋盘*/ m=0; /*从空配置开始*/ good=1; /*空配置皇后不相互捕捉*/ do if (good) if(=n) 输出解; 改变之,形成下一个侯选解; else 扩展当前侯选解至下一列;else 改变之,形成下一侯选解;good=检查当前侯选解的合理性; while(!=0)随机模拟问题某公司有一个顾客接待站,在单位时间内随机的有n位顾客到接待站来询问。设每位顾客的接待时间是某个范围内的随

23、机值。假设接待站只有一位接待员,要求程序模拟统计在设定时间内,接待员的总空闲时间和顾客的平均等待时间。假定模拟数据已按顾客到达接待站的时间顺序依次存放在某个数据文件中,对应每位顾客有两个数据,到达时间和需要接待的时间。提示:(1)单位时间可设为一个工作日8小时,可折合成28800秒,则接待员的工作时间为第0秒至第28800秒。(2)顾客的到达时间也可用秒作为单位。由于顾客必须在单位时间内到达故取值范围应在0-28800之间。(3)可用随机函数rand()或random()取得顾客的到达时间和需接待时间。(4)需事先建立顾客数据文件customs_data(二进制文件),并将顾客数据按到达接待站的时间顺序排序。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1