lv简易计算器.docx
《lv简易计算器.docx》由会员分享,可在线阅读,更多相关《lv简易计算器.docx(20页珍藏版)》请在冰豆网上搜索。
lv简易计算器
目录
第一章课程设计目的1
1.1简易计算器设计的意义1
1.2系统的基本要求1
第二章功能描述3
2.1功能设计3
2.2功能模块框图3
2.3系统模块流程图4
第三章模块详细设计5
3.1模块描述5
3.2函数声明5
3.3模块功能5
3.4模块接口设计5
第四章程序实现10
4.1界面设计10
4.2计算界面11
4.3退出界面12
第五章参考文献-15-
第六章课程设计总结-16-
第一章课程设计目的
1.通过一个学期的学习,我认为要学好C语言程序这门课程,不仅要认真阅读课本知识,更重要的是要通过上机实践才能增强和巩固我的知识。
特别是作为本科生,更要注重实践这一环节,只有这样我们才能成为合格的计算机人材。
通过这次课程设计,进一步巩固所学的语句,如语句嵌套等;加深对循环,分支等结构的运用;最后还可以熟悉四则运算﹑三角函数等经典算法。
2.通过此次课程设计扩展自己的知识面,课本上的东西是远远不够的,可以通过去图书馆查资料,上网找资料等手段学到一些新知识,比如画图函数,颜色填充函等。
3.通过课程设计,加深对结构化程序设计思想的理解,能进行一个系统功能需求分析并设计合理的模化结构。
提高程序开发能力。
1.1简易计算器设计的意义
本课题的内容是设计一个简单的计算器。
通过对程序的设计可以对C程序中的函数,循环,数组,调用,文件……内容有更深入的理解和运用。
设计程序的过程中,通过已有知识的运用和思考,能够做到对知识的整体理解。
通过解决设计中遇到的问题,能够提高设计程序的熟练度,并对知识有巩固作用。
另外,所选课题与自己的兴趣有关,编程之中不仅能提高题目涉及到的内容的兴趣,更主要的在于能对C语言更加感兴趣。
1.2系统的基本要求
1)设计一个简单的计算器;
2)程序基本功能要求完整,并有简单的验证;
3)用C实现系统;
4)利用结构体、数组等实现数据结构设计;
5)系统的各个功能模块要求用函数的形式实现;
6)本系统可以进行复杂的混合运算。
第二章功能描述
简易计算器能够进行加减乘除运算
加法:
输入一个数,按“+”,输入被加数,按“=”,输出结果。
减法:
输入一个数,按“—”,输入被减数,按“=”,输出结果。
乘法:
输入一个数,按“*”,输入另外个数,按“=”,输出结果。
除法:
输入一个数,按“/”,输入另外个数,按“=”,输出结果。
2.1功能设计
1)在程序中加入足够的操作提醒环节,使得使用者能够清楚的掌握操作流程和界面。
2)程序中完成+、-、*、/的混合运算,使用者可以根据个人的需要在提示后输入相应的代码,然后进行相应的运算,最后在运算结果中查找相应的结果即可,如果需要继续运算,只要在上一次的运算结束后按照提示输入相应代码即可选择是继续进行运算还是退出程序。
2.2功能模块框图
图2.2功能模块框图
2.3系统模块流程图
第三章模块详细设计
3.1模块描述
(1)显示界面模块为系统提供类似于菜单的功能,让用户输入要操作的运算类型的数字代码,并进入相应的功能执行程序,显示相应界面。
(2)数学计算模块中,根据用户选择的运算类型和运算符号,自动调用相应的函数,运行相关程序,进行计算,并显示结果。
3.2函数声明
(1)主函数main()
功能:
计算器功能选择界面,选择循环调用mm()自定义函数;
输入:
用户输入运算类型、退出程序的相应数字代码(1四则运算,2混合运算3退出程序)
处理:
根据用户输入的数字代码,跳转到相关功能函数
输出:
显示相应界面或退出程序
(2)mm()自定义函数
功能:
进行混合运算;
(3)nn()自定义函数
功能:
退出界面,显示“THANKS!
”
(4)kk()自定义函数
功能:
在开始界面显示“WELCOME”
3.3模块功能
数学计算模块中,根据用户选择的运算类型和运算符号,自动调用相应的函数,运行相关程序,进行计算,并显示结果。
3.4模块流程图
3.5模块接口设计
四则混合运算:
void SiZeHunHeYunSuan()首先判断优先级,其过程为int compare(char symbol) { int jud = 0; switch (symbol)
{case '('jud break;case '*':
case '/':
jud = sym[tops] == '/'?
-1:
1; break;case ')':
jud=0; break; case '+':
case '-':
jud = (sym[tops] !
= '*' && sym[tops] !
= '/')?
1:
-1break; default:
break;} return jud;}
四则混合运算包括的子函数的函数原型:
void sizeyunsuan(double num1, char symbol, double num2) 把表达式转化成波兰式 C语言课程设计﹒简易计算器
3.4源代码
#include
#include
struct eoe {
FILE* fp;
char token;
eoe() { fp = stdin; }
eoe(FILE* p) { fp = p; }
inline void getToken();
inline int exp();
inline int term();
inline int factor();
inline int result();
};
void eoe:
:
getToken() {
while
(1) {
token = fgetc(fp);
if (token == EOF || token == ';' || token == '=') {
token = 0; break;
} else if (!
isspace(token)) break;
}
}
int eoe:
:
exp() {
int t = term();
while
(1) {
if (token == '+') getToken(), t += term();
else if (token == '-') getToken(), t -= term();
else break;
} return t;
}
int eoe:
:
term() {
int t = factor();
while
(1) {
if (token == '*') getToken(), t *= term();
else if (token == '/') getToken(), t /= term();
else break;
} return t;
}
int eoe:
:
factor() {
int t;
if (token == '(') getToken(), t = exp(), getToken();
else if (isdigit(token)) ungetc(token, fp), fscanf(fp, "%d", &t), getToken();
return t;
}
int eoe:
:
result() {
int t; getToken(); t = exp(); return t;
}
int main() {
eoe e;
printf("%d\n", e.result());
return 0;
}
#include
#include
void JF(int a,int c);//声明加法运算
void CF(int a,int c);//声明乘法运算
void chuFa(int a,int c);//声明除法运算
void jianFa(int a,int c);//声明减法运算
void jianFa(int a,int c)//减法
{
printf("%d-%d=%d\n",a,c,a-c);
}
void chuFa(int a,int c)//除法
{
printf("%d/%d=%lf\n",a,c,a/(double)c);//在此我用了强制类型转换,确保输出结果不是两者取整。
}
void CF(int a,int c)//乘法
{
printf("%d*%d=%d\n",a,c,a*c);
}
void JF(int a,int c)//加法
{
printf("%d+%d=%d\n",a,c,a+c);
}
void main(void)
{
int a,c;
char b;
a:
printf("请输入计算式,(注意:
在键盘中无除法符号,所以采用“/”代替)");
scanf("%d%c%d",&a,&b,&c);
switch (b)
{
case '+' :
JF(a,c);
break;
case '-' :
jianFa(a,c);
break;
case '*' :
CF(a,c);
break;
case '/' :
chuFa(a,c);
break;
default :
printf("输入计算符不存在,请重新输入") ;
}
goto a;
第四章程序实现
4.1界面设计
图2.4系统主界面
进入主界面之后,主屏上显示“WELCOME”表示您已进入本系统,然后系统屏幕上会提示“xuanzeshifoujisuan”意思为“选择是否计算”,
1,“yes”代表进入计算界面,0,“no”代表退出程序,用户可根据自己的意思来输入相应代码进行下一步。
4.2计算界面
图2.5计算界面
在计算界面中,主屏显示“qingshurujisuangongshi”代表“请输入计算公式”之后用户可以进行任何四则运算,例如:
在主屏中输入“86*67+32/4+5=”然后通过enter键得出计算结果
4.3退出界面
图2.6退出界面
退出程序后用户将看到“THANKS!
”字样,代表对您本次使用表示感谢。
之后主屏左下方提示“shururenyishuzituichu”代表您将输入任意一个数字退出程序
第五章:
课程设计的结果展示
图5.1.错误1
函数之后多打了一个逗号,导致系统报错
图5.2.错误2
由于逗号的影响,出现了语法声明错误
图5.3.错误3
莫名的进入死循环,后经验证,只因输错了一个字
第五章参考文献
[1]科钦.C语言程序设计.北京:
电子工业出版社,1987:
56-58
[2]徐君毅.C语言程序设计基础.上海:
复旦大学出版社,1992:
87-98
[3]李成付.C语言程序设计基础.北京:
科学出版社,1992:
42-67
[4]郝玉洁.C语言程序设计.北京:
机械工业出版社,2000:
63-88
[5]钱启平.C语言程序设计基础.北京:
中国铁道出版社,2000:
91-99
[6]李大友.C语言程序设计基础.北京:
清华大学出版社,1999:
58-98
[7]黄迪明.C语言程序设计.北京:
电子科技大学出版社,1998:
78-98
[8]姜仲秋.C语言程序设计基础.南京:
南京大学出版社,1998:
16-100
[9]李国昌.C语言程序设计基础.北京:
科学出版社,1998:
78-120
[10]谭浩强.C语言程序设计.北京:
清华大学出版社,2000:
74-129
第六章课程设计总结
本报告对简单计算器系统的分析、设计、实现的完整过程进行了介绍。
经过了五天的课程设计,在设计中我们遇到了很多编程问题,最后我们齐心合力的攻克一个个难关,我们组做得是计算器的设计,内容包括很多。
运用的函数也很复杂。
测试阶段中发现了几处错误导致程序不能编译,去图书馆查找相关的资料, 又与同学一起讨论。
通过耐心的分析源代码终于编好了一个完整无误的程序。
在这次的c语言程序设计实习中遇到了现实编程中必然见到的问题通过这些问题解决积累了编程的实践经验。
在实际的编程操作中发现自己对c语言知识的不足,加深了对c语言的理解。
在学习之余体验到收获的感觉. 善于总结,也是学习能力的一种体现,每次完成一个编程任务,完成一段代码,都应当有目的的跟踪该程序的应用状况,随时总结,找到自己的不足,这样所编写的程序才能逐步提高
课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节
是对学生实际工作能力的具体训练和考察过程.随着科学技术发展的日新月异,当今计算机应用在生活中可以说得是无处不在。
因此作为二十一世纪的大学来说掌握计算机开发技术是十分重要的。
自从拿到题目到完成整个编程,从理论到实践,在整整五天的日子里,可以学到很多很多的东西,同时不仅可以巩固了以前所学过的知识,而且学到很多在书本上所没有学到过的知识。
通过这次课程设计使我们懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合才能完成。
通过这次课程设计,我拓宽了知识面,锻炼了能力,综合素质得到较大提高。
安排课程设计的基本目的,分析和解决问题的实际工作能力,以便培养成为能够主动适应社会主义现代化建设需要的高素质的复合型人才。
作为整个学习体系的有机组成部分,课程设计虽然安排在一周进行,但并不具有绝对独立的意义。
它的一个重要功能,在于运用学习成果,检验学习成果。
运用学习成果,把课堂上学到的系统化的理论知识,尝试性地应用于实际设计工作,并从理论的高度对设计工作的现代化提出一些有针对性的建议和设想。
检验学习成果,看一看课堂学
习与实际工作到底有多大距离,并通过综合分析,找出学习中存在的不足,以便为完善学习计划,改变学习内容与方法提供实践依据。
而这种实际能力的培养单靠课堂教学是远远不够的,必须从课堂走向实践。
这也是一次预演。
通过课程设计,让我们找出自身状况与实际需要的差距,并在以后的学习期间及时补充相关知识,为求职与正式工作做好充分的知识、能力准备,从而缩短从校园走向社会的心理转型期。
课程设计促进了我系人才培养计划的完善和课程设置的调整。
近年来,我系为适应学生的实践需要陆续增设与调整了一系列课程,受到同学的欢迎,其中这次的设计很受同学们的喜欢。
课程设计达到了专业学习的预期目的。
在一个星期的课程设计之后,我们普遍感到不仅实际动手能力有所提高,更重要的是通过对软件开发流程的了解,进一步激发了我们对专业知识的兴趣,并能够结合实际存在的问题在专业领域内进行更深入的学习。
兰州交通大学博文学院
C语言课程设计
设计题目:
简易计算器
专业:
自动化
班级:
15自动化
学号:
20150373
姓名:
吕雨楠
指导教师:
史红霞
二零一五年六月二十八日
兰州交通大学博文学院
C语言课程设计
设计题目:
简易计算器
专业:
自动化
班级:
15自动化
学号:
20150377
姓名:
柴晓慧
指导教师:
史红霞
二零一六年六月二十三日
兰州交通大学博文学院
C语言课程设计
设计题目:
简易计算器
专业:
自动化
班级:
15自动化
学号:
20150374
姓名:
田湫川
指导教师:
史红霞
二零一六年六月二十三日
兰州交通大学博文学院
C语言课程设计
设计题目:
简易计算器
专业:
自动化
班级:
15自动化
学号:
20150376
姓名:
寇德鑫
指导教师:
史红霞
二零一六年六月二十三日
兰州交通大学博文学院课程设计任务书
姓名
田湫川
学号
20150374
班级
15自动化
成绩
设计题目
简易计算器
主要设计
内容
制作一个简易计算器,类似于windows自带的计算器,可以完成的计算功能有:
1)计算器界面显示功能:
显示主窗口,文本输入框,计算器按键。
2)计算器按键控制功能:
对键盘按键值的确定,判断。
3)计算器计算处理功能:
完成四则运算包括加、减、乘、除。
。
4)计算器记忆功能功能:
对计算值进行保存,读取,删除
5)计算器退出系统功能;清除图形屏幕,关闭图形和退出计算系统操作。
本人主要负责退出程序
教师意见
电信工程系
兰州交通大学博文学院课程设计任务书
姓名
吕雨楠
学号
20150373
班级
15自动化
成绩
设计题目
简易计算器
主要设计
内容
制作一个简易计算器,类似于windows自带的计算器,可以完成的计算功能有:
6)计算器界面显示功能:
显示主窗口,文本输入框,计算器按键。
7)计算器按键控制功能:
对键盘按键值的确定,判断。
8)计算器计算处理功能:
完成四则运算包括加、减、乘、除。
。
9)计算器记忆功能功能:
对计算值进行保存,读取,删除
10)计算器退出系统功能;清除图形屏幕,关闭图形和退出计算系统操作。
本人主要负责混合运算
教师意见
电信工程系
兰州交通大学博文学院课程设计任务书
姓名
柴晓慧
学号
20150377
班级
15自动化
成绩
设计题目
简易计算器
主要设计
内容
制作一个简易计算器,类似于windows自带的计算器,可以完成的计算功能有:
11)计算器界面显示功能:
显示主窗口,文本输入框,计算器按键。
12)计算器按键控制功能:
对键盘按键值的确定,判断。
13)计算器计算处理功能:
完成四则运算包括加、减、乘、除。
。
14)计算器记忆功能功能:
对计算值进行保存,读取,删除
15)计算器退出系统功能;清除图形屏幕,关闭图形和退出计算系统操作。
本人主要负责加减运算
教师意见
电信工程系
兰州交通大学博文学院课程设计任务书
姓名
寇德鑫
学号
20150376
班级
15自动化
成绩
设计题目
简易计算器
主要设计
内容
制作一个简易计算器,类似于windows自带的计算器,可以完成的计算功能有:
16)计算器界面显示功能:
显示主窗口,文本输入框,计算器按键。
17)计算器按键控制功能:
对键盘按键值的确定,判断。
18)计算器计算处理功能:
完成四则运算包括加、减、乘、除。
。
19)计算器记忆功能功能:
对计算值进行保存,读取,删除
20)计算器退出系统功能;清除图形屏幕,关闭图形和退出计算系统操作。
本人主要负责乘除运算
教师意见
电信工程系