复数计算器 实验报告

复数计算器 实验报告
复数计算器 实验报告

中南大学

高级程序设计实践(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,输入不同数字则进入不同的并列的小程序模块。

若输入1,则进行实数相关运算,再输入1-8选择具体运算,此时会调用实数类中的相关成员函数,运算出正确结果,运算结束后,则会进入循环结构,进行下一次选择及运算。若输入2,则进行复数相关运算,再输入1-9选择具体运算,此时会调用复数类中的相关成员函数,运算出正确结果,运算结束后,则会进入循环结构,进行下一次选择及运算。若输入0,则将退出复数计算器系统。

1.2.2详细设计

1.类层次中各个类的描述

实数类

数据成员(都属于保护数据成员):double real

成员函数(都属于公有成员函数):

构造函数:Simple() Simple(double r)

相加函数:double jia(Simple &s2)

相减函数:double jian(Simple &s2)

相乘函数:double cheng(Simple &s2)

相除函数:double chu(Simple &s2)

自加函数:double zijia()

自减函数:double zijian()

平方函数:double pingfang()

二次方根函数:double kaifang()

输入函数:void input()

输出函数:double output()

复数类

数据成员(都属于私有数据成员):double imag

成员函数(都属于公有成员函数):

构造函数:Complex() Complex(double r,double i)

重载“+”函数:Complex operator+(Complex &c2)

重载“-”函数:Complex operator-(Complex &c2)

重载“/”函数:Complex operator*(Complex &c2)

重载“*”函数:Complex operator/(Complex &c2)

输入函数:void setnumber()

取模函数:double qumo()

平方函数:Complex pf()

取共轭复数函数:Complex gonge()

求向量角函数:double xiangliangjiao()

求夹角函数:double jiajiao(Complex &c2)

重载“<<”函数:

friend ostream&operator<<(ostream&output,Complex&c)

2.类中各个成员函数的定义

实数类中成员函数定义:

Simple(){double real=0.0;}//构造函数

Simple(double r){real=r;}//构造函数

double jia(Simple &s2)//两个实数相加函数

{

double a;

a=real+s2.real;

return a;

}

double jian(Simple &s2)//两个实数相减函数

{

double a;

a=real-s2.real;

return a;

}

double cheng(Simple &s2)//两个实数相乘函数

{

double a;

a=(real)*(s2.real);

return a;

}

double chu(Simple &s2)//两个实数相除函数

{

double a;

a=(real)/(s2.real);

return a;

}

double zijia()//一个实数自加函数

{

double a;

a=++real;

}

double zijian()//一个实数自减函数

{

double a;

a=--real;

return a;

}

double pingfang()//一个实数的平方函数

{

double a;

a=(real)*(real);

return a;

}

double kaifang()//一个实数的二次方根函数

{

double a;

a=sqrt(real);

return a;

}

void input()//实数的输入函数

{

cout<<"请输入一个实数:"<<"";

cin>>real;

}

double output()//实数的输出函数

{

return real;

}

复数类中成员函数定义:

Complex(){real=0.0;imag=0.0;}//构造函数

Complex(double r,double i){real=r;imag=i;}//构造函数void setnumber()//复数的输入函数

{

cout<<"请输入一个复数的实部:"<<"";

cout<<"请输入一个复数的虚部:"<<"";

cin>>imag;

}

Complex operator+(Complex &c2)//重载"+"用于两复数相加

{

Complex c;

c.real=real+c2.real;

c.imag=imag+c2.imag;

return c;

}

Complex operator-(Complex &c2)//重载"-"用于两复数相减

{

Complex c;

c.real=real-c2.real;

c.imag=imag-c2.imag;

return c;

}

Complex operator*(Complex &c2)//重载"*"用于两复数相乘

{

Complex c;

c.real=real*c2.real-imag*c2.imag;

c.imag=real*c2.imag+imag*c2.real;

return c;

}

Complex operator/(Complex &c2)//重载"/"用于两复数相除

{

Complex c;

c.real=(real*c2.real+imag*c2.imag)/(c2.real*c2.real+c2.imag*c2.imag);

c.imag=(imag*c2.real-real*c2.imag)/(c2.real*c2.real+c2.imag*c2.imag);

return c;

}

double qumo()//一个复数取模函数

{

double a;

a=sqrt(real*real+imag*imag);

return a;

}

Complex pf()//一个复数的平方函数

{

Complex c;

c.real=real*real-imag*imag;

c.imag=2*real*imag;

return c;

}

Complex gonge()//一个复数的共轭复数函数

{

Complex c;

c.real=real;

c.imag=0-imag;

return c;

}

double xiangliangjiao()//单个复数的向量角函数

{

double a;

a=atan(imag/real)*57.295;

return a;

}

double jiajiao(Complex &c2)//两个复数的夹角函数

{

double a;

a=fabs((atan(imag/real))*57.295-(atan(c2.imag/c2.real))*57.295

return a;

}

friend ostream&operator<<(ostream&output,Complex&c)//重载"<<"用于复数的输出

{

output<

if(c.imag>=0)output<<"+";

output<

return output;

}

3.主程序和重要模块的算法

调试程序后,显示屏会显示文字提醒计算器使用者输入数字0或1或2,使用者需根据提示输入相关数据。

部分相关程序代码如下:

cout<<"【欢迎使用复数运算器】"<

gg: cout<<"请输入0或1或2"<

cout<<"【0】退出复数计算器;"<

cout<<"【1】进行实数相关运算;"<

cout<<"【2】进行复数相关运算:"<<"";

cin>>a;

若计算器使用者输入1,则选择了实数的相关运算,系统会提示输入数字1-8,1-8分别对应两个实数间的相加、相减、相乘、相除和一个实数的自加、自减、平方、二次方根等运算,使用者需根据提示输入1-8,再从键盘输入一个或两个实数,按回车键后即可得到正确结果。

部分相关程序代码如下:

if(a==1)

{

cout<<"1.相加 2.相减 3.相乘 4.相除(两个实数间的运算)"<

cout<<"5.自加 6.自减 7.平方 8.二次方根(一个实数的运算)"<

cout<<"输入数字1-8进行选择:"<<"";

cin>>b;

if(b==1||b==2||b==3||b==4)

{

cout<<"请输入2个实数:"<<""<<""<

s1.input();

s2.input();

cout<<"第1个实数是:"<

cout<<"第2个实数是:"<

switch(b)

{

case 1:cout<<"相加结果是:"<

case 2:cout<<"相减结果是:"<

case 3:cout<<"相乘结果是:"<

case 4:cout<<"相除结果是:"<

default:cout<<"error"<

}

cout<

}

if(b==5||b==6||b==7||b==8)

{

cout<<"请输入1个实数:"<<""<

s1.input();

cout<<"输入的实数是:"<

switch(b)

{

case 5:cout<<"自加结果是:"<

case 6:cout<<"自减结果是:"<

case 7:cout<<"平方结果是:"<

case 8:cout<<"二次方根是:"<

default:cout<<"error"<

}

cout<

}

goto gg;

}

若计算器使用者输入2,则选择了复数的相关运算,系统会提示输入数字1-9,1-9分别对应两个复数间的相加、相减、相乘、相除、夹角和一个复数的取模、平方、向量角、共轭复数等运算,使用者需根据提示输入1-9,再通过从键盘键入分别输入实部和虚部输入一个或两个复数,按回车键后即可得到正确结果。

部分相关程序代码如下:

if(a==2)

{

cout<<"1.相加 2.相减 3.相乘 4.相除 5.两个复数的夹角(两个复数间的运算)"<

cout<<"6.取模 7.平方 8.一个复数的向量角 9.共轭复数(一

个复数的运算)"<

cout<<"输入数字1-9进行选择:"<<"";

cin>>b;

if(b==1||b==2||b==3||b==4||b==5)

{

cout<<"请输入2个复数:"<<""<<""<

c1.setnumber();

c2.setnumber();

cout<<"第1个复数是:"<

cout<<"第2个复数是:"<

switch(b)

{

case 1:cout<<"相加结果是:"<

case 2:cout<<"相减结果是:"<

case 3:cout<<"相乘结果是:"<

case 4:cout<<"相除结果是:"<

case 5:cout<<"这两个复数的夹角是:"<

default:cout<<"error"<

}

cout<

}

if(b==6||b==7||b==8||b==9)

{

cout<<"请输入1个复数:"<<""<

c1.setnumber();

cout<<"输入的复数是:"<

switch(b)

{

case 6:cout<<"取模结果是:"<

case 7:cout<<"平方结果是:"<

case 8:cout<<"该复数的向量角

是:"<

case 9:cout<<"该复数的共轭复数

是:"<

default:cout<<"error"<

cout<

}

goto gg;

}

若计算器使用者输入0,再按任意键后,即可退出复数计算器。此过程是通过运用if 判断语句和switch 选择语句而实现的。

部分相关程序代码如下: if(a==0) { cout<<"【谢谢使用!按任意键后,您将退出复数计算器】"<

}

若第一次计算器使用者输入1或2且一次运算结束后,系统会再次提醒输入0或1或2,即可进行下一次运算;若第一次计算器使用者输入0,则会退出系统。此过程是通过运用goto 循环语句和if 判断语句而实现的。

4.程序运行的流程图(鉴于程序中用到if 判断语句和switch 循环语句,流程图中会有较多分支,所以此流程图将会以三部分的形式呈现)

图1 程序图分图1

从键盘输入数字0或1或2

输入0

3

4

退出程序

输入1 输入2

输入1

输入数字1-8

1 2 3 4 5 6 7 8

调用2次实数输入函数,2次输出函数,1次相加函数调用2

次实

数输

入函

数,2

次输

出函

数,1

次相

减函

调用2

次实

数输

入函

数,2

次输

出函

数,1

次相

乘函

调用2

次实

数输

入函

数,2

次输

出函

数,1

次相

除函

调用1

次实

数输

入函

数,1

次输

出函

数,1

次自

加函

调用1

次实

数输

入函

数,1

次输

出函

数,1

次相

减函

调用1

次实

数输

入函

数,1

次输

出函

数,1

次平

方函

调用1

次实数

输入函

数,1

次输出

函数,1

次二次

方根函

3

输出结果

图2 程序图分图2

输入数字1-9

1 2 3 4 5 6 7 8

调用2次复数输入函数,1次复数相加函数调用

2次

复数

输入

数,1

次复

数相

减函

调用

2次

复数

输入

数,1

次复

数相

乘函

调用

2次

复数

输入

函数,

1次

求两

复数

夹角

函数

调用

1次

复数

输入

数,1

次取

模函

调用

1次

复数

输入

数,1

次复

数平

方函

调用1

次复

数输

入函

数,1

次求

单个

复数

向量

角函

4

输入2

9

调用

2次

复数

输入

数,1

次复

数相

乘函

调用

1次

复数

输入

数,1

次求

共轭

复数

函数

输出结果

图3 程序图分图3

第二章调试与总结

2.1 调试分析与测试结果

2.1.1调试过程中遇到的问题及解决方法

1.调试出现错误

调试过程中出现错误,不能正常运行,经检查后发现是代码中包含的sqrt函数,fabs函数,atan函数没有定义,在头文件中加上#include即可正常运行。2.运算结果不正确

调试过程中,当算一个复数的向量角时,算出的度数不对,经认真检查后,发现是没有将弧度转化为度数,只需在原始结果后乘57.295即可得到正确结果。

当算两个复数的夹角时,有时运行结果出现负角,但两个复数的夹角不可能是负的,经仔细思考后,在原始结果前加fabs取绝对值,即可得到正确结果。

3.循环结构不恰当

调试过程中,刚开始每进行一种运算后,就会退出系统,若想要进行下一次运算,必须重新调试,这样不太方便,最终经过思考,我在main函数中加入了一个goto 循环结构和exit退出语句,有了这些修改后,在每次运算结束后,可以选择继续进行下一次运算,或是退出系统,这样比较方便。

2.1.2测试结果(鉴于许多运算功能原理相似,以下只列出部分功能的测试结果)

1.求两个实数相乘的结果:

3.求一个实数平方的结果:

4.求一个实数的二次方根:

6.求两个复数的夹角:

7.求一个复数的模:

8.求一个复数的向量角:

9.求一个复数的共轭复数:

2.2课程设计总结

2.2.1课设总结

在这次程序设计的过程中,我遇到了很多问题,同时也收获了不少,成长了不少。一拿到题目我就非常紧张,害怕自己做不出来,焦虑的情绪让我浪费了好多时间,这让我懂得在生活中遇到问题时,要有良好的心态,一定要镇定自若,千万不能惊慌失措。

当我花了好久,终于辛辛苦苦设计出了算法,编写好程序,可是当调试时,出现了很多问题,如:调试过程中出现错误,程序不能正常运行,经认真检查和思考后发现是头文件中缺少#include;还有调试过程中,当算一个复数的向量角时,算出的度数不对,经认真检查后,发现是没有将弧度转化为度数,只需在原始结果后乘57.295即可得到正确结果;当算两个复数的夹角时,有时运行结果出现负角,但两个复数的夹角不可能是负的,经仔细思考后,在原始结果前加fabs取绝对值,即可得到正确结果;还有调试过程中,刚开始每进行一种运算后,就会退出系

统,若想要进行下一次运算,必须重新调试,这样不太方便,最终经过思考,我在main函数中加入了一个goto循环结构和exit退出语句,有了这些修改后,在每次运算结束后,可以选择继续进行下一次运算,或是退出系统,这样比较方便。回头检查错误,修改程序的过程,又让我花费了好多时间和精力,这让我知道做任何事都要有严谨的态度,并考虑到结果。在完善程序的过程中,我也学会了如何快速寻找错误并改正,还让我做任何事更有耐心。

当我遇到问题不能自己独立解决时,我求助了同学,这也让我深刻懂得,在必要的时候我们可以求助他人,同样可以得到好的结果,但大部分还是要靠自己的力量解决问题。

在这次课程设计中,我设计了一个较大的程序后,我对书本上的理论知识有了更全面、深刻的理解,同时也锻炼了我的动手能力、实践能力、将课本知识运用到实际生活中的能力。虽然这次程序设计的过程很艰难,但最终我成功了,我觉得一切的努力都是值得的。

第三章参考文献

[1]《C++程序设计》

[2]《C++程序设计实验上机与指导》

第四章附录

#include

#include

#include

class Simple

{protected:

double real;

public:

Simple(){double real=0.0;}//构造函数

Simple(double r){real=r;}//构造函数

double jia(Simple &s2)//两个实数相加函数

{

double a;

a=real+s2.real;

return a;

}

double jian(Simple &s2)//两个实数相减函数{

double a;

a=real-s2.real;

return a;

}

double cheng(Simple &s2)//两个实数相乘函数{

double a;

a=(real)*(s2.real);

return a;

}

double chu(Simple &s2)//两个实数相除函数{

double a;

a=(real)/(s2.real);

return a;

}

double zijia()//一个实数自加函数

{

double a;

a=++real;

return a;

}

double zijian()//一个实数自减函数

{

double a;

a=--real;

return a;

}

double pingfang()//一个实数的平方函数{

double a;

a=(real)*(real);

return a;

}

double kaifang()//一个实数的二次方根函数

{

double a;

a=sqrt(real);

return a;

}

void input()//实数的输入函数

{

cout<<"请输入一个实数:"<<"";

cin>>real;

}

double output()//实数的输出函数

{

return real;

}

};

class Complex:public Simple

{

private:

double imag;

public:

Complex(){real=0.0;imag=0.0;}//构造函数

Complex(double r,double i){real=r;imag=i;}//构造函数void setnumber()//复数的输入函数

{

cout<<"请输入一个复数的实部:"<<"";

cin>>real;

cout<<"请输入一个复数的虚部:"<<"";

cin>>imag;

}

Complex operator+(Complex &c2)//重载"+"用于两复数相加{

编程实验报告---科学计算器设计与实现

《可视化程序编程环境》 实验报告 项目名称科学计算器设计与实现 学院计算机学院 专业班级计算机科学与技术0804 2010年1月9 日

一、设计任务与要求 使学生了解可视化程序设计语言的基础知识,掌握面向对象编程的分析设计方法,以及与面向对象技术相关的一些软件开发技术,掌握在 VisualC++6环境下进行可视化程序设计技术。通过实践具体的项目,为他们进一步开展相关领域的学习和科研打下良好的基础。 二、需求分析 1. 功能需求(功能划分、功能描述) 1、二进制、八进制、十进制及十六进制数的加、减、乘、除、乘方、取模等简单计算 2、科学计算函数,包括(反)正弦、(反)余弦、(反)正切、(反)余切、开方、指数等函数运行 3、以角度、弧度两种方式实现上述部分函数 4、具备历史计算的记忆功能 5、对不正确的表达式能指出其错误原因 2. 运行需求(用户界面、人机接口、故障处理) 根据计算器要实现的相应功能来布局,分为基本功能区,特殊函数区,进制转换区,度数转换区和输出显示区五大基本模块。 三、实验方案 1、总体设计框图 2

3.基本功能区的设计 在这个模块中主要把0到F各个按键按下去后在输出显示区上显示出来列举一例: void Caysf55Dlg::OnBnClickedButton3() {if(zuizong=="0") m_str=""; m_str+="1"; UpdateData(0); if(zuizong=="0") zuizong=""; zuizong+="1";// TODO: 在此添加控件通知处理程序代码 } 接下来从输出显示区获得字符串,通过运算符的相应按键处理:列举加法: void Caysf55Dlg::OnBnClickedButton19()/*加法运算*/ {double zan; if(m_str=="") MessageBox(L"没有运算数"); else if(y==1||M==1) MessageBox(L"只能输入数值"); else if(m_str.GetAt (m_str.GetLength()-1)=='+'||m_str.GetAt (m_str.GetLength()-1)=='-'||m_str.GetAt (m_str.GetLength()-1)=='*'||m_str.GetAt (m_str.GetLength()-1)=='/')

c计算器实验报告

简单计算器 姓名: 周吉祥 实验目的:模仿日常生活中所用的计算器,自行设计一个简单的计算器程序,实现简单的计算功能。 实验内容: (1)体系设计: 程序是一个简单的计算器,能正确输入数据,能实现加、减、乘、除等算术运算,运算结果能正确显示,可以清楚数据等。 (2)设计思路: 1)先在Visual C++ 6.0中建立一个MFC工程文件,名为calculator. 2)在对话框中添加适当的编辑框、按钮、静态文件、复选框和单选框 3)设计按钮,并修改其相应的ID与Caption. 4)选择和设置各控件的单击鼠标事件。 5)为编辑框添加double类型的关联变量m_edit1. 6)在calculatorDlg.h中添加math.h头文件,然后添加public成员。 7)打开calculatorDlg.cpp文件,在构造函数中,进行成员初始化和完善各控件 的响应函数代码。

(3)程序清单: 添加的public成员: double tempvalue; //存储中间变量 double result; //存储显示结果的值 int sort; //判断后面是何种运算:1.加法 2.减法 3.乘法 4.除法 int append; //判断后面是否添加数字 成员初始化: CCalculatorDlg::CCalculatorDlg(CWnd* pParent /*=NULL*/) : CDialog(CCalculatorDlg::IDD, pParent) { //{{AFX_DATA_INIT(CCalculatorDlg) m_edit1 = 0.0; //}}AFX_DATA_INIT // Note that LoadIcon does not require a subsequent DestroyIcon in Win32 m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME); tempvalue=0;

计算机科学与技术第次实验报告.docx

哈尔滨工程大学 《程序设计基础》实验报告 基础实践一 姓名:班级: 学号: 实验时间 :2018年5月10日成绩 哈尔滨工程大学计算机基础课程教学中心 实验题目 1:输入两个整数数组,每个数组有五个整数,将两者和并 并排列输出。 设计思想: 定义三个数组 , 将两组数据存储到第三个数组中 , 再用冒泡排序对其由大到小排序并输出。 实验代码及注释: #include #include #define N 10//宏定义

int main() { int a[5],b[5],c[N];//第一组数据,第二组,合并数组int i,j,t;//循环变量,中间变量 printf("输入第一组数据 :\n");//输入数据 for(i=0;i<5;i++) scanf("%d",&a[i]); printf("输入第二组数据 :\n"); for(i=0;i<5;i++) scanf("%d",&b[i]); for(i=0;i<5;i++) { c[i]=a[i];//两组数据合并 c[i+5]=b[i]; } for(i=0;i

for(j=0;j

数电实验二:简易计算器(实验报告)

数电实验2实验报告 1、设计修改方案 (1)加入编码器连接4选一数据选择器,控制进行运算的种类 (2)修改了输出端数据选择器的程序,使得当计算器没有任何输入时,结果显示保持为0,并且利用芯片自身的灭零管脚,让显示结果中,当十位为零时,十 位的零不显示。

2、实验数据及分析 (1)修改后电路图(附后) (2)仿真波形 设置输入2个4位二进制数为0110(十进制6)和0010(十进制2),计算方式控制SW[3:0]设为0111,即模拟除法操作,加入时钟信号。 ①模拟除法波形: 可以看到十位(商)的数码管显示中,1、2、3、4、7段亮,显示为数字3,而个位(余数)显示1、2、3、4、5、6段亮,显示数字0,相当于计算出6除2商3余0。满足计算要求。 ②模拟乘法波形:(SW[3:0]设为1011,其他输入同上)

可以看到个位的数码管显示中,1、4、5、6段亮,显示为C(化为十进制为12),而十位一直显示1、2、3、4、5、6段亮,显示数字0,相当于计算出6乘2等于0C,即等于12。当改变输入4和2是,显示结果为8,。满足计算要求。 ③模拟加法波形:(SW[3:0]设为1101,其他输入同上) 可以看到个位的数码管显示中,1、2、3、4、5、6、7段全亮,显示为数字8,而十位一直显示1、2、3、4、5、6段亮,显示数字0,相当于计算出6加2等于08,即等于8。满足计算要求。 ④模拟减法波形:(SW[3:0]设为1110,其他输入同上) 可以看到个位的数码管显示中,2、3、6、7段亮,显示为数字3,而十位一直显示1、2、3、4、5、6段亮,显示数字0,相当于计算出6减2等于03,即等于3。满足计算要求。 从上面加减乘除四种功能运算的波形仿真可以看出,本实验设计能够正确完成对输入数字的上述四种运算。满足题目要求。

vb科学计算器实验报告

西安科技大学 可视化编程语言实验报告 题目:科学计算器 班级: 学号: 姓名: 2010年11月

复杂型科学计算器的设计与实现实验目的 1.通过本实验,进一步理解Visual Basic的编程方法。 2.提高运用Visual Basic编程的能力。 3.培养对所学知识的综合运用能力。 实验类型 综合型。 实验内容与步骤 一.界面设计。

Command5Caption= 三.程序代码: Dim num1 As Single, num2 As Single Dim fu As Integer Dim sign As Integer Private Sub Command1_Click(Index As Integer) Select Case Index Case 0 To 9 sign = Index + 20 Case 10 sign = Index + 20 fu = 1 Case 11 To 14 sign = Index + 20 End Select = "" End Sub Private Sub Command2_Click(Index As Integer) Select Case Index Case 0 To 9 = & Index If fu = 0 Then num1 = Val Else num2 = Val

Case 10 = & "-" Case 11 = & "." Case 12 To 18 = "" sign = Index fu = 1 End Select End Sub Private Sub Command3_Click() If =”” then else = Left$, Len - 1) End if End Sub Private Sub Command4_Click() = "" End Sub Private Sub Command5_Click() Dim n As Integer, cf As Single fu = 0: cf = 1 Select Case sign Case 12 = num1 & "+" & num2 = num1 + num2 Case 13 = num1 - num2 Case 14 = num1 * num2 Case 15 = num1 / num2 Case 18 For n = 1 To num2 cf = cf * num1 Next n = cf Case 20 = Sin(num1) Case 21

单片机实验报告 计算器

单片机原理及其应用实验报告基于51单片机的简易计算器的设计 班级:12电子1班 姓名:金腾达 学号:1200401123 2015年1月6日

摘要 一个学期的51单片机的课程已经随着期末的到来落下了帷幕。“学以致用”不仅仅是一句口号更应该是践行。本设计秉承精简实用的原则,采用AT89C51单片机为控制核心,4X4矩阵键盘作为输入,LCD1602液晶作为输出组成实现了基于51单片机的简易计算器。计算器操作方式尽量模拟现实计算器的操作方式,带有基本的运算功能和连续运算能力。并提供了良好的显示方式,与传统的计算器相比,它能够实时显示当前运算过程和上一次的结果,更加方便用户记忆使用。本系统制作简单,经测试能达到题目要求。 关键词:简易计算器、单片机、AT89C51、LCD1602、矩阵键盘

目录 一、系统模块设计......................................................................................... 错误!未定义书签。 1.1 单片机最小系统 (1) 1.2 LCD1602液晶显示模块 (1) 1.3 矩阵按键模块 (2) 1.4 串口连接模块 (1) 二、C51程序设计 (2) 2.1 程序功能描述及设计思路 (2) 2.1.1按键服务函数 (2) 2.1.2 LCD驱动函数 (2) 2.1.3 结果显示函数 (2) 2.1.4状态机控制函数 (2) 2.1.5串口服务函数 (2) 2.2 程序流程图 (3) 2.2.1系统总框图 (3) 2.2.2计算器状态机流程转换图 (3) 三、测试方案与测试结果 (4) 3.1测试方案 (4) 3.3 测试结果及分析 (7) 4.3.1测试结果(仿真截图) (7) 4.3.2测试分析与结论 (7) 四、总结心得 (7) 五、思考题 (8) 附录1:整体电路原理图 (9) 附录2:部分程序源代码 (10)

安卓计算器开发实验报告

嵌入式WebOS应用开发 实验报告 实验名称:使用An droid Developer SDK开发应用程序 专业:_________________________ 姓名:__________________________________ 班级:_______________________________ 学号:______________________________ 一、作品的运行环境及安卓SDK基础操作 SDK An droid Developer 是一款在windows系统上运行的针对 An droid应用开发的谷歌官方软件(需要JAVA环境支持)。 1、导入工程 2、建立虚拟机 在运行虚拟机是为保证机器的顺畅运行建议选择分辨率较低的虚拟机,但是其RAM最好设为512MB因为部分程序如果调用资源过大会导致虚拟机无法运行。 3、虚拟机界面 二、作品介绍 我的应用是一个计算器。能实现包括小数的加减乘除运算,结果过大会自动用科学记数法表示,另外还有退格跟清屏功能键。

加应用图标 1.首先在我的桌面上添加你应 用的图标以及文字,双击图标后 项中自行进行挑选; 也可以添加自己的图片, 只要将图片放到对应的 文件夹之下在刷新就可 以,但不建议放分辨率 过高图片可能会出现超 出界面的等错误。 要在xml 界面中添加排版: xml 代码首末的 格式较为自由可以直接在 界面中拖动图标位置以及修改大小,而其他layout 则更会自动排列, 各有优劣。 三、 编程以及运行调试 (一)、在MyDesktop 主界面中添 fin^_ok,prig 世IF it launchiWipng 32E img'O.png jdE im^il.png] 3E img?.pHg 血 imql.pngi 32E img4.png 血 im^S.pngi Tn? imgg.png JJL -mgT.pngj ..1. imy^.png ..1. uiHiprxg 就可以看见对应的代码, 可直接 在代码中进行修改图片文字的 大小颜色等等。 以下是对应图像图标的代码 图片可以在左侧的选 (二)、在 res/layout 目录下新建.xml 文件,由于计算器的按钮很多, TIF charfrc 起 ch^tfrorn_bg_ipTW5&d !S'.pflg ~l <+i?,kbnif^M 口 .股 ch?kbojco#f bsckgrourid^na SE chfkb rn (」]n.hewlcgin 口unci 岱n 评 弧 tlwr^na TTF de^ r o 1 .pnq

c计算器实验报告

c计算器实验报告集团标准化工作小组 #Q8QGGQT-GX8G08Q8-GNQGJ8-MHHGN#

简单计算器 姓名: 周吉祥 实验目的:模仿日常生活中所用的计算器,自行设计一个简单的计算器程序,实现简单的计算功能。 实验内容: (1)体系设计: 程序是一个简单的计算器,能正确输入数据,能实现加、减、 乘、除等算术运算,运算结果能正确显示,可以清楚数据等。 (2)设计思路: 1)先在Visual C++ 中建立一个MFC工程文件,名为calculator. 2)在对话框中添加适当的编辑框、按钮、静态文件、复选框和 单选框 3)设计按钮,并修改其相应的ID与Caption. 4)选择和设置各控件的单击鼠标事件。 5)为编辑框添加double类型的关联变量m_edit1. 6)在中添加头文件,然后添加public成员。 7)打开文件,在构造函数中,进行成员初始化和完善各控件的 响应函数代码。 (3)程序清单: 添加的public成员: double tempvalue; 法 2.减法 3.乘法 4.除法

int append; //判断后面是否添加数字 ●成员初始化: CCalculatorDlg::CCalculatorDlg(CWnd* pParent /*=NULL*/) : CDialog(CCalculatorDlg::IDD, pParent) { //{{AFX_DATA_INIT(CCalculatorDlg) m_edit1 = ; //}}AFX_DATA_INIT // Note that LoadIcon does not require a subsequent DestroyIcon in Win32 m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME); tempvalue=0; result=0; sort=0; append=0; } ●各控件响应函数代码: void CCalculatorDlg::OnButton1() //按钮“1” { // TODO: Add your control notification handler code here if(append==1)result=0;

数系的扩充和复数的概念

《数系的扩充和复数的概念》教学设计 1.了解解方程等实际需要也是数系发展的一个主要原因,数集的扩展过程以及复数的 分类表; 2.理解复数的有关概念以及符号表示; 3.掌握复数的代数表示形式及其有关概念; 4.在问题情境中了解数系得扩充过程,体会实际需求与数学内部的矛盾(数的运算规则、方程求根)在数系扩充过程中的作用,感受人类理性思维的作用以及数与现实世界的联系.【教学重点】引进虚数单位i的必要性、对i的规定以及复数的有关概念. 【教学难点】复数概念的理解. 【教学过程】 1.对数集因生产和科学发展的需要而逐步扩充的过程进行概括(教师引导学生进行简 明扼要的概括和总结) 自然数整数有理数无理数实数 2.提出问题 我们知道,对于实系数一元二次方程,没有实数根.我们能否将实数集进行扩充,使 得在新的数集中,该问题能得到圆满解决呢? 3.组织讨论,研究问题 我们说,实系数一元二次方程没有实数根.实际上,就是在实数范围内,没有一个实数的平方会等于负数.解决这一问题,其本质就是解决一个什么问题呢? 组织学生讨论,引导学生研究,最后得出结论:最根本的问题是要解决-1的开平方问 题.即一个什么样的数,它的平方会等于-1. 4.引入新数,并给出它的两条性质 根据前面讨论结果,我们引入一个新数,叫做虚数单位,并规定: (1); (2)实数可以与它进行四则运算,进行四则运算时,原有的加、乘运算律仍然成立.有了前面的讨论,引入新数,可以说是水到渠成的事.这样,就可以解决前面提出的问题(-1可以开平方,而且-1的平方根是). 5.提出复数的概念 根据虚数单位的第(2)条性质,可以与实数b相乘,再与实数a相加.由于满足乘法交换律及加法交换律,从而可以把结果写成这样,数的范围又扩充了,出现了形如的数, 我们把它们叫做复数. 全体复数所形成的集合叫做复数集,一般用字母C表示,显然有: N* N Z Q R C. 【巩固练习】 下列数中,哪些是复数,哪些是实数,哪些是虚数,哪些是纯虚数?并分别指出这些复 数的实部与虚部各是什么? 例1.实数m分别取什么值时,复数z=m+1+(m-1)i是 (1)实数?(2)虚数?(3)纯虚数? 分析:因为m∈R,所以m+1,m-1都是实数,由复数z=a+bi是实、虚数、纯虚数与 零的条件可以确定实数m的值.

简易计算器设计实验报告

简易计算器设计实验报告 一.设计任务及要求 1.1实验任务: 根据计算器的原理设计一个具有加减乘除功能的简易计算器。如:5+3*4/8=4。 1.2 实验基本要求: (1)实现最大输入两位十进制数字的四则运算(加减乘除)。 (2)能够实现多次连算(无优先级,从左到右计算结果)。 如:12+34*56-78/90+9=36 (3)最大长度以数码管最大个数为限,溢出报警。 二.实验设计方案 (1)用QuartusII的原理图输入来完成系统的顶层设计。 (2)用VHDL编写以及直接拖模块来各功能模块。 (3)通过2个脉冲分别实现个位数和十位数的输入。 (4)通过选择每次的输出数值,将输出值反馈到运算输入端 (4)通过除法运算实现十六进制到十进制的转换输出。 其具体实现流程图如下:

三系统硬件设计 FPGA: EP2C5T144C8目标板及相应外围硬件电路。(从略) 四系统软件设计 1.数据输入模块 原理:用VHDL创建模块,通过两个脉冲分别对两个数码管进行输入控制,再通过相应运算模块将两个独立数据转化成两位十进制数字。 2.运算模块 原理:用VHDL创建模块,四种运算同步运行,通过按键加、减、乘、除选择输出对应的计算结果,当按键等号来时,将所得结果反馈给运算模块输入端。具体实现代码见附录二。 3.输出模块 原理:用VHDL创建模块,通过按键等号来控制显示运算对象还是运算结果,当等号按下时,输出计算结果,否则显示当前输入的数据,并且通过除法模块将十六进制转化为十进制。当输出结果溢出是LED0亮,同时数码管显示都为零。部分实现见附录二。 五实验调试 输入数据12,再按加法键,输入第二个数字25,按等号键,数码管显示37;按灭加法、等号键,输入第二个数据2,依次按等号键,减法键,数码管显示35;同上,按灭减法键、等号键,输入第三个数据7,依次按等号键,除法键,数码管显示5;按灭除法键、等号键,输入第四个数据99,依次按等号键,乘法键,数码管显示495,按灭乘法键、等号键,当前显示为99,依次按等号键、乘法键,数码管显示49005,同上进行若干次之后,结果溢出,LED0亮,同时数码管显示都为零。当输出为负数时,LED0灯变亮,同时数码管显示都为零。六实验结论 本实验基本实现了计算器的加减乘法运算功能,但是存在一个突出的缺陷,就是当输出结果时,必须先按等号键导通数据反馈,再按运算键选择输出结果。这与实际应用的计算器存在很大的差距。但是,本设计可以通过等号键实现运算对象和运算结果之间的切换。

7.3 7.3.1 7.3.2 复数乘、除运算的三角表示及其几何意义

7.3* 复数的三角表示 7.3.1 复数的三角表示式 7.3.2 复数乘、除运算的三角表示及其几何意义 课标要求 素养要求 通过复数的几何意义,了解复数的三角表示;了解复数的代数表示与三角表示之间的关系;了解复数乘除运算的三角表示及其几何意义. 通过了解复数的三角表示及复数乘、除的几何意义,体会数学抽象及数学运算素养. 教材知识探究 前面已经学习过了复数的两种表示.一是代数表示,即z = a + b i(a ,b ∈R );二是几何表示,复数z 既可以用复平面上的点Z (a ,b )表示,也可以用复平面上的向量OZ →来表示.现在需要学习复数的三角表示,即用复数z 的模和辐角来表示复数. 问题 复数的三角形式在复数的运算中有怎样的作用? 提示 复数的三角形式是彻底解决复数乘、除、乘方和开方问题的桥梁,相比之下,代数形式在这些方面显得有点力不从心,因此,做好由复数的代数形式向三角形式的转化是非常有必要的. 1.复数的三角形式 一般地,任何一个复数z =a +b i 都可以表示成r (cos__θ+isin__θ)的形式,其中,r 是复数z 的模;θ是以x 轴的非负半轴为始边,向量OZ →所在射线(射线OZ )为终

边的角,叫做复数z =a +b i 的辐角,r (cos θ+isin θ)叫做复数z =a +b i 的三角表示式,简称三角形式,为了与三角形式区分开来,a +b i 叫做复数的代数表示式,简称代数形式. 2.辐角主值 规定在0≤θ<2π范围内的辐角θ的值为辐角的主值,通常记作arg__z . 3.复数三角形式的乘法 两个复数相乘,积的模等于各复数模的积,积的辐角等于各复数的辐角的和. r 1(cos θ1+isin θ1)·r 2(cos θ2+isin θ2)=r 1r 2[cos(θ1+θ2)+isin(θ1+θ2)]. 4.复数三角形式的除法 两个复数相除,商的模等于被除数的模除以除数的模所得的商,商的辐角等于被除数的辐角减去除数的辐角所得的差. r 1(cos θ1+isin θ1)r 2(cos θ2+isin θ2)=r 1 r 2 [cos(θ1-θ2)+isin(θ1-θ2)]. 教材拓展补遗 [微判断] 1.任何一个不为零的复数的辐角有无限多个.(√) 2.复数0的辐角是任意的.(√) 3.复数的代数形式可以转化为三角形式,三角形式可以转化为代数形式.(√) [微训练] 1.复数1+i 的辐角主值为( ) A.π6 B.π3 C.π4 D.π2 解析 因为复数1+i 对应的点在第一象限,所以arg(1+i)=π 4. 答案 C 2.将复数i 对应的向量ON →绕原点按逆时针方向旋转π3,得到向量OM →,则OM →对应 的复数是( ) A.32+12i B.-32+12i C.-32-12i D.32-12i

计算机科学与技术实验报告

哈尔滨工程大学《程序设计基础》实验报告 基础实践二 姓名:王明班级: 学号: 实验时间: 2017 年 5 月 8 日 哈尔滨工程大学计算机基础课程教学中心 实验五 实验题目1: 输入两个整数数组,每个数组有5个整数,将两者合并并排序输出。 设计思想:定义两个5个元素的数组,一个10个元素的数组,数据类型为整型,通过for循环输入前两个数组的值,并依次存入第三个数组中。另外编写排序函数,在主函数中调用对第三个数组中的元素排序并输出。 实验代码及注释: #include<> #include<>

void f1(int *a, int i, int j) { int m, n, c; int k; m = i; n = j; k = a[(i + j) / 2]; do { while (a[m]k&&n>i) n--; if (m <= n) { c = a[m]; a[m] = a[n]; a[n] = c; m+=1; n-=1; }

} while (m <= n); if (mi) f1(a, i, n); } int main() { int a1[5],a2[5],c[10]; printf("请输入两个数组,每组五个整数:\n"); for(int i=0;i<5;i++) scanf("%d %d",&a1[i],&a2[i]); for(int i=0;i<5;i++) { c[i]=a1[i]; c[i+5]=a2[i]; } f1(c,0,9); printf("排序后为:\n");

复数的基本概念与基本运算

复数的基本概念与基本运算 一、《考试说明》中复数的考试内容(1)数的概念的发展,复数的有关概念(实数、虚数、纯虚数、复数相等、共轭复数、模);(2)复数的代数表示与向量表示;(3)复数的加法与减法,复数的乘法与除法,复数的三角形式,复数三角形式的乘法与乘方,复数三角形式的除法与开方;(4)复数集中解实系数方程(包括一元二次方程、二项方程)。二、考试要求(1)使学生了解扩充实数集的必要性,正确理解复数的有关概念.掌握复数的代数、几何、三角表示及其转换;(2)掌握复数的运算法则,能正确地进行复数的运算,并理解复数运算的几何意义;(3)掌握在复数集中解实数系数一元二次方程和二项方程的方法.(4)通过内容的阐述,带综合性的例题和习题的训练,继续提高学生灵活运用数学知识解题的能力.(5)通过数的概念的发展,复数、复平面内的点及位置向量三者之间的联系与转换的复习教学,继续对学生进行辩证观点的教育.三、学习目标(1)联系实数的性质与运算等内容,加强对复数概念的认识;?(2)理顺复数的三种表示形式及相互转换:z = r(cosθ+isinθ) , OZ(Z(a,b)) , z=a+bi (3)正确区分复数的有关概念;(4)掌握复数几何意义,注意复数与三角、解几等内容的综合;复(5)正确掌握复数的运算:复数代数形式的加、减、乘、除;三

角数实数集集形式的乘、除、乘方、开方及几何意义;虚数单位i及1的立方虚根纯虚数集ω的性质;模及共轭复数的性质;(6)掌握化归思想——将复数问题实数化(三角化、几何化);(7)掌握方程思想——利用复数及其相等的有关充要条件,建立相应的方程,转化复数问题。四、本章知识结构与复习要点1.知识体系表解 1 1/16页2.复数的有关概念和性质:(1)i称为虚数单位,规定2i,,1,形如a+bi的数称为复数,其中a,b?R.(2)复数的分类(下面的a,b均为实数) (3)复数的相等设复数,那么的充要zz,zabizabiababR,,,,,,(,,,)121112221122条件是:.abab,,且1122 (4)复数的几何表示复数z=a+bi(a,b?R)可用平面直角坐标系内点Z(a,b)来表示.这时称此平面为复平面,x轴称为实轴,y轴除去原点称为虚轴.这样,全体复数集C与复平面上全体点集是一一对应的. 2 2/16页复数 z=a+bi.在复平面内还可以用以原点O为起点,以点Z(a,b) abR,,,,向量所成的集合也是一一对应的(例外的是复数0对应点O,看成零向量).(7)复数与实数不同处?任意两个实数可以比较大小,而任意两个复数中至少有一个不是实数时就不能比较大小.?实数对于四则运算是通行无阻的,但不是任何实数都可以开偶次方.而复数对四则运算和开方均通行无阻.3.有关计算:?**n4k,rrkNrN,,,nN,ii,i怎样计算?(先求n被4除所得的余数,),,,,1313?,,,,i、,,,,i

大学生计算机实验报告(完整版)

《大学计算机基础》实验3.1 文件和文件夹的管理 实验报告 专业班级:经贸1103 姓名——- 学号201118910315 指导教师:———完成时间:2011.10 一、实验题目 文件和文件夹的管理 二、实验目的 1.熟悉Windows XP的文件系统。 2.掌握资源管理器的使用方法。 3.熟练掌握在Windows XP资源管理器下,对文件(夹)的选择、新建、移动、复制、删除、重命名的操作方法。 三、实验内容 1.启动资源管理器并利用资源管理器浏览文件。 2.在D盘创建文件夹 3.在所创建文件夹中创建Word文件。 4.对所创建文件或文件夹执行复制、移动、重命名、删除、恢复、创建快捷方式及设置共享等操作。 四、实验步骤 (一)文件与文件夹管理 1.展开与折叠文件夹。右击开始,打开资源管理器,在左窗格中点击“+”展开,点击“—”折叠 2.改变文件显示方式。打开资源管理器/查看,选择缩略、列表,排列图标等

3.建立树状目录。在D盘空白处右击,选择新建/文件夹,输入经济贸易学院,依次在新建文件夹中建立经济类1103班/王帅、王鹏 4..创建Word并保存。打开开始/程序/word,输入内容。选择文件/另存为,查找D盘/经济贸易学院/1103班/王帅,单击保存 5.复制、移动文件夹 6.重命名、删除、恢复。右击文件夹,选择重命名,输入新名字;选择删除,删除文件 7.创建文件的快捷方式。右击王帅文件夹,选择发送到/桌面快捷方式

8.设置共享文件。右击王帅,选择属性/共享/在网络上共享这个文件/确定 9.显示扩展名。打开资源管理器/工具/文件夹选项/查看/高级设置,撤销隐藏已知文件的扩展名 (二)控制面板的设置。 1.设置显示属性。右击打开显示属性/桌面、屏幕保护程序 2.设置鼠标。打开控制面板/鼠标/按钮(调整滑块,感受速度)、指针 3.设置键盘。打开控制面板/键盘/速度(调整滑块,感受速度)、硬件 4.设置日期和时间打开控制面板/日期和时间 5.设置输入法。打开控制面板/区域与语言选项/详细信息/文字服务与输入语言

实验报告 编写一个简易实用的计算器。

开课实验室:现代信息交流中心40*开课时间:2012年**月**日实验报告:年月日 一、实验目的:熟悉Java图形用户界面的开发原理与技术,包括各种组件和容器技术。 二、实验内容: 编写一个简易实用的计算器。 三、源代码清单: package exp3; import Result extends Panel { TextField tf; Result() { tf = new TextField("0", 25); add(tf); } } class Key extends Panel { Button backSpace, clearEnter, cancel,lBracket,rBracket; Button one, two, three, four, five, six, seven, eight, nine, zero; Button add, subtract, multiplay, divide; Button sqrt, reciprocal, mod; Button positiveAndNegative, point, equal; Key() { setLayout(new GridLayout(5, 5)); backSpace = new Button("←"); (new Color(255, 0, 0)); add(backSpace); clearEnter = new Button("CE"); (new Color(255, 0, 0)); add(clearEnter); cancel = new Button("C"); (new Color(255, 0, 0));

简单的计算器实验报告

HUNAN UNIVERSITY 程序设计训练 ——简单的计算器 报告 学生姓名田博鑫 学生学号 20110407110 专业班级工业工程(1)班 指导老师吴蓉晖 2012年6月16日至2012年7月10日

1.程序设计目的和要求 目的: 此次程序设计的目的主要是为了我们能更好的理解和熟悉C语言这门计算机课程,自己有对计算机程序设计的的初步认识。 要求: 运用相关知识,查阅相关资料,编写一个简单的计算器,能够实现简单的基本的加减乘除运算,在计算器工作时利用键盘或鼠标进行相应操作。程序基本功能要求实现完整,并有简单的验证。在计算器运行中,输入数据时如果输入错误的情况,能够通过键盘上的退格键进行删除,并且重新输入正确的数据。在数据输入完成,如果需要放弃本次计算操作,可以利用程序中设置好的按键进行调整。 2.程序设计的任务和内容 这个简单的计算器要求能够进行简单的四则运算,要求运用所学的知识和查阅相关的资料来完成这个简单的计算器的设计,要求这个简单的计算器尽量在windows界面下进行,计算器界面不做要求。该简单的计算器包含有基本的四则运算、正弦函数、余弦函数、正切函数、余切函数、平方、开方,以及平均值、标准差、方差的运算。 3.程序设计说明 该简单的计算器能进行基本的四则运算和乘方,开方,以及三角函数的运算。操作需要逐步根据提示来完成所要进行的运算。比如要进行81的开方运算的话首先在屏幕上可以看到开放运算的命令是5,所以先要输入5,然后再输入要开方的数据81可以在屏幕上看到运行的结果。 4.详细设计说明包含流程图

5.程序的调试及结果 调试与运行(没有错误)

第七章7.2.1复数的加、减运算及其几何意义

2020-2021学年高一数学必修二第7章《复数》 7.2 复数的四则运算 7.2.1 复数的加、减运算及其几何意义 学习目标 1.熟练掌握复数代数形式的加、减运算法则.2.理解复数加减法的几何意义,能够利用“数形结合”的思想解题. 知识点一 复数加法与减法的运算法则 1.设z 1=a +b i ,z 2=c +d i(a ,b ,c ,d ∈R )是任意两个复数,则 (1)z 1+z 2=(a +c )+(b +d )i ; (2)z 1-z 2=(a -c )+(b -d )i. 2.对任意z 1,z 2,z 3∈C ,有 (1)z 1+z 2=z 2+z 1; (2)(z 1+z 2)+z 3=z 1+(z 2+z 3). 知识点二 复数加减法的几何意义 如图,设复数z 1,z 2对应向量分别为OZ 1→,OZ 2→,四边形OZ 1ZZ 2为平行四边形,向量OZ → 与复数z 1+z 2对应,向量Z 2Z 1→ 与复数z 1-z 2对应. 思考 类比绝对值|x -x 0|的几何意义,|z -z 0|(z ,z 0∈C )的几何意义是什么? 答案 |z -z 0|(z ,z 0∈C )的几何意义是复平面内点Z 到点Z 0的距离. 1.两个虚数的和或差可能是实数.( √ ) 2.在进行复数的加法时,实部与实部相加得实部,虚部与虚部相加得虚部.( √ ) 3.复数与复数相加减后结果只能是实数.( × ) 4.复数的加法不可以推广到多个复数相加的情形.( × )

一、复数代数形式的加、减运算 例1 (1)计算:(5-6i)+(-2-i)-(3+4i); (2)设z 1=x +2i ,z 2=3-y i(x ,y ∈R ),且z 1+z 2=5-6i ,求z 1-z 2. 解 (1)原式=(5-2-3)+(-6-1-4)i =-11i. (2)因为z 1=x +2i ,z 2=3-y i ,z 1+z 2=5-6i , 所以(3+x )+(2-y )i =5-6i , 所以????? 3+x =5,2-y =-6,所以????? x =2,y =8, 所以z 1-z 2=(2+2i)-(3-8i)=(2-3)+[2-(-8)]i =-1+10i. 反思感悟 解决复数加减运算的思路 两个复数相加(减),就是把两个复数的实部相加(减),虚部相加(减).复数的减法是加法的逆运算.当多个复数相加(减)时,可将这些复数的所有实部相加(减),所有虚部相加(减). 跟踪训练1 复数(1+2i)+(3-4i)-(-5-3i)对应的点在( ) A.第一象限 B.第二象限 C.第三象限 D.第四象限 答案 A 解析 复数(1+2i)+(3-4i)-(-5-3i)=(1+3+5)+(2-4+3)i =9+i ,其对应的点为(9,1),在第一象限. 二、复数加减法的几何意义 例2 如图所示,平行四边形OABC 的顶点O ,A ,C 分别表示0,3+2i ,-2+4i.求: (1)AO → 表示的复数; (2)对角线CA → 表示的复数; (3)对角线OB → 表示的复数. 解 (1)因为AO →=-OA → ,

计算器实验报告

基于51单片机的简易计算器设计报告 设计课题:基于STC89C52单片机的简易计算器小组成员:侯旭陈铭廖文凯黄超博吕佳铭 指导老师:孙玉宽

摘要 近年来随着科技的飞速发展,单片机的应用正在不断深入,同时带动传统控制检测技术日益更新。在实时检测和自动控制的单片机应用系统中,单片机往往作为一个核心部件来使用,但仅单片机方面的知识是不够的,还应根据具体硬件结构、软硬件结合,来加以完善。 计算机在人们的日常生活中是比较常见的电子产品之一。可是它还在发展之中,以后必将出现功能更加强大的计算机,基于这样的理念,本设计是以STC89C52单片机为核心的计算器模拟系统设计,输入采用4×4矩阵键盘,可以进行加、减、乘、除7位带符号数字运算,同时支持括号的嵌套使用级浮点数的运算,并在LCD1602上显示操作过程。 本次设计注重设计方法及流程,首先根据原理设计电路,利用keil编程,借助实验开发平台进行仿真实验,进而利用altium designer 制作PCB,最后到焊接元器件,直至调试成功。在设计的同时,特别注重keil软件和altium designer软件的使用方法和技巧以及常用的LCD显示器和矩阵键盘的设计和使用方法。 【关键词】计算器,STC89C52,矩阵键盘,1602液晶

目录 第一章绪论 (4) 第二章整体框架 (5) 1.1计算器发展现状 (6) 1.2任务要求 (7) 1.3研究意义 (8) 第三章设计方案 (9) 3.1总体设计方案 (10) 3.2硬件部分 (11) 3.2.1主控模块 (12) 3.2.2显示模快 (13) 3.2.3 输入模块 (14) 3.2.4主控模块的选型与论证 (15) 3.2.5显示模块的选型与论证 (15) 3.2.6输入模块的选型与论证 (15) 3.3软件部分 (16) 3.3.1软件工具介绍 (16) 3.3.2软件模块介绍 (17) 第四章调试 (18) 5.1.1硬件调试 (19) 5.1.2软件调试 (19) 5.2解决方案 (19) 5.3实现展示 (19) 第五章总结 (20) 参考文献 (21) 附录 (22)

java计算器实验报告

课程设计论文 设计题目:java计算器学生姓名: 指导教师: 专业名称: 所在院系:

秦皇岛职业技术学院信息工程系 摘要 在当今这个网络的时代,java语言在网络编程方面的优势使得网络编程有了更好的选择。Java语言最大的特点是具有跨平台性,使其不受平台不同的影响,得到了广泛的应用。该程序是一个图形界面的java 计算器,其界面主要采用了swing包,程序实现了: (1)实现简单加、减、乘、除的运算。 (2)实现除了加、减、乘、除按钮外其他按钮功能。 (3)给软件添加一个编辑、查看、帮助的主菜单。 (4)在数据输入方面,提高程序代码的健壮性,增强其对非法输入数据的识别能力。 (5)科学型计算器与标准计算器之间的菜单切换。 Java的早期版本以来,抽象窗口工具包为用户界面组件提供了平台独立的API。在AWT中,每个组件都由一个原生的等同组件生成和控制,这个原生组件是由当前的图形窗口系统决定的。 与此相对,Swing 组件经常被描述为轻量级的,因为它们不需要操作系统本身所带窗口工具包的原生资源来生成。 I

秦皇岛职业技术学院信息工程系 目录 第1章概要设计 (1) 1.1查找资料 (1) 1.2选题 (1) 1.3标准型计算器界面设计 (1) 1.4本章小节 (3) 第2章程序整体设计说明 (4) 2.1程序中所用到的变量 (4) 2.2程序部分源代码及注释 (4) 2.3本章小节 (15) 第3章程序运行效果 (16) 3.1程序运行主界面 (16) 3.2程序中各按钮运行界面 (16) 3.3本章小节 (20) 第4章设计中遇到的重点及难点 (21) 4.1设计中遇到的重点 (21) 4.2设计中的遇到的难点 (21) 4.3本章小节 (23) 第5章本次设计中存在不足与改良方案 (24) 5.1本次设计中存在的不足 (24) 5.2本次设计的改良方案 (24) 5.3本章小节 (24) 结论 (25) 参考文献 (26) 致谢 (27) 指导教师评语 (28) 答辩委员会评语 (29) II

相关文档
最新文档