當前位置:首頁 » 編程語言 » 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');
/*循環條件語句*/
}

熱點內容
存儲卡交流 發布:2025-01-13 07:16:06 瀏覽:982
php字元串浮點數 發布:2025-01-13 07:15:28 瀏覽:997
python排序cmp 發布:2025-01-13 07:09:04 瀏覽:71
雲腳本精靈 發布:2025-01-13 07:03:27 瀏覽:617
高維訪問 發布:2025-01-13 07:03:23 瀏覽:974
保衛蘿卜有腳本嗎 發布:2025-01-13 06:30:29 瀏覽:741
天貓上傳 發布:2025-01-13 06:06:35 瀏覽:156
php處理並發 發布:2025-01-13 06:03:44 瀏覽:282
安卓傳文件的軟體哪個最好 發布:2025-01-13 06:03:07 瀏覽:885
電腦伺服器可以做嗎 發布:2025-01-13 05:59:49 瀏覽:846