c语言版计算器实验报告

时间:2019-05-15 12:55:15下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《c语言版计算器实验报告》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《c语言版计算器实验报告》。

第一篇:c语言版计算器实验报告

计算器实验报告

班级: 07计本(1)班

姓名: 王林

学号: 20706031047

指导老师: 韩静

一、需求分析

(1)制作一个计算器界面工程,有数字运算符等键,输入表达式后,按等号键输入结

束,并显示出正确的结果。

(2)程序能根据运算符的高低进行运算

(3)可以输入括号

二、设计思路

(1)用工程建立一个字符串的类结构,并用编辑框输入相应的数字和字符,并且

输入的字符用字符串逐个接受,当输入为’=’的时候,用‘#‘做最后一个输入。

(2)开始对所输入的字符串进行运算和操作,显示在工程中的编辑框内。

(3)如果结束则关闭,如果再次进行运算则进行清零。

三、主程序段

char Precede(char a,char b)//判断优先级的函数 {

switch(a)

{

case'+':{if(b=='*'||b=='/'||b=='(')return('<');

else return('>');

}

case'-':{if(b=='*'||b=='/'||b=='(')return('<');

else return('>');

}

case'*':{if(b=='(')return('<');

else return('>');

}

case'/':{if(b=='(')return('<');

else return('>');

}

case'(':{if(b==')')return('=');

else if(b=='#')return('0');

else return('<');

}

case')':{if(b=='(')return('0');

else return('>');

}

case'#':{if(b==')')return('0');

else if(b=='#')return('=');

else return('<');

}

}

}

float Operate(float a,char theta,float b)//计算两个数的结果的函数 {

float z;

switch(theta){

case '+':z=a+b;break;

case '-':z=a-b;break;

case '*':z=a*b;break;

case '/':z=a/b;break;

}

return(z);

}

float Shuhe(SqStack1 &OP,int k,int j)

{

int i,e,n=k;

float sum=0,fe;

while(j!=0)

{

Pop1(OP,e);

fe=float(e);

for(i=1;i<=j;i++)

fe=fe/10;

sum=sum+fe;

j--;

}

while(k!=0)

{

Pop1(OP,e);

for(i=0;i

e=e*10;

sum=sum+e;

k--;

}

return(sum);

}

void CMyDlg::OnButton12()

{

UpdateData(TRUE);

m_ss=m_ss+'#';

SqStack OPTR;

SqStack1 OP;//输入的字符转化为数字的函数//字符型栈的定义//整型型栈的定义

SqStack2 OPND;//浮点型栈的定义int i=0,flag=0,k=0,tag=0,j=0;

float sum,a,b;

char c,x,theta;

InitStack(OPTR);Push(OPTR,'#');

InitStack2(OPND);InitStack1(OP);

c=m_ss[i++];

while(c!='#'||GetTop(OPTR)!='#')

{

if(c=='.')

{

tag=1;c=m_ss[i++];

}

else if(c>='0'&&c<='9')

{

Push1(OP,int(c)-48);

c=m_ss[i++];

if(tag==0)k++;

else j++;

flag=1;

}

else

{

if(flag==1)

{

sum=Shuhe(OP,k,j);

Push2(OPND,sum);

OP.top=OP.base;

k=0;flag=0;j=0;tag=0;

}

switch(Precede(GetTop(OPTR),c))

{

case'<'://栈顶元素优先权低

{

Push(OPTR,c);c=m_ss[i++];

break;}

case'='://脱括号并接收下一个字符

{Pop(OPTR,x);c=m_ss[i++];

break;}

case'>'://退栈并将运算结果入栈

{Pop(OPTR,theta);

Pop2(OPND,b);Pop2(OPND,a);

Push2(OPND,Operate(a,theta,b));

break;}

}

}

}

sum=GetTop2(OPND);

m_ss.Format(“%f”,sum);

UpdateData(FALSE);

}

四、调试分析

(1)当输入“1+2-3=”时,显示结果为“0.000000”,结果正确,置清零。

(2)当输入“2.96*1.85/6.741=”时,显示结果为“0.812342”,结果正确,置清零。

(3)当输入“2.69-19.145=”时,显示结果为“-16.455000”,结果正确,置清零。

(4)当输入“5-7*(5+1.8)=”时,显示结果为“-42.600002”,结果正确,置清零。

(5)当输入“2-/65=”时,显示结果为“1.969231”,结果错误,置清零。

(6)当输入“-6+9=”时,显示结果为“-107374176.000000”,结果错误,置清零。

(7)当输入“0-6+9=”时,显示结果为“3.000000”,结果正确,置清零。

(8)当输入“(2+3)*5-8=”时,显示结果为“17.000000”,结果正确,置清零。

(9)当输入“6*(-3+1)=”时,显示结果为“12.000000”,结果错误,置清零。

(10)当输入“6*(0-3+1)=”时,显示结果为“-12.000000”,结果正确,置清零。

(11)当输入“6*(1-3)=”时,显示结果为“-12.000000”,结果正确,结束。

调试说明以及分析:

1、当输入为正确的格式时,能算出正确的结果,其中包括:小数、整数以及个位以上的数字,且运算符包括:加、减、乘、除运算,还有就是可以加括号等。

2、当输入为错误的格式是,显示的是错误的结果,如(5)中的运算结果就是错误的。

3、若某个数字是负数,如果直接输入,结果是错误的,但如果变为零减去该数字的绝对值的话或者把两数的顺序更改一下,显示的是正确的结果,如

(6)、(7)、(9)、(10)、(11)做的结果。

4、有时候会出现一些不精确的显示结果,如(4)中显示多的是0.000002,这是由于在C语言的定义时,系统所产生的结果,与算法无关。

2008.12.25

第二篇:Android实验格式简易计算器实验报告

实验报告

2013-2014 学年第2学期

课程名称:嵌入式操作系统

实验题目:简易计算器的设计与实现

专业:计算机科学与技术、信息处理(是什么专业,写什么专业)班级:计算本1101(按自己班级填写)

日期填写 2014年4月 8日

实验题目:简易计算器的设计与实现

实验类型:上机实验

一、实验目的及要求

1.掌握线性布局的应用;

2.掌握表格布局的应用;

3.掌握数组的应用;

4.掌握如何Button组件的使用;

5.掌握代码中访问布局组件的方法;

6.掌握特定组件的事件设计方法。

二、实验仪器设备与软件环境

1、电脑。

2、Android集成开发工具adt-bundle。

三、实验过程

1、布局设计

…这部分自己填

2.程序设计

…这部分自己填

第三篇:C语言之计算器软件设计

题目计算器软件设计

一、设计要求

用C语言设计出模拟计算器软件,实现计算器的功能。

二、设计内容

1.基本要求:

(1)图形显示方式,在DOS环境下画出计算器的图形,能够用鼠标实现操作,能够进行简单的数学计算。

2.提高要求:

(1)能够实现键盘和鼠标两种输入方式。

(2)能够保存计算结果。

(3)能够处理括号等运算符。

(4)学生可自动增加新功能模块(视情况可另外加分)。

3.设计报告:

1)写出主要设计思路,图形方式和文本方式的工作原理;

2)画出程序流程图;

3)调试出现的问题及解决方法;

4)提交程序清单。

三、编程重点、难点提示

1.DOS环境下的图形初始化。

2.DOS环境下鼠标的使用方法。1.MOUSE.COM文件; 2.鼠标初始化;

击。

联系方式:谭顺华

电话:6088222,***(V网:61025)

QQ:182986843.数字的显示方法。3.鼠标事件的获取,包括鼠标的位置(X,Y),左键或右件,单击或双

第四篇:c语言实验报告

计算机软件技术基础实验报告

实验一:线性表的排序与查找

一.实验内容

a)键盘输入一组无序数据,添加到线性表中; b)排序线性表并输出排序结果; c)键盘输入一个数,并插入到排好序的线性表中(要求插入后的表仍为有序表),输出结果;

d)键盘输入一个数,并从线性表中删除相应的数据,输出结果。

二,源程序

// Experiment1.cpp : 定义控制台应用程序的入口点。//

#include “stdafx.h” #include “iostream” #include

// 程序实现有各种方法,这里给出一个实例。

// 定义一个线性表

const int nMaxSize = 15;// 最大值 int nLen = 0;

// 表中元素个数 int nLinearList[nMaxSize];

// 定义操作 void LSort();void LOut();void LInsert(int n);void LDelete(int n);

int main(int argc,TCHAR*argv[]){ // 输入数据并放入线性表中

printf(“Please input datan”);// std::cout << “Please input datan”;int nIn = 0;for(int i = 1;i <= 10;i++){

scanf(“%d”,&nIn);// std::cin >> nIn;

nLinearList[i] = nIn;

nLen++;

}

LSort();// 排序线性表 LOut();// 输出结果

printf(“Please input a data to insert n”);scanf(“%d”,&nIn);LInsert(nIn);// 输入一个数字,并插入到线性表中 LOut();

printf(“Please input a data to delete n”);scanf(“%d”,&nIn);LDelete(nIn);// 输入一个数字,并从线性表中删除

LOut();

char chTmp;printf(“Please input a char to finish this program.”);chTmp = getch();return 0;}

void LSort()

// 冒泡排序,由大到小 { int j,F,k,M;

F=nLen;while(F>0)

{k=F-1;F=0;for(j=1;j<=k;j++){if(nLinearList[j]

M=nLinearList[j];nLinearList[j]=nLinearList[j+1];nLinearList[j+1]=M;F=j;

}}}

}

void LOut(){ printf(“n”);for(int i = 1;i <= nLen;i++){

printf(“%d, ”, nLinearList[i]);} printf(“n”);} void LInsert(int n){ int i,j;i=1;while(i=i;j--)nLinearList[j+1]=nLinearList[j];nLinearList[i]=n;break;} i++;} } void LDelete(int n){ int i,j;for(i=1;i<=nLen;i++){if(nLinearList[i]==n){for(j=i;j<=(nLen-1);j++)nLinearList[j]=nLinearList[j+1];nLen--;break;}}}

运行结果

实验2:栈与队列的应用

一. 实验内容

a)键盘输入算数表达式,并放入队列当中; b)应用栈的概念设计表达式求值算法;

输出表达式求值结果 二.源程序

// Experiment2.cpp : 定义控制台应用程序的入口点。

#include “stdio.h” #include #include #include

// 程序实现有各种方法,这里给出一个实例。

const int MAX_LEN = 10;// 字符串的长度 const int MAX_SIZE = 30;// 栈或队的最大元素个数

// 定义一个队列的结构 struct QUEUE { int nMaxSize;// 最大值

int nCount;// 个数

int nFront;// 头

int nRear;// 尾

char szQueue[MAX_SIZE][MAX_LEN];};

//定义一个栈的结构 struct STACK { int nMaxSize;// 最大值

int nTop;// 栈顶

char szStack[MAX_SIZE][MAX_LEN];};

// 队列的操作

void InitQueue(QUEUE *q,int nMaxSize){ q->nMaxSize=nMaxSize;q->nCount=0;q->nFront=0;q->nRear=0;q->szQueue[MAX_SIZE][MAX_LEN]=0;} void InQueue(QUEUE *q, char *pItem){ if(q->nCount==q->nMaxSize){

printf(“The Queue is full!n”);

return;} strcpy(q->szQueue[q->nRear],pItem);if(q->nRear++==MAX_SIZE)q->nRear=0;q->nCount++;} void OutQueue(QUEUE *q, char *pItem){ if(q->nCount==0){

printf(“The Queue is empty!n”);

return;} strcpy(pItem,q->szQueue[q->nFront]);if(q->nFront++==MAX_SIZE)q->nFront=0;q->nCount--;}

//栈的操作

void InitStack(STACK *s,int nMaxSize){

s->nMaxSize=nMaxSize;

s->nTop=0;

s->szStack[MAX_SIZE][MAX_LEN]=0;} void PushStack(STACK *s, char *pItem){ char *p;if(s->nTopnMaxSize){

p=s->szStack[s->nTop];

strcpy(p,pItem);

s->nTop++;} else { printf(“The stack overflow!n”);return;} } void PopStack(STACK *s, char *pItem){ char *p;if(s->nTop==0){

printf(“stack is empty!n”);

return;} else {

p=s->szStack[--s->nTop];

strcpy(pItem,p);} } void GetTopStack(STACK *s, char *pItem){ char *p;char a[10]={0};if(s->nTop==0){

a[0]=';';

strcpy(pItem,a);} else {

p=s->szStack[s->nTop-1];

strcpy(pItem,p);} }

//字符判断 int isdigit(char x){ if(x>='0'&&x<='9')return 1;return 0;}

int Priority(char *op);// 获得操作符的优先级 void Compute(char *num1, char *num2, char *op, char *chResult);//主函数 void main(){

// 计算表达式的值

char x[MAX_LEN];

// 扫描的表达式

char op[MAX_LEN];

// 栈顶运算符

char num1[MAX_LEN], num2[MAX_LEN];

// 两个操作数

char chResult[MAX_LEN];

// 运算结果 // ***声明一个队列

struct QUEUE q1;

struct QUEUE *q;// ***声明OS栈和NS栈

struct STACK OS;

struct STACK NS;

struct STACK *o;

struct STACK *n;

int i=0;

int j=0;

int k=0;//****初始化

q=&q1;

o=&OS;

n=&NS;

InitStack(o,20);

InitStack(n,20);

InitQueue(q,20);

printf(“please input the expression end with //录入表达式 do

{

printf(”nextn“);

scanf(”%s“,x);

InQueue(q,x);}

while(x[0]!=';');printf(”expression n“);while(true){

if(q->nCount!=0)

{

OutQueue(q, x);

printf(”%s“,x);

}

”;n“);

if(isdigit(x[0]))

PushStack(n,x);

else

{

// 是数

// 认为是运算符,没有考虑空格等

GetTopStack(o,op);// 获得OS栈顶运算符 if(x[0] == ';' && op[0] == ';')

// 扫描结束 {

printf(”n result is “);break;} if(Priority(x)> Priority(op)){ PushStack(o,x);continue;}

// 运算符的优先级〉栈顶运算符

while((Priority(x)<= Priority(op))&&Priority(op))

{

PopStack(n,num1);

PopStack(n,num2);

PopStack(o,op);

Compute(num2,num1,op,chResult);

PushStack(n,chResult);

GetTopStack(o,op);

}

PushStack(o,x);

}

} PopStack(n,chResult);printf(”%sn“,chResult);}

int Priority(char *op){ int nPriority = 0;

switch(op[0]){ case '^':

nPriority = 3;

break;case '*': case '/':

nPriority = 2;

break;case '+':

// 不大于栈顶运算符

case '-':

nPriority = 1;

break;case ';':

nPriority = 0;} return nPriority;} void Compute(char *num1, char *num2, char *op, char *chResult){ double fNum1,fNum2;double fResult = 0;fNum1 = atof(num1);fNum2 = atof(num2);switch(op[0]){ case '^':

fResult = pow(fNum1,fNum2);

break;case '*':

fResult = fNum1*fNum2;

break;case '/':

fResult = fNum1/fNum2;

break;case '+':

fResult = fNum1+fNum2;

break;case '-':

fResult = fNum1-fNum2;

break;}

} sprintf(chResult,”%.4f",fResult);//把计算的结果转化为字符串 return;三.运行结果

实验三:关系数据语言的应用

一、实验内容

查询学生出生日期(Sno, Sname, BirthDay);按学号顺序查询一个班级的所有学生(Class, Sname);列出学生选择各门课程的成绩(Sname, Cname, Grade);列出有过不及格成绩的学生名单(Sno, Sname, Class);求学生的平均成绩和总成绩(Sname, PJCJ, ZCJ);查找各科成绩都 >= 85 分的学生(Sname, Class);将课程号为“01”的课程名称修改为“软件技术”;修改一名学生的姓名、性别、年龄;将成绩为55~59分的男生的成绩修改为60分;删除90年以后、80年以前出生的学生的所有信息(包括选课和成绩);删除一个班级的所有学生;删除所有数据表和数据库。

程序清单及结果: CREATE TABLE Stu(Sno CHAR(4)PRIMARY KEY, Sname CHAR(10), Sex CHAR(2), Age NUMERIC, BirthDay DATETIME, Class CHAR(10),);CREATE TABLE Course(Cno CHAR(2)PRIMARY KEY, Cname CHAR(10), Chour NUMERIC,);CREATE TABLE Score(Sno CHAR(4), Cno CHAR(2), PRIMARY KEY(Sno,Cno), Grade NUMERIC,)Insert into Stu(Sno,Sname,Sex,Age,BirthDay,Class)values('3626','张小唯','女','18','1995-09-24','电科1202');Insert into Stu(Sno,Sname,Sex,Age,BirthDay,Class)values('3628','王红','女','19','1994-06-27','电科1202');Insert into Stu(Sno,Sname,Sex,Age,BirthDay,Class)values('3634','李雷','男','20','1992-11-30','电科1202');Insert into Stu(Sno,Sname,Sex,Age,BirthDay,Class)values('3635','张明','男','18','1994-06-03','电科1202');Insert into Stu(Sno,Sname,Sex,Age,BirthDay,Class)values('3641','赵小东','男','20','1993-03-15','电科1202');

Insert into Course(Cno,Cname,Chour)values('01','asdf','12');Insert into Course(Cno,Cname,Chour)values('02','qwer','23');Insert into Course(Cno,Cname,Chour)values('03','zxcv','34'

Insert into Score(Sno,Cno,Grade)values('3570','01','97');Insert into Score(Sno,Cno,Grade)values('3580','01','54');Insert into Score(Sno,Cno,Grade)values('3584','01','56');Insert into Score(Sno,Cno,Grade)values('3583','01','88');Insert into Score(Sno,Cno,Grade)values('3574','02','87');Insert into Score(Sno,Cno,Grade)values('3575','03','79');Insert into Score(Sno,Cno,Grade)values('3576','02','68');Insert into Score(Sno,Cno,Grade)values('3577','03','58');Insert into Score(Sno,Cno,Grade)Values('3578','03','98');Insert into Score(Sno,Cno,Grade)values('3626','01','97');Insert into Score(Sno,Cno,Grade)values('3628','01','54');Insert into Score(Sno,Cno,Grade)values('3637','01','56');Insert into Score(Sno,Cno,Grade)values('3640','01','88');Insert into Score(Sno,Cno,Grade)values('3657','02','87');Insert into Score(Sno,Cno,Grade)values('3675','03','79');Insert into Score(Sno,Cno,Grade)values('3676','02','68');Insert into Score(Sno,Cno,Grade)values('3677','03','58');Insert into Score(Sno,Cno,Grade)Values('3678','03','98');

1.查询学生出生日期(Sno, Sname, BirthDay); Select Sno,Sname,BirthDay from Stu;

2.按学号顺序查询一个班级的所有学生(Class, Sname);

Select Class,Sname from Stu order by Sno;

3.列出学生选择各门课程的成绩(Sname, Cname, Grade); Select Sname,Cname,Grade from Stu,Course,Score

where Stu.Sno=Score.Sno and

Course.Cno=Score.Cno;

4.列出有过不及格成绩的学生名单(Sno, Sname, Class);Select distinct Stu.Sno,Sname,Class from Stu,Score where Stu.Sno=Score.Sno and

Grade<60;

5.求学生的平均成绩和总成绩(Sname, PJCJ, ZCJ);

Select Sname,avg(Grade)PJCJ,sum(Grade)ZCJ from Stu,Score where Score.Sno=Stu.Sno group by Stu.Sname;

6.查找各科成绩都 >= 85 分的学生(Sname, Class);

Select Sname,Class from Stu where exists(Select * from Score where Stu.Sno=Score.Sno and Score.Cno='01' and Score.Grade>=85)and exists(Select * from Score where Stu.Sno=Score.Sno and Score.Cno='02' and Score.Grade>=85)and exists(Select * from Score where Stu.Sno=Score.Sno and Score.Cno='03' and Score.Grade>=85);

7.将课程号为“01”的课程名称修改为“软件技术” Update Course set Cname='软件技术' where Cno='01';

8.修改一名学生的姓名、性别、年龄;

Update Stu set Sname='aha',Sex='wm',age='10'where Sno='3626';

9.将成绩为55~59分的男生的成绩修改为60分

Update Score set Grade=60 where Sno in(Select Sno from Stu where Sex='女')and Grade between 55 and 59;

10.删除90年以后、80年以前出生的学生的所有信息(包括选课和成绩)Delete Stu where Sno in(select Sno from Stu where BirthDay < '1980-01-01' or BirthDay>'1990-12-31')

11.删除一个班级的所有学生

Delete from Stu where Class='电科1202';

12.删除所有数据表和数据库 Drop database MyDB;

第五篇:c语言实验报告

南昌大学实验报告

学生姓名: 学 号: 专业班级:

√ 综合 □ 设计 □ 创新 实验日期: 实验成绩: 实验类型:□ 验证 □一.实验名称

实验3 控制语句

二.实验目的

1.熟练掌握if、if…else、if……elseif语句和switch语句格式及使用方法,掌握if语句中的嵌套关系和匹配原则,利用if语句和switch语句实现分支选择结构。

2.熟练掌握while语句、do……while语句和for语句格式及使用方法,掌握三种循环控制语句的循环过程以及循环结构的嵌套,利用循环语句实现循环结构。

3.掌握简单、常用的算法,并在编程过程中体验各种算法的编程技巧。进一步学习调试程序,掌握语法错误和逻辑错误的检查方法。

三.实验内容

1. 选择结构程序设计; 2. if语句的使用;

3. 使用switch语句实现多分支选择结构; 4. 三种循环语句的应用; 5. 循环结构的嵌套;

6. break和continue语句的使用。

三.实验环境

PC微机

DOS操作系统或 Windows 操作系统 Visual c++程序集成环境

四.实验内容和步骤

本实验要求事先编好解决下面问题的程序,然后上机输入程序并调试运行程序。学会单步调试和断点调试程序及变量跟踪方法。

1. 任意输入4个整数,要求按由小到大的顺序输出。

2.编程实现:输入一个整数,将其数值按照①小于10,②10~99,③100~999,④1000以上四个类别分类并显示。

要求:(1)将变量定义为整型。

(2)输入整数前,利用puts()/printf()给出提示信息。

(3)输出结果时要有必要的说明,例如:输入358时,显示358 is 100 to 999。(4)该程序利用if语句实现。

运行程序,分别输入9,21,321,4321数据检查输出信息的正确性。

3.编写程序:根据公式

261111......,输出 π的值。

122232n2要求:

(1)变量π为单精度类型,n为整型;

(2)计算当n的取值分别为20,50,100,200时的π值,说明什么问题?

(3)修改程序,不给出n值,而改为求π值,直到最后一项的数值小于10-4 为止。

(4)对修改后的程序,输出π值以及总的项数n。输出格式为:π=值;n=值。

4.从键盘输入一个0~1000之间的任意整数,输出该整数的所有因子(例如:输入12,其因子为1,2,3,4,6,12)。

要求:

(1)采用while循环语句实现。

(2)输出格式为:Input:12 Output:1,2,3,4,6,12 5.从键盘输入学生的考试成绩,利用计算机将学生的成绩划分等级并输出。学生的成绩可分成5个等级,90-100分为A级,80-89分为B级,70-79分为C级,60-69分为D级,0-59分为E级。要求在输入负数时,给出错误提示。

① 事先编好程序,要求分别用if语句和switch语句实现。运行程序,并检查结果是否正确。

② 再运行一次程序,输入分数为负值(如-70),这显然是输入时出错,不应给出等级。修改程序,使之能正确处理任何数据。当输入数据大于100或小于0时,通知用户“输入数据错”,程序结束 6.某航空公司规定:在旅游旺季7~9月份,如果订票20张及其以上,优惠票价的10%,20张以下,优惠5%;在旅游淡季1~6月份,10~12月份,订票20张及其以上,优惠票价的20%,20张以下,优惠10%。编写一个C程序,根据月份和旅客订票张数决定优惠率。已知机票单价,请算出旅客的总付款。请使用不同的测试数据进行测试。7.计算并输出1000以内最大的10个素数以及它们的和。

要求:

(1)在程序内部加必要的注释。

(2)由于偶数不是素数,可以不考虑对偶数的处理。

(3)虽然在1000以内的素数超过10个,但是要对1000以内不够10个素数的情况进行处理。

(4)输出形式为:素数1+素数2+素数+…+素数10 = 总和值。

五.实验数据及处理结果

/*写出实验内容的算法(用流程图表示)、完整的程序、结果并能对结果的正确性及上机时产生的问题进行分析,注意程序变量命名应见名知意、有适当的注释,程序书写规范*/ 【习题1】

【设计思路】 :输入a,b,c,d四个数,将四个数两两进行比较,如果前者大于后者,则将两数的值交换,否则不变。这样重复操作6次,最后输出a,b,c,d的值,则a,b,c,d从大到小排列。

【数据输入】输入整型变量 a,b,c,d 【数据输出】输出 a,b,c,d的值,使其从大到小排列。【源程序实现】

#include main(){

int a,b,c,d,t;printf(“please input four numbers(example:1 2 3 4):n”);scanf(“%d %d %d %d”,&a,&b,&c,&d);if(a>b){t=a;a=b;b=t;}/* 实现a,b的交换 */ if(a>c){t=a;a=c;c=t;}/* 实现a,c的交换 */ if(a>d)

} {t=a;a=d;d=t;}/* 实现a,d的交换 */ if(b>c){t=b;b=c;c=t;}/* 实现b,c的交换 */ if(b>d){t=b;b=d;d=t;}/* 实现b,d的交换 */ if(c>d){t=c;c=d;d=t;}/* 实现c,d的交换 */ printf(“%d,%d,%d,%d”,a,b,c,d);【结果及截图】

答:输入64 3 5 23,运行结果为3,5,23,64,其截图如下:

输入格式的提示。

【修改后程序实现及结果】 /*习题2、4请添加此步*/

【问题分析】 输入数据时,没有按正确格式输入,所以在输入数据之前,应该给出一个【习题2】

【设计思路】

【数据输入】 输入整型变量x。【数据输出】 输出x的范围。【源程序实现】

#include

main()

{

int x;

printf(“Please input a number:n”);

scanf(“%d”,&x);

printf(“%d is ”,x);

if(x<10)printf(“less than 10n”);

else if(x<100)printf(“10 to 99n”);

else if(x<1000)printf(“100 to 999n”);

else printf(“more than 1000n”);

return 0;

}

【结果及截图】

答:运行程序,分别输入9,21,321,4321,截图如下:

【习题3】

【源程序实现】

#include

#include

main()

{

int n,N;

float pi,sum=0;

printf(“Please input a number:nN=”);

scanf(“%d”,&N);

for(n=1;n<=N;n++)

sum+=1.0/(n*n);

pi=sqrt(6*sum);

printf(“pi=%f”,pi);

return 0;} 修改后的程序: #include #include main(){

int n=0;

float pi,sum=0;

do

{

n++;

sum+=1.0/(n*n);

}while(1.0/(n*n)>=1e-4);

pi=sqrt(6*sum);

printf(“pi=%f;n=%d”,pi,n);

return 0;}

【结果i及截图】

答:计算当N的取值分别为20,50,100,200时,截图如下:

【结果ii及截图】

【习题4】

【源程序实现】

#include main(){ int num,i=2;printf(“Input:”);scanf(“%d”,&num);printf(“Output: 1”);/*第一个因式为 1*/ while(i<1000){ if(num%i==0)printf(“,%d”,i);i++;} return 0;}

【结果及截图】

答:输入30,得其因式为 1,2,3,5,6,10,15,30,截图如下:

【习题5】

【源程序实现】

If 语句

#include main(){

int num;

printf(“Input:”);

scanf(“%d”,&num);

if(num<0||num>100)printf(“The number is wrong!”);

else if(num<=59)printf(“E”);

else if(num<=69)printf(“D”);

else if(num<=79)printf(“C”);

else if(num<=89)printf(“B”);

else printf(“A”);

return 0;}

Switch 语句

#include main(){

int num,n;

printf(“Input:”);

scanf(“%d”,&num);

n=num/10;

switch(n)

{

case 0:

case 1:

case 2:

case 3:

case 4:

case 5: printf(“E”);break;

case 6: printf(“D”);break;

case 7: printf(“C”);break;

case 8: printf(“B”);break;

case 9:

case 10: printf(“A”);break;

default: printf(“error!”);

}

return 0;}

【问题分析】

【习题6】

【源程序实现】

#include main(){ int month,num;float price,cost;printf(“month=”);scanf(“%d”,&month);printf(“nprice=”);scanf(“%f”,&price);printf(“nnum=”);scanf(“%d”,&num);if(month>=7&&month<=9){if(num>=20)cost=price*0.9*num;else cost=price*0.95*num;} if((month>=1&&month<=6)||(month>=11&&month<=12)){if(num>=20)cost=price*0.8*num;else cost=price*0.9*num;} printf(“cost=%f”,cost);}

【习题7】

【源程序实现】

#include #include void main(){ int num,i,sum=0,count=0;for(num=999;count!=10;num-=2){for(i=2;i=sqrt(num)){count++;sum+=num;printf(“%d+”,num);} } printf(“b=%d”,sum);} 【结果及截图】

六.简答题

七、实验总结及体会

下载c语言版计算器实验报告word格式文档
下载c语言版计算器实验报告.doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
点此处下载文档

文档为doc格式


声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。

相关范文推荐

    C语言 实验报告

    C语言程序设计(B) (2010-2011-2) 实验报告 教学班级: 学号: 姓名: 课程教师: 实验辅导教师: 江西理工大学自由编辑的程序 一、实验前的源程序: //任意整数的叠加 #include void main......

    C语言实验报告

    C语言程序设计(B) (2010-2011-2) 实验报告 教学班级: 学号: 姓名:课程教师:王华金 实验辅导教师:王华金 江西理工大学1 P123--五、1、编写函数,找出5*5数组对角线上元素的最小值,并在......

    c语言实验报告

    实验一 熟悉C语言程序的运行环境 一、实验目的 1、了解在该系统上如何编辑、编译、连接和运行一个C 程序; 2、通过运行简单的C程序,初步了解C程序的特点。 二、实验预习1、......

    C语言实验报告

    C语言程序设计(B) (2010-2011-2) 实验报告2 教学班级: 学号: 姓名:课程教师: 实验辅导教师: 一、做一个“杨辉三角” 实验前的源程序: /*杨辉三角*/ #include void fun(int Y[][]......

    C语言实验报告

    C语言程序设计实验 --------指针应用实验 ========================山东农业大学实验报告 课程名称: c语言程序设计实验 学院: 水利土木工程学院 专业: 道路桥梁与渡河工程......

    C语言实验报告

    郑州轻工业学院 实 践 报 告 实现内容: OJ1123最佳校友(数组)、OJ1158又是升序(指针)、OJ1180成绩统计(结构)、OJ1203做幻方(文件) 学号:541507020140 学生姓名:王红旭 专业班级:电子信......

    C语言实验报告

    实验一 C程序的运行环境和方法 一、实验目的 1.了解所用的计算机系统。 2.了解在该系统上如何进行编辑、编译、连接和运行一个C程序。 3.通过运行简单的C程序了解C程序的特点。 二......

    C语言实验报告

    实验一 C程序的运行环境和运行C程序的办法 1. 实验目的 (1)了解所用的计算机系统的基本操作方法,学会独立使用该系统。 (2)了解在该系统上如何编辑、编译、连接和运行一个C程......