C语言课程设计指导书.doc

上传人:豆**** 文档编号:17407627 上传时间:2022-05-23 格式:DOC 页数:10 大小:144.50KB
返回 下载 相关 举报
C语言课程设计指导书.doc_第1页
第1页 / 共10页
C语言课程设计指导书.doc_第2页
第2页 / 共10页
点击查看更多>>
资源描述

《C语言课程设计指导书.doc》由会员分享,可在线阅读,更多相关《C语言课程设计指导书.doc(10页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、【精品文档】如有侵权,请联系网站删除,仅供学习与交流C语言课程设计指导书.精品文档.C语言课程设计指导书雷鸣 编沈阳理工大学理学院2007年4月一、设计性质与目的“C语言课程设计”是在学习“C语言程序设计基础”课程之后进行的一个实践教学环节,课程设计的目的是:1、 进一步培养学生结构化程序设计的思想,加深对高级语言基本语言要素和控制结构的理解;2、 针对C语言中的重点和难点内容进行训练,独立完成有一定工作量的程序设计任务,同时强调好的程序设计风格。3、 掌握C语言的编程技巧和上机调试程序的方法。4、 掌握程序设计的常用算法。为了使学生从课程设计中尽可能取得比较大的收获,对课程设计题目分成二类,

2、一类为基础训练题目,学生从中学习到程序设计的常用算法。另一类为综合题目。学生从这两类型题目中各选择部分完成。课程设计环境:利用TurboC编程。二、设计的基本要求 本课程设计的基本步骤与要求是: 1、问题分析及解决方案框架确定 充分地分析和理解问题本身,弄清要求做什么。 在确定解决方案框架过程中,考虑怎样使程序结构清晰、合理、简单和易于调试,并确定每个函数的简单功能,以及函数之间的调用关系。 2、详细设计和编码 确定算法的主要流程,再此基础上进行代码设计,每个明确的功能模块程序一般不超过60行,否则要进一步划分。 3、上机前编写程序与检查 上机前程序检查可有效提高调试效率,减少上机调试程序时的

3、无谓错误。 程序检查主要有两种途径:用一组测试数据手工执行程序;通过阅读或给别人讲解自己的程序而深入全面地理解程序逻辑。把程序中的明显错误事先排除。 4、上机调试程序 5、完成课程设计报告 问题描述:题目要解决的问题是什么。 设计 设计算法:主要算法思想,用流程图表示。 实现注释:各项功能的实现程度。 调试报告:调试过程中遇到的主要问题,是如何解决的;对设计和编码的回顾讨论和分析;改进设想;经验和体会等。 附录:源程序清单和结果。如果题目规定了测试数据,则结果要包含这些测试数据和运行输出,当然还可以含其他测试数据和运行输出。三、设计任务 (一)基本要求参考题目1、猜数游戏(掌握程序结构及随机函

4、数应用)程序说明:游戏的开始由机器产生一个随机数(1100之间,用库函数random(),用法见后面的说明),然后游戏者在程序的提示下猜数,若输入的数比这个数大,程序提示:Your answer is HIGH,try again. ,否则,程序提示:Your answer is LOW,try again.,直到猜对为止。程序可实现连续猜数,直到游戏者退出。程序输出要求:累计游戏者猜对一个数所需次数n,当n=15时,用exit(0)库函数退出程序。2、百钱百鸡(穷举算法)我国古代数学家张丘键在算经中出了一道题“鸡翁一,值钱五;鸡母一,值钱三;鸡雏三,值钱一。百钱买百鸡,问鸡翁、鸡母、鸡雏各几

5、何? 注:穷举法是最简单、最常见的一种程序设计方法。它充分利用了计算机处理的高速特性。使用穷举法的关键是确定正确的穷举范围,即不能过分扩大、也不能过分缩小穷举的范围。3、简单计算器请编写一个程序计算表达式:data1 op data2的值。其中,op为运算符、*、/。4、打印出所有的“水仙花数”所谓“水仙花数”是指一个3位数,其各位数字立方和等于该数本身。例如,153是一水仙花数,因为:153=13+53+33 。5、字符串处理函数编写三个函数:求字符串长度函数(函数原型为:int strlen(char *p)),字符串复制函数(函数原型为:void strcpy(char *p1,char

6、 *p2)),字符串比较函数(函数原型为:int strcmp(char *p1,char *p2),返回值为第一个不相同字符的ASCII码差。)。要求:在主函数中根据用户需要调用不同的函数功能。6、编一程序,实现将输入的一个无符号整数转换为二进制和八进制表示,分别存入字符数组中并输出。(提示:算法采用模拟人工法。)注:计算机模拟人工是编程中常用的方法,这种方法要求编程者首先分析在人工方式下解决问题的过程,从中找出步骤和规律,然后编写程序,按照人工解决问题的步骤和规律进行操作。7、判断一个数是否是数组中的成员(用二分法查找)已知数据a中一共有10个已排序的整数(由小到大排列)。现在从键盘上输入

7、一个数,判断这个数是否是数组a中的数,如果是的话,打印出此数在数组a中的位置来,否则打印“找不到“。(提示:设待查找的数为x,设三个位置变量l、m、h分别代表查找范围的顶部、中间位置和底部,m=(l+h)/2,把数分成以am为中点的两段范围。判断x 是否等于am,若是,则找到。若大于am,则x必在后半段范围,即在am+1至ah。则舍弃前半段,再在后半段重新划分两段范围,定出l、m和h,重复以上步骤,逐步缩小查找范围。)8、位数大小排序(掌握数值排序算法)程序说明:输入一个五位整数,对此整数中的五个数值进行从大到小的顺序排序,形成一个新的五位整数,并输出这个整数。要求:用函数调用。9、请编写函数

8、fun,函数的功能是求出二维数组周边元素之和,作为函数值返回。二维数组中的值在主函数中赋予。(数组维数用宏定义)10、矩阵乘法(数值求解算法)编写一个函数实现矩阵A(2行3列)与矩阵B相乘(3行2列),乘积放在C数组中。在主函数中输入相乘的两数组,并输出结果。11、求所有不超过200的N值,N的平方是具有对称性质的回文数。回文数就是将一个数从左向右读是一样的,如满足题意要求的数有:N11,112121。12、插入后自动排序(掌握用穷举法进行比较、交换)把一个整数插入到按由小到大排列的数列中,插入后仍然保持由小到大的顺序排列。要求:用数据指针。13、计算分数的精确值 使用数组精确计算MN(0MN

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

10、2先令,每个小孩花1先令,问男人、女人、小孩各有几人?15、用梯形法求定积分(数值求解算法)用梯形法编程求函数f(x)=x2+2x+1的定积分提示:把积分区间a,b等分为n等分(a,b,n的值由程序输入。),可得到若干个小梯形,积分面积就近似为这些小梯形面积之和。16、小孩吃梨问题:小孩买了一些梨,当即吃了一半,还不过瘾,又多吃了一个,第二天早上又将剩下的梨吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半,并又多吃了一个。到第18天只剩下一个梨了,问小孩共买了多少梨?(提示:据初始条件,用倒推法。)17、一个奇异的三位数(穷举算法)一个自然数的七进制表达式是一个三位数,而这个自然数的

11、九进制表示也是一个三位数,且这两个三位数的数码顺序正好相反,求这个三位数。18、约瑟夫问题(掌握一维数组的用法)。15个基督徒和15个异教徒在海上遇险,必须将一半的人投入大海,其余的人才能幸免于难,于是想了一个办法:30个人围成一个圆圈,从第一个人开始依次报数,每数到第9个人就将他扔入大海,如此循环直到仅余15个人为止。问怎样排法,才能使每次投入大海的都是异教徒。提示:30个人顺序编号,自增量k报数,k%90时,此人投入大海。投入大海标志为置数组元素值为0(或1)。投入大海的人不再报数。 程序输出要求:程序运行后,显示原始顺序,每次投入大海的人的信息及剩下人的顺序。19、回文数的形成:任取一个

12、十进制整数,将其倒过来后与原来的整数相加,得到一个新的整数后重复以上步骤,则最终可得到一个回文数。请编程验证。(回文数就是将一个数从左向右读是一样的,如121,11等)。(注:回文数不超过2147483647)回文数的这一形成规则目前还属于一个猜想,尚未获得数学上的验证,有些回文数要经历上百个步骤才能获得,请编程验证,打印形成过程。如输入整数78,则形成回文数的过程为:7887165,165561726,7266271353,135335314884。提示:一个函数用来求反序数,另一个函数判断是否为回文数,在主函数中输入输出。20、人机猜数游戏由计算机“想”一个四位数,请人猜这个四位数是多少。

13、人输入这个四位数后,计算机首先判断这四个数中有几个猜对了,并且在猜对的数字中又有几位位置也是对的,将结果显示出来,给人以提示,请人再猜 ,直到人猜出计算机所想的四位数为止。请编程实现该游戏,游戏结束时,显示人猜一个数用了几次。提示:用库函数random()产生一个随机数。如:Int z;z= random(9999);21、求转置矩阵编写一个程序,求34数组的转置矩阵。要求在main函数里读数,在change函数里把矩阵转置。22、条件编译用条件编译方法实现以下功能:输入一行电报文字,可以任选两种输出,一为原文输出;一为将字母变成其下一字母(如a变成b.z变成a。其他字符不变)。用#defin

14、e命令来控制是否要译成密码。例如:#define change 1则输出密码。若#define change 0则不译成密码,按原码输出。23、取子串函数编写求子串函数substr(s,n1,n2),在串s中从n1位置开始取n2个字符的子串24、输出九九乘法口决表(循环结构的应用,表的格式自己设定)25、设计一个函数,对n个字符串按由小到大的顺序排序,n由程序读入,字符串的输入和输出都在main函数中进行。26、输入三行文字,找出其中有多少个空格和多少个单词(规定单词间以一个或多个空格分开)。若一个单词恰好在行末结束,则下一行的开头应有空格,句号和逗号后面也应有空格。27、计算字符串中子串出现

15、的次数程序说明:利用输入函数输入任意两个字符串,请你编写程序求出第二个字符串在第一个字符串中出现的次数,即在第一个字符串中有几个第二个字符串。28、递归算法用递归算法编写求1n的累加和。在主函数中调用。29、计算字符串中子串出现的次数程序说明:利用输入函数输入任意两个字符串,请你编写程序求出第二个字符串在第一个字符串中出现的次数,即在第一个字符串中有几个第二个字符串。30、数值算法编写求以下函数(二)综合训练参考题目1、学生成绩管理系统设计(结构体数组、函数、指针、算法、流程结构及文件等的综合应用)程序说明:有N个学生,每个学生的数据包含学号(不重复)、姓名、三门课的成绩及平均成绩,试设计一学

16、生成绩管理系统,使之能提供以下功能:(1)主菜单学生成绩管理系统1、 成绩录入2、 成绩查询3、 成绩统计4、 退出(2)各菜单项功能 成绩录入:输入学生的学号、姓名及三门课的成绩; 成绩查询:(至少一种查询方式)。v 按学号查询学生记录。v 查询不及格学生的记录。成绩统计:v 计算学生的平均分;v 根据学生的平均分高低,对学生的数据进行排序后输出;v 对学生单科成绩排序,输出学生姓名与该科成绩;退出系统:退出整个系统(即主菜单)。(3)结构体数组:define N 30struct studentint num; /* 定义学号*/ char name20; /* 定义姓名*/float s

17、core3; /* 定义存贮三门课成绩的数组*/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);

18、 /*产生一个0-100的随机数。*/ printf(Random number in the 0-99 range: %dn,n); 2、用C语言为学生宿舍管理人员编写一个宿舍管理软件。设某宿舍有:101,102,201,202四个房间,每个房间可住学生=4人,链表存储结构:学号、姓名、房间号、后续指针,按房间号有序,实现学生的入住、退房和查询,按给定学号、姓名、房号查询。3、用链表方式来实现学生通讯录管理系统(1)主要技术指标和要求:主要是实现链表的创建、插入、删除、查找等功能。(2)方案选择及工作原理:通过定义一个包含学生通讯录(主要包括:学号、姓名、系别、专业、籍贯、家庭住址、联系电话

19、等)的结构体类型,开发的系统能够实现增加学生通讯录的内容、删除某个学生通讯录内容、输出全部学生通讯录内容、根据用户需求查找某个或某些学生的通讯录内容(如:按系别、专业、学号、姓名等内容进行查找)。(3)设计成果的要求:能够实现以上给定的各项功能,方便简洁的操作界面,具有一定的容错性。4、应用C语言的屏幕控制和绘图功能编制以下图形,(1)在屏幕上绘制出一个围棋棋盘(19行19列)。(2)在屏幕上绘制出一个六叶图案。(3)在屏幕上绘制出一个两个周期的正弦曲线。绘制图形的颜色,大小不限。5、计算矩阵的逆阵,要求矩阵阶数自定,主要功能由函数实现。6、编程实现文件的编辑和文件的复制。7、文件处理:(1)

20、 统计各字母在文本文件中出现的频度(忽略大小写);(2) 查找并替换正文中的字符串,并存入另一个文件中。8、小学生数学测试软件的编写,要求:(1) 可选择题型(+,-,*);(2) 可选择每次答题的个数;(3) 随机生成两个数进行运算;(4) 每次在输入答案后应判断对错,若答案错误,应给出正确答案;(5) 最后给出做对题目的总个数。四、课程设计要求要求学生从基本要求题目和综合训练中选择题目,课程设计完成后提交课程设计报告。课程设计的时间为一周。五、考核方式与评分办法通过程序实现、总结报告和学习态度综合考评,并结合学生的动手能力,独立分析解决问题的能力和创新精神。成绩分优、良、中、及格和不及格五等。 考核标准包括: 1、程序设计的正确性,程序结构是否合理、编程风格。学生的工作态度、动手能力、创新精神及出勤率(50%)。 2、总结报告(50%)

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 小学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁