.
.
学号
2013
2013-2014学年 第二学期
《高级语言程序设计》
课程设计报告
题目:
简单计算器
专业:
数字媒体技术
班级:
13级1班
姓名:
邢洪波
指导教师:
王辉
成绩:
计算机与信息工程系
二0一四年二月二十日
设计内容及要求
1.1 利用本学期所学的《C语言程序设计》课程,运用相关知识,查阅相关资料,编写C语言程序,设计一个简单计算器,要求编写的简单计算器能够模拟windows系统的计算器,用户能够用键盘输入相关数据,能够进行简单的加、减、乘、除运算,并且在程序运行过程中能够正常的退出程序。?
在计算器程序运行中,输入数据时如果遇到输入错误的情况,能够能过键盘上的退格键进行删除,并且重新输入正确的数据。在数据输入完成后,如果需要放弃本次计算操作,可以利用程序中设置好的按键进行清零,并为下一次运算作准备。
1.2 运用相关知识,查阅相关资料,编写一个简单的计算器,能够实现简单的基本的加减乘除运算,在计算器工作时用户能利用键盘或鼠标进行相应操作。程序基本功能要求实现完整,并有简单的验证。程序还须有符合标准的程序设计报告。
概要设计
2.1系统流程图
输入第一个操作数
输入第一个操作数
加法
减法
乘法
除法
清零
开方
乘方
显示结果
输入第二个操作数
结束
开始
2.1 系统流程图
2.2主要功能表
2.2 主要功能表
序号
文件名
主要功能
备注
1
+
加法
两个操作数
2
—
减法
两个操作数
3
*
乘法
两个操作数
4
/
除法
两个操作数
5
#
开方
一个操作数
6
^
乘方
两个操作数
7
Enter
等于
8
Tab
清零
9
q
退出
设计过程或程序代码
#include
#include
#include /*malloc的头文件代表在内存中开辟存储空间*/
double jisuan(char a[])
{
int i=1,j,k,m,cnt=0,t1=0,t2=0,t3=0; /*定义整型变量i,j,k,m,n,cnt,t1,t2,t3*/
char nibo[50],zhan2[50]; /*定义字符型数组*/
double x,n,l,z=0,zhan3[50]; /*定义双精度变量x,n,l,z,zhan3[50]*/
typedef struct /*表示可以用con定义结构体变量*/
{
double d1;
int d2;
}dd;
typedef struct
{
dd data[50];
int top;
}zhan1;
zhan1 *shu; /*定义指针变量*/
shu=(zhan1 *)malloc(sizeof(zhan1));
shu->top=0;
while(a[i]!='\0') /*外循环是用while语句*/
{
if(a[i]>='0'&&a[i]<='9') /*内循环使用if-else语句*/
{
z=0;
j=i+1;
while(a[j]>='0'&&a[j]<='9') /*内循环使用各种循环语句的嵌套*/
{j++;}
j--;
for(k=i;k<=j;k++)
{
z=z*10+a[k]-'0';
}
j=j+1;
x=z;
if(a[j]=='.')
{
l=1;
i=j+1;
j=i+1;
while(a[j]>='0'&&a[j]<='9') /*内循环使用各种循