当前位置:文档之家› c语言 矩阵计算器

c语言 矩阵计算器

c语言 矩阵计算器
c语言 矩阵计算器

#include

#define M 20

#define N 20

float A[M][N]; //定义了含有400个浮点型数组元素的二维数组

float B[M][N];

float C[M][N];

int i,j,m,n,p,q,k;

int main()

{

printf(" ###########################################\n");

printf(" ### 欢迎您使用矩阵计算器系统。###\n");

printf(" ### 系统功能:###\n");

printf(" ### 计算两个矩阵相加,相减; ###\n");

printf(" ### 矩阵相乘;矩阵转置; ###\n");

printf(" ### ###\n");

printf(" #########################################\n\n");

int x;

do{

printf("请选择您需要的运算,若退出则选择0后按回车键结束\n");

printf("******************************************************************\n") ;

printf("0,退出\n");

printf("1,矩阵相加\n");

printf("2,矩阵相减\n");

printf("3,矩阵相乘\n");

printf("4,矩阵转置\n");

printf("******************************************************************\n") ;

scanf("%d",&x);

switch (x)

{

case 0:

printf("谢谢您使用该系统!");

break; //退出系统

case 1: //选择加法运算

{

printf("请输入矩阵A的行数和列数(用逗号隔开):");

scanf("%d,%d",&i,&j);

printf("请输入矩阵B的行数和列数(用逗号隔开):") ;

scanf("%d,%d",&m,&n);

while(i!=m||j!=n)//判断是否满足加法运算条件:既两个矩阵的行、列数是否相等

{

printf("***对不起,您输入的两个矩阵不能相加,两个矩阵的行列数必须相等,请重新输入.***\n\n");

printf("请输入矩阵B的行数和列数(用逗号隔开):") ;

scanf("%d,%d",&m,&n);

}

printf("请输入矩阵A:\n");//输入矩阵A的元素

for(p=0;p

for(q=0;q

scanf("%f",&A[p][q]);

printf("输出矩阵A:\n"); //输出矩阵A

for(p=0;p

for(q=0;q

{

printf("%10.2f",A[p][q]);

if((q+1)%j==0)

printf("\n");

}

printf("请输入矩阵B:\n"); //输入矩阵B的元素

for(p=0;p

for(q=0;q

scanf("%f",&B[p][q]);

printf("输出矩阵B:\n");//输出矩阵B

for(p=0;p

for(q=0;q

{

printf("%10.2f",B[p][q]);

if((q+1)%j==0)

printf("\n");

}

printf("矩阵A+矩阵B为:\n"); //进行两个矩阵相加计算

for(p=0;p

for(q=0;q

C[p][q]=A[p][q]+B[p][q];

for(p=0;p

for(q=0;q

{

printf("%10.2f",C[p][q]);

if((q+1)%j==0)

printf("\n");

}

};break;

case 2: //选择减法运算

{

printf("请输入矩阵A的行数和列数(用逗号隔开):");

scanf("%d,%d",&i,&j);

printf("请输入矩阵B的行数和列数(用逗号隔开):") ;

scanf("%d,%d",&m,&n);

while(i!=m||j!=n) //判定两个矩阵想减的运算条件:矩阵A和B必须同行数同列数

{

printf("***对不起,您输入的两个矩阵不能相减,请重试.***\n\n");

printf("请输入矩阵B的行数和列数(用逗号隔开):") ;

scanf("%d,%d",&m,&n);

}

printf("请输入矩阵A:\n");//输入矩阵A的元素

for(p=0;p

for(q=0;q

scanf("%f",&A[p][q]);

printf("输出矩阵A:\n");//输出矩阵A

for(p=0;p

for(q=0;q

{

printf("%10.2f",A[p][q]);

if((q+1)%j==0)

printf("\n");

}

printf("请输入矩阵B:\n");//输入矩阵B的元素

for(p=0;p

for(q=0;q

scanf("%f",&B[p][q]);

printf("输出第矩阵B:\n");//输出矩阵B

for(p=0;p

for(q=0;q

{

printf("%10.2f",B[p][q]);

if((q+1)%j==0)

printf("\n");

}

printf("矩阵A-矩阵B为:\n"); //计算两个矩阵相减

for(p=0;p

for(q=0;q

C[p][q]=A[p][q]-B[p][q];

for(p=0;p

for(q=0;q

{

printf("%10.2f",C[p][q]);

if((q+1)%j==0)

printf("\n");

}

};break;

case 3://选择乘法运算

{

printf("请输入矩阵A的行数和列数(用逗号隔开):");

scanf("%d,%d",&i,&j);

printf("请输入矩阵B的行数和列数(用逗号隔开):") ;

scanf("%d,%d",&m,&n);

while(j!=m)//判定两个矩阵能否相乘:A的列数必须等于B的行数

{

printf("***对不起,您输入的两个矩阵不能相乘,B矩阵的行数必须和A矩阵的列数相等,请重试.***\n");

printf("请重新输入矩阵B的行数和列数(用逗号隔开):\n") ;

scanf("%d,%d",&m,&n);

}

printf("请输入矩阵A:\n");//输入矩阵A的元素

for(p=0;p

for(q=0;q

scanf("%f",&A[p][q]);

printf("输出矩阵A:\n");//输出矩阵A

for(p=0;p

for(q=0;q

{

printf("%10.2f",A[p][q]);

if((q+1)%j==0)

printf("\n");

}

printf("请输入矩阵B:\n");//输入矩阵B的元素

for(p=0;p

for(q=0;q

scanf("%f",&B[p][q]);

printf("输出矩阵B:\n");//输出矩阵B

for(p=0;p

for(q=0;q

{

printf("%10.2f",B[p][q]);

if((q+1)%j==0)

printf("\n");

}

printf("矩阵A*矩阵B为:\n"); //计算两个矩阵相乘

for(p=0;p

for(q=0;q

{

C[p][q] = 0;

for( k = 0; k < j; k++ )

C[p][q]+=A[p][k]*B[k][q];

}

for(p=0;p

for(q=0;q

{

printf("%10.2f",C[p][q]);

if((q+1)%n==0)

printf("\n");

}

};break;

case 4://矩阵转置

{

printf("请输入矩阵A的行数和列数(用逗号隔开):");

scanf("%d,%d",&i,&j);

printf("请输入矩阵A:\n");//输入矩阵A的元素

for(p=0;p

for(q=0;q

scanf("%f",&A[p][q]);

printf("输出矩阵A\n"); //输出矩阵A

for(p=0;p

for(q=0;q

{

printf("%10.2f",A[p][q]);

if((q+1)%j==0)

printf("\n");

}

for(p=0;p

for(q=0;q

B[q][p]=A[p][q];

printf("输出矩阵A的转置矩阵:\n");

for(p=0;p

for(q=0;q

{

printf("%10.2f",B[p][q]);

if((q+1)%i==0)

printf("\n");

}

}

;break;

default:

printf("error\n");

break;

}

}

while(x);//当选择0时程序结束

return 0;

}

数据结构课程设计-特殊矩阵计算器

特殊矩阵计算器 1、特殊矩阵计算器 问题描述:创建两个特殊矩阵 A 和 B,计算 A+B、A-B、A*B、B*A、A(或 B)的逆、A(或 B)的转置、A(或 B)的行列式等,具体要求如下:① A、B 均是压缩存储的特殊矩阵,如上/下三角矩阵、对称矩阵、对角矩阵、单位矩阵等。 ② A、B 的矩阵类型、行列数、各位置的元素值等信息均在运行时指定(对于不同类型的矩阵,要求输入的数据也不尽相同)。③各运算若可行,则打印结果;若不可行,则给出提示信息。④各运算需自己实现,禁止调用语言内建或第三方类库的矩阵 API。 涉及算法及知识:特殊矩阵的压缩存储、矩阵相关运算。 #include<> #include<> #define max 100 typedef struct{ int row,col;//定义矩阵行数、列数 int a[max][max]; }Matrix; //存储结构 typedef struct{ int array[max]; int n; //定义矩阵的阶 }M; Matrix A,B,C,D; M p; //*************矩阵的压缩存储*********************// int CompressMatrix(int m,int i,int j,int n){ int k;

if(m==1){ if(i<=j) k=(2*n-i+1)*i/2+(j-i)+1; else k=0; return k; } if(m==2){ if(i>=j) k=i*(i+1)/2+j+1; else k=0; return k; } if(m==3){ if(i>=j) k=i*(i+1)/2+j; else k=j*(j+1)/2+i; return k; } if(m==4){ if(i!=j) k=0; else k=i+1;

C语言实现计算器功能

实验一多功能计算器 一、问题描述 设计一个多功能计算器,可以完成基本的计算。 设计要求: 1、具备整型数据、浮点型数据的算术(加、减、乘、除)运算功能。依次输入第一个运算数、运算符(+,-,*,/)、第二个运算数,然后输出结果。结果可以作为下一个运算的第一运算数。按‘C’清屏,按‘R’返回菜单。 例如:输入:2 + 5 输出:7 2、实现单运算符表达式计算的功能。输入的操作数可以包含整数或浮点数。输入表达式如下: 例如:输入:2+5 输出:7 二、算法说明 1.数据结构说明(可以图示说明,也可以文字说明) 本程序主要根据选择菜单编写了六个自定义函数,用于在main()函数中调用,在main()中,用一个字符变量num1来记录下菜单选项的标号,根据num1的值来决定调用哪个函数。 程序要完成的功能及所要用到的函数如下:

下面就是整个程序的流程图:

2.算法说明(即函数说明) void suanshuyunsuan() //做算术运算时调用的函数 void suanshuyunsuan2() //选择继续做算术运算调用的函数,将上次运算的结果做为下次算术运算的第一个操作数//判断算术运算就是否继续 void panduan() //判断算术运算就是否继续 void biaodashiyunsuan() //单运算符表达式实现函数 void qingping() //清除屏幕 void fanhuicaidan() //显示菜单 三、测试结果(这部分需文字与图示结合) 1.第一组测试用例 (1)测试输入: 测试目的:测试算术运算的功能 结果输出:

(2)再一次输入:1测试目的:测试算术运算就是否能继续 结果输出: (3)这时输入:0 测试目的:退出算术运算 结果输出:

卡西欧计算器fx-991CN X科学函数计算器(六)

卡西欧计算器fx-991CN X科学函数计算器(六) 矩阵是高等代数中常用的工具,在天体物理、量子力学等领域有着广泛运用,学习对高中理科生以及大学生都有非常重要的作用。卡西欧fx-991CN X是卡西欧第三代新型函数计算器,具备矩阵、计算、复数、统计、表格、方程/函数、向量等10种计算模式,能支持4×4矩阵计算,能够复制以及编辑矩阵变量。 一、基本操作 在卡西欧fx-991CN X科学函数计算器矩阵模式中,可以设置矩阵变量(MatA、MatB、MatC、MatD),指定、编辑变量以及矩阵元素,复制矩阵,并进行矩阵运算。 1.设置矩阵变量 进入矩阵模式后,选择1(MatA),根据需求设置矩阵的行与列。同理可设置MatB、MatC、MatD三个矩阵。

2.指定并编辑矩阵的变量数据 1)按OPTN+1(定义矩阵),然后在显示的菜单中,选择要向其指定数据的矩阵变量。 2)在出现的对话框上,使用一个数字按钮指定行数。 3)在出现的下一个对话框上,使用一个数字按钮指定行数。 4)使用显示的矩阵编辑器输入矩阵的元素。 3.编辑矩阵变量的元素 1)按OPTN+2(编辑矩阵),然后在显示的菜单中,选择要编辑的矩阵变量。 2)使用显示的矩阵编辑器编辑矩阵的元素。 4.矩阵答案存储器 无论何时,只要在矩阵模式中执行的计算结果为矩阵,MatAns屏幕都将显示该结果。该结果还会指定给名为“MatAns”的变量。 5.复制矩阵变量或(MatAns)的内容 1)使用矩阵编辑器显示要复制的矩阵。

2)按STO ,然后执行以下键操作之一,以指定复制目标:(-)(MatA )、“。,,,”(MatB )、x 1 -(MatC )或sin (MatD )。 二、矩阵计算示例 已知MatA=??????1112,MatB=??????--2112,MatC=??? ???--111001,请确认MatA 的平方和立方(MatA 2、MatA 3)。在计算器键盘上按下AC+MatA+2x 按键,然后确认得出结果? ?????2335;按下AC+MatA+SHIFT+2x +(3x ),确认得出答案? ? ? ???58813。 需要注意的是,不得使用?x 进行输入,需要使用2x 指定平方,并使用SHIFT+2x +(3x )指定立方。

大学计算机c语言计算器源代码

C++语言编写。。 #include #include #include using namespace std; const double pi = 3.14159265; const double e = 2.718281828459; const int SIZE = 1000; typedef struct node//为了处理符号而建立的链表(如: 1+(-2)) { char data; node *next; }node; typedef struct stack_num//存储数的栈 { double *top; double *base; }stack_num; typedef struct stack_char//存储运算符号的栈 { char *top;

char *base; }stack_char; stack_num S_num;//定义 stack_char S_char;//定义 char fu[18] = {'\n', ')', '+', '-', '*', '/', '%', '^', 'Q', 'L', 'C', 'S', 'T', 'c', 's', 't', '('}; int compare[1000];//表现出各运算符号的优先级 double shu[1000];//存储"数"的数组 double dai_result;//运算的结果,是为了处理M运算(简介函数里有M的定义) int biao = 0;//和dia_result一样,为了处理M运算 char line[SIZE];//输入的所要计算的表达式 void init()//初始化 { compare[fu[0]] = -2;//用数字的大小表现出符号的优先级 compare[fu[1]] = -1; compare[fu[2]] = 2; compare[fu[3]] = 2; compare[fu[4]] = 4; compare[fu[5]] = 4; compare[fu[6]] = 4;

四则运算计算器

基于单片机实现的四则运算计算器 姓名 学号: 班级: 专业名称:测控技术与仪器 指导教师: 东北大学 2016年1月

课程设计(论文)任务书课程设计(论文)题目:基于单片机实现的四则运算计算器 基本内容和设计要求: 1、主机的矩阵键盘输入数和运算符号,从机显示运算结果。 2、主从单片机串行通信系统,并在LCD上显示运算内容及结果。 3、计算结果超过十位数字则显示错误。 4、运算除法时,结果只取整数,不是四舍五入。 5、有清零功能。

目录 课程设计(论文)任务书................................................................................................ i i 摘要 (1) 第1章绪论 (2) 1.1计算器简介 (2) 1.2设计主要内容 (2) 第2章系统硬件设计 (4) 2.1硬件组成 (4) 2.2输入模块 (4) 2.3输出模块 (5) 2.4运算模块 (5) 第3章系统软件设计 (7) 3.1 主程序 (7) 3.1.1主程序框图及初始化 (7) 3.1.2LCD程序框图及初始化 (8) 3.1.3键盘程序框图及初始化 (9) 3.1.4运算程序框图 (10) 第4章调试测试与实验分析 (11) 4.1 计算器调试 (11) 参考文献 (12) 心得体会 (13) 附录硬件原理图及PCB图 (14) 附录程序清单 (15) 附录实物照片 (28)

摘要 单片机的出现是计算机制造技术高速发展的产物,它是嵌入式控制系统的核心,如今,它已广泛的应用到我们生活的各个领域,电子、科技、通信、汽车、工业等。本设计是基于89C52RC单片机来进行的四则运算计算器系统设计,可以完成计算器的键盘输入,进行加、减、乘、除的基本四则运算,并在LCD1602液晶显示屏上显示相应的结果。本电路采用89C52RC单片机为主要控制电路,利用4*4矩阵键盘作为计算器以及运算符的输入。显示采用字符LCD静态显示。软件用C语言编程,并用开发板进行演示。 关键词:计算器,89C52RC单片机,LCD,矩阵键盘

c语言 矩阵计算器

#include #define M 20 #define N 20 float A[M][N]; //定义了含有400个浮点型数组元素的二维数组 float B[M][N]; float C[M][N]; int i,j,m,n,p,q,k; int main() { printf(" ###########################################\n"); printf(" ### 欢迎您使用矩阵计算器系统。###\n"); printf(" ### 系统功能:###\n"); printf(" ### 计算两个矩阵相加,相减; ###\n"); printf(" ### 矩阵相乘;矩阵转置; ###\n"); printf(" ### ###\n"); printf(" #########################################\n\n"); int x; do{ printf("请选择您需要的运算,若退出则选择0后按回车键结束\n"); printf("******************************************************************\n") ; printf("0,退出\n"); printf("1,矩阵相加\n"); printf("2,矩阵相减\n"); printf("3,矩阵相乘\n"); printf("4,矩阵转置\n"); printf("******************************************************************\n") ; scanf("%d",&x); switch (x) {

C语言制作简单计算器

C语言制作简单计算器 一、项目介绍 我们要用c语言做一个简单的计算器,进行加、减、乘、除操作。本程序涉及的所有数学知识都很简单,但输入过程会增加复杂性。我们需要检查输入,确保用户没有要求计算机完成不可能的任务。还必须允许用户一次输入一个计算式,例如:32.4+32 或者9*3.2 项目效果图 编写这个程序的步骤如下: ?获得用户要求计算机执行计算所需的输入。 ?检查输入,确保输入可以理解。 ?执行计算。 ?显示结果。 三、解决方案 1.步骤1

获得用户输入是很简单的,可以使用printf()和scanf()。下面是读取用户输入的程序代码: #includeint main(){ double number1=0.0; //定义第一个操作值 double number2=0.0; //定义第二个操作值 char operation=0; //operation必须是'+''-''*''/'或'%' printf("\nEnter the calculation\n"); scanf("%lf%c%lf",&number1,&operation,&number2); return0; } 2.步骤2 接着,检查输入是否正确。最明显的检查是要执行的操作是否有效。有效的操作有+、-、*、/和%,所以需要检查输入的操作是否是其中的一个。 还需要检查第二个数字,如果操作是/或者%,第二个数字就不能是0。如果右操作数是0,这些操作就是无效的。这些操作都可以用if语句来完成,switch语句则为此提供了一种更好的方式,因此它比一系列if语句更容易理解。 switch(operation) { case'+': printf("=%lf\n",number1+number2); break; case'-': printf("=%lf\n",number1-number2); break; case'*': printf("=%lf\n",number1*number2); break; case'/': if(number2==0) printf("\n\n\aDavision by zero error!\n"); else printf("=%lf\n",number1/number2); break;

matlab-GUI矩阵计算器

数学应用软件工具箱开发 ——矩阵计算器 姓名:*** 学号:******** 指导老师:*** 专业:******** 2014年9月11日

一.操作过程 1.准备工作 ①在Matlab的主窗口中,选择File菜单中的New菜单项,再选择其中的GUI 命令,就会显示GUI的设计模板; ②选择GUI模板中的默认的空白模版Blank GUI(Default)就会显示GUI设计窗口,可以开始设计矩阵计算器了。 2.设计过程 ①在GUI界面中加入以下控件: 1>2个文本编辑器(edit text)作为输入矩阵的窗口; 2>16个用以执行运算的按钮(push button); 3>4个静态文本框(static text),其中一个作为显示计算所得结果的窗口,另外3个分别作为表示所输入的矩阵(A、B)以及用来输入标题(矩阵计算器); 4>加入3个按钮组(button group)分别圈住: a.1>中的2个控件及3>中的A、B; b.2>中的16个计算按钮; c.3>中的显示计算结果的窗口。 ②分别双击以上25个控件修改其string属性如下: 1>中的改为空白(将原有的“edit text”删掉); 2>中的改为对应的矩阵运算或文字,如“+”、“/R”、“秩”、“逆”等(见图1); 3>中的按顺序改为空白、“A”、“B”以及“矩阵计算器”; 4>中的按钮组分别改为“输入区”、“功能区”、“输出区”。 ③对每个控件分别单击右键,选择“view callback”→“callback”→“保存”,在每个控件的函数后加入代码(见附件)。 ④此外,还需要做的小变动有: 1>②中修改string属性时通过修改fontWeight及fontSize把string的字符粗细、字号也一并修改了。 2>分别双击2个文本编辑器(edit text)将其max属性取值为100或更大的值,以使编辑器有滚动条,方便显示输入的维数比较大的矩阵。 3>双击计算结果窗口将其style改为listbox,也用于显示维数比较大的计算结果。

数码管之简单加减法计算器--项目总结

数码管之简单加减法计算器--项目总结 总结人:徐冉1.项目使用到的硬件板载资源 1)单片机STC89C52RC作为系统的处理器 2)6位共阳极数码管作为计算器的数字显示器件 3)LCD1602液晶显示一些提示信息如计算时的符号(正/负) 4)4*4矩阵按键作为计算器的数字输入设备 5)8个贴片LED小灯,用于走马灯效果作为修饰 6)用到了单片机的内部资源定时器T0 2.项目的基本功能 通过程序的烧录,将工程中的hex文件烧录到Kingst-51开发板上。现象如下: 初始时 1)最右边的数码管上显示0,其余数码管不显示。 2)五个LED小灯像小火车一样循环跑着。 3)LCD1602液晶的左上角显示Symbol:字样,用于显示符号。 正数不显示,负数时将显示‘-’。 进行简单的加减法运算 当用户使用按键输入相应的数字时,会在数码管上显示。数字值将进行进位累加方式实现。数字键(k13 k1 ~ k3 k5 ~ k7 k9 ~ k11 0 ~ 9),k4加法功能键,k12减法功能键,k14 ESC清零键,k4和

k12是双功能键,即k4既是加法键也是计算键,k12既是减法键也是计算键。达到一键两用的效果。注意:用户在进行加法计算时可以随意计算,但在计算减法时第一步需要进行一次加法,然后才能进行减法运算。当计算结果是负数时会在数码管上显示相应的数值的绝对值,而在LCD1602液晶上显示‘-’。在计算期间LED 小灯会一直循环流动。这个计算器可以实现连加连减,计算十分方便,但没有处理小数。当计算完成时,或输入错误时可按k14进行清零操作。 3.项目的创新点 首先该项目使用了LED 的跑马灯效果进行了装饰,为了程序的简单且直观性程序使用了LCD1602进行运算时符号的显示。程序在计算上使用了一键两用的功能设计,这样设计方便快捷。 4.项目的设计流程 N Y 上电 LCD1602液晶 初始化 74HC138译码器初始化 配置定时器T0定时1ms 中断 Lcd1602初始化显示Symbol 主函数while 循环进行按键动作检测 1ms 到 按键扫描 LED 小灯&数码管扫描 结束

可以用鼠标操作的C语言计算器源码

可以用鼠标操作的C语言计算器源码,比较精美了 /** **** **** *** **** *文件包含****** *** *** ** *****/ #include /*DOS接口函数*/ #include /*数学函数的定义*/ #include /*屏幕操作函数*/ #include /*I/O函数*/ #include /*库函数*/ #include /*变量长度参数表*/ #include /*图形函数*/ #include /*字符串函数*/ #include /*字符操作函数*/ #include /** **** ***** ******宏代换定义****** ****** *** *****/ #define BWIDTH 50 /*按键条的宽度*/ #define BHEIGHT 30 /*按键条的高度*/ #define MAX_SCR 15 #define PI 3.141592654 /** **** ********** ***声明函数** ****** ** **** *****/ void graph(void); /*画图形函数声明*/ void windows(void); /*绘制窗口界面函数声明*/ void button(int x,int y,int c1,int c2,int c3,char *bt); /*按键函数声明*/ void scr(char scr_main[MAX_SCR],int error); /*屏显函数声明*/ int mouse_message(void); /*鼠标信息函数声明*/ void visbilemouse(void); /*鼠标可视化函数声明*/ void getmouse(int *x,int *y,int *key); /*获得鼠标信息函数声明*/ void drawmouse(int *x,int *y,int *z); /*画鼠标函数声明*/ void jd(int x,int y); /*按钮焦点函数声明*/ void calculator(int fun_code); /*实现计算器功能函数声明*/ void clrnum(int n0,int n1); /*清空Num数组函数声明*/ void adv(void); /*高级函数功能声明*/ double qiu_zhi(char *bds_start,char *bds_end); /*求表达式值函数声明*/ long jie_cheng(long n); /*阶乘函数声明*/ /** **** ***** **** ****定义全局变量* ****** **** ****/ int Maxcolor,Maxx,Maxy; /*定义最大颜色数,边界*/ char Num[2][MAX_SCR]={{0},{0}}; /*定义存储数据的二维数组,分别对应双目运算的数据*/ double Memory=0; /*定义内存存储数据*/ int Flag=0,Num_flag=0; /*二维数组的第几维数和第几个数*/ char fun=0; /*功能变量,对应双目运算*/ int Mx,My,Mkey,Mk0=-1; /*定义鼠标的位置和按键状态,初始键值为-1*/ int jd0=-1,jd1=-1; /*定义按键焦点,按鼠标键后返回0~29或-1*/

C语言_程序设计_计算器

C语言_程序设计_计算器 课程设计说明书 题目多功能计算器起讫日期 2006 年 7月 3日至 2006 年 8月 6日 所在院系 专业班级 学生姓名学号 指导教师 2006年 8 月 1 日 摘要 当今社会,随着人们物质生活的不断提高,电子产品已经走进家家户户,无论是生活和学习还是娱乐和消遣几乎样样都离不开电子产品,计算器可谓是我们最亲密的电子伙伴之一。 随着科技的发展,人们对计算要求的精确度越来越高,各种不同功能的计算器已经悄悄走进我们的生活和学习中。对于学生来说一个功能齐全的计算器对我们的学习有着莫大的帮助。借着C语言程序设计的机会,我决定自己动手来研究一下计算器。在练习巩固C语言学习的同时又可以从中体会到计算器的强大功能,然而由于学习的内容和时间有限,至今为止我只能实现四则运算加、减、乘、除、平方、立方和开方的一些简单功能,并且在计算器的里面加了一个漂亮的时钟,用来方便我们的学习。在今后的学习中,我会继续研究,争取进一步来完善它的功能。 本系统采用Turbo C语言开发,生成可执行文件在任何系统下都可以执行,具有很好的数据处理能力和稳定性。本论文主要介绍了该课题的开发背景以及过程和

所要完成的功能。并且重点的说明了系统设计思想,设计的步骤、难点技术和解决方案。由于“初来乍到”,这个程序设计还有一些漏洞和缺陷,希望您多多提出~关键字:Turbo c c语言计算器程序四则数值运算 目录 第一章综述...........................................................................1 1(1 课题的现实意义...............................................................1 1(2 软件环境........................................................................1 1(3 硬件环境 (1) 第二章系统设计流程图............................................................2 2(1 系统流程图.....................................................................2 2(2 主要功能表.....................................................................2 第三章系统分析和设计............................................................3 3(1 图形的绘制和输出............................................................3 3(2 文本的输出显示...............................................................3 3(3 计算函数的调用...............................................................4 3(4 程序的运行和退出 (5) 第四章系统测试.....................................................................6 4(1 缺少变量定义,定义位置不正确..........................................6 4(2 语法错误........................................................................6 4(3 注释的位置.....................................................................6 4(4 逻辑错误 (6) 第五章用户使用说明书……………………………………………………8 5(1 运行Turbo C程序进入计算器界面…………………………………8 5(2 计算器的使

简易计算器

简易计算器设计 学院:电气信息工程学院 专业:电子科学与技术 年级:2010级_ 小组:王会祥(主力)王成龙余勇 老师:_翁嘉铭

基于C51单片机的简易计算器 1.前言 1、本系统选用51单片机为主控机。通过扩展必要的外围电路接口实现计算的设计。 2、由于要设计的是简单的计算器,可以进行四则运算,为了得到较好的显示效果,采用LCD显示数据和结果。 3、键盘部分由3*4矩阵键盘外加8个独立按键共同实现。通过软件编程可实现整数和小数的简单加、减、乘、除、平方、立方、开根号、清除结果功能。 2.系统总体设计框图

3.系统主流程图 4.LCD显示 1、LCD显示器介绍 LCD显示器,它是利用液晶经过处理后能改变光线的传输方向的特性实现信息的显示。液晶显示器具有体积小、重量轻、功耗低、显示内容丰富灯特点,在单片机的应用系统中得到广泛的应用,液晶显

示器按功能可分为三类:笔段式液晶显示器、字符型液晶显示器和图像点阵式液晶显示器。前两种可显示数字、字符和符号等,而图形点阵式液晶显示器还可以显示汉字和任意图行,达到图文并茂的效果,本次实验是采用LCD1602字符型液晶显示器,LCD1602能够同时显示16x2即32个字符。1602液晶也叫1602字符型液晶它是一种专门用来显示字母、数字、符号等的点阵型液晶模块它有若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符。每位之间有一个点距的间隔每行之间也有间隔起到了字符间距和行间距的作用。 2、LCD1602管脚功能 1602采用标准的16脚接口,其中: 第1脚:VSS为电源地; 第2脚:VDD接5V电源正极; 第3脚:V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度)。 第4脚:RS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。

单片机C语言简易计算器

课程设计报告 课程名称单片机原理及应用设计题目简易计算器设计专业班级 姓名 学号

1.项目概述 中国古代最早采用的一种计算工具叫算筹。这种算筹多用竹子制成,也有用木头,兽骨充当材料的。约二百七十枚一束,放在布袋里可以随身携带。17世纪初,西方国家的计算工具有了较大的发展,英国数学家纳皮尔发明的“纳皮尔算筹”,英国牧师奥却德发明了圆柱形对数计算尺,这种计算尺不仅能做加减乘除,乘方,开方运算,甚至可以计算三角函数,指数函数和对数函数,这些计算工具不仅带动了计算器的发展,也为现代计算器发展奠定了良好的基础,成为现代社会应用广泛的计算工具。 2.项目要求 基于AT89C51单片机的简易计算器,设计要求如下: (1)计算器至少能正常显示8位数。 (2)开机时,显示“0” (3)计算器能对整数进行简单的加减乘除四则运算,在做除法时能自动舍去小数部分 (4)运算结果超过可显示的位数时能进行出错提示。 3.小组人员组成及分工

4.系统设计1.框图设计 显示 录入 5.硬件设计 (1)电路原理图: AT89C51 八位七段数码管 按键录入模 块(0-9 +-*/=c)

(2)元件清单: 6.软件设计(1)算法流程图: 主函数

显示函数 按键函数

(2)程序清单: #include /***按键程序***/ char keyscan(); /***显示程序***/ void display(); char dsp[9]={0,0,12,12,12,12,12,12,12}; //初始化显示数组 /***计算程序***/ void calculate(char k,char c1[8],char c2[8]); /***片选***/ unsigned char code Select[]= {0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80}; /***码选***/ unsigned char code LED_CODES[]= {0xC0,0xF9,0xA4,0xB0,0x99, //0-4 0x92,0x82,0xF8,0x80,0x90, //5-9 0x86,0xAF,0xFF,0x7F,0xBF,}; //E,r,空格,.,- /***main函数***/ void main(void) { char i,j,k,c; char a[8],b[8]; /***定时1ms***/ TMOD=0; //TL0=-(1000/256); //TH0=-(1000%256); EA = 1; //总中断开关

高中数学论 图形计算器 图形计算器游戏贪吃蛇

辽宁省沈阳市第十五中学2013年高中数学论文图形计算器应用能力测试活动学生图形计算器游戏贪吃蛇 [摘要] 利用图形计算器的编程功能,在CASIO fx-CG20图形计算器平台上实现了贪吃蛇游戏。本文中的程序利用了图形计算器中的矩阵来储存数据,通过模拟法实现贪吃蛇游戏,有两种游戏模式,并提供游戏的最高分记录、保存和设置功能。 [关键词] 图形计算器;贪吃蛇; [前言] 观察过以前的获奖论文,大多数的论文只利用到图形计算器的画图功能和小部分的编程功能。图形计算器编程功能的强大之处并未充分体现出来,而本文正是利用了图形计算器强大的编程功能,从而在图形计算器上实现了贪吃蛇游戏。 [研究目的] 利用图形计算器的编程功能,在图形计算器上实现贪吃蛇游戏,从而锻炼编程能力和算法能力,同时增强了CASIO图形计算器的娱乐功能,丰富同学们的课余生活。 [程序功能说明] 游戏功能:玩家通过CASIO图形计算器fx-CG20上的按键B、N、!和$或数学键2、4、6和8控制蛇在地图上寻找食物,每吃下一个食物时,蛇的长度增加一,同时出现另一个食物。本程序有两种游戏模式,一种为有墙模式,另一种为无墙模式。 有墙模式下,蛇头碰到四面的墙(即显示的边界)或蛇身时,游戏结束。 无墙模式下,只有在蛇头碰到蛇身的情况下游戏才会结束,如果蛇头到达了屏幕的边界,蛇头会在屏幕的另一边出现。(如图1) 图 1 图 2 最高分记录功能:本程序能记录蛇长度的最长纪录,并在游戏结束的时候显示纪录长度和此次游戏的蛇的长度。(如图2) 保存功能:玩家可以在游戏中途按p键可暂停游戏,玩家可以选择“Save game&Exit”(保存并退出游戏),或者“Continue”(继续游戏)。(如图3)下次运行程序时,选择“Load”即可继续上次保存的游戏。(如图4)

c语言计算器代码

#include char token; /*定义程序要使用到的一些函数*/ void match( char expectedToken ) /*对当前的标志进行匹配*/ { if( token == expectedToken ) token = getchar(); /*匹配成功,获取下一个标志*/ else { printf("cannot match\n"); exit(1); /*匹配不成功,退出程序*/ } } int low( void )/*用于计算表达式中级别最低的运算*/ { int result = mid(); /*计算比加减运算优先级别高的部分*/ while(( token == '+' ) || ( token == '-' )) if ( token == '+') { match('+'); /*进行加法运算*/ result += mid(); break; } else if ( token == '-') { match('-'); /*进行减法运算*/ result -= mid(); break; } return result; } int mid( void )/*用于计算表达式中级别较高的运算*/ { int div; /*除数*/ int result = high(); /*计算比乘除运算优先级别高的部分*/ while(( token == '*' ) || ( token == '/' )) if ( token == '*') { match('*'); /*进行乘法运算*/ result *= high(); break; }

MATLAB设计矩阵计算器

MATLAB程序设计语言大作业 ——矩阵计算器 题目:矩阵计算器 学号:02123010 姓名:石星宇 指导教师:汤建龙

一、实验目的 1、通过GUI(Graphical User Interface,简称GUI,图形用户界面,又称图形用户接口)设计矩阵计算器,熟悉MATLAB中GUI工具的使用和编程。 2、加深对MATLAB GUI中句柄控制变量的理解。 3、巩固线性代数中矩阵的基本运算。 二、实验内容 1、利用MATLAB中的GUIDE工具箱快速生成GUI界面。 2、在生成的GUI界面中设计能够实现矩阵基本运算的矩阵计算器。 三、实验结果 通过GUIDE快速生成GUI界面设计的矩阵计算器如下图所示: 图1 Matrix Calculator基本界面 该矩阵计算器包含四模块,分别为:输入区、输出区、功能区及其他运算区。

四、功能描述 1、功能概述 本矩阵计算器能够实现一些基本的矩阵运算,包括对单个矩阵的运算以及对两个矩阵的运算。其中,对于两个矩阵的运算有:加、减、乘、除(左除、右除)、按元素乘、按元素除以及求解线性方程组;对于単个矩阵的运算有:转置(共轭与非共轭)、求逆、计算行列式、求秩、平方、立方、开方、求特征值、求2范数、LU 分解、最简阶梯阵化简等。 计算过程中,矩阵的输入方式与MATLAB 中矩阵输入方式类似。即①矩阵行中的元素以空格或逗号间隔;②矩阵行之间以分号间隔;③整个元素列表用方括号括起来。 2、功能详细描述 2.1矩阵相加(减) 输入A=[1 2 3;4 5 6;7 8 9],B=[1 4 7;2 5 8;3 6 9],按下“+”按钮,输出区显示计算结果如图2所示: 输入的A 、B 矩阵必须是维数相同,否则不能实现相加运算。如输入不同维数的矩阵且进行相加运算,则会提示出错如图3所示: 两矩阵相减的运算过程与相加运算类似,在此不再赘述。 图2 矩阵相加 图3 矩阵相加错误提示

C语言课程设计(简易计算器设计)带所有代码.

《C语言课程设计》报告 设计题目:简单计算器设计 学院名称:电子与信息工程学院专业:计算机科学与技术 班级:计科 姓名:学号 指导教师:

定稿日期:2013-5-28 一、设计题目 简单计算器设计 二、设计要求 在功能上功能尽量模拟windows操作系统中的计算器,系统界面不做强制要求。 三、设计目的 ①通过本项课程设计,可以培养独立思考、综合运用所学有关相应知识的能 力,能更好的巩固《C语言程序设计》课程学习的内容,掌握工程软件设 计的基本方法,强化上机动手编程能力,闯过理论与实践相结合的难关! 更加了解了c语言的好处和其可用性!同时增加了同学之间的团队合作精 神!更加也体会到以后在工作中团队合作的重要性和必要性! ②通过C语言课程设计,使学生了解高级程序设计语言的结构,掌握基本的 程序设计过程和技巧,掌握基本的分析问题和利用计算机求解问题的能力,具备初步的高级语言程序设计能力。为后续各门计算机课程的学习和毕业 设计打下坚实基础。 四、设计思想及过程 ①由于需要使功能尽量模仿Windows下的计算器,而很多功能要以图形界面 实现,故用Borland C++ Builder编写。所以用的是面向对象程序设计。但 因为这是C语言的课程设计,所以除了面向对象的使用以外,所有语法都 是按照C语言的格式编写。 ②采用工程模式,文件包括calc.h(运算主函数头文件,包括各运算符的操作 以及其辅助函数)、Main.h(窗体类的声明头文件)、Calc.cpp(工程初始化文 件)、Main.cpp(代码主文件,包括各空间操作的函数)以及一些其它附属文 件,包括dll动态链接库。 ③在参考了Windows里的计算器以后,决定在我的课程设计中实现: ⒈0~9的数字输入功能(小数点除外) ⒉实现加、减、乘、整除、取模、阶乘、位运算左移、x的y次方、与、

c语言课程设计-简易计算器

C语言课程设计学院:地球物理与测控技术学院专业:测控技术与仪器 姓名:邬博文 学号:201620120202

目录 第一章选题的意义 (4) 1.1 课题研究的背景 (4) 1.2 自己设计的优势 (4) 1.3 设计上功能上的不足 (4) 第二章研究的基础 (5) 2.1 涉及的主要知识点 (5) 第三章研究的可行性 (6) 3.1 技术的可行性 (6) 3.2 经济效益和社会效益的可行性 (6) 第四章研究的具体部分 (7) 4.1 研究的主要流程图 (7) 4.2 研究的具体代码 (8) 4.3程序运行结果图表 (14) 第五章总结 (17)

第一章选题的意义 ①通过本项课程设计,可以培养独立思考、综合运用所学有关相应知识的能力,能更好的巩固《C语言程序设计》课程学习的内容,掌握工程软件设计的基本方法,强化上机动手编程能力,闯过理论与实践相结合的难关!更加了解了c语言的好处和其可用性!同时增加了同学之间的团队合作精神!更加也体会到以后在工作中团队合作的重要性和必要性! ②通过C语言课程设计,使学生了解高级程序设计语言的结构,掌握基本的程序设计过程和技巧,掌握基本的分析问题和利用计算机求解问题的能力,具备初步的高级语言程序设计能力。为后续各门计算机课程的学习和毕业设计打下坚实基础。 1.1 课题研究的背景 计算器是现代日常生活中使用较为频繁的工具之一,常用的计算器有简易版和科学计算器两种模式。简易版的计算器不支持表达式运算,每次只能输入一个数据或者运算符来计算,而科学计算器除了容纳简易版计算器的功能外,还支持表达式运算,用户可以输入一个合法的算术表达式来得到所需的结果。计算器对我们每一的学生都很熟悉,从初中到高中再到大学。但是我们只知道按下几个按钮计算器便会显示出结果,很少有学生分析过计算器究竟是如何运行的。C语言课程设计便是一个很好的机会,让我去亲自写计算器的运行代码,尽管是简单计算器的设计,但其背后的知识那是相当多的,对我是个挑战,我接受! 1.2 自己设计的优势 现时学习生活中,常会遇到一些数目较大数据繁杂的数值运算,徒手运算起来很困难,这时候我们就必须用到计算器。人们对计算的要求不断提高,普通的功能简单的仅能进行加、减、乘、除运算的计算工具已经不能满足需要,需要一种能进行多种计算。现在已经有一些功能较为强大、涵盖面较广的计算软件,而且各种平台的小工具仍不断出现。这些大大方便了我们的生活给我们更多的选择和实现方式。本程序实现了加、减、乘、除、求幂、求模,求平方根,求Sin,求Cos,求Log10,求阶乘,取整,求正切,以及进制之间的相互转换。它可以直接输入数学表达式,不需要任何转换,就可以直接输出。 1.3 设计上功能上的不足 本程序虽然在其他简易计算器的基础上新增加了很多类容,如:三角函数的求值、指数函数的计算、任意数的任意次方、进制之间的相互转换等;但是由于个人能力的限制,仍不能实现四则混合运算的功能,仅仅是能进行一个两个数或者一个数的计算,这是这个程序最为不足的地方。但是我相信,随着学习的不断深入,这个功能在不久以后会被很好的实现。

CASIOfx-5800P矩阵编程计算器测量程序集锦梁宝禄

测量程序集锦 梁宝禄 2008.7.12

CASIO fx-5800P 矩阵编程计算器 测量程序集锦 梁宝禄 1、单交点对称基本形曲线偏角法中桩放样计算 最近看了覃辉老师的CASIO fx-5800P 矩阵编程计算器《工程测量与公路测设程序加油站操作手册》后,发现个别语句中缺乏命令或符号,如PR16主程序中两句Else If F=0:Then X[K] List X[K+1]都缺List,程序不能正常运行,应该修改为Else If F=0:Then List X[K] List X[K+1]。本人根据CASIO fx-5800P 矩阵编程计算器的特点整编了这个程序。与覃辉老师的CASIO fx-5800P 矩阵编程计算器《工程测量与公路测设程序加油站操作手册》中的PR13、 PR16相比,它不管有没有缓和曲线都能用(没有缓和曲线提示Lh=?时,输入0即可),而且本程序还考虑到了有缓和曲线的圆曲线测设多数在HY、YH上置镜,设置了提示是否在HY、YH 上置镜,并将在HY、YH 上置镜的偏角、弦长计算出来,用起来更方便。 主程序: Deg:ClrStat:FreqOn:Norm 1 设置角度单位为十进制度 15 DimZ 定义额外数组变量 "JDZH="?Z 输入以m 为单位的交点桩号 "JDLXZJ(-L,+R)="?D 输入交点路线转角,左偏为负,右偏为正 D Z[6]:Abs(D) D 保存转角及符号 Fix 3 "R="?R 输入圆曲线半径 "Lh="?H 输入缓和曲线长 "ZZJJL=" ?I 输入整桩间距 H2÷(24R) P:0.5H-H^(3)÷(240R2 ) Q 计算切线增量与内移值 (R+P)tan(0.5D)+Q T 计算切线长 90H÷( πR) B 计算缓和曲线偏角 πR(D-2B)÷180 A 计算圆曲线长 A+2H L 计算曲线长 (R+P)cos(0.5D)^(-1)-R E 计算外距 2T-L J:Fix 3 计算切曲差 "T=":T 显示切线长 "LY=":A 显示圆曲线长 "L=":L 显示曲线长 "E=":E 显示外距 "J=":J 显示切曲差 "B=":2B÷3 DMS 显示缓和曲线β角 Z-T Z[1] 计算ZH 点桩号 1 Z[1]+H Z[2] 计算HY 点桩号2 Z[2]+0.5A Z[3] 计算QZ 点桩号3 Z[3]+0.5A Z[4] 计算YH 点桩号4 Z[4]+H Z[5] 计算HZ 点桩号5

相关主题
文本预览
相关文档 最新文档