预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共18页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

C语言程序课程设计-猜数字游戏-- C语言程序设计课程设计 评语: 考勤(10)纪律(10)过程(40)设计报告(30)答辩(10)总成绩(100) 专业:自动化 班级: 姓名: 学号: 指导教师: 兰州交通大学自动化与电气工程学院 2015年07月21日 C语言程序课程设计-猜数字游戏-- C语言程序课程设计-猜数字游戏-- 一.引言 1.1设计目的 复习和巩固C语言基础知识,进一步加深对C语言的理解和掌握。提高同学 将课本上的理论知识和实际结合的能力,锻炼同学的分析解决实际问题的能力, 提高同学团队合作的能力。使同学们善于观察和思考,善于合作,具备实践编程 的基础素质,和实际问题分析的思考方式。 1.2设计要求 在设计时充分地分析和理解问题本身,综合考虑系统功能,怎样使系统结构 清晰、合理、简单和易于调试。然后详细设计,确定每个过程和函数的简单功能, 以及过程(或函数)之间的调用关系。最后认真完成课程设计说明书,并对设计 方法,结果等进行总结。 充分地分析和理解问题本身,弄清要求做什么(Whattodo?)。在确定解决 方案框架过程中(Howtodo?),综合考虑系统功能,考虑怎样使系统结构清晰、 合理、简单和易于调试。最后确定每个过程和函数的简单功能,以及过程(或函 数)之间的调用关系。 确定算法的主要流程,在此基础上进行代码设计(Coding),每个明确的功能 模块程序一般不超过60行,否则要进一步划分。 上机前程序静态检查可有效提高调试效率,减少上机调试程序时的无谓错误。静 态检查主要有两种途径:(1)用一组测试数据手工执行程序;(2)通过阅读或给 别人讲解自己的程序而深入全面地理解程序逻辑。 二.基础题 2.1题目 用选择法对10个数进行排序。 有一个已排好序的数组。现输入一个数,要求按原来的规律插入到原数组中。 2.2解题思路 程序的主要功能是对数组元素用排序函数按从小到大的顺序进行排序。 先定义一个10个元素的一维数组a[10],然后从电脑输入10个数(也就是对 数组赋值),然后使用一次fun()函数,对这10个数进行排序;然后再定义一 个11个元素的一维数组b[11],同时再从电脑输入一个数同a[10]一起赋值给 b[11],然后再使用fun()函数,重新排序的到最后的有顺序的一组数据。 2.3流程图 子函数流程图如图1所示: C语言程序课程设计-猜数字游戏-- C语言程序课程设计-猜数字游戏-- 开始 i=1 N i<=n-1 Y i=i+1 j=n N j>=i Y Y a[j]<a[j-1] N互换a[j]和a[j-1]的数据 j=j+1 输出已排序的数组a 结束 图1基础题子函数流程图 主函数流程图如图2所示: C语言程序课程设计-猜数字游戏-- C语言程序课程设计-猜数字游戏-- 开始开始 定义定义fun()fun()函数函数 输入输入a[10]a[10] 调用调用fun(a,10)fun(a,10) 赋值赋值b[i]=a[i]b[i]=a[i] 插入一个数插入一个数 调用调用fun(b,11)fun(b,11) 输出输出b[11]b[11] 结束结束 图2基础题主函数流程图 2.4源代码 基础题源代码见附录A。 2.5运行及测试结果 运行及测试结果如图3所示: 图3基础题运行及测试结果截图 三.改错题 C语言程序课程设计-猜数字游戏-- C语言程序课程设计-猜数字游戏-- 3.1题目 #include<stdio.h> intfun() { inta[3][3],sum; inti,j; ____; for(i=0;i<3;i++) { for(j=0;j<3;j++) } for(i=0;i<3;i++) sum=sum*a[i][i]; 累乘积 } main() { fun(); } 3.2解题思路 程序的功能:这是一个求3*3矩阵主对角线元素累乘积的程序。 程序分析:可以看出源程序中,先声明了一个子函数,并定义子函数fun() 累乘积函数(这个函数就是先定义了一个3*3的二维数组,然后从键盘输入数值 对这个二维数组进行了数组赋初值,赋值过程中使用了for循环语句,然后利用 for循环语句对主角线的元素做每个数的乘积,最后是输出这个累乘积。)。最后 就是主函数main(),主函数中使用一次子函数fun()。 3.3错误分析 错误一:原程序中对sum没有设置初值,应设置为“sum=1;”; 错误二:scanf()函数中没有使用地址运算符,应在数组前加“&” 错误三:子函数也没设返回值,返回值应