当前位置:首页 » 编程语言 » c语言计算器报告

c语言计算器报告

发布时间: 2022-09-08 21:09:49

c语言集中上机报告. 用C语言写个简单的计算器程序或者模拟时钟. 计算器就是类windows的计算器

写好了

不能算小数,根据你的题意来的,如果输入小数,则只取整数部分运算,结果不能为负数

#include

❷ 大一c语言编程实现计算器功能实验报告

#include"stdio.h"
intmain()
{
inta,b,c;
do
{
system("cls");
printf("计算器菜单 ");
printf("======================== ");
printf("1:计算a+b ");
printf("2:计算a-b ");
printf("3:计算a*b ");
printf("4:计算a/b ");
printf("5:计算a%b ");
printf("0:退出 ");
printf("请选择(0-5):");
scanf("%d",&c);
if(c!=0)
{
printf("请输入a:");
scanf("%d",&a);
printf("请输入b:");
scanf("%d",&b);
switch(c)
{
case1:printf("a+b=%d",a+b);break;
case2:printf("a-b=%d",a-b);break;
case3:printf("a*b=%d",a*b);break;
case4:printf("a/b=%d",a/b);break;
case5:printf("a%b=%d",a%b);break;
default:break;
}
printf(" 按任意键继续......");
getch();
}
}
while(c!=0);
return0;
}

❸ 怎么写计算器设计报告

目 录
1 前言 2
2 需求分析 2
2.1要求 2
2.2任务 2
2.3运行环境 2
2.4开发工具 2
3 概要设计 2
3.1系统流程图 3
3.2查询函数流程图 4
4 详细设计 6
4.1分析和设计 6
4.2具体代码实现 6
4.3程序运行结果 14
5 课程设计总结 14
参考文献 15
致 谢 15
1 前言
编写一个程序来实现算术计算器.通过结构体数组和共用体数组来存放输入的每一数字或运算符号的记录(包括1、2、3等数字,+、--、*、等运算符号),然后将其信息存入文件中.输入一个算术计算式,就在屏幕上显示结果.
2 需求分析
2.1要求
(1)用C语言实现程序设计;
(2)利用结构体、共用体进行相关信息处理;
(3)画出查询模块的流程图;
(4)系统的各个功能模块要求用函数的形式实现;
(5)界面友好(良好的人机互交),程序要有注释.
2.2任务
(1)定义一个结构体类型数组,输入0~9及+、--、*等符号的信息,将其信息存入文件中;
(2)输入简单的加减乘除算术计算式,并在屏幕上显示计算结果;
(3)画出部分模块的流程图;
(4)编写代码;
(5)程序分析与调试.
2.3运行环境
(1)WINDOWS2000/XP系统
(2)TurboC2.0编译环境
2.4开发工具
C语言
3 概要设计
3.1系统流程图
如图3.1所示.
w
图3.1 系统流程图
3.2查询函数流程图
(1) 边界画线函数流程图
(2)图标按钮设置函数流程图
4 详细设计
4.1分析和设计
(1)在程序的开头部分定义了结构体类型,用来存放按钮信息,使数据能够从键盘上输入.用输入函数input()来输入按键放在button[]数组中.再定义结构体栈:struct_stack() 用于数据的输入和存放.
(2)进而定义了表格窗口函数,窗口画线函数draw_win() 和边界线函数draw_border(),定义out_text_win()输出文本窗口,定义window_xy(32,3); 计算结果窗口.通过这些为形成整个界面提供了大的前提.
(3)接着通过“write_char()”,“active_button()”,“ write_top()”,“out_text_win()”,“get_key()” ,“window_xy()”等一系列的函数,使得计算器的整个外型呈现了出来.再定义了文本光标函数:text_clo()文本光标函数,通过光标移动选定数字并按空格键确定,通过mian()函数来调用各个子函数,最终得到结果.
4.2具体代码实现
源程序代码:
#include"dos.h"
#include"conio.h"
#include"string.h"
#include"stdio.h"
#define normbut_bor 0x80
#define presbut_but 0xb8
#define normnum_but 0x8e
#define presnum_but 0xb9
#define spebut_char 0x2c
#define win_color 0xf2
#define win_char 0xfb
struct s_button /*按键的结构体*/
{ int sx,sy,ex,ey;
char *head;
int press;
}button[17]; /*图表按键数*/
struct stack /*结构体栈*/
{ char s[20];
int tos,top;
}stack;
char tag;
{
if(stack.tos>0)
stack.s[--stack.tos]='\0';
}
draw_win() /*边框画线窗口*/
{
int i;
char far *t;
char *s="This is a simple calculator!"; /*顶端边框输出的字符*/
draw_border(30,0,79,24,win_color); /*边框的位置和颜色*/
i=(79-30-strlen(s))/2+30;
t=vid_mem+i*2;
for(;*s;)
{
*t++=*s++;
*t++=win_color; /*顶端字体颜色*/
}
}
draw_border(int sx,int sy,int ex,int ey,int attrib) /*边界线函数*/
{
char far *t,far *v;
int i;
t=vid_mem;
for(i=sx+1;i

❹ 用C语言做一个计算器,能实现加减乘除混合运算

用C语言编写一个简单的可以进行加减乘除运算混合运算的计算器的方法:

1、打开visual C++ 6.0-文件-新建-文件-C++ Source File;

❺ c语言设计一个简单的计算器程序

#include<stdio.h>//计算器

voidmenu()//自定义的菜单界面

printf("--------------------\n");

printf("请输入你的选择\n");

printf("1.+\n");

printf("2.-\n");

printf("3.*\n");

printf("4./\n");

printf("--------------------\n");

intmain()

inti=0;

intj=0;

intnum=0;//计算结果存放在nun

intselect=0;//选择的选项存放在select

do//do-while先执行再判断循环条件,即可实现重复计算功能

menu();//打印出菜单界面

scanf("%d",&select);//输入你的选项

printf("请输入计算值:");

scanf("%d%d",&i,&j);//输入要计算的数值

switch(select)

case1:

printf("%d+%d=%d\n",i,j,num=i+j);//实现加法功能

break;

case2:

printf("%d-%d=%d\n",i,j,num=i-j);//实现减法功能

break;

case3:

printf("%d*%d=%d\n",i,j,num=i*j);//实现乘法功能

break;

case4:

printf("%d-%d=%d\n",i,j,num=i/j);//实现除法功能

break;

default:

printf("输入有误重新选择");

break;

}while(select);

return0;

运行结果:

(5)c语言计算器报告扩展阅读:

return表示把程序流程从被调函数转向主调函数并把表达式的值带回主调函数,实现函数值的返回,返回时可附带一个返回值,由return后面的参数指定。

return通常是必要的,因为函数调用的时候计算结果通常是通过返回值带出的。如果函数执行不需要返回计算结果,也经常需要返回一个状态码来表示函数执行的顺利与否(-1和0就是最常用的状态码),主调函数可以通过返回值判断被调函数的执行情况。

❻ 用c语言编写计算器

#include <stdio.h>
struct s_node
{
int data;
struct s_node *next;
};
typedef struct s_node s_list;
typedef s_list *link;
link operator=NULL;
link operand=NULL;

link push(link stack,int value)
{
link newnode;

newnode=(link) malloc(sizeof(s_list));
if(!newnode)
{
printf("\nMemory allocation failure!!!");
return NULL;
}
newnode->data=value;
newnode->next=stack;
stack=newnode;
return stack;
}

link pop(link stack,int *value)
{
link top;
if(stack !=NULL)
{
top=stack;
stack=stack->next;
*value=top->data;
free(top);
return stack;
}
else
*value=-1;
}

int empty(link stack)
{
if(stack==NULL)
return 1;
else
return 0;

}

int is_operator(char operator)
{
switch (operator)
{
case '+': case '-': case '*': case '/': return 1;
default:return 0;
}
}

int priority(char operator)
{
switch(operator)
{
case '+': case '-' : return 1;
case '*': case '/' : return 2;
default: return 0;
}
}

int two_result(int operator,int operand1,int operand2)
{
switch(operator)
{
case '+':return(operand2+operand1);
case '-':return(operand2-operand1);
case '*':return(operand2*operand1);
case '/':return(operand2/operand1);
}
}

void main()
{
char expression[50];
int position=0;
int op=0;
int operand1=0;
int operand2=0;
int evaluate=0;

printf("\nPlease input the inorder expression:");
gets(expression);

while(expression[position]!='\0'&&expression[position]!='\n')
{
if(is_operator(expression[position]))
{
if(!empty(operator))
while(priority(expression[position])<= priority(operator->data)&&
!empty(operator))
{
operand=pop(operand,&operand1);
operand=pop(operand,&operand2);
operator=pop(operator,&op);
operand=push(operand,two_result(op,operand1,operand2));
}
operator=push(operator,expression[position]);
}
else
operand=push(operand,expression[position]-48);
position++;
}
while(!empty(operator))
{
operator=pop(operator,&op);
operand=pop(operand,&operand1);
operand=pop(operand,&operand2);

operand=push(operand,two_result(op,operand1,operand2));
}
operand=pop(operand,&evaluate);
printf("The expression [%s] result is '%d' ",expression,evaluate);
getch();
}

❼ 跪求C语言程序设计大作业报告,要计算器的,希望是全套

//实现计算机功能的程序 a program which can work the functions as a computer.
#include <stdio.h>//头文件
#include <conio.h>
void menu();//声明部分
void add();
void sub();
void mul();
void div();
void remain();
void add_n_to_m();
void factor();
main()
{
int i;
while(1)
{
system("cls");//清屏功能
menu();
printf("choose function:");
scanf("%d",&i);
switch(i)
{
case 1:add();getch();break;//调用部分
case 2:sub();getch();break;
case 3:mul();getch();break;
case 4:div();getch();break;
case 5:remain();getch();break;
case 6:add_n_to_m();getch();break;
case 7:factor();getch();break;
case 8: exit(0);break;
}
}
}
//以下是自己定义的函数
void menu()//菜单
{
printf("+====my counter===+\n");
printf("+功能如下: +\n");
printf("+ 1.加法 +\n");
printf("+ 2.减法 +\n");
printf("+ 3.乘法 +\n");
printf("+ 4.除法 +\n");
printf("+ 5.求余 +\n");
printf("+ 6.从n到m的和+\n");
printf("+ 7.阶乘 +\n");
printf("+ 8.退出 +\n");
printf("+=================+\n");
}
void add()//加法运算
{
double a,b;
printf("input two numbers:");
scanf("%lf%lf",&a,&b);
printf("%lf+%lf=%lf\n",a,b,a+b);
}
void sub()//减法运算
{
double a,b;
printf("input two numbers:");
scanf("%lf%lf",&a,&b);
printf("%lf-%lf=%lf\n",a,b,a-b);
}
void mul()//乘法运算
{
double a,b;
printf("input two numbers:");
scanf("%lf%lf",&a,&b);
printf("%lf*%lf=%lf\n",a,b,a*b);
}
void div()//除法运算
{
double a,b;
printf("input two numbers:");
scanf("%lf%lf",&a,&b);
if(b==0)//被除数不能为0
printf("error\n");
else
printf("%lf/%lf=%lf\n",a,b,a/b);
}
void remain()//求余运算
{
int a,b;
printf("input two numbers:");
scanf("%d%d",&a,&b);
if(b==0)//被除数不能为0
printf("error\n");
else
printf("%d%%%d=%d\n",a,b,a%b);
}
void add_n_to_m()//累加
{
int m,n,i=0,s=0;
printf("input n and m:");
scanf("%d%d",&n,&m);
if(n>m) printf("error.\n");//条件限制
else
{
for(i=n;i<=m;i++)
s+=i;
printf("%d+...+%d=%d\n",n,m,s);
}
}
void factor()//阶乘
{
int n,i,s;
printf("input a number:");
scanf("%d",&n);
if(n<=0) printf("error.\n");//条件限制
else
{
for(i=1,s=1;i<=n;i++)
s*=i;
printf("%d!=%d\n",n,s);
}
去网络文库里找能找到。那里有完整的报告。很好用的,我就是从那里下的C语言名片管理系统。课设过了网络地图

❽ 关于c语言计算器的问题

#include<stdio.h>
#include<ctype.h>
#include<stdlib.h>
#include<conio.h>
#include<math.h>

char token[61]; /*存放表达式字符串的数组*/
int n=0;
void error(void) /*报告错误函数*/
{
printf("ERROR!\n");
exit(1);
}

void match(char expected) /*检查字符匹配的函数*/
{
if(token[n]==expected)
token[++n]=getchar();
else error();
}

double term(void); /*计算乘除的函数*/

double factor(void); /*处理括号和数字的函数*/

double power(void); //添加乘方功能

double exp(void) /*计算加减的函数*/
{
double temp=term();
while((token[n]=='+')||(token[n]=='-'))
switch(token[n])
{
case'+':
match('+');
temp+=term();
break;
case'-':
match('-');
temp-=term();
break;
}
return temp;
}
double term(void)
{
double div;
double temp=power();
while((token[n]=='*')||(token[n]=='/'))
switch(token[n])
{
case'*':
match('*');
temp*=power();
break;
case'/':
match('/');
div=power();
if(div==0) /*处理除数为零的情况*/
{
printf("The divisor is zero!\n");
exit(1);
}
temp/=div;
break;
}
return temp;
}
double factor(void)
{
double temp;
char number[61];
int i=0;
if(token[n]=='(')
{
match('(');
temp=exp();
match(')');
}
else if(isdigit(token[n])||token[n]=='.')
{
while(isdigit(token[n])||token[n]=='.') /*将字符串转换为浮点数*/
{
number[i++]=token[n++];
token[n]=getchar();
}
number[i]='\0';
temp=atof(number);
}
return temp;
}

double power(void) //添加乘方功能
{
double temp = factor();
if(token[n] == '^')
{
match('^');
temp = pow(temp, power());
}
return temp;
}

int main()
{
double result;

while(true)
{
FILE *data=fopen("61590_4.dat","at");
if(data==NULL)
data=fopen("61590_4.dat","wt");
if(data==NULL)
return 0;
printf("请输入四则混合运算\n");
token[n]=getchar();
result=exp();
if(token[n]=='\n')
{
token[n]='\0';
printf("%s=%g\n",token,result);
fprintf(data,"%s=%g\n",token,result);
}
else error();
fclose(data);
n=0;
}

return 0;
getch();
}

❾ 用c语言编写一个简单计算器程序

#include<stdio.h>//计算器

voidmenu()//自定义的菜单界面

printf("--------------------\n");

printf("请输入你的选择\n");

printf("1.+\n");

printf("2.-\n");

printf("3.*\n");

printf("4./\n");

printf("--------------------\n");

intmain()

inti=0;

intj=0;

intnum=0;//计算结果存放在nun

intselect=0;//选择的选项存放在select

do//do-while先执行再判断循环条件,即可实现重复计算功能

menu();//打印出菜单界面

scanf("%d",&select);//输入你的选项

printf("请输入计算值:");

scanf("%d%d",&i,&j);//输入要计算的数值

switch(select)

case1:

printf("%d+%d=%d\n",i,j,num=i+j);//实现加法功能

break;

case2:

printf("%d-%d=%d\n",i,j,num=i-j);//实现减法功能

break;

case3:

printf("%d*%d=%d\n",i,j,num=i*j);//实现乘法功能

break;

case4:

printf("%d-%d=%d\n",i,j,num=i/j);//实现除法功能

break;

default:

printf("输入有误重新选择");

break;

}while(select);

return0;

运行结果:

(9)c语言计算器报告扩展阅读:

return表示把程序流程从被调函数转向主调函数并把表达式的值带回主调函数,实现函数值的返回,返回时可附带一个返回值,由return后面的参数指定。

return通常是必要的,因为函数调用的时候计算结果通常是通过返回值带出的。如果函数执行不需要返回计算结果,也经常需要返回一个状态码来表示函数执行的顺利与否(-1和0就是最常用的状态码),主调函数可以通过返回值判断被调函数的执行情况。

❿ 用简单c语言编写计算器

#include"stdio.h"
/*预处理命令*/
void
main()
/*主函数*/
{
double
a,b;
/*双精度实型变量说明*/
char
c,d;
/*变量说明*/
do
/*循环体*/
{
printf("input
a
(-*/)b\n");
/*输入提示*/
scanf("%lf%c%lf",&a,&c,&b);
/*输入算术表达式*/
if(c=='
')
/*判断
*/
printf("=%0.2f",a
b);
/*输出a
b的值*/
else
if(c=='-')
/*判断-*/
printf("=%0.2f",a-b);
/*输出a-b的值*/
else
if(c=='*')
/*判断**/
printf("=%0.2f",a*b);
/*输出a*b的值*/
else
if(c=='/')
/*判断/*/
printf("=%0.3f",a/b);
/*输出a/b*/
else
/*不满足以上条件*/
printf("error");
/*输出错误*/
printf("\n\ninput\n");
/*输入\n*/
scanf("%c",&d);
/*输入符号给d*/
}
/*循环体结束*/
while(d=='\n');
/*循环条件语句*/
}

热点内容
二级c语言技巧 发布:2025-01-13 07:54:37 浏览:2
自动充值脚本 发布:2025-01-13 07:48:02 浏览:19
越容易压缩 发布:2025-01-13 07:37:37 浏览:557
ecstore数据库 发布:2025-01-13 07:29:43 浏览:296
手机设置密码忘记了怎么解开 发布:2025-01-13 07:28:29 浏览:21
存储卡交流 发布:2025-01-13 07:16:06 浏览:984
php字符串浮点数 发布:2025-01-13 07:15:28 浏览:999
python排序cmp 发布:2025-01-13 07:09:04 浏览:73
云脚本精灵 发布:2025-01-13 07:03:27 浏览:619
高维访问 发布:2025-01-13 07:03:23 浏览:976