C语言课程设计-电子计算器C语言编程
C语言课程设计
课题名称:电子计算器C语言编程
专 业: 电子信息工程
班 级: 09级 一班
姓 名:
学 号:
指导教师:
2010年12月23日
目 录
第一章 绪论.....................................
1.1 概述............................ ...........
1.2 电子计算器原理............................ .
1.3 课题的意义及设计目标........................
1.4 主要设计内容................................ 第二章 软件设计相关基础知识介绍...............
2.1
写程序时应注意的相关事项..................
2.2 基本类型的分类及特点........................
2.3 结构简介....................................
2.3.1 结构程序设计............................
2.3.2 分支程序设计............................
2.3.3 循环程序设计............................ 第三章 软件设计流程............................
3.1 主程序流程图................................
3.2 数据输入子程序流程图........................
3.3 电子计算器结果输出子程序.................... 第四章 软件运行界面说明........................
4.1 电子计算器四则运算结果...................... 附录A 常用函数及说明 .......................... 附录 B C语言程序及讲解 ......................... 总结 ..............................................
- 1 -
电子计算器程序设计
第一章 绪论
1.1 概述
17世纪初,西方国家的计算工具有了较大的发展。英国数学家发明了“纳皮尔算筹”;英国牧师奥却德发明了圆柱型对数计算尺,这种计算尺不仅能做加减乘除和开放运算,甚至可以计算三角函数,指数函数和对数函数。这些计算工具不仅带动了计算器的发展,也为现代计算器发展奠定了基础。
本程序旨在训练读者的编程能力,使读者熟悉C语言图形模式下的编程。本程序中设计结构体,数组等方面的知识。通过本程序的训练,使读者能对C语言有一个更深的了解,掌握利用C语言相关函数开发计算器的基本原理,为进一步开发出高质量的多功能计算器打下坚实的基础
。
1.2 电子计算器的原理
利用C语言中算法来实现四则云算的进行,掌握计算机语言将算法转换成程序运算:
程序设计=算法+数据结构+计算机语言+程序设计方法+工具软件和环境+文档 程序设计人员应当具备以上几个方面的综合知识,才能更好的惊醒程序设计,而四则运算是简单程序设计,所以对计算机方面的要求并不大。
1.3 课题的意义及设计的目标
通过一个学期的学习,我认为要学好C语言程序这门课程,不仅要认真阅
读课本知识,更重要的是要通过上机实践才能增强和巩固我的知识。特别是
作为本科生,更要注重实践这一环节,只有这样我们才能成为合格的计算机
人材。通过这次课程设计,进一步巩固所学的语句,如语句嵌套等;加深对
循环,分支等结构的运用;最后还可以熟悉四则运算)三角函数等经典算法。
通过此次课程设计扩展自己的知识面,课本上的东西是远远不够的,可以通
过去图书馆查资料,上网找资料等手段学到一些新知识,比如画图函数,颜
色填充函数等。
通过课程设计,加深对结构化程序设计思想的理解,能进行一个系统功能需
求分析,并设计合理的模块化结构。提高程序开发能力。
- 2 -
1.4 主要设计内容
用所学过的C语言基本知识进行编程,来实现简单的四则运算。我设计的是一款简易计算器,界面清楚,操作方便,它能实现以下功能: 1. 以界面形式给出计算器功能
2( 简单的四则混合运算
- 3 -
第二章 程序设计相关基础知识介绍
2.1 书写程序时应注意的相关事项
由于考虑清晰,利于阅读,理等方面问题,在书写程序时英遵循以下
: 1. 每个说明,语句各占一行;
2. {}符号或if,while语句,单独一行,{}符号并与第一个字母对齐; 3. 书写过程注意保存,防止失误丢失信息;
4. 做到以上规则,可更大确保编程过程中的顺利进行
2.2 基本类型的分类及特点
类 型 说 明 符 整型 int 字符型 char
正弦运算符 +
负号运算符 -
圆括号 ()
数组元素下表 []
乘法.除法.整数 * ,/ , %
2.3 结构简介
从程序流程分析来看,程序可分为基本的三种顺序结构,分支结构,循环结构。
2.3.1顺序程序设计
C程序的执行部分是由语句组成的。程序的功能也是由执行语句实现的。
C语句可以分为以下五种:
1. 表达式语句:表达式语句由表达式加上分号“;”组成。
其一般形式为:
表达式;
执行表达式语句就是计算表达式的值。
- 4 -
例如:
x=y+z; 赋值语句;
y+z; 加法运算语句,但计算结果不能保留,无实际意义;
i++; 自增1语句,i值曾1。
2(函数调用语句:由函数名,实际参数加上分号“;”组成。
其一般形式为:
函数名(实际参数表);
执行函数语句就是调用函数体并把实际参数赋予函数定义中的形式参数,然后执行被调用函数体中的语句,求取函数值。
例如:
Printf(“C Program”);
调用库函数,输出字符串。
3. 控制语句:控制语句用于控制程序的流程,以实现程序的各种结构方式
它们有特定的语句定义符组成。C语言有九种控制语句。 可分成以下三
类:
1) 条件判断语句:if语句,switch语句;
) 循环执行语句:do while语句,while语句,for 语句; 2
3) 转向语句 :break语句,goto语句,continue语句,return语句。
4. 复合语句 :把多个语句用{}括起来组成一个语句称复合语句。
在程序中应把复合语句看成是单条语句,而不是多条语句。
例如:
{
x=y+z;
a=b+c;
printf(“%d%d”,x,a);
}
是一条复合语句。
复合语句内的各条语句都必须以分号“;”结尾,在括号“}”外不能加分
号。
2.3.2分支程序设计
1. 本程序中有以下关系运算符:
1)+ 加法符号
2)- 减法符号
3)* 乘法符号
4)/ 除法符号
5)= 等号
- 5 -
2. 关系表达式
关系表达式的一般形式为:
表达式 关系运算符 表达式
例如:
a+b=c
b-c=a
a*b=c
b/c=a
都是合法的关系表达式。
3(if 语句
用if语句可以构成分支结构。它根据给定的条件进行判断,已决定执行某个
分支程序段。
if语句的三种形式
(1) 第一种形式为基本形式:if
if(表达式)
语句;
其语义是:如果表达式的值为真,则执行其后的语句,否则不执行该语句。
(2) 第二种形式为:if-else
if (表达式)
语句1;
else
语句2;
其语义是:如果表达式的值为真,则执行语句1,否则执行语句2。
2.3.3循环程序设计
循环结构是程序中一种很重要的结构,其特点是,在给定条件成立时,反复
执行某程序段,直到条件不成立为止。
1)用goto语句和if语句构成循环;
2)用while语句
3)用do-while语句;
4) 用for语句
- 6 -
第三章 软件设计流程图
3.1主函数流程图
开 始
初 始 化 程 序
显 示 程 序 信 息
等 待 数 据 输 入
显 示 输 入 数 据
标 定 字 符 数 组 位 置
进 行 数 据 转 化
进 行 数 据 运 行,输 出 结 果
按 enter 键 继 续
- 7 -
特点:
1) 主程序一开始就进入一个循环,用do语句实现,这样就可以连续式最开始
值为初始值,进行下一次运算,而不会受上一次数据影响。 2) 把程序模板化,把输入输出语句放在子程序中,在主函数中调用使程序清晰
明了,不至于太多的重复,方便分析。
3.2数据输出子程序流程图
对变量初始化
Inputtime!=0
存入数据a ,b
标定数据位置
输入数据进行运算
Enter继续运算 #跳出运算程序
- 8 -
特点:
四则云算可连续计算,结束晕算按#键,即可,继续按enter键。
3.3电子计算器的输出程序 程序如下:
void main()
{
char s[20];
char endflag;
int i;
int weiflag;
int flag;
int a,b;
do
{
for(i=0;i<20;i++)
{
s[i]=0;
}
i=0;
weiflag=0;
flag=0;
a=0;
b=0;
endflag=0;
printf("%s","please putin a number:");
while(s[i]!='\n')
{
i++;
scanf("%c",&s[i]);
}
- 9 -
for(weiflag=1;s[weiflag]!='\n';weiflag++)
{
if(s[weiflag]=='+')
{
flag=1;
break;
}
else if(s[weiflag]=='-')
{
flag=2;
break;
}
else if(s[weiflag]=='*')
{
flag=3;
break;
}
else if(s[weiflag]=='/')
{
flag=4;
break;
}
}
for(i=1;i