课程设计四则混合运算练习_第1页
课程设计四则混合运算练习_第2页
课程设计四则混合运算练习_第3页
课程设计四则混合运算练习_第4页
课程设计四则混合运算练习_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

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

文档简介

1、吉林工程技术师范学院C语言程序课程设计报告书设计题目: 四则混合运算练习 专业: 班级: 学生姓名: 学号: 指导教师: 2010年5月信息工程学院目 录摘 要 3第一章 绪 论4第二章 问题定义(或系统分析)6第三章 总体设计与详细设计7第四章 编码实现 8第五章 总结与心得附录:1源代码2参考资料摘 要四则运算的意义1.使学生理解、掌握四则运算的五大定律和两个性质。2.掌握积、商的变化规律。3.能运用这些定律、性质和规律进行简便计算,提高计算能力。教学重点:运用定律、性质和规律进行简算。四则运算的定律和性质是学生进行简便运算的依据。灵活地运用四则运算的定律和性质,不但能提高计算的速度,还能

2、培养学生思维的灵活性。所以在复习中,注重学生对四则运算定律和性质的理解、记忆,再加以灵活运用,从而达到培养学生计算能力的目的,这是非常必要的。因此,在复习中首先要让学生搞清所学过的运算定律和性质有哪些,分别用字母怎么表示,语言怎么叙述,达到全面巩固理解的目的。其间,分别插入适当判断、填空练习,以帮助学生理解及灵活运用。另外,利用积、商的变化规律培养学生思维的灵活性和深刻性,使学生在观察推导中理解积、商的变化规律实际上就是乘法运算定律的具体体现,同时,也为简便计算打开多种途径。然后,在学生全面掌握的基础上出现一组选择题,综合地培养学生运用定律和性质的能力,反馈面也扩展到全班,便于了解多数学生的情

3、况。 第一章 绪 论1.1 C语言概述C语言是国际上广泛流行且很有发展前途的计算机高级语言,不仅用来编写应用软件,也用来编写系统软件。C语言功能丰富,使用灵活,可移植性好,深受广大用户欢迎。C语言的数据类型丰富,既具有高级程序设计语言的优点,又具有低级程序设计语言的特点;既可以用来编写系统程序,又可以用来编写应用程序。(例如,著名的UNIX操作系统就是用C语言编写的)因此,C语言正在被迅速地推广和普及。1 .2 C语言出现的历史背景在C语言诞生以前,操作系统及其他系统软件主要是用汇编语言实现的。由于汇编语言程序设计依赖于计算机硬件,其可读性和可移植性都很差,而一般的高级语言又难以实现

4、对计算机硬件的直接操作,因此人们需要一种兼有汇编语言和高级语言特性的语言。C语言就是在这种环境下产生的。它最早是由Dennis Richie于1973年设计并实现。它的产生同UNIX系统之间具有非常密切的联系C语言是在UNIX系统上开发的。而无论UNIX系统本身还是其上运行的大部分程序,都是用C语言编写实现。同时,它同样适合于编写不同领域中的大多数程序。C语言已经成为全球程序员的公共语言,并且由此产生了当前两个主流的语言C+和Java它们都建立在C语言的语法和基本结构的基础上,而且现在世界上的许多软件都是在C语言及其衍生的各种语言的基础上开发而成。 目前,在微机上广泛使用的C语言编译系统有Tu

5、rbo C、Borland C+、Microsoft Visual C+等。虽然它们的基本部分都是相同的,但还是有一些差异,本程序的设计采用Turbo C作为上机编程调试环境。C语言特点和用途语言简洁、紧凑,使用方便、灵活。共有个关键字,种控制语句。运算符丰富,公有种运算符。数据结构丰富,数据类型有:整型、实型、字符型、数组、指针、结构体、共用体等。具有结构化的控制语句(如ifelse、while、dowhile、switch、for)语法限制不太严格,程序设计自由度大。允许直接访问物理地址,能进行位(bit)操作,可以直接对硬件操作。生成目标代码质量高,程序执行效率高。可移植性好。C语言的用

6、途C虽不擅长科学计算和管理领域,但对操作系统和系统实用程序以及对硬件进行操作方面,C有明显的优势。现在很多大型应用软件也用编写。C语言程序一般用小写字母,而仅在一些宏定义中,将常量名用大写字母表示,或对一些有特殊意义的变量,偶尔也用大写字母表示。C语言中对大小写字母看作两个变量。 在C语言的程序设计中,用户程序的功能快都是一些函数,而函数在定义时,可选用省略号来表示参数类型和个数的不确定性。如function(F1,)的函数的第一个参数F1表示为某种类型的变量,而后的其它参数无论是类型还是参数个数都不确定。在c函数调用时,参数或参数的指针都被压入堆栈,并且最后一个参数最先进入堆栈,第一个参数最

7、后进入堆栈。如果小系统模式编译,变量的指针为2字节,如果用大系统模式编译,变量的指针为4字节,如果我们求得第一个参数指针在堆栈内的地址,加上变量指针的字节数,再取相应内存的内容,即求出其它各参数指针在堆栈内的地址,从而可引用用省略号说明的参数。第二章 问题定义(或系统分析)2.1 系统分析一 、题目:四则运算二、目的与要求1 目的:通过编写四则运算程序,培养学生综合利用C语言进行程序设计的能力,熟悉字符串的操作方法,加强函数的运用,提高软件系统分析能力和程序文档建立、归纳总结的能力。2 基本要求:1)要求用C语言编程,在Visual C+环境下调试完成;2)要求按照程序功能分成几个功能模块来实

8、现,各个功能模块分别使用函数来完成;3)要求应用本课所讲授的程序设计语言知识来解决问题.三、设计方法和基本原理1 课题功能描述本程序的功能,就是实现数的加减乘除四则运算,如计算3+5*8的结果。2 问题详细描述程序运行时,首先会出现一个非常友好的界面提示用户去选择需要练习的题目,待用户选择对应项后,就会出现对应的算术题。当用户输入结果后,系统会自动计算结果并判断用户输入的结果是否为正确结果。四、问题的解决方案该问题主要注意四则运算的优先级问题:乘除运算比加减运算优先级高,同级运算按从左到右的顺序运算。本程序应采用模块化设计方法,设计几个功能模块。字符串解析函数(将输入字符串分解成数和运算符)将

9、数据(字符数组中)转换成十进制数(long)判读是否存在高优先级运算符,若存在首先计算其运算结果并保存 同级运算按先后顺序进行第三章 总体设计与详细设计 本程序是一款关于四则运算的小软件,我把程序分成了5个模块,分别是加法、减法、乘法、除法和加减乘除四则混合运算。为了让我的小软件能得到更好的应用,我把每个数都用随机数去表示,在加减乘除四则混合运算中,符号都用随机的,这样通用性更大一些,但是随之而来的就是一系列问题。例如如何生成随机数,以及生成随机数的方法,参数传递,符号传递,符号识别,更重要的是四则运算的优先级问题,我花了大量的时间都在考虑这个问题,怎么样能让算法更有效率。为了我的小软件能在中

10、小学中应用的广,在初等数学中,当一级运算(加减)和二级运算(乘除)同时出现在一个式子中时,它们的运算顺序是先乘除,后加减,如果有括号就先算括号内后算括号外,同一级运算顺序是从左到右这样的运算叫四则运算,. 四则指加法、减法、乘法、除法的计算法则. 一道四则运算的算式并不需要一定有四种运算符号,一般指由两个或两个以上运算符号及括号,把多数合并成一个数的运算. 加法: 把两个数合并成一个数的运算 把两个小数合并成一个小数的运算 把两个分数合并成一个分数的运算 减法: 已知两个加数的和与其中一个加数,求另一个加数的运算 乘法 :求几个相同加数的和的简便运算 小数乘整数的意义与整数乘法意义相同 一个数

11、乘纯小数就是求这个数的十分之几,百分之几 分数乘整数的意义与整数乘法意义相同 除法: 已知两个因数的积与其中一个因数,求另一个因数的运算 与整数除法的意义相同举例说明: 1、乘法:求几个几是多少;求一个数的几倍是多少;求物体面积、体积;求一个数的几分之几或百分之几是多少。 2、除法:把一个数平均分成若干份,求其中的几份;求一个数里有几个另一个数;已知一个数的几分之几或百分之几是多少求这个数。 3、加法:求和;减法逆运算。 4、减法:求剩余;比较;加法逆运算。第四章 编码实现本程序是针对加减乘除四则运算设计的一款四则运算练习软件,它能根据用户的选择出题。运行程序后,用户会看到一给非常友好的界面菜

12、单,有6个选项可供选择。第一个是加法练习,第二个是减法练习,第三个是乘法练习,第四个是除法练习,第五个是加减乘除四则运算练习。这时,系统会提示用户去做选择。Turbo C上显示的主菜单界面(这里是汉文实际英文)= 欢迎使用四则运算练习软件 =1.加法练习2.减法练习3.乘法练习4.除法练习5.加减乘除四则混合运算6.退出= 这款小软件通过调用各种子程序来实现需要的功能, 为了让我的小软件能得到更好的应用,我把每个数都用随机数去表示,在加减乘除四则混合运算中,符号都用随机的,这样通用性更大一些,但是随之而来的就是一系列问题。例如如何生成随机数,以及生成随机数的方法,参数传递,符号传递,符号识别,

13、更重要的是四则运算的优先级问题,我花了大量的时间都在考虑这个问题,怎么样能让算法更有效率。第五章 总结与心得三周的课程设计已经结束了。回想学习C语言 的过程中,既有快乐又有烦恼。从领到书的那一刻,我就很郁闷,C 语言程序设计到底事学什么的,有什么用。刚开始上课时,还在迷茫这门课程是用来做什么的。不过,这些感受都是在对这门课程不了解的情况下产生的。后来慢慢的接触多了,听老师讲的多了,了解多了,渐渐的产生了兴趣。尤其是学到语句和函数时,上机操作程序,经过编译,调试和运行后,出现界面,当时觉得很好奇,想真正的学好这门课程。通过半个学期的学习,我掌握了基本知识。下学期开始时,被通知要进行三周的课程设计

14、。当时有点懵,感觉学的东西很少,很零散,不知该怎么练到一起,就要课程设计,是不是太难为我们了。第一天基本上都是在看书,把基本知识再熟悉一边。到了下午的时候,老师发过来三道练习题,从这几道练习题上我得到了不少启发,然后我们组把整个程序的思路理清了,开始着手写程序。第一周结束的时候,我感觉自己收获挺大的,从一开始的迷茫,不知道从何下手到把程序中的几个模块编写出来,心里挺开心的。但是,到了第二周,我们由不得不再次陷入困境。在整个程序的编写过程中。最难的就是修改和删除这两个模块,这也是我们第二周要解决的重点问题。开始编写修改和删除时,很头疼,去向其他人寻求帮助,在别人的帮助和提示下,我编完了修改程序,

15、但编译时老出错,修改后的内容将文本内的信息全部覆盖了。困难之时,我们组的其他人,帮助了我,完成了修改和删除。这样的话,整个程序基本上全部完成了,就剩下完善工作了。我们组写了两个程序,最后,两个程序相互组合,互补,大功告成虽然设计时完成了,但是我觉得其中还是由一些不足之处:1. 警告句。程序中缺少一些警告句,例如:“是否真的删除(y/n)?”。2. 重名的情况。由于考虑的不周全,没有设计遇到重名的情况该怎么处理。3. 选择单一。我们设计的程序中,只设计了按名字选择,进行操作,忽略了重名的情况。整个程序完成了,还有很多不完善的地方,希望自己以后办事的时候要认真,仔细,考虑周全。短短的三周课程设计结

16、束了,但是这段时间里,我又学到了更多C 知识,如:对象数组,string类,文件流等,同时我也被提醒以后办事的时候要认真,仔细,考虑周全。,也看到了团队精神和互帮互助的重要性。这一点会让我终生受益。通过三周的课程设计,我觉得自己肚子里的墨水多了,收获也挺大的,这三周过的挺充实! 附 录:源代码#include<stdio.h>#include<stdlib.h>main() int x=30,y=6; char choice; randomize(); while(1) clrscr(); gotoxy(x,y); puts("1.Jia fa lian xi

17、."); gotoxy(x,y+1); puts("2.Jian fa lian xi."); gotoxy(x,y+2); puts("3.Cheng fa lian xi."); gotoxy(x,y+3); puts("4.Chu fa lian xi."); gotoxy(x,y+4); puts("5.Jian jian cheng chu huen he lian xi."); gotoxy(x,y+5); puts("6.Tui chu."); gotoxy(x,y+7)

18、; puts("Qing xuan ze (1 huo 6)."); choice=getch(); switch(choice) case '1':add();break; case '2':subt();break; case '3':mult();break; case '4':divid();break; case '5':huenhe();break; case '6':exit(0); default:printf("Xuan ze you wu! An r

19、en yi jian hou chong xin shu ru ."); getch(); add() int i,t,num1,num2,answer; t=0; clrscr(); while(t!=5) num1=random(99)+1; num2=random(99)+1; question(num1,num2,'+'); scanf("%d",&answer); if(answer=num1+num2) puts("zheng que!"); t+; else printf("cuo le! Zhe

20、ng que da an shi:%dn",num1+num2); t=0; if(t=5) printf("n Ni lian xu da dui 5 ti, gong xi! An ren yi jian fan hui cai dan."); getch(); subt() int i,t,num1,num2,answer; t=0; while(t!=5) num1=random(99)+1; num2=random(99)+1; question(num1,num2,'-'); scanf("%d",&answ

21、er); if(answer=num1-num2) puts("Zheng que!"); t+; else printf("Cuo le! Zheng que da an shi:%dn",num1-num2); t=0; if(t=5) printf("n Ni yi lian xu da dui 5 ti, gong xi! An ren yi jian fan hui cai dan."); getch(); mult() int i,t,num1,num2,answer; t=0; clrscr(); while(t!=5)

22、 num1=random(99)+1; num2=random(99)+1; question(num1,num2,'*'); scanf("%d",&answer); if(answer=num1*num2) puts("Zheng que!"); t+; else printf("Cuo le! Zheng que da an shi:%dn",num1*num2); t=0; if(t=5) printf("n Ni lian xu da dui 5 ti, gong xi! An ren yi

23、 jian fan hui cai dan."); getch(); divid() int i,t,num1,num2,answer; t=0; while(t!=5) num1=random(99)+1; num2=random(99)+1; question(num1,num2,'/'); scanf("%d",&answer); if(answer=num1/num2) puts("Zheng que!"); t+; else printf("Cuo le! Zheng que da an shi:%d

24、n",num1/num2); t=0; if(t=5) printf("n Ni lian xu da dui 5 ti, gong xi! An ren yi jian fan hui cai dan."); getch(); huenhe() int t,a,b; long s,m,j,answer,num1,num2,num3; char opt1,opt2; t=0; s=answer=t=m=0; clrscr(); while(t!=5) num1=random(99)+1; num2=random(99)+1; num3=random(99)+1;

25、a=random(3)+1; b=random(3)+1; opt1=fuhao(a); opt2=fuhao(b); printf("%ld %c %ld %c %ld=",num1,opt1,num2,opt2,num3); scanf("%ld",&answer); if(opt1='*'|opt1='/') switch(opt1) case '*':m=num1*num2;break; case '/':m=num1/num2;break; switch(opt2) case '+':s=m+num3;break; case '-':s=m-num3;break; case '*':s=m*num3;break; case '/':s=m/num3;break; else if(opt2='*'|opt2='/') switch(opt2) case '*':m=num2*num3;break; case '/':m=

温馨提示

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

评论

0/150

提交评论