代码1.0
#include <stdio.h>
float a1,b1,a2,b2;//全局变量
void relax(float o,float p,char s)
{
if(b1>0)//判断b1正负号,以正确输出符号
printf("(%.1f+%.1fi) %c ",a1,b1,s);
else printf("(%.1f%.1fi) %c ",a1,b1,s);
//若为负号则输出b1自身符号
if(b2>0)
//同上
printf("(%.1f+%.1fi) ",a2,b2);
else printf("(%.1f%.1fi) ",a2,b2);
//同上
if((int)(o*10)!=0&&(int)(p*10)!=0)
//讨论结果中的实数部分和虚数部分是否为0
{
//将o,p强制转化为整数型,乘10为了去除保留的一位小数
if(p>0)printf("= %.1f+%.1fi\n",o,p);
else printf("= %.1f%.1fi\n",o,p);}
else if((int)(o*10)==0&&(int)(p*10)!=0)
printf("= %.1fi\n",p);
else if((int)(o*10)!=0&&(int)(p*10)==0)
printf("= %.1f\n",o);
else printf("= 0.0\n");
}
void beam()
{
float d1,d2;
scanf("%f%f%f%f",&a1,&b1,&a2,&b2);
d1=a1+a2;
d2=b1+b2;
relax(d1,d2,'+');
d1=a1-a2;d2=b1-b2;
relax(d1,d2,'-');
d1=a1*a2-b1*b2;
d2=a1*b2+b1*a2;
relax(d1,d2,'*');
d1=(a1*a2+b1*b2)/(a2*a2+b2*b2);
d2=(b1*a2-a1*b2)/(a2*a2+b2*b2);
relax(d1,d2,'/');
}
int main()
{
beam();
return 0;
}
-------------------------------------
实习一 抽象数据类型实习
一、实习目的与要求
1、 理解数据类型、抽象数据类型、数据结构三个基本概念及其相互关系;
2、 掌握抽象数据类型的定义和实现方法,并理解其具体的实现依赖于所用语言;
3、 掌握抽象数据类型的规格说明(定义)及其在C语言中的实现方法技术。
二、示例
1. 实习题目
设计一个可进行复数运算的演示程序。
2. 基本要求
能实现复数的相加、相减、相乘、取实部、虚部功能,运算结果以复数的表示形式显示。
3. 数据结构设计
将复数定义为由两个相互之间存在次序关系的实数构成的抽象数据类型,则可以利用实数的操作来实现复数的操作。
复数类型定义如下:
typedef struct ComplexType{
float realPart,imagePart;
} ComplexType;
4. 算法
(1)复数相加算法如下:
add(ComplexType z1, ComplexType z2)
A1.//分别对复数的实部和虚部进行相加
[ z.a←z1.a+z2.a;
z.b←z1.b+z2.b;
]
A2. 输出“z.a+ z.bi”;
A3. 算法结束.
(2)复数相减算法如下:
sub(ComplexType z1, ComplexType z2)
A1.//分别对复数的实部和虚部进行相减
[ z.a←z1.a-z2.a;
z.b←z1.b-z2.b;
]
A2. 输出“z.a+ z.bi”;
A3. 算法结束.
(3)复数相乘算法如下:
multiply(ComplexType z1, ComplexType z2)
A1.//分别对复数的实部和虚部进行相乘
[ z.a←z1.a*z2.a-z1.b*z2.b;
z.b←z1.a*z2.b+z1.b*z2.a;
]
A2. 输出“z.a+ z.bi”;
A3. 算法结束.
5. 程序运行实例
输入0;0 输出 xiangjia:0+0i
xiangjian:0+0i
xiangcheng:0+0i
输入2.1,3.2;1.2,0 输出 xiangjia:3.3+3.2i
xiangjian:1.0+3.2i
xiangcheng:2.52+3.84i
输入-1.6,3.2;1.0,-0.5 输出 xiangjia:-0.6+2.7i
xiangjian:-2.6+3.7i
xiangcheng: 0+4.0i
6. 总结
(1) 对抽象数据类型的概念有了更深刻的理解。
(2) 理解了抽象数据类型的表示和实现,它是通过固有数据类型来表示和实现的,即利用处理器中已存在的数据类型来说明新的结构,用已经实现的操作来组合新的操作。
(3) 理解了抽象数据类型实际上是我们熟悉的基本数据类型概念的引申和发展。
(4) 用抽象数据类型表述的程序具有很好的可维护性。
(5) 采用抽象数据类型,算法和程序设计的复杂性降低了,条理性增强了。保证编出的程序有较高的可靠性。
(6) 采用抽象数据类型,编出来的程序结构清晰,层次分明,便于程序正确性的证明和复杂性的分析。
7. 源程序
三、实习报告格式
实习题目:
班级:_______________姓名:_____________学号:___________完成日期:____________
1、 实习题目
2、 基本要求
3、 数据结构设计
4、 算法设计
4、程序运行实例
5、实习总结
6、附录:源程序
字体要求: 中文采用宋体 五号,行间距单倍行距
英文字体 Times New Roman, 五号字体