C 语言的课程设计算数运算测试
- 格式:doc
- 大小:168.00 KB
- 文档页数:20
目录一、课程设计的目的与要求 (2)1.1课程设计目的: (2)1.2课程设计要求: (2)二、题目说明 (4)2.1程序开发背景 (4)2.2开发工具介绍 (4)三、总体设计 (5)3.1系统流程图 (5)3.2 软件流程图 (7)四、详细说明 (9)4.1 产生100以内的随机整数 (9)4.2随机选择计算法则 (9)4.3随机出题并打出题目 (10)4.3判断答题者是否做对题目若错误给出正确答案 (12)4.4判断答对的题数给出分数 (12)4.5打印出答题者所做的题目 (14)五、遇到的问题与解决方案 (15)六、课程设计总结 (16)七、参考文献 (17)附录(源程序代码): (18)一、课程设计的目的与要求1.1课程设计目的:1.为培养学生严谨的工作态度,锻炼学生编写文档的能力。
进一步掌握和利用C语言进行程设计的能力;进一步理解和运用结构化程设计的思想和方法;初步掌握开发一个小型实用系统的基本方法;学会调试一个较长程序的基本方法;学会利用流程图或N-S图表示算法;掌握书写程设计开发文档的能力(书写课程设计报告);2、熟练掌握C语言课程中所学的理论知识;C语言是在国内外广泛使用的一种计算机语言。
它既有高级语言的特点,又具有汇编语言的特点。
它可以作为系统设计语言,编写工作系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。
因此,它的应用范围广泛。
学习使用C语言程序的目的是掌握程序设计的思路,学会用计算机语言编写程序正确处理算法和语法的关系算法是程序的核心、是灵魂,语法是外壳、是工具。
通过课程设计,我们要熟练的掌握C语言的算法、语言、函数的调用、循环的使用、数组的运用等。
3、通过综合C语言的基本知识来解决实际问题;C语言中与许多的东西,像:数据类型、运算符、表达式、程序设计结构、数组与函数调用。
其中C语言最难和最经典的地方就是循环,(while和for的嵌套)运用WHILE,FOR,SWITCH和if 的循环嵌套,我们可以实现现实中课程信息管理、图书信息管理、学生信息管理、商品信息管理等。
C语言还具有绘图能力强,可移植性,并具备很强的数据处理能力,因此适于编写系统软件,三维,二维图形和动画。
它是数值计算的高级语言。
4、加强分析和解决问题的能力。
通过这次的课程设计,加强同学对程序设计的思考、设计、分析、理解和解决问题的能力。
对于同学来说,主要是学习成长设计的方法,进行程序设计的基本训练为将来进一步学习打下基础。
课程设计不能之掌握概念,还要动手编程、上机调试运行。
只有自己动手,才能学的更多。
1.2课程设计要求:1、课程设计步骤:(1)对系统进行功能需求分析;(2)设计合理的数据结构和系统框架;(3)编程简练,程序功能齐全,能正确运行;(4)说明书、流程图要清楚;(5)课题完成后必须按要求提交课程设计说明书;在课程设计过程中要求学生:重视课程设计环节,用严谨、科学和踏实的工作态度对待课程设计的每一项任务;按照课程设计的题目要求,独立地完成各项任务,不允许相互抄袭;按时到机房上机,并接受教师的检查。
认真编写课程设计报告。
2、课程设计可以由2~4名同学合作完成一个课题。
全体成员应共同协作完成选题,确定设计思想,进行功能模块划分,然后由组长为各成员分配任务。
整个设计期间,组长负责协调工作。
各小组成员明确自己的任务后,应独立完成各自模块的设计、编码和调试,独立完成课程设计说明书。
小组成员要理解同组其他成员设计的模块,熟练操作本组设计。
3、考核方式和成绩评定考核分为两个部分:(1)程序运行情况:按规定时间到机房运行程序,由老师检查运行情况(2)课程设计报告:是否按规定书写课程设计要求的各项内容课程设计成绩采用百分制:100%=平时(20%)+上机检查(30%)+课程设计报告(50%)二、题目说明题目:算术运算测试 ,由系统产生随机整数,并随机选择算数运算法则。
功能要求:该程序用字符界面实现十道100以内加减法数学题,能根据题目计算出答案,与输入答案对比,判断做题是否正确,最后计算分数. 界面用字符实现。
100道题目和标准答案必须存在文件中。
2.1程序开发背景简单地说,算术运算就是数的加、减、乘、除以及乘方开方等数学运算。
而对于算术来说,它是数学中最古老,最基础和最初等的部分.它研究数的性质及其运算.把数和数的性质,数和数之间的四则运算在应用过程中的经验积累起来,并加以整理,就形成了最古老的一门数学——算术。
算术运算测试程序:该程序由系统产生随机整数,并随机选择算数运算法则。
再打印出系统随即出的算数运算题,然后有答题者给出答案,再由系统来判断答题者所给出的答案是否正确,并计算出答题者的成绩,最后打印出答题者所做过的题。
2.2开发工具介绍C语言是Combined Language(组合语言)的中英混合简称。
是一种计算机程序设计语言。
它既具有高级语言的特点,又具有汇编语言的特点。
它可以作为工作系统设计语言,编写系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。
因此,它的应用范围广泛,不仅仅是在软件开发上,而且各类科研都需要用到C语言,具体应用比如单片机以及嵌入式系统开发。
早期的C语言主要是用于UNIX系统。
由于C语言的强大功能和各方面的优点逐渐为人们认识,到了八十年代,C开始进入其它操作系统,并很快在各类大、中、小和微型计算机上得到了广泛的使用。
成为当代最优秀的程序设计语言之一。
C语言的特点:C语言是一种结构化语言。
它层次清晰,便于按模块化方式组织程序,易于调试和维护。
C语言的表现能力和处理能力极强。
它不仅具有丰富的运算符和数据类型,便于实现各类复杂的数据结构。
它还可以直接访问内存的物理地址,进行位(bit)一级的操作。
由于C语言实现了对硬件的编程操作,因此C语言集高级语言和低级语言的功能于一体。
既可用于系统软件的开发,也适合于应用软件的开发。
C语言中main是主函数的函数名,表示这是一个主函数。
每一个C源程序都必须有,且只能有一个主函数(main函数)。
函数调用语句,printf函数的功能是把要输出的内容送到显示器去显示。
printf函数是一个由系统定义的标准函数,可在程序中直接调用。
此外,C语言还具有效率高,可移植性强等特点。
因此广泛地移植到了各类各型计算机上,从而形成了多种版本的C语言。
优点: C语言灵活性好,效率高,可以接触到软件开发比较底层的东西。
3.1图3-1图3-2Switch结构体(1)(2)图3-4四、详细说明4.1 产生100以内的随机整数产生两个100以内的随机整数。
有关截图:相关代码:num1[i]=rand()%100;num2[i]=rand()%100;4.2随机选择计算法则根据产生的随机整数来判断计算法则,如果产生的随机整数是1则选择的计算法则为加法;如果产生的随机整数是2则选择的计算法则为减法,若是减法则先判断两个数的大小。
有关截图:相关代码:type=rand()%2+1;switch(type){case 1:result[i]=num1[i]+num2[i];printf("\n%d+%d",num1[i],num2[i]);opt[i]='+';break;case 2:if(num1[i]>num2[i]){printf("\n%d-%d",num1[i],num2[i]);result[i]=num1[i]-num2[i];}else{printf("\n%d-%d",num2[i],num1[i]);result[i]=num2[i]-num1[i];}opt[i]='-';break;}4.3随机出题并打出题目产生随机整数,并根据产生的数据判断运算法则且打印所出的题目。
有关截图:相关代码:for(i=0;i<10;i++){num1[i]=rand()%100;num2[i]=rand()%100;type=rand()%1+1;switch(type){case 1:result[i]=num1[i]+num2[i];printf("\n%d+%d",num1[i],num2[i]);opt[i]='+';break;case 2:if(num1[i]>num2[i]){printf("\n%d-%d",num1[i],num2[i]); /* 打出题目*/result[i]=num1[i]-num2[i];}else{printf("\n%d-%d",num2[i],num1[i]);result[i]=num2[i]-num1[i];}opt[i]='-';break;}4.3判断答题者是否做对题目若错误给出正确答案输入答案判断结果是否正确,如果所给答案错误则系统给出正确答案。
相关截图:代码:scanf("%d",&answer); /* 输入答题者的答案 */if(answer==result[i]) /* 判断答题者给出的答案是否正确 */ {++points;printf("hui da zhen que");}else{printf("\n*****hui da cuo wu");printf("\n*****%d wei zheng jie",result[i]);}4.4判断答对的题数给出分数根据前面的数据points判断答题者的分数相关截图:相关代码switch(points){case 10:printf("gongzuodui %d daoti,chengjiwei: %d",points,points*points);break;case 9 :printf("gongzuodui %d daoti,chengjiwei: %d",points,points*points);break;case 8 :printf("gongzuodui %d daoti,chengjiwei: %d",points,points*points);break;case 7 :printf("gongzuodui %d daoti,chengjiwei; %d",points,points*points);break;case 6 :printf("gongzuodui %d daoti,chengjiwei: %d",points,points*points);break;case 5 :printf("gongzuodui %d daoti,chengjiwei: %d",points,points*points);break;case 4 :printf("gongzuodui %d daoti,chengjiwei: %d",points,points*points);break;case 3 :printf("gongzuodui %d daoti,chengjiwei: %d",points,points*points);break;case 2 :printf("gongzuodui %d daoti,chengjiwei: %d",points,points*points);break;case 1 :printf("gongzuodui %d daoti,chengjiwei: %d",points,points*points);break;default:printf("zuoduilingdaoti");}4.5打印出答题者所做的题目打印答题者之前所做的题目并给出正确的答案。