c语言课程设计简易计算器.docx
《c语言课程设计简易计算器.docx》由会员分享,可在线阅读,更多相关《c语言课程设计简易计算器.docx(16页珍藏版)》请在冰豆网上搜索。
![c语言课程设计简易计算器.docx](https://file1.bdocx.com/fileroot1/2022-12/9/d74153cb-de36-4a57-b1d4-f071953910cd/d74153cb-de36-4a57-b1d4-f071953910cd1.gif)
c语言课程设计简易计算器
C语言课程设计
学院:
地球物理与测控技术学院
专业:
测控技术与仪器
姓名:
邬博文
学号:
2
第一章选题的意义3
1.1课题研究的背景3
1.2自己设计的优势3
1.3设计上功能上的不足3
第二章研究的基础4
2.1涉与的主要知识点4
第三章研究的可行性5
3.1技术的可行性5
3.2经济效益和社会效益的可行性5
第四章研究的具体部分6
4.1研究的主要流程图6
4.2研究的具体代码7
4.3程序运行结果图表13
第五章总结16
第一章选题的意义
①通过本项课程设计,可以培养独立思考、综合运用所学有关相应知识的能力,能更好的巩固《C语言程序设计》课程学习的内容,掌握工程软件设计的基本方法,强化上机动手编程能力,闯过理论与实践相结合的难关!
更加了解了c语言的好处和其可用性!
同时增加了同学之间的团队合作精神!
更加也体会到以后在工作中团队合作的重要性和必要性!
②通过C语言课程设计,使学生了解高级程序设计语言的结构,掌握基本的程序设计过程和技巧,掌握基本的分析问题和利用计算机求解问题的能力,具备初步的高级语言程序设计能力。
为后续各门计算机课程的学习和毕业设计打下坚实基础。
1.1课题研究的背景
计算器是现代日常生活中使用较为频繁的工具之一,常用的计算器有简易版和科学计算器两种模式。
简易版的计算器不支持表达式运算,每次只能输入一个数据或者运算符来计算,而科学计算器除了容纳简易版计算器的功能外,还支持表达式运算,用户可以输入一个合法的算术表达式来得到所需的结果。
计算器对我们每一的学生都很熟悉,从初中到高中再到大学。
但是我们只知道按下几个按钮计算器便会显示出结果,很少有学生分析过计算器究竟是如何运行的。
C语言课程设计便是一个很好的机会,让我去亲自写计算器的运行代码,尽管是简单计算器的设计,但其背后的知识那是相当多的,对我是个挑战,我接受!
1.2自己设计的优势
现时学习生活中,常会遇到一些数目较大数据繁杂的数值运算,徒手运算起来很困难,这时候我们就必须用到计算器。
人们对计算的要求不断提高,普通的功能简单的仅能进行加、减、乘、除运算的计算工具已经不能满足需要,需要一种能进行多种计算。
现在已经有一些功能较为强大、涵盖面较广的计算软件,而且各种平台的小工具仍不断出现。
这些大大方便了我们的生活给我们更多的选择和实现方式。
本程序实现了加、减、乘、除、求幂、求模,求平方根,求,求,求10,求阶乘,取整,求正切,以与进制之间的相互转换。
它可以直接输入数学表达式,不需要任何转换,就可以直接输出。
1.3设计上功能上的不足
本程序虽然在其他简易计算器的基础上新增加了很多类容,如:
三角函数的求值、指数函数的计算、任意数的任意次方、进制之间的相互转换等;但是由于个人能力的限制,仍不能实现四则混合运算的功能,仅仅是能进行一个两个数或者一个数的计算,这是这个程序最为不足的地方。
但是我相信,随着学习的不断深入,这个功能在不久以后会被很好的实现。
第二章研究的基础
C语言是一种结构化的程序设计语言。
它功能丰富、表现力强、使用灵活、应用面广、目标程序效率高、可移植性好,既具有高级语言的特点,有具有低级语言的功能,以此它成为当今的主流程序设计语言之一。
2.1涉与的主要知识点
本程序的知识点主要来源于谭浩强的《C语言程序设计》,其中包含了C语言的数据类型与基本操作、顺序结构设计、选择结构程序设计、循环结构程序设计、函数、数组、指针等。
本程序通过不同类型数据间的转换实现了部分进制间的转换,如十进制转换为八、十六中("\n");("\n");直接把输入的十进制数转换成了八和十六进制。
对于控制程序进行什么样的计算方面,采用了输入的方法,根据提示的信息,输入不同的选项,可以实现不同的运算。
在选择结构程序设计方面,采用语句来判断如在二级制数和十进制数的相互转换的过程中用—语句对数的正负进行判断,为其分情况研究提供帮助;又如在一般二次方程的求解上运用——{—}语句对方程解的四种情况,即无解、两个相同实数根、两个不同实数根、和两个虚数根分别进行计算,以求出不同情况的解。
本程序大量运用语句;以实现本程序的不同功能。
如图
(1):
这里运用语句,来选择你所以运用到的这个程序的不同的功能,这里共有六个,根据你要使用的功能,可以相应的输入数据,来实现自己所需要的的计算。
又如图
(2)对于加减乘除的简单的四则混合运算也是运用的语句来实现的;通过来实现加减乘除的多级运算,而不是简单的两个数相加减,但是由于没有判断优先级的语句,所以此程序不能进行优先级的计算,只能从左到右的依次计算!
本程序的循环结构用的是和。
对于需要逐级进行的表达式,就用了这些循环语句在x^y的(1<)*x;,二级制十进制的转换(0){2[i]2;}{(1>=0)(""[j]);},求最值并排序的输入过程、排序过程、输出过程等过程中都运用有这些语句!
之所以运用循环,是由于要实现其功能,都要按照一定的条件重复执行同样的一段语句,所以运用循环语句来做到多次重复。
本程序采用的是函数调用的方法,该程序运用了6个自己声明的函数,通过这些函数来在一个程序上实现多种不同的功能();();();();1();2()();这些就是就是本程序的函数声明的部分内容。
关于数组方面,对于进制的处理方面就用的是数组,把每个数字分别储存在一个空间里,这样就可以更方便的对数的每一个位进行操作。
而不用分别去求每一位的数值,正是基于这个原因,本程序可以对多达80位的数来进行转换。
突破了只能对同一位数求解的限制。
第三章研究的可行性
3.1技术的可行性
本程序是用C语言编写的一部功能相对全面的简易计算器,它通过程序,可以帮助我们解决一些复杂的运算。
其所运用的知识点也全部是《C语言程序设计》上的知识。
对于一些不能解决的问题,都可以在XX上找到根据。
通过一个学期的学习,我认为要学号C语言程序这门课程,不仅要认真阅读课本知识,更重要的是要通过上机实践来巩固我们的知识,特别是学计算机专业的,我们更应该注重这一环节,只有这样我们才能成为一个合格的计算机人才。
通过这一个课程设计,进一步来巩固所学的语句,如:
循环,和分支结构的运用。
还要熟悉四则运算和函数的算法。
通过这次课程设计扩展自己的知识面,课本上的东西是远远不够的,可以通过上网或去图书馆查资料等方式得到一些新的知识,加深对课程化设计思想的理解,能进行一个系统功能分析,并设计一个合理的模块化结构,提高程序开发能力。
3.2经济效益和社会效益的可行性
对于现在的科技发展的时代,机器代替了手工,人们越来越热衷于对能节时省事的机器依赖,而这个程序正好可以满足人们对于麻烦计算的需要,通过使用这个计算器,来节省花在计算上的时间,这也正好符合现代人的要求──省事!
同时,其成本也很低,就这个程序而言,仅仅需要一部装有6.0的计算机就可以做出来了。
而现在的电脑也普与于各个家庭了,所以也就对于大部分人来说,使用它不是问题,你仅仅只需要下载个6.0就可以使用这个程序了,同时,你还可以通过6.0来运行其他自己感兴趣的程序!
第四章研究的具体部分
4.1研究的主要流程图
4.2研究的具体代码
/*主函数*/
""
""
N80
""
""
()
{
0;
();
();
();
();
1();
2();
();
(0)
{
();
("a(1-7)\n");
("");
(>=1<=7)
()
{
1();
2();
3:
();
41();
5:
2();
6:
();
("!
\n");
}
{
("!
\n")1;
}
}
();
}
()/*显示主菜单*/
{
("");
("简易计算器");
("\n");
("请选择\n");
("1-简单四则运算\n");
("2-特殊数学运算\n");
("3-对数进行排序并求最值\n");
("4-十进制转化成N进制\n");
("5进制转化成二进制\n");
("6-求解一般二元一次方程组\n");
("7-退出运算\n");
}
()/*简单的四则运算函数*/
{
;
c;
("请输入运算数和四则运算如(-,*)b:
");
("");
(c)
{
'+'("\n");
'-'("\n");
'*'("\n"*b);
'/'("\n");
:
("输入错误");
}
}
()/*特殊的数学函数运算函数*/
{
x;
;
("(x)(x)(x)(x)(x)(x)(x),√(x),(x)^(x)\n");
("1(x)\n");
("2(x)\n");
("3(x)\n");
("4(x)\n");
("5(x)\n");
("6(x)\n");
("7(x)\n");
("8-√(x)\n");
("9-(x)^(x)\n");
("请选择数学函数\n");
("");
("请输入数值\n");
("");
(a>=1<=9)
(a)
{
1("(x)"(x));
2("(x)"(x));
3("(x)"(x));
4("(x)"(x));
5("(x)"(x));
6("(x)"(x));
7("(x)"(x));
8("√(x)"(x));
9:
{
1;
("请再输入一个个数\n");
("");
(1<)
*x;
("(x)^(x)\n");
};
}
("!
\n");
}
()/*找出最大值和最小值的函数*/
{
a[N];
;
("请输入要比较数的个数\n");
("");
("请输入数");
(0<)
(""[i]);
(0<)
("\n"[i]);
("\n\n");
(0<1)
{
(1<1)
(a[1]>a[j])
{
[1];
a[1][j];
a[j];
}
}
(0<)
("\n"[i]);
(""[1][0]);
("\n");
}
1()/*十进制数转化成二、八、十六进制数*/
{
[N]0;
("1-二进制");
("2-八进制");
("3-十六进制");
("请选择转化形式(1-3)\n");
("");
("请输入十进制数\n");
("");
()
{
1:
(a>0){
(0)
{2[i];2;
}/*正整数十进制转化二进制*/
{(1>=0)
(""[j]);
}
("\n");
}
{
(0)
{(a)2552[i];2;
}/*负整数十进制转化二进制*/
{(1>=0)
(""[j]);
};
("\n");};
2("\n");
3("\n");
}
}
2()/*N进制数转化成十进制数的函数*/
{
t1;
3;
a[N];
("请输入一串数字:
\n");
("");
(a);
t3(a);
t1=0;
("n(2816):
\n");
("");
(0{
(a[i]-'0'>[i]<'A'[i]-'A'+10>)
{
("!
!
");
}
(a[i]>='0'[i]<='9')
[i]-'0';
(n>=11(a[i]>='A'[i]<='A'10))
[i]-'A'+10;
t11*;
}
("\n"1);
}
()/*求解二元一次方程组函数*/
{
12;
("请依次输入一般二次方程的系数\n");
("");
((a)<=16(b)<=16)
("方程无解!
\n");
((a)<=16(b)>16)
("方程有单根是%8.4f\n");
{
*4*a*c;
(()<=16>16)
{
x1=(())/(2*a);
x2=(())/(2*a);
("方程有两个实数根!
\n");
("x18.4f"1);
("x28.4f"2);
}
{
(2*a);
()/(2*a);
("方程有两个虚根!
\n");
("x18.48.4\n");
("x28.48.4\n");
}
}
}
4.3程序运行结果图表
第五章总结
通过为期两天的课程设计,我们对《C语言》这门课程有了更深一步的了解。
它是计算机程序设计的重要理论技术基础,在我们测控技术与仪器专业的学习中占据着十分重要的地位。
同时也使我们知道,要学好这门课程,仅学习书本上的知识是不够的,还要有较强的实践能力。
因为我们学习知识就是为了实践。
而只有多实践,多编写程序,才能更好的理解与掌握书本上的东西。
运用《C语言》中的算法思想作数据结构,结合C语言基本知识,编写一个简单的计算器。
通过完成本课题,进一步熟悉C语言的基本知识,并掌握数据结构的一些基本算法思想,进一步熟悉数组的建立运用和函数的调用等。
在这次C语言程序设计中,我们学会了如何面对困难,如何团结互助,如何分析和解决问题。
当我们解决了一个问题会感到很开心和有成就感。
因此,我们觉得这次的程序设计很有意义,他不仅让我们有团队合作精神,也是一种对自身素质和体质的考验,这为我们今后的毕业论文打下了基础,和对未来的发展确定了方向,在以后的学习和生活中我们会努力朝这方面发展,争取以后成为一名优秀的程序设计师