复数四则运算 数据结构
1.问题描述设计一个可进行复数运算的程序2.基本要求实现下列六种基本运算:1)由输入的实部和虚部生成一个复数;2)两个复数求和;3)两个复数求差;4)两个复数的求积;(a...
1.问题描述
设计一个可进行复数运算的程序
2.基本要求
实现下列六种基本运算:
1)由输入的实部和虚部生成一个复数;
2)两个复数求和;
3)两个复数求差;
4)两个复数的求积;(a+bi)*(c+di)=(ac-bd)+(ad+bc)i
5)从已知复数中分离出实部;
6)从已知复数中分离出虚部。
运算结果以相应的复数或实数的表示形式显示。
三.实验环境
Microsoft Visual C++ 6.0
四. 测试数据
对下列各对数据实现求和。
(1)0;0;应输出“0”
(2)3.1, 0;4.22, 8.9;应输出“7.32+i8.9”
(3)-1.33, 2.34;0.1, -6.5;应输出“-1.23-i4.16”
(4)0, 9.7;-2.1, -9.7;应输出“-2.1”
(5)7.7, -8;-7.7, 0;应输出“-i8”
五.实验报告要求(手写)
(1)实验目的
(2)实验内容
(3)程序代码
(4)程序测试结果
(5)实验中遇到的问题及解决方法
(6)实验体会
实验要点
typedef struct
{
double real;
double img;
}ComplexNumber;
部分参考代码
void CreateComplexNumber(ComplexNumber *c,double a,double b)
{
c->real=a;
c->img=b;
return;
}
void AddComplexNumber(ComplexNumber *c,ComplexNumber c1,ComplexNumber c2)
{
c->real=c1.real+c2.real;
c->img=c1.img+c2.img;
return;
}
void SubComplexNumber(ComplexNumber *c,ComplexNumber c1,ComplexNumber c2)
{
c->real=c1.real-c2.real;
c->img=c1.img-c2.img;
return;
}
void MultiComplexNumber(ComplexNumber *c,ComplexNumber c1,ComplexNumber c2)
{
c->real=c1.real*c2.real-c1.img*c2.img;
c->img=c1.real*c2.img+c1.img*c2.real;
return;
}
void ConComplexNumber(ComplexNumber *c,ComplexNumber c1)
{
c->real=c1.real;
c->img=c1.img*(-1);
return;
} 展开
设计一个可进行复数运算的程序
2.基本要求
实现下列六种基本运算:
1)由输入的实部和虚部生成一个复数;
2)两个复数求和;
3)两个复数求差;
4)两个复数的求积;(a+bi)*(c+di)=(ac-bd)+(ad+bc)i
5)从已知复数中分离出实部;
6)从已知复数中分离出虚部。
运算结果以相应的复数或实数的表示形式显示。
三.实验环境
Microsoft Visual C++ 6.0
四. 测试数据
对下列各对数据实现求和。
(1)0;0;应输出“0”
(2)3.1, 0;4.22, 8.9;应输出“7.32+i8.9”
(3)-1.33, 2.34;0.1, -6.5;应输出“-1.23-i4.16”
(4)0, 9.7;-2.1, -9.7;应输出“-2.1”
(5)7.7, -8;-7.7, 0;应输出“-i8”
五.实验报告要求(手写)
(1)实验目的
(2)实验内容
(3)程序代码
(4)程序测试结果
(5)实验中遇到的问题及解决方法
(6)实验体会
实验要点
typedef struct
{
double real;
double img;
}ComplexNumber;
部分参考代码
void CreateComplexNumber(ComplexNumber *c,double a,double b)
{
c->real=a;
c->img=b;
return;
}
void AddComplexNumber(ComplexNumber *c,ComplexNumber c1,ComplexNumber c2)
{
c->real=c1.real+c2.real;
c->img=c1.img+c2.img;
return;
}
void SubComplexNumber(ComplexNumber *c,ComplexNumber c1,ComplexNumber c2)
{
c->real=c1.real-c2.real;
c->img=c1.img-c2.img;
return;
}
void MultiComplexNumber(ComplexNumber *c,ComplexNumber c1,ComplexNumber c2)
{
c->real=c1.real*c2.real-c1.img*c2.img;
c->img=c1.real*c2.img+c1.img*c2.real;
return;
}
void ConComplexNumber(ComplexNumber *c,ComplexNumber c1)
{
c->real=c1.real;
c->img=c1.img*(-1);
return;
} 展开
4个回答
展开全部
××大学计算机工程学院实验报告
课程名称:数据结构 班级:xxxx 实验成绩:
指导老师:××× 姓名:xxx
实验项目名称:复数四则运算 学号:2005810112 上机实践日期:
实验项目编号:实验一 组号: 上机实践时间:学时
一. 目的(本次试验所涉及并要求掌握的知识点)
熟悉抽象数据类型的表示和实现方法。抽象数据类型需借助固有数据类型来表示和实现,及利用高级程序设计语言中已存在的数据类型来说明新的结构,用已经实现的操作来组合新的操作,具体实现细节则依赖于所用的语言的功能。通过本次实习还可以帮助读者复习高级语言的使用方法。
二.实验内容与设计思想(设计思路 主要数据结构 主要代码结构。主要代码段分析 电路图)
1.问题描述
设计一个可进行复数运算的演示程序
2.基本要求
实现下列六种基本运算:1)由输入的实部和虚部生成一个复数;2)两个复数求和;3)两个复数求差;4)两个复数的求积;5)从已知复数中分离出实部;6)从已知复数中分离出虚部。运算结果以相应的复数或实数的表示形式显示。
3.程序代码
#include
typedef struct Complex
{
float shi;
float xu;
}Complex;
void CreatComplex(Complex &c,float a,float b)
{
c.shi=a;
c.xu=b;
}
void AddComplex(Complex &sum,Complex c1,Complex c2)
{
sum.shi=c1.shi+c2.shi;
sum.xu=c1.xu+c2.xu;
}
void ChaComplex(Complex &cha,Complex c1,Complex c2)
{
cha.shi=c1.shi-c2.shi;
cha.xu=c1.xu-c2.xu;
}
void JiComplex(Complex &ji,Complex c1,Complex c2)
{
ji.shi=c1.shi*c2.shi-c1.xu*c2.xu;
ji.xu=c1.shi*c2.xu+c1.xu*c2.shi;
}
void Print(Complex c)
{
if(c.shi==0.0)
printf("%5.2f\n",c.shi);
else
printf("%5.2f+i%5.2f\n",c.shi,c.xu);
if(c.xu==0.0)
printf("%i5.2f\n",c.xu);
}
void Print_shi(Complex c)
{
printf("该复数的实部是:%5.2f\n",c.shi);
}
void Print_xu(Complex c)
{
printf("该复数的虚部是:i%5.2f\n",c.xu);
}
void main()
{
float a,b,c,d;
int i,j;
Complex c1,c2,sum,cha,ji;
printf("请分别输入两个复数的实部和虚部:\n");
scanf("%f%f%f%f",&a,&b,&c,&d);
CreatComplex(c1,a,b);
Print(c1);
Print_shi(c1);
Print_xu(c1);
CreatComplex(c2,c,d);
Print(c2);
Print_shi(c2);
Print_xu(c2);
printf("1.求和,\t2.求差,\t3.求积\t,4.退出\n");
for(j=0;;j++)
{
scanf("%d",&i);
switch(i)
{
case 1:
AddComplex(sum,c1,c2);
Print(sum);
Print_shi(sum);
Print_xu(sum);
break;
case 2:
ChaComplex(cha,c1,c2);
Print(cha);
Print_shi(cha);
Print_xu(cha);
break;
case 3:
JiComplex(ji,c1,c2);
Print(ji);
Print_shi(ji);
Print_xu(ji);
break;
case 4:
return;
}
}
}
三.实验使用环境(本实验所使用的平台和相关的软件)
Microsoft Visual C++ 6.0
四. 实验步骤和调试过程(实验步骤 测试数据设计 测试结果分析)
1.测试数据设计
测试数据: 1)0,0;0,0
2)3.1,0;4.22,8.9
3)-1.33,2.34;0.1,-6.5
4)0,9.7;-2.1,-9.7
5)7.7,-8;-7.7,0
测试结果: 1)0
2)7.32+i8.9
3)-1.23-i4.16
4)-2.1
5)-i8
2测试结果:
图略
五. 实验小结(实验过程中遇到的问题及解决过程.实验体会和收获)
1. 通过学习以前C语言课程中的函数思想,可以重新熟悉函数在编程中的设置方法,熟悉函数中参数的设置和传递过程.
2. 通过多个函数出现在同一个程序中的实现,便于熟悉全局变量和局部变量在程序中的不同作用域的问题.
六.附录(参考文献和相关资料)
[1]严蔚敏,吴伟民编著:《数据结构(C语言版)》,北京:清华大学出版社,1997
[2]严蔚敏,吴伟民,米宁编著:《数据结构题集(C语言版)》,北京:清华大学出版社
课程名称:数据结构 班级:xxxx 实验成绩:
指导老师:××× 姓名:xxx
实验项目名称:复数四则运算 学号:2005810112 上机实践日期:
实验项目编号:实验一 组号: 上机实践时间:学时
一. 目的(本次试验所涉及并要求掌握的知识点)
熟悉抽象数据类型的表示和实现方法。抽象数据类型需借助固有数据类型来表示和实现,及利用高级程序设计语言中已存在的数据类型来说明新的结构,用已经实现的操作来组合新的操作,具体实现细节则依赖于所用的语言的功能。通过本次实习还可以帮助读者复习高级语言的使用方法。
二.实验内容与设计思想(设计思路 主要数据结构 主要代码结构。主要代码段分析 电路图)
1.问题描述
设计一个可进行复数运算的演示程序
2.基本要求
实现下列六种基本运算:1)由输入的实部和虚部生成一个复数;2)两个复数求和;3)两个复数求差;4)两个复数的求积;5)从已知复数中分离出实部;6)从已知复数中分离出虚部。运算结果以相应的复数或实数的表示形式显示。
3.程序代码
#include
typedef struct Complex
{
float shi;
float xu;
}Complex;
void CreatComplex(Complex &c,float a,float b)
{
c.shi=a;
c.xu=b;
}
void AddComplex(Complex &sum,Complex c1,Complex c2)
{
sum.shi=c1.shi+c2.shi;
sum.xu=c1.xu+c2.xu;
}
void ChaComplex(Complex &cha,Complex c1,Complex c2)
{
cha.shi=c1.shi-c2.shi;
cha.xu=c1.xu-c2.xu;
}
void JiComplex(Complex &ji,Complex c1,Complex c2)
{
ji.shi=c1.shi*c2.shi-c1.xu*c2.xu;
ji.xu=c1.shi*c2.xu+c1.xu*c2.shi;
}
void Print(Complex c)
{
if(c.shi==0.0)
printf("%5.2f\n",c.shi);
else
printf("%5.2f+i%5.2f\n",c.shi,c.xu);
if(c.xu==0.0)
printf("%i5.2f\n",c.xu);
}
void Print_shi(Complex c)
{
printf("该复数的实部是:%5.2f\n",c.shi);
}
void Print_xu(Complex c)
{
printf("该复数的虚部是:i%5.2f\n",c.xu);
}
void main()
{
float a,b,c,d;
int i,j;
Complex c1,c2,sum,cha,ji;
printf("请分别输入两个复数的实部和虚部:\n");
scanf("%f%f%f%f",&a,&b,&c,&d);
CreatComplex(c1,a,b);
Print(c1);
Print_shi(c1);
Print_xu(c1);
CreatComplex(c2,c,d);
Print(c2);
Print_shi(c2);
Print_xu(c2);
printf("1.求和,\t2.求差,\t3.求积\t,4.退出\n");
for(j=0;;j++)
{
scanf("%d",&i);
switch(i)
{
case 1:
AddComplex(sum,c1,c2);
Print(sum);
Print_shi(sum);
Print_xu(sum);
break;
case 2:
ChaComplex(cha,c1,c2);
Print(cha);
Print_shi(cha);
Print_xu(cha);
break;
case 3:
JiComplex(ji,c1,c2);
Print(ji);
Print_shi(ji);
Print_xu(ji);
break;
case 4:
return;
}
}
}
三.实验使用环境(本实验所使用的平台和相关的软件)
Microsoft Visual C++ 6.0
四. 实验步骤和调试过程(实验步骤 测试数据设计 测试结果分析)
1.测试数据设计
测试数据: 1)0,0;0,0
2)3.1,0;4.22,8.9
3)-1.33,2.34;0.1,-6.5
4)0,9.7;-2.1,-9.7
5)7.7,-8;-7.7,0
测试结果: 1)0
2)7.32+i8.9
3)-1.23-i4.16
4)-2.1
5)-i8
2测试结果:
图略
五. 实验小结(实验过程中遇到的问题及解决过程.实验体会和收获)
1. 通过学习以前C语言课程中的函数思想,可以重新熟悉函数在编程中的设置方法,熟悉函数中参数的设置和传递过程.
2. 通过多个函数出现在同一个程序中的实现,便于熟悉全局变量和局部变量在程序中的不同作用域的问题.
六.附录(参考文献和相关资料)
[1]严蔚敏,吴伟民编著:《数据结构(C语言版)》,北京:清华大学出版社,1997
[2]严蔚敏,吴伟民,米宁编著:《数据结构题集(C语言版)》,北京:清华大学出版社
展开全部
问题的提出及实验目的:
铁生锈,大家司空见惯。但同样是铁制品,有的极容易生锈,有的却很难生锈。比如放在潮湿的地方的铁制品很容易生锈,但放在干燥的地方的铁制品却不是很容易生锈;裸露在空气中的铁制品很容易生锈,但涂了油漆的或镀上了一些不易生锈的金属后的铁制品却不太容易生锈。为什么会出现这种现象?铁生锈到底与哪些因素有关?正当我们感到疑惑的时候,我们在网上看到了这样的一则消息:外国某化学公司的一家工厂,有一贮存氯化镁的钢质容器,有一次,因容器需要维修而停止工作,厂方排空了容器中的氯化镁,并将容器冲洗了几遍。而后两个工人进入钢质容器维修,一下去就晕倒了,当人们发现后,立即将人救出并送到医院,一人经抢救脱险,另一人不幸死亡。是什么原因导致人员死亡呢?难道容器中含有有毒气体?人们对钢质容器内的空气进行了测定,并没有发现任何有毒气体,但却惊奇地发现容器中空气里的氧气含量远远低于正常标准。为什么容器中会缺氧呢?经分析,发现问题原来出在容器本身,是因为容器生锈的缘故。我们讨论认为:这说明铁生锈需要消耗氧气。但是铁生锈仅仅只和氧气有关吗?水、氯化镁在这次事件中起什么作用呢?于是我们三人根据日常生活经验和以上事件的背景进行猜想:铁制品生锈可能和水、空气及其他因素有关。为了证明我们的猜想,我们便设计了一组对比实验对铁生锈条件的进行探究。由于条件有限,我们无法使用专业的化学用品,所以我们自己动手,利用了日常生活中容易找到的器材作为替代品。!!!!
铁生锈,大家司空见惯。但同样是铁制品,有的极容易生锈,有的却很难生锈。比如放在潮湿的地方的铁制品很容易生锈,但放在干燥的地方的铁制品却不是很容易生锈;裸露在空气中的铁制品很容易生锈,但涂了油漆的或镀上了一些不易生锈的金属后的铁制品却不太容易生锈。为什么会出现这种现象?铁生锈到底与哪些因素有关?正当我们感到疑惑的时候,我们在网上看到了这样的一则消息:外国某化学公司的一家工厂,有一贮存氯化镁的钢质容器,有一次,因容器需要维修而停止工作,厂方排空了容器中的氯化镁,并将容器冲洗了几遍。而后两个工人进入钢质容器维修,一下去就晕倒了,当人们发现后,立即将人救出并送到医院,一人经抢救脱险,另一人不幸死亡。是什么原因导致人员死亡呢?难道容器中含有有毒气体?人们对钢质容器内的空气进行了测定,并没有发现任何有毒气体,但却惊奇地发现容器中空气里的氧气含量远远低于正常标准。为什么容器中会缺氧呢?经分析,发现问题原来出在容器本身,是因为容器生锈的缘故。我们讨论认为:这说明铁生锈需要消耗氧气。但是铁生锈仅仅只和氧气有关吗?水、氯化镁在这次事件中起什么作用呢?于是我们三人根据日常生活经验和以上事件的背景进行猜想:铁制品生锈可能和水、空气及其他因素有关。为了证明我们的猜想,我们便设计了一组对比实验对铁生锈条件的进行探究。由于条件有限,我们无法使用专业的化学用品,所以我们自己动手,利用了日常生活中容易找到的器材作为替代品。!!!!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶恶
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2009-09-20
展开全部
设计一个可进行复数运算的程序
2.基本要求
实现下列六种基本运算:
1)由输入的实部和虚部生成一个复数;
2)两个复数求和;
3)两个复数求差;
4)两个复数的求积;(a+bi)*(c+di)=(ac-bd)+(ad+bc)i
5)从已知复数中分离出实部;
6)从已知复数中分离出虚部。
运算结果以相应的复数或实数的表示形式显示。
三.实验环境
Microsoft Visual C++ 6.0
四. 测试数据
对下列各对数据实现求和。
(1)0;0;应输出“0”
(2)3.1, 0;4.22, 8.9;应输出“7.32+i8.9”
(3)-1.33, 2.34;0.1, -6.5;应输出“-1.23-i4.16”
(4)0, 9.7;-2.1, -9.7;应输出“-2.1”
(5)7.7, -8;-7.7, 0;应输出“-i8”
五.实验报告要求(手写)
(1)实验目的
(2)实验内容
(3)程序代码
(4)程序测试结果
(5)实验中遇到的问题及解决方法
(6)实验体会
实验要点
typedef struct
{
double real;
double img;
}ComplexNumber;
部分参考代码
void CreateComplexNumber(ComplexNumber *c,double a,double b)
{
c->real=a;
c->img=b;
return;
}
void AddComplexNumber(ComplexNumber *c,ComplexNumber c1,ComplexNumber c2)
{
c->real=c1.real+c2.real;
c->img=c1.img+c2.img;
return;
}
void SubComplexNumber(ComplexNumber *c,ComplexNumber c1,ComplexNumber c2)
{
c->real=c1.real-c2.real;
c->img=c1.img-c2.img;
return;
}
void MultiComplexNumber(ComplexNumber *c,ComplexNumber c1,ComplexNumber c2)
{
c->real=c1.real*c2.real-c1.img*c2.img;
c->img=c1.real*c2.img+c1.img*c2.real;
return;
}
void ConComplexNumber(ComplexNumber *c,ComplexNumber c1)
{
c->real=c1.real;
c->img=c1.img*(-1);
return;
2.基本要求
实现下列六种基本运算:
1)由输入的实部和虚部生成一个复数;
2)两个复数求和;
3)两个复数求差;
4)两个复数的求积;(a+bi)*(c+di)=(ac-bd)+(ad+bc)i
5)从已知复数中分离出实部;
6)从已知复数中分离出虚部。
运算结果以相应的复数或实数的表示形式显示。
三.实验环境
Microsoft Visual C++ 6.0
四. 测试数据
对下列各对数据实现求和。
(1)0;0;应输出“0”
(2)3.1, 0;4.22, 8.9;应输出“7.32+i8.9”
(3)-1.33, 2.34;0.1, -6.5;应输出“-1.23-i4.16”
(4)0, 9.7;-2.1, -9.7;应输出“-2.1”
(5)7.7, -8;-7.7, 0;应输出“-i8”
五.实验报告要求(手写)
(1)实验目的
(2)实验内容
(3)程序代码
(4)程序测试结果
(5)实验中遇到的问题及解决方法
(6)实验体会
实验要点
typedef struct
{
double real;
double img;
}ComplexNumber;
部分参考代码
void CreateComplexNumber(ComplexNumber *c,double a,double b)
{
c->real=a;
c->img=b;
return;
}
void AddComplexNumber(ComplexNumber *c,ComplexNumber c1,ComplexNumber c2)
{
c->real=c1.real+c2.real;
c->img=c1.img+c2.img;
return;
}
void SubComplexNumber(ComplexNumber *c,ComplexNumber c1,ComplexNumber c2)
{
c->real=c1.real-c2.real;
c->img=c1.img-c2.img;
return;
}
void MultiComplexNumber(ComplexNumber *c,ComplexNumber c1,ComplexNumber c2)
{
c->real=c1.real*c2.real-c1.img*c2.img;
c->img=c1.real*c2.img+c1.img*c2.real;
return;
}
void ConComplexNumber(ComplexNumber *c,ComplexNumber c1)
{
c->real=c1.real;
c->img=c1.img*(-1);
return;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询