c语言复数的运算实验报告,C语言复数的运算(实验报告).doc
實驗報告
題目:復數的四則運算
班級: 13信管 姓名:白浩然 學號:201340403034 完成日期:2014.05.21
一、需求分析
1.本演示程序中復數由兩個相互之間存在次序關系的實數構成。
2.演示程序以用戶和計算機的對話方式執行,即在計算機終端上顯示“提示信息”之后,由用戶在鍵盤上輸入演示程序中規定的運算命令;相應的輸入數據和運算結果顯示在其后。
3.程序執行的命令包括:
1)由輸入的實部和虛部生成一個復數;2)兩個復數求和;3)兩個復數求差;4)兩個復數求積;5)從已知復數中分離出實部;6)從已知復數中分離出虛部。
4.測試數據:
1)構造復數:
2) 復數求和:
3) 復數求差:
4) 復數求積:
5) 提取實部:
6) 提取虛部:
2、 編碼實現
#include "stdio.h"
#include "stdlib.h"
struct complex{
float real;//實部
float imag;//虛部
};
//構造復數
void InitComplex(complex &c,float r1,float r2)
{
c.real=r1;//r1為實部
c.imag=r2;//r2為虛部
}
//復數求和
void AddComplex(complex &c,complex c1,complex c2)
{
c.real=c1.real+c2.real;//實部相加
c.imag=c1.imag+c2.imag;//虛部相加
}
//復數求差
void SubComplex(complex &c,complex c1,complex c2)
{
c.real=c1.real-c2.real;//實部相減
c.imag=c1.imag-c2.imag;//虛部相減
}
//復數求積
void MulComplex(complex &c,complex c1,complex c2)
{
c.real=(c1.real*c2.real)-(c1.imag*c2.imag);
c.imag=(c1.real*c2.imag)+(c2.real*c1.imag);
}
//分離實部
void RealComplex(complex c,float &r)
{
r=c.real;
}
//分離虛部
void ImagComplex(complex c,float &r)
{
r=c.imag;
}
//主程序
void main()
{
complex c,c1,c2;
float r,r1,r2,r11,r22,r12,r21;
int node;
printf("請輸入要操作的序號:\n");
printf("1.構造一個復數 2.兩個復數求和 3.兩個復數求差\n");
printf("4.兩個復數求積 5.分離出實部 6.分離出虛部\n");
scanf("%d",&node);
while(node!=0)
{
switch(node){
case 1:printf("輸入復數的實部和虛部:\n");
scanf("%f %f",&r1,&r2);
InitComplex(c,r1,r2);
printf("構造的復數為:%f+%fi\n",c.real,c.imag);
break;
case 2:printf("輸入c1的實部和虛部:\n");
scanf("%f %f",&r11,&r12);
InitComplex(c1,r11,r12);
printf("輸入c2的實部和虛部:\n");
scanf("%f %f",&r21,&r22);
InitComplex(c2,r21,r22);
AddComplex(c,c1,c2);
printf("結果為:%f+%fi\n",c.real,c.imag);
break;
case 3:printf("輸入c1的實部和虛部:\n");
scanf("%f %f",&r11,&r12);
InitComplex(c1,r11,r12);
printf("輸入c2的實部和虛部:\n");
scanf("%f %f",&r21,&r22);
InitComplex(c2,r21,r22);
SubComplex(c,c1,c2);
printf("結果為:%f+%fi\n",c.real,c.imag);
break;
case 4:printf("輸入c1的實部和虛部:\n");
scanf("%f %f",&r11,&r12);
InitComplex(c1,r11,r12);
printf("輸入c2的實部和虛部:\n");
scanf("%f %f",&r21,&r22);
InitComplex(c2,r21,r22);
MulComplex(c,c1,c2);
printf("結果為:%f+%fi\n",c.real,c.imag);
break;
case 5:printf("輸入復數的實部和虛部:\n");
scanf("%f %f",&r1,&r2);
InitComplex(c,r1,r2);
RealComplex(c,r);
printf("實部為:%f\n",r);
break;
case 6:printf("輸入復數的實部和虛部:\n");
scanf("%f %f",&r1,&r2);
InitComplex(c,r1,r2);
ImagComplex(c,r);
printf("虛部為:%f\n",r);
break;
default:printf("結束");
}
scanf("%d",node);
}
}
3、 調試分析
1. 開始時文件后綴寫成了“.c”,導致調試多次無法運行,后來改為“.cpp”;
2. 多處“%f”寫成了“%d”,導致程序不能正常運行;
3. 定義結構體時,最后一個“}”后忘記加“;”,導致程序出現錯誤,以后應多加注意。
展開閱讀全文
總結
以上是生活随笔為你收集整理的c语言复数的运算实验报告,C语言复数的运算(实验报告).doc的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2021余额仅剩半个月:元旦、春节放假安
- 下一篇: c语言字符串倒置,单词倒置,用C++实现