文档库 最新最全的文档下载
当前位置:文档库 › 课程设计——复数计算器

课程设计——复数计算器

课程设计——复数计算器
课程设计——复数计算器

2.2类及功能函数设计说明

1、定义类CComplex和User

(1)、其中类CComplex中包括:

数据成员:

Real, //复数实部

Image; //复数虚部

成员函数:

friend istream & operator>>(istream &is,CComplex &com ); //重载输入

friend ostream & operator<<(ostream &os,CComplex &com); //重载输出

CComplex operator+(CComplex &com); //加法重载

CComplex operator-(CComplex &com); //减法重载

CComplex operator*(CComplex &com); //乘法重载

CComplex operator+=(CComplex &com); //加法赋值重载

CComplex operator-=(CComplex &com); //减法赋值重载

CComplex operator*=(CComplex &com); //乘法赋值重载

CComplex operator++(); //自加

CComplex operator--(); //自减

double mod (void); //求复数的模

int operator>(CComplex &com); //比大

int operator<(CComplex &com); //比小

int operator!=(CComplex &com); //不等

int operator==(CComplex &com); //相等(2)、其中类User中包括:

数据成员:

char Name[20]; //用户名

int nTest; //测试次数

double alA ve; //平均成绩

int nAdd; //加法次数

int nSub; //减法次数

int nMul; //乘法次数

double dlScore[N]; //用于分别存放前n次测试的总分数

2、用于计算的函数:

Add() //加法计算

Sub() //减法计算

Mul() //乘法计算

Text() //用户测试

Add1() // 加法赋值计算

Sub1() // 减法赋值计算

Mul1() // 乘法赋值计算

selfAdd() // 自加计算

selfSub() // 自减计算

Mod() // 模的计算

Compare() // 比较计算

3、文件操作函数

Write() 文件写入

Read() //文件读取

4、其他函数

Menu() //菜单函数

Clear() //输入数据类型错误时,用以清空输入流2.3 主要算法流程图

。。。。。。

图2-1 算法流程图

3程序清单及注释

#include

#include

#include

#include

#include

#include

#include

#define N 10

class CComplex

{

private:

double Real,Image;

public:

CComplex(double real=0,double image =0) //构造函数

{

Real=real;Image=image;

}

friend istream & operator>>(istream &is,CComplex &com ); //重载输入

friend ostream & operator<<(ostream &os,CComplex &com); //重载输出CComplex operator+(CComplex &com); //加法重载CComplex operator-(CComplex &com); //减法重载CComplex operator*(CComplex &com); //乘法重载CComplex operator+=(CComplex &com); //加法赋值重载CComplex operator-=(CComplex &com); //减法赋值重载CComplex operator*=(CComplex &com); //乘法赋值重载CComplex operator++(); //自加CComplex operator--(); //自减

double mod (void); //求复数的模

int operator>(CComplex &com);

int operator<(CComplex &com);

int operator!=(CComplex &com);

int operator==(CComplex &com);

};

class User

{

public:

char Name[20]; //用户名

int nTest; //测试次数

double alA ve; //平均成绩

int nAdd; //加法次数

int nSub; //减法次数

int nMul; //乘法次数

double dlScore[N];

}user;

istream & operator>>(istream &is,CComplex &com )//重载输入

{

SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),BACKGROUND_GREEN | FOREGROUND_INTENSITY |

FOREGROUND_BLUE);

char s[20];

A: is>>s;

int len=strlen(s);

int n=0,sign=1;

com.Image=com.Real=0;

for(int k=0;k

{

if((s[k]<'0'||s[k]>'9')&&(s[k]!='+'&&s[k]!='-'&&s[k]!='i'))

{

cout<<"输入不合法!"<

cout<<"请重新输入复数:";

goto A;

}

}

for(k=0;k

{

if(n!=0&&(s[k]=='-'||s[k]=='+'))

{

com.Real=sign*n;

n=0;

}

if(s[k]=='-')

{

sign=-1;

k++;

}

if(s[k]=='+')

{

sign=1;k++;

}

if(s[k]=='i')

{

if(k!=len-1)

cout<<"复数数据格式错误"<

else

com.Image=sign*n;

break;

}

while(s[k]>='0'&&s[k]<='9')

{

n=n*10+s[k]-'0';

k++;

}

}

if(s[len-1]!='i'&&n!=0)

{

com.Real=n*sign;

}

return is;

}

ostream & operator<<(ostream &os,CComplex &com)//重载输出

{

if(fabs(com.Image)<1e-6)

os<

else if((fabs(com.Real)<1e-6))

os<

else if(com.Image>0)

os<

else

os<

return os;

}

CComplex CComplex::operator+(CComplex &com)//加法重载

{

CComplex temp(Real+com.Real,Image+com.Image);

return temp;

}

CComplex CComplex::operator-(CComplex &com)//减法重载

{

CComplex temp(Real-com.Real,Image-com.Image);

return temp;

}

CComplex CComplex::operator*(CComplex &com)//乘法重载

{

CComplex temp(Real*com.Real-Image*com.Image,Real*com.Image+Image*com.Real);

return temp;

}

CComplex CComplex::operator+=(CComplex &com)//加法赋值重载{

Real+=com.Real;

Image+=com.Image;

return *this;

}

CComplex CComplex::operator-=(CComplex &com) //减法赋值重载{

Real-=com.Real;

Image-=com.Image;

return *this;

}

CComplex CComplex::operator*=(CComplex &com)//乘法赋值重载{

double nReal=Real*com.Real-Image*com.Image;

double nImage=Real*com.Image+Image*com.Real;

Real=nReal;

Image=nImage;

return *this;

}

CComplex CComplex::operator++()//自加

{

++Real;

++Image;

return *this;

}

CComplex CComplex::operator--()//自减

{

--Real;

--Image;

return *this;

}

double CComplex::mod()//求复数的模

{

return Real*Real+Image*Image;

}

int CComplex::operator>(CComplex &com)//比大

{

if(mod()>com.mod())

return 1;

else

return 0;

}

int CComplex::operator<(CComplex &com)//比小

{

if(mod()

return 1;

else

return 0;

}

int CComplex::operator!=(CComplex &com)//判断不等

{

if(Real!=com.Real||Image!=com.Image)

return 1;

else

return 0;

}

int CComplex::operator==(CComplex &com)//判断相等

{

if(Real==com.Real&&Image==com.Image)

return 1;

else

return 0;

}

void Clear(int &f1)//输入错误是清空输入流

{

while(cin.fail())

{

cout<<"输入有错!请重新输入:";

cin.clear();

cin.ignore(100,'\n');

cin>>f1;

}

}

void Text()//用户测试

{

system("cls");

cout<<"\t\t\t\t欢迎进入测试模式!\n\t\t\t本测试共5道题,每题20分,满分100分。"<

int i,score=0,x,e=1,f;

double real1,image1,real2,image2,real3,image3,real4,image4;

CComplex key,temp;

while(e)

{

SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),BACKGROUND_GREEN | FOREGROUND_RED);

cout<<"0:放弃测试,1:开始测试"<

cin>>f;

Clear(f);

switch(f)

{

default:

cout<<"输入错误,请重新输入"<

break;

case 1:

user.nTest++;

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

{

cout<<"第"<

srand((unsigned int)time(NULL));

real1=rand()%200-100;

image1=rand()%200-100;

real2=rand()%200-100;

image2=rand()%200-100;

real3=rand()%20-10;

image3=rand()%20-10;

real4=rand()%20-10;

image4=rand()%20-10;

CComplex a(real1,image1),b(real2,image2),c(real3,image3),d(real4,image4);

x=rand()%3;

switch(x)

{

case 0:

key=a+b;

cout<<"("<

break;

case 1:

key=a-b;

cout<<"("<

break;

case 2:

key=c*d;

cout<<"("<

break;

}

cin>>temp;

if(key==temp)

{

cout<<"恭喜你!答对了!"<

score+=20;

}

else

{

cout<<"很遗憾,答错了!"<

cout<<"正确答案为:"<

}

}

break;

case 0:

e=0;

}

user.dlScore[0]=0;

user.dlScore[user.nTest]=score;

cout<<"此时总分为:"<

if(user.nTest>0&&user.nTest<=3)

{

user.alA ve=score/user.nTest;

}

else if(user.nTest>3)

{

user.alA ve=(score-user.dlScore[user.nTest-3])/3;

}

else

user.alA ve=0;

}

cout<<"测试次数:"<

cout<<"最后三次测试平均分是:"<

cout<<"此次计算结束!"<

system ("pause");

system("cls");

}

void Add()//计算加法

{

system("cls");

cout<<"\t\t\t\t欢迎进入加法模式!"<

CComplex n1,n2,sum;

int e=1,f;

while(e)

{

SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),BACKGROUND_GREEN | FOREGROUND_RED);

cout<<"0:退出计算,1:开始计算"<

cin>>f;

Clear(f);

switch(f)

{

default:

cout<<"输入错误,请重新输入"<

break;

case 1:

user.nAdd++;

cout<<"输入第1个复数:";

cin>>n1;

cout<<"输入第2个复数:";

cin>>n2;

sum=n1+n2;

cout<<"结果为:"<

break;

case 0:

e=0;

}

}

cout<<"加法计算次数:"<

cout<<"此次计算结束!"<

system ("pause");

system("cls");

}

void Sub()//计算减法

{

system("cls");

cout<<"\t\t\t\t欢迎进入减法模式!"<

CComplex n1,n2,sum;

int e=1,f;

while(e)

{

SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),BACKGROUND_GREEN | FOREGROUND_RED);

cout<<"0:退出计算,1:开始计算"<

cin>>f;

Clear(f);

switch(f)

{

default:

cout<<"输入错误,请重新输入"<

break;

case 1:

user.nSub++;

cout<<"输入第1个复数:";

cin>>n1;

cout<<"输入第2个复数:";

cin>>n2;

sum=n1-n2;

cout<<"结果为:"<

break;

case 0:

e=0;

}

}

cout<<"减法计算次数:"<

cout<<"此次计算结束!"<

system ("pause");

system("cls");

}

void Mul()//计算乘法

{

system("cls");

cout<<"\t\t\t\t欢迎进入乘法模式!"<

CComplex n1,n2,sum;

int e=1,f;

while(e)

{

SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),BACKGROUND_GREEN | FOREGROUND_RED);

cout<<"0:退出计算,1:开始计算"<

cin>>f;

Clear(f);

switch(f)

{

default:

cout<<"输入错误,请重新输入"<

break;

case 1:

user.nMul++;

cout<<"输入第1个复数:";

cin>>n1;

cout<<"输入第2个复数:";

cin>>n2;

sum=n1*n2;

cout<<"结果为:"<

break;

case 0:

e=0;

}

}

cout<<"乘法计算次数:"<

cout<<"此次计算结束!"<

system ("pause");

system("cls");

}

void Add1()//加法赋值运算

{

system("cls");

cout<<"\t\t\t\t欢迎进入加法赋值模式!"<

CComplex n1,n2;

int e=1,f;

while(e)

{

SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),BACKGROUND_GREEN | FOREGROUND_RED);

cout<<"0:退出计算,1:开始计算"<

cin>>f;

Clear(f);

switch(f)

{

default:

cout<<"输入错误,请重新输入"<

break;

case 1:

cout<<"输入第1个复数:";

cin>>n1;

cout<<"输入第2个复数:";

cin>>n2;

n1+=n2;

cout<<"结果为:"<

break;

case 0:

e=0;

}

}

cout<<"此次计算结束!"<

system ("pause");

system("cls");

}

void Sub1()//减法赋值运算

{

system("cls");

cout<<"\t\t\t\t欢迎进入减法赋值模式!"<

CComplex n1,n2;

int e=1,f;

while(e)

{

SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),BACKGROUND_GREEN | FOREGROUND_RED);

cout<<"0:退出计算,1:开始计算"<

cin>>f;

Clear(f);

switch(f)

{

default:

cout<<"输入错误,请重新输入"<

break;

case 1:

cout<<"输入第1个复数:";

cin>>n1;

cout<<"输入第2个复数:";

cin>>n2;

n1-=n2;

cout<<"结果为:"<

break;

case 0:

e=0;

}

}

cout<<"此次计算结束!"<

system ("pause");

system("cls");

}

void Mul1()//乘法赋值运算

{

system("cls");

cout<<"\t\t\t\t欢迎进入乘法赋值模式!"<

CComplex n1,n2;

int e=1,f;

while(e)

{

SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),BACKGROUND_GREEN | FOREGROUND_RED);

cout<<"0:退出计算,1:开始计算"<

cin>>f;

Clear(f);

switch(f)

{

default:

cout<<"输入错误,请重新输入"<

break;

case 1:

cout<<"输入第1个复数:";

cin>>n1;

cout<<"输入第2个复数:";

cin>>n2;

n1*=n2;

cout<<"结果为:"<

break;

case 0:

e=0;

}

}

cout<<"此次计算结束!"<

system ("pause");

system("cls");

}

void selfAdd()//自加运算

{

system("cls");

cout<<"\t\t\t\t欢迎进入自加模式!"<

CComplex n1;

int e=1,f;

while(e)

{

SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),BACKGROUND_GREEN | FOREGROUND_RED);

cout<<"0:退出计算,1:开始计算"<

cin>>f;

Clear(f);

switch(f)

{

default:

cout<<"输入错误,请重新输入"<

break;

case 1:

cout<<"输入复数:";

cin>>n1;

++n1;

cout<<"结果为:"<

break;

case 0:

e=0;

}

}

cout<<"此次计算结束!"<

system ("pause");

system("cls");

}

void selfSub()//自减运算

{

system("cls");

cout<<"\t\t\t\t欢迎进入自减模式!"<

CComplex n1;

int e=1,f;

while(e)

{

SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),BACKGROUND_GREEN | FOREGROUND_RED);

cout<<"0:退出计算,1:开始计算"<

cin>>f;

Clear(f);

switch(f)

{

default:

cout<<"输入错误,请重新输入"<

break;

case 1:

cout<<"输入复数:";

cin>>n1;

--n1;

cout<<"结果为:"<

break;

case 0:

e=0;

}

}

cout<<"此次计算结束!"<

system ("pause");

system("cls");

}

void Mod()//复数求模

{

system("cls");

cout<<"\t\t\t\t欢迎进入复数求模模式!"<

CComplex n1;

int e=1,f;

while(e)

{

SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),BACKGROUND_GREEN | FOREGROUND_RED);

cout<<"0:退出计算,1:开始计算"<

cin>>f;

Clear(f);

switch(f)

{

default:

cout<<"输入错误,请重新输入"<

break;

case 1:

cout<<"输入复数:";

cin>>n1;

cout<<"结果为:"<

break;

case 0:

e=0;

}

}

cout<<"此次计算结束!"<

system ("pause");

system("cls");

}

void Compare() //复数比较

{

system("cls");

cout<<"\t\t\t\t欢迎进入复数比较模式!"<

CComplex n1,n2;

int e=1,f;

while(e)

{

SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),BACKGROUND_GREEN | FOREGROUND_RED);

cout<<"0:退出计算,1:开始计算"<

cin>>f;

Clear(f);

switch(f)

{

default:

cout<<"输入错误,请重新输入"<

break;

case 1:

cout<<"输入第1个复数:";

cin>>n1;

cout<<"输入第2个复数:";

cin>>n2;

if(n1==n2)

cout<<"("<

else if(n1>n2)

cout<<"|("< "<<"|("<

else if(n1

cout<<"|("<

else

cout<<"|("<

break;

case 0:

e=0;

}

}

cout<<"此次计算结束!"<

system ("pause");

system("cls");

}

void Write()//文件保存用户数据

{

ofstream out;

out.open("c:\\file.text");

if(!out)

{

cout<<"不能打开文件!"<

}

out<

out<<"计算加法次数: "<

out<<"计算减法次数: "<

C++课程设计报告--小型特殊计算器

课程设计报告 课程:面向对象程序设计学号: 姓名: 班级: 教师:

课程设计名称:小型特殊计算器 1.设计内容: 实现一个特殊的计算器,可以实现复数、有理数、矩阵和集合的特殊计算。程序可以实现复数、有理数的加、减、乘、除,可以实现矩阵的加法、减法和乘法运算,也可以实现集合的求交集、并集、子集的运算。 2.设计目的与要求: 2.1设计目的 达到熟练掌握C++语言的基本知识和技能; 基本掌握面向对象程序设计的基本思路和方法; 能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题。 2.2设计要求 要求利用面向对象的方法以及C++的编程思想来完成系统的设计; 要求在设计的过程中,建立清晰的类层次; 在系统的设计中,至少要用到面向对象的一种机制。 3.系统分析与设计 3.1主要知识点 运算符重载增加了C++语言的可扩充性。运算符的重载实际上就是一种函数调用的形式,可以用成员函数重载运算符,就是将运算符重载定义为一个类的成员函数的形式;也可以用友元函数重载。用友元重载运算符的友元函数是独立于类以外的一般函数。 3.2关键技术 程序中每一种数据类型用一个类来实现,共设计了4个类。复数类complex,矩阵类matrix,有理数类rational以及集合类set。每一种类都定义了相应的运算符重载函数。具体定义如下所示: (1)类complex 类complex中,成员变量image表示虚部,real表示实部。成员函数print()用来显示数据。运算符重载函数都是用友元函数来实现的。分别重载+、-、*、/运算符。 (2)类matrix 类matrix中,成员变量elems用来存放矩阵的所有元素,rows表示矩阵的行,cols表示矩阵的列。成员函数SetElems()用来给矩阵中的每一个元素赋值,Disp()用来显示矩阵中的所有元素。其它友元函数分别重载+、-、*、/运算符。 (3)类rational 类rational中,有两个成员变量:denominator用来表示有理数的分母,numerator表示有理数的分子。有理数成员函数print()用来显示有理数,optimization()用来优化有理数函数。友元函数real()用来将有理数转换为实数,其它友元函数分别重载+、-、*、/运算符。 (4)类set

使用普通计算器进行复数运算

使用普通计算器进行复数运算 一、使用方法 1. 利用计算器进行复数计算必须要用计算器的度,按DRG键,使计算器显示窗中要有“DEG”标致(表示计算器进行所有带角度的运算均以“度”为单位)。 2. 让计算器进入复数运算状态,分别按2ndF 和CPLX,显示窗中有“CPLX”标致,表示计算器只能进行复数的运算,而进行其它计算则是无效的。取消则重复进行即可。进行复数的加减乘除运算时计算器必须处于复数运算状态。 二、计算说明 1. 计算器中a、b的分别表示进行复数运算的实部和虑部,进行代数式输入时可以直接按此键。 2. 计算器中→rθ、→xy的分别表示进行复数运算的模和角,进行极坐标式输入时必须利用上档键功能进行;同时这两个按键也是代数式和极坐标式转换的功能键。 3. 计算器在进行复数运算时均是以代数式形式进行的,就是说在进行极坐标式计算时必须要先化成代数式,计算的结果也是代数式,如果希望得到极坐标式计算完成后也要进行转换。 4. 显示结果运算完成后的结果就是代数式且显示的是实部,按b显示虑部,再按a 就显示实部,转换成极坐标式后则按a显示模,按b显示角,也可重复显示。 5. 在输入带有负号的值时,应先输入数值,再输入负号,输入负号应按+/-键。 三、计算举例 1. 代数式化成极坐标式 例如:3 + j 4 = 5 /53.13o 按键步骤:(按键动作用“↓”表示。)

3↓a↓4↓b↓2ndF↓→rθ↓显示模5,b↓显示角53.13o。 2.极坐标式化成代数式 例如:15 /-50o = 9.64- j11.49 按键步骤: 15↓a↓50↓+/-↓b↓2ndF↓→xy↓显示实部9.64,b↓显示虑部-11.49。

复数计算器 实验报告

中南大学 高级程序设计实践(C++)课程设计报告 题目复数计算器 学生姓名 指导教师陈丽萍 学院信息科学与工程学院 专业班级通信工程1301班 完成时间 2014年7月5日

第一章需求分析与程序设计 1.1 需求分析 1.1.1程序设计的目的与任务 1.复习和巩固C++语言的基础知识,进一步加深对C++语言的理解和掌握。 2.为学生提供独立实践的机会,将课本上的理论知识和实际有机的结合起来,锻炼学生独立分析问题、解决问题、查阅资料以及自学能力。 3.学习和掌握C++程序设计方法以及上机调试技巧,为今后学习其它专业课程打好基础。 4.在程序实现过程中,需利用面向对象程序设计理论的基础知识,充分体现出C++语言关于类、继承、封装与多态等核心概念,每一个类应包含数据成员和成员函数,以实现预期的功能,解决实际问题。 1.1.2“复数计算器”程序所能实现的功能 1.建立实数类、复数类,复数类由实数类公有继承而来。 2.实现实数、复数信息的初始化。 3.通过选择结构和调用相关函数实现实数的相关运算,包括:两个实数间的加、减、乘、除和一个实数的自增、自减、求平方、二次方根等运算。 4.通过选择结构和调用相关函数实现复数的相关运算,包括:两个复数间的加、减、乘、除、求两个复数的夹角和一个复数的取模、求平方、求共轭复数、求单个复数的向量角等运算。 5.通过调用相关函数实现实数、复数信息的输出,显示在显示屏上。 6.通过多次运用选择和循环结构实现对实数、复数运算的选择,在选择了实数或复数运算的前提下,再实现对各种运算的选择,运算结束后还可以选择继续实现其它运算或退出程序。 1.2 程序设计 1.2.1概要设计 1.系统中的各个实体及它们之间的关系 系统中的实体是实数类对象和复数类对象,它们的关系是复数类对象所属的类是由实数类对象所属的类公有派生而来的。 2.系统的类层次 程序中建立了两个类,分别是实数类、复数类,复数类是由实数类公有派生而来的。 3.主程序的流程以及各程序模块之间的层次(调用)关系 首先从键盘输入数字1或2或0,输入不同数字则进入不同的并列的小程序模块。

简单计算器c++课程设计

简单计算器 1 基本功能描述 简单计算器包括双目运算符和单目运算符。双目运算符包含基本的四则运算及乘幂功能,单目运算符包含正余弦、阶乘、对数、开方、倒数等运算。可对输入任意操作数包含小数和整数及正数和负数进行以上的所有运算并能连续运算。出现错误会给出提示,同时包含清除、退格、退出功能以及有与所有按钮相对应的菜单项。 2 设计思路 如图1,是输入数据子函数的流程图。打开计算器程序,输入数据,判断此次输入之前是否有数字输入,如果有,则在之前输入的数字字符后加上现有的数字字符;如果没有,则直接使编辑框显示所输入的数字字符。判断是否继续键入数字,如果是,则继续进行前面的判断,如果否,则用UpdateData(FALSE)刷新显示。 如图2,是整个计算器的流程图。对于输入的算式,判断运算符是双目运算符还是单目运算符。如果是双目运算符,则把操作数存入数组a[z+2]中,把运算符存入b[z+1]中;如果是单目运算符,则把字符串转化为可计算的数字,再进行计算。下面判断运算符是否合法,如果合法,则将结果存入a[0],不合法,则弹出对话框,提示错误。结束程序。

输入一个数字 在之前输入的数字字符后面加上现在的数字字符。 Eg :m_str+=”9”。 直接使编辑框显示所输入的数字字符。 Eg :m_str=”9”。 pass3=1表示已有数字输入 开始 之前是否有数字输入? pass3==1? 继续键入数字? 用UpdateData(FALSE)刷新显示 图1 输入数据子函数流程图 Y N Y N

输入开始 双目运算符 是否每一个操作数都存入a[]数组? 把操作数存入a[z+2],把运算符存入b[z+1]。 单目运算符 将字符串转换 为可计算的数进行运算 运算是否合法? 将结果存入a[0] 弹出对话框提示错误 结束Y Y N N 图2 简单计算器总流程图

教你巧妙改装计算器,功能很强大。如此变态的计算器,你一定不知道怎么玩,我来告诉你

一、shift+7+on,不多说了,很多人都知道 二、CMPLX(复数计算),MAT(矩阵),VCT(向量)! 没想到吧,俺们的计算器还能算复数。说到这里,先要讲怎么进入异常状态!这可是好多种变态功能使用的必须状态! 进入异常状态:(依次按下列键,不能多一下或少一下,期间不管计算器怎么显示错误都无视) on, shift+加号(Pol), 1, shift+右括号(逗号), 0, =, AC, 6下分数线, =, AC, 左, 1, x^n(x平方右边那个), =, AC, 上, AC, 3下左, DEL(此时显示r=1,fai o=0,惊讶了吧), 分数线, 在分数线上下都输入1, = 异常状态进入成功! 然后继续凹:8下Ans, 然后不断按sin直到显示错误, AC, shift+9, 1, =, AC, shift+9, 2, =, AC(前面几步也叫2次清空), 5下根号, 6下x^n(此时出现乱码,可以看见乘以10), 15下

DEL(正好到r前面,小心点按哦,按过头就要重来了。。), 右括号, =, AC, shift+9, 2, =, AC, 2下右, DEL(正好把那个右括号删了), 1, alpha+x^3(是个双引号), 2下等于, mode 看到什么了!2就是复数计算,4不明,5也不明,6就是矩阵,8就是向量,平时看不见吧~ 1、CMPLX:按完2之后屏幕突然变亮,然后按on,再用shift+mode调节屏幕亮度(可以看得清楚点。。)为了保证能正常使用,shift+mode, 3, shift+mode, 8, 1, shift+mode, 下, 4, 1。OK啦~~~现在ENG就是i!!!不过计算结果如果带i 的话不会显示出来比如答案是-1+i,显示就是-11,按shift+2再按4就能显示出来了,shift+2还有其他几个功能,自己研究吧~~ 2、MAT:按完6之后按一下AC,然后同样调节亮度。shift+4,慢慢玩吧~~ 3、VCT:按完8之后按一下AC,然后同样调节亮度。貌似是shift+5,自己试试~~ 三、进制转换(可转换2进制,8进制,10进制,16进制)

android简单计算器课程设计.

摘要 Android是当今最重要的手机开发平台之一,它是建立在Java基础之上的,能够迅速建立手机软件的解决方案。Android的功能十分强大,成为当今软件行业的一股新兴力量。Android基于Linux平台,由操作系统、中间件、用户界面和应用软件组成,具有以下5个特点:开放性、应用程序无界限、应用程序是在平等条件下创建的,应用程序可以轻松的嵌入网络、应用程序可以并行运行。而简单计算器又是手机上必备的小程序,所以此次创新实践很有意义。并且具有很强的使用性。 关键字:Android Java基础计算器

目录 第1章开发工具与环境 (1) 1.1 Android平台 (1) 1.2 Java开发环境 (1) 1.3 Eclipse (1) 1.4 Android程序基础—Android应用程序的构成 (2) 第2章系统分析与设计 (4) 2.1系统的可行性分析 (4) 2.2 系统的需求分析 (4) 2.3 系统的优势 (4) 2.4 系统的流程图 (5) 第3章系统详细设计 (6) 3.1 动作Activity (6) 3.2 布局文件XML (6) 3.3 Activity的详细设计 (7) 3.2 布局文件XML的详细设计 (21) 3.2 系统的运行结果 (24) 结论 (25) 参考文献 (26)

第1章开发工具与环境 1.1 Android平台 1.谷歌与开放手机联盟合作开发了Android, 这个联盟由包括中国移动、摩托罗拉、高通、宏达和T-Mobile在内的30多家技术和无线应用的领军企业组成。 2.Android是一个真正意义上的开放性移动设备综合平台。通过与运营商、设备制造商、开发商和其他有关各方结成深层次的合作伙伴关系,来建立标准化、开放式的移动电话软件平台,在移动产业内形成一个开放式的生态系统,这样应用之间的通用性和互联性将在最大程度上得到保持。 3.所有的Android应用之间是完全平等的。 4.所有的应用都运行在一个核心的引擎上面,这个核心引擎其实就是一个虚拟机,它提供了一系列用于应用和硬件资源间进行通讯的API。撇开这个核心引擎,Android的所有其他的东西都是“应用”。 5.Android打破了应用之间的界限,比如开发人员可以把Web上的数据与本地的联系人,日历,位置信息结合起来,为用户创造全新的用户体验。 1.2 Java开发环境 Java技术包含了一个编程语言及一个平台。Java编程语言具有很多特性,如面向对象、跨平台、分布式、多线程、解释性等等。Java编程语言起源于Sun公司的一个叫“Green”的项目,目的是开发嵌入式家用电器的分布式系统,使电气更加智能化。1996年1月发布了JDK1.1版本,一门新语言自此走向世界。之后,1998年12月发布了1.2版本,2002年2月发布1.4版本,2004年10月发布1.5版本(5.0),2006年12月发布1.6(6.0)版本,这是目前的最新版本。Java1.2版本是一个重要的版本,基于该版本,Sun将Java技术分为J2SE、J2ME、J2EE,其中J2SE为创建和运行Java程序提供了最基本的环境,J2ME与J2EE 建立在J2SE的基础上,J2ME为嵌入式应用(如运行在手机里的Java程序)提供开发与运行环境,J2EE为分布式的企业应用提供开发与运行环境。 1.3 Eclipse

简易计算器课程设计

评阅教师评语:课程设计成绩 考勤成绩 实做成绩 报告成绩 总评成绩指导教师签名: 课程设计报告 论文题目基于ARM的简易计算器设计 学院(系):电子信息与自动化学院 班级:测控技术与仪器 学生姓名:同组同学: 学号:学号: 指导教师:杨泽林王先全杨继森鲁进时间:从2013年 6 月10 日到2013年 6 月28 日 1

目录 1、封面—————————————————————P1 2、目录—————————————————————P2 3、前言—————————————————————P3 4、关键字————————————————————P3 5、原理与总体方案————————————————P3 6、硬件设计———————————————————P6 7、调试—————————————————————P10 8、测试与分析——————————————————P11 9、总结—————————————————————P13

10、附件—————————————————————P14 前言 近几年,随着大规模集成电路的发展,各种便携式嵌入式设备,具有十分广阔的市场前景。嵌入式系统是一种专用的计算机系统,作为装置或设备的一部分。通常,嵌入式系统是一个控制程序存储在ROM中的嵌入式处理器控制板。事实上,所有带有数字接口的设备,如手表、微波炉、录像机、汽车等,都使用嵌入式系统,有些嵌入式系统还包含操作系统,但大多数嵌入式系统都是是由单个程序实现整个控制逻辑。在嵌入式系统中,数据和命令通过网络接口或串行口经过ARM程序处理后,或显示在LCD上,或传输到远端PC上。 本文通过周立功的LPC2106芯片完成的简易计算器,正是对嵌入式应用的学习和探索。 一、摘要: 计算器一般是指“电子计算器”,是能进行数学运算的手持机器,拥有集成电路芯片。对于嵌入式系统,以其占用资源少、专用性强,在汽车电子、航空和工控领域得到了广泛地应用。本设计就是先通过C语言进行相应程序的编写然后在ADS中进行运行最后导入PROTUES进行仿真。最后利用ARM中的LPC2106芯片来控制液晶显示器和4X4矩阵式键盘,从而实现简单的加、减、乘、除等四则运算功能。 关键字:中断,扫描,仿真,计算 二、原理与总体方案: 主程序在初始化后调用键盘程序,再判断返回的值。若为数字0—9,则根据按键的次数进行保存和显示处理。若为功能键,则先判断上次的功能键,根据代号执行不同功能,并将按键次数清零。程序中键盘部分使用行列式扫描原理,若无键按下则调用动态显示程序,并继续检测键盘;若有键按下则得其键值,并通过查表转换为数字0—9和功能键与清零键的代号。最后将计算结果拆分成个、十、百位,再返回主程序继续检测键盘并显示;若为清零键,则返回主程序的最开始。 电路设计与原理:通过LPC2106芯片进行相应的设置来控制LCD显示器。 而通过对键盘上的值进行扫描,把相应的键值通过MM74C922芯片进行运算从而

C++课程设计报告(复数计算器)

南京信息工程大学 《面向对象程序设计》课程设计实验报告 课程名:面向对象程序设计 专业:网络工程 班级:2班 作者:张煜荻、吴辉煌、张一东 日期:2011年5~6月

实验内容 题目:设计一个复数计算器。 要求:1)所设计的复数计算器可以进行+、-、×运算。2)设计输入重载函数,要求能接收从键盘输入a+b i形式的复数,在程序中可以识别出实部、虚部并进行赋值。3)设计算器测试程序,对加减法进行测试,要求在两位数以内,对乘法进行测试,乘法要求为一位数的运算。 小组分工

程序源码 #include #include #define EPS 1e-5//定义精度为10^-5 using namespace std; namespace NameCalculator //定义空间NameCalculator { class Calculator //定义Calculator类 { private: double Real,Image; //私有成员:实部Real、虚部Image public: Calculator(double real=0,double image=0) //构造函数 { Real=real; Image=image; } int operator==(Calculator &com); //等于重载 Calculator operator+(Calculator &com); //加法重载 Calculator operator-(Calculator &com); //减法重载 Calculator operator*(Calculator &com); //乘法重载 Calculator operator*=(Calculator &com);//乘法赋值重载 friend istream & operator>>(istream &is,Calculator &com); //输入重载 friend ostream & operator<<(ostream &os,Calculator &com); //输出重载}; int Calculator::operator==(Calculator &com) //重载等于 { if(Real==com.Real && Image==com.Image) return 1; else return 0; } Calculator Calculator::operator+(Calculator &com) //加法重载 { Calculator sum; sum.Real=Real+com.Real; sum.Image=Image+com.Image; return sum;

计算器-复数的计算方法

用计算器计算复数 (KK-82MS-1) 三、计算举例 模式:MODE CLR↓1。 1.代数式化成极坐标式 例如: 3 + j 4 = 5 /53.13o 步骤: POL↓(3,4)。结果=5; 在按键rcl↓F↓。结果等于53.13. 2. 极坐标化成代数式 例如: 15 /-50o = 9.64- j11.49 按键步骤:SHIFT↓REC↓(15,-50)。结果等于9.64. 再按rcl↓F 。结果等于-11.49. 3. 代数式的加减乘除 例如: ( 5 - j 4 ) × ( 6 + j 3 ) = 42 - j 9 = 42.953/-12.095o 步骤:先进行简单的加减运算得到42 - j 9。 POL↓(42,-9)。结果等于42.953; 再rcl↓F。结果等于-12.095. 例 ( 5 - j 4 ) + ( 6 + j 3 ) = 11 - j 1 = 11.045 /-5.1944o ( 5 - j 4 ) - ( 6 + j 3 ) = -1 - j 7 = 7.071 /-98.13o ( 5 - j 4 ) ÷ ( 6 + j 3 ) = 0.4 - j 0.8667 = 0.9545 /-65.2249

o 4.极坐标式的加减乘除 例如:5 /40o + 20 /-30o = 21.15 - j 6.786 = 22.213/-17.788o 步骤:先将5 /40o化成代数式3.83+ 3.214j,将 20 /-30o化成代数式17.32-j10;然后两式相加21.15-j6.786.然后转换成极坐标。 如进行其它运算只需将乘号换成要进行的计算号即可。这里只给出计算结果请同学自己进行练习对比。 5 /40o - 20 /-30o = -13.49 - j 13.2139 = 22.213/135.5929o 5 /40o×20 /-30o = 98.48 - j 17.3648 = 100/10o 5 /40o÷20 /-30o = 0.0855 - j 0.2349 = 0.25/70o

最新单片机简易计算器课程设计

单片机简易计算器课 程设计

引言 说起计算器,值得我们骄傲的是,最早的计算工具诞生在中国。中国古代最早采用的一种计算工具叫筹策,又被叫做算筹。这种算筹多用竹子制成,也有用木头,兽骨充当材料的。约二百七十枚一束,放在布袋里可随身携带。直到今天仍在使用的珠算盘,是中国古代计算工具领域中的另一项发明,明代时的珠算盘已经与现代的珠算盘几乎相同。17世纪初,西方国家的计算工具有了较大的发展,英国数学家纳皮尔发明的"纳皮尔算筹",英国牧师奥却德发明了圆柱型对数计算尺,这种计算尺不仅能做加减乘除、乘方、开方运算,甚至可以计算三角函数,指数函数和对数函数,这些计算工具不仅带动了计算器的发展,也为现代计算器发展奠定了良好的基础,成为现代社会应用广泛的计算工具。 近年来随着科技的飞速发展,单片机的应用正在不断深入,同时带动传统控制检测技术日益更新。在实时检测和自动控制的单片机应用系统中,单片机往往作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构软硬件结合,加以完善。 本任务是个简易的两位数的四则运算,程序都是根据教材内和网络中的程序参考编写而成,在功能上还并不完善,限制也较多。本任务重在设计构思与团队合作,使得我们用专业知识、专业技能分析和解决问题全面系统的锻炼。 随着半导体集成工艺的不断发展,单片机的集成度将更高、体积将更小、功能将更强。在单片机家族中,80C51系列是其中的佼佼者,加之Intel公司将其MCS –51系列中的80C51内核使用权以专利互换或出售形式转让给全世界许多著名IC制造厂商,如Philips、 NEC、Atmel、AMD、华邦等,这些公司都在保持与80C51单片机兼容的基础上改善了80C51的许多特性。这样,80C51就变成有众多制造厂商支持的、发展出上百品种的大家族,现统称为80C51系列。80C51单片机已成为单片机发展的主流。专家认为,虽然世界上的MCU品种繁多,功能各异,开发装置也互不兼容,但是客观发展表明,80C51可能最终形成事实上的标准MCU芯片。 事实上单片机是世界上数量最多的计算机。现代人类生活中所用的几乎每件电子和机械产品中都会集成有单片机。手机、电话、计算器、家用电器、电子玩具、掌上电脑以及鼠标等电脑配件中都配有1-2部单片机。而个人电脑中也会有为数不少的单片机在工作。汽车上一般配备40多部单片机,复杂的工业控制系统上甚至可能有数百台

C++课程设计复数计算器

C++课程设计实验报告 姓名学号班级 合作者学号班级 任课教师时间 教师指定题目复数计算器评定难易级别 A级实验报告成绩

复数计算器 程序功能设计 1.程序功能的总体结构 复数计算器的程序总体功能可设计成如图1所示,可以看出,复数计算器的各种功能都用菜单选项列出,用户可以根据需要选择相应的菜单项,从而执行不同的子程序以完成相应的功能。 2.课程设计要求 (1)一开始运行程序,要有详细的菜单选项界面,用户不选择退出就可以反复运算。 (2)可以进行多个操作数的复数运算,输入0+0*i时为止。 (3)编写可以对输入的复数求模的成员函数。 (4)编写具有测试功能的函数,即计算机能够自动出题,并要求用户计算,同时计算机判断用户计算的对错并打分,要求十题为一个单元,每题一个运算符,运算符包括+,-,*三种,参与加减运算实部虚部为一位数。 (5)重载输入输出运算符,对复数的输入既可采用实部虚部分开提示输入,也可直接输入诸如a+i*b或a+ib这种形式,对复数的输出要考虑实部虚部的正负号,通过判断给出的输出结果。

2.程序设计思想 1)类的封装 程序中将复数形式的数据定义成一个复数类CComplex,重载了加法及减法等运算符,使函数的加减等运算像一般数据一样方便.每个运算符重载都用一个函数去实现。参考类的定义如下: class CComplex{

private: double Real,Image; public: CComplex(double real=0,double image=0) //构造函数 {Real=real;Image=image;} friend istream&operator>>(istream&is,CComplex&com); //重载输入friend ostream&operator<<(ostream&os,CComplex&com); //重载输出 CComplex operator+(CComplex&com); CComplex operator-(CComplex&com); //减法重载 CComplex operator*(CComplex&com); //乘法重载 CComplex operator/(CComplex&com); //除法重载 int operator==(CComplex&com); int operator!=(CComplex&com); int operator>(CComplex&com); int operator<(CComplex&com); float Module(void); //复数求模 }; (2)设计的任务要求1 在实际应用中,输入复数可能为a+bi, a, bi, -a, -bi, +i. –i. I等形式。重载

简易计算器课程设计

科研训练论文 题目:基于单片机的计算器的设计 目录 一、概述 (3) 1.1设计要求及任务: (3) 1.2设计原理: (3) 二、系统总体方案及硬件设计 (3) 2.1计算器总体思想 (3) 2.2硬件的选择与连接 (4) 2.2.1硬件选择 (4) 2.2.2接口设计 (5) 三、软件设计 (7)

3.2系统流程总图 (8) 3.3显示程序设计 (8) 3.4键盘识别程序设计 (9) 3.4.1原理与分析 (9) 3.4.2流程图 (10) 四、设计体会与总结 (11) 五、参考文献 (11) 附录 基于单片机的计算器的设计 摘要:本设计是一个实现加减乘除的计算器,它的硬件主要由四部分构成,一个8051单片机芯片,两个八段共阴极数码管,一个4*4键盘,它可以实现一位数的加减乘除运算。 显示部分:采用LED动态显示。 按键部分:采用4*4键盘。采用软件识别键值,并执行相应的操作。 关键词:LED接口;键盘接口;8255A;汇编语言

一、概述 1.1设计要求及任务: (1)设计4*4的键盘,其中10个数字键0~9,其余六个键“+”、“—”、“*”、“/”、“=”、和“C”键; (2)设计两位LED接口电路; (3)实现1位数的简单运算 1.2设计原理: (1)LED显示器接口技术 LED动态显示接口技术 (2)键盘显示技术 逐行(逐列扫描法) 二、系统总体方案及硬件设计 2.1计算器总体思想 显示部分:采用LED动态显示。 按键部分:采用4*4键盘。采用软件识别键值,并执行相应的操作。 执行过程:开机显示零,等待键入数值,当键入数字,经通过数码管显示出来,当键入+、-、*、/运算符,计算器在内部执行数值转换和存储,并等待再次键入数值,当再键入数值后将显示键入的数值,按等号就会在数码管上输出运算结果。

单片机简易计算器课程设计

单片机简易计算器课程设计 课程设计 题目名称________________ 简易计算器设计____________ 课程名称_____________ 单片机原理及应用____________ 学生姓名________________

班级学号________________ 2018年6月20日

目录 一设计目的 (2) 二总体设计及功能介绍 (2) 三硬件仿真图 (3) 四主程序流程图 (4) 五程序源代码 (5) 六课程设计体会 (28)

设计目的 本设计是基于51系列单片机来进行的简单数字计算器设计,可以完成计算器的键盘输入,进行加、减、乘、除六位整数数范围内的基本四则运算,并在LED上显示相应的结果。软件方面使用C语言编程,并用PROTUE仿真。 二总体设计及功能介绍 根据功能和指标要求,本系统选用MCS-51 系列单片机为主控机,实现对计算器的设计。具体设计及功能如下: 由于要设计的是简单的计算器,可以进行四则运算,为了得到较好的显示效果,采用LED显示数据和结果; 另外键盘包括数字键(0?9)、符号键(+、-、x、十)、清除键和等号键,故只需要16个按键即可,设计中采用集成的计算键盘;

执行过程:开机显示零,等待键入数值,当键入数字,通过LED显示出来,当键入+、-、*、/运算符,计算器在内部执行数值转换和存储,并等待再次键入数值,当再键入数值后将显示键入的数值,按等号就会在LED上输出运算结果。 三硬件仿真图 硬件部分比较简单,当键盘按键按下时它的那一行、那一列的端口为低电平。因此,只要扫描行、列端口是否都为低电平就可以确定是哪个键被按下。

单片机课程设计——计算器设计

目录 一、设计总绪 (2) 1.1设计思想 (2) 1.2设计说明 (3) 1.3关键词:矩阵键盘,单片机,数码管显示,汇编语言 (3) 1.4设计目的 (3) 1.5设计要求 (4) 二、设计方案 (5) 2.1硬件电路设计方案 (5) 2.1.1基本结构 (5) 2.1.2系统框架图 (5) 2.1.3工作流程图 (6) 2.1.4单片机主控制模块 (7) 2.2系统功能描述 (9) 三、各模块功能介绍 (10) 3.1键盘输入模块 (10) 3.1.1键盘分布图 (10)

3.1.2工作原理 (11) 3.2运算控制模块 (11) 3.3显示模块 (12) 3.4振荡电路模块 (13) 四、仿真电路 (14) 仿真运行结果 (14) 五、调试过程总结 (17) 附录: (18) 参考文献: (18) 源程序代码 (19) 一、设计总绪 1.1设计思想 近年来随着科技的飞速发展,单片机的应用正在不断深入,同时带动传统控制检测技

术日益更新。在实时检测和自动控制的单片机应用系统中,单片机往往作为一个核心部件来使用,但仅单片机方面的知识是不够的,还应根据具体硬件结构、软硬件结合,来加以完善。计算机在人们的日常生活中是比较常见的电子产品之一。可是它还在发展之中,以后必将出现功能更加强大的计算机,基于这样的理念,本次设计是用AT89c51单片机、LCD显示器、控制按键为元件来设计的计算器。利用此设计熟悉单片机微控制器及汇编语言编程,对其片资源及各个I/O端口的功能和基本用途的了解。掌握应用程序开发环境,常用的LCD显示器的使用方法和一般键盘的使用方法 此设计是基于单片机技术的简易计算器的方案,本次设计所提出的一种基于单片机技术的简易计算器的方案,采用具有数据处理能力的中央处理器CPU,随机存储器ROM,多种I/O口和中断系统、定时器/计时器等功能集成到一块硅片上构成的一个小而完善的计算机系统——单片机,配以汇编语言编写的执行程序,能更好的解决计算机计算的问题,随着数字生活的到来,单片机在生活中越来越重要,它能将大量的逻辑功能集成与一个集成电路中,使用起来十分方便。 1.2设计说明 本次课程设计讨论了单片机技术的计算器构思,设计方案,工作原理,主要系统包括单片机80C51,排阻RESPACK—8,开关,六位数码管显示器等,主要组成部分包括:键盘输入模块,运算模块,控制模块,显示模块。通过键盘输入数值,单片机进行运算后在数码管显示出结果。 1.3关键词:矩阵键盘,单片机,数码管显示,汇编语言 1.4设计目的

CASIO fx-82ES计算器隐藏功能(矩阵、向量、解方程、复数运算等)

大家说看不明白一刚辛苦手打大家分享按shift、9、3、=、=按shift、+、1、,、0、=按分数 线到底大概7~8次按=、AC按左、1 、按次方、=、AC按上、AC 按左2次按DEL 删除1。得到r=1,等等按分数线上下都输入1 按= 再按8次Ans 继续跟着按22次sin 按AC按shift、9、1、=、AC按shift、9、2、=、AC按次方更号次方更号满点按快了会死机如死机则重来大概5组直到后面出现一串英文按DEL 删除所有次方和更号继续按DEL 开始删除 字母删到r 前面按)按=、AC按shift、9、2、=、AC按右删除)输入1 :按2次= 记住2次按MODE、2按ON按MODE 按几次右可以快捷调亮度然后修复计算机按shift、MODE、3 按shift、MODE、8、1按shift、MODE下、4、1搞定哈哈哈哈哈哈ENG就是i如输入8+6i /9+47i后一定要按shift、2、4那是负数指令不按你死定了 注:本次升级目标:从fx-82ES(B版)升级到fx-991ES 在所有操作之前,请先检查计算器屏幕左上角是否有“M”字样。如果有,请按0+shift+RCL(STO)+ M+。如果没有,请继续操作。 所有隐藏模式调出前请先进入异常模式: 注:【】代表注释( )代表第二功能键 首先打开计算器电源(ON) 1. shift 2. + (Pol) 3. 1 4. shift 5. ")" ( , ) 6. 0 7. ) 【前7步最后显示为"Pol(0,1)"】 8. = 9. 狂按分数线,直到按到顶不动为止【似乎是7到8个】 10. 按= (显示Syntax ERROR 不要管它),AC,左 11. 1 12. 幂【在方向键下面,就是X上面有个小白框的键】 13. = 14. AC 15. 向上键 16. AC

matlab课程设计简单计算器的设计

matlab课程设计报告 题目简易计算器的设计 学院电子信息工程学院 专业电子信息 学生姓名和学号 指导教师

一、选题目的及意义 GUI的广泛应用是当今计算机发展的重大成就之一,它极大地方便了非专业用户的使用。人们从此不再需要死记硬背大量的命令,取而代之的是可以通过窗口、菜单、按键等方式来方便地进行操作,而在matlab有很简单的gui设计工具,我们可以通过这个工具轻松地构建我们想要的程序,从而实现与用户的信息交互。本次课程设计是使用了matlab中的guide生成了简单的计算器程序。 二、源代码 function varargout = Calculator(varargin) %Simple Calculator %@Anhui University % Begin initialization code - DO NOT EDIT gui_Singleton = 1; gui_State = struct('gui_Name', mfilename, ... 'gui_Singleton', gui_Singleton, ... 'gui_OpeningFcn', @Calculator_OpeningFcn, ... 'gui_OutputFcn', @Calculator_OutputFcn, ... 'gui_LayoutFcn', [] , ... 'gui_Callback', []);

if nargin && ischar(varargin{1}) gui_State.gui_Callback = str2func(varargin{1}); end if nargout [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:}); else gui_mainfcn(gui_State, varargin{:}); end % End initialization code - DO NOT EDIT % --- Executes just before Calculator is made visible. function Calculator_OpeningFcn(hObject, eventdata, handles, varargin) % This function has no output args, see OutputFcn. % hObject handle to figure % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % varargin command line arguments to Calculator (see VARARGIN) % Choose default command line output for Calculator handles.output = hObject; % Update handles structure guidata(hObject, handles);

对于复数的运算利用计算器进行非常简单

对于复数的运算利用计算器进行非常简单,下面以SHARP EL-506P型计算器为例说明复数的有关运算。 一、使用方法 1.利用计算器进行复数计算必须要用计算器的度,按DRG键,使计算器显示窗中要有“DEG”标致(表示计算器进行所有带角度的运算均以“度”为单位)。 2.让计算器进入复数运算状态,分别按2ndF 和CPLX,显示窗中有“CPLX”标致,表示计算器只能进行复数的运算,而进行其它计算则是无效的。取消则重复进行即可。进行复数的加减乘除运算时计算器必须处于复数运算状态。 二、计算说明 1.计算器中a、b的分别表示进行复数运算的实部和虑部,进行代数式输入时可以直接按此键。 2.计算器中→rθ、→xy的分别表示进行复数运算的模和角,进行极坐标式输入时必须利用上档键功能进行;同时这两个按键也是代数式和极坐标式转换的功能键。 3.计算器在进行复数运算时均是以代数式形式进行的,就是说在进行极坐标式计算时必须要先化成代数式,计算的结果也是代数式,如果希望得到极坐标式计算完成后也要进行转换。 4.显示结果运算完成后的结果就是代数式且显示的是实部,按b显示虑部,再按a就显示实部,转换成极坐标式后则按a显示模,按b显示角,也可重复显示。 5.在输入带有负号的值时,应先输入数值,再输入负号,输入负号应按+/-键。 三、计算举例 1.代数式化成极坐标式 例如:3 + j 4 = 5 /53.13o 按键步骤:(按键动作用“↓”表示。) 3↓a↓4↓b↓2ndF↓→rθ↓显示模5,b↓显示角53.13o。 2.极坐标式化成代数式 例如:15 /-50o = 9.64- j11.49 按键步骤: 15↓a↓50↓+/-↓b↓2ndF↓→xy↓显示实部9.64,b↓显示虑部-11.49。 3.代数式的加减乘除 例如:( 5 - j 4 ) × ( 6 + j 3 ) = 42 - j 9 = 42.953/-12.095o 按键步骤: 5↓a↓4↓+/-↓b↓×↓6↓a↓3↓b↓=↓显示实部42 b↓显示虑部–9。如要极坐标式只需继续进行转换即可。2ndF ↓→rθ↓显示模42.953,b↓显示角-12.095o。 如进行其它运算只需将乘号换成要进行的计算号即可。这里只给出计算结果请同学自己进行练习对比。实际计算时可取小数点后两位。 ( 5 - j 4 ) + ( 6 + j 3 ) = 11 - j 1 = 11.045 /-5.1944o ( 5 - j 4 ) - ( 6 + j 3 ) = -1 - j 7 = 7.071 /-98.13o ( 5 - j 4 ) ÷ ( 6 + j 3 ) = 0.4 - j 0.8667 = 0.9545 /-65.2249o 4.极坐标式的加减乘除 例如: 5 /40o + 20 /-30o = 21.15 - j 6.786 = 22.213/-17.788o 按键步骤: 5↓a↓40↓b↓2ndF↓→xy ↓+ 20↓a↓30↓+/-↓b↓2ndF↓→xy↓=↓显示实部21.15,b↓显示虑部-6.786。再转换成极坐标式:2ndF↓→rθ↓显示模22.213,b↓显示角-17.788o。 如进行其它运算只需将乘号换成要进行的计算号即可。这里只给出计算结果请同学自己进行练习对比。

微机原理课程设计_简易计算器的设计

目录 一前言 (1) 二总体设计 (2) 三硬件设计 (2) 3.1微处理器8086芯片 (2) 3.2可编程并行接口芯片8255A (3) 3.44 3.5 4.1 4.2 五仿真 一前言 1.1 软件硬件调试、编写设计报告等问题,真正做到理论联系实际,提高动手能力和分析问题、解决问题的能力,实现由学习知识到应用知识的初步过渡。通过本次课程设计使学生熟练掌握微机系统与接口扩展电路的设计方法,熟练应用8086汇编语言编写应用程序和实际设计中的硬软件调试方法和步骤,熟悉微机系统的硬软件开发工具的使用方法。 通过课程设计实践,不仅要培养学生事实求是和严肃认真的工作态度,培养学生的实际动手能力,检验学生对本门课学习的情况,更要培养学生在实际的工程设计中查阅资料,撰写设计报告表

达设计思想和结果的能力。 1.2课程设计指导及要求 在课程设计时,2~3名同学组成1个设计小组,分别完成项目的功能设计、电路编辑及调试、编码及调试和课程设计报告编写工作。同批次同学中选择同一题的不超过3组。在教师指导下,可以相互讨论。每设计小组提交1份设计报告,设计报告由设计小组同学独立完成,不得互相抄袭。教师的主导作用主要在于指明设计思路,启发学生独立设计的思路,解答疑难问题和按设计进度进行阶段审查。学生必须发挥自身学习的主动性和能动性,主动思考问题、分析问题和解决问题,而

同时使“输入回答”线有效,作为对外设的响应。外设在收到这个回答信号后,就撤消数据和“输入准备好”信号。数据到达接口中后,接口会在“状态寄存器”中设置输入准备好标志,或者向CPU 发一个中断请求。CPU 可用查询方式或中断方式从接口中读取数据。接口中的数据被读取后,接口会自动清除状态寄存器中的标志,且 撤消对CPU 的中断请求。

相关文档
相关文档 最新文档