哈理工B9c++实验报告.docx
- 文档编号:8668088
- 上传时间:2023-02-01
- 格式:DOCX
- 页数:13
- 大小:103.81KB
哈理工B9c++实验报告.docx
《哈理工B9c++实验报告.docx》由会员分享,可在线阅读,更多相关《哈理工B9c++实验报告.docx(13页珍藏版)》请在冰豆网上搜索。
哈理工B9c++实验报告
计算机实践
C/C++程序设计报告
指导教师
学号
学生姓名
专业
班级
电话
成绩
二〇一三年六月廿八日
一.设计题目
题目编号:
B9
题目名称:
在C/C++语言环境下实现复数运算:
复数的乘法、除法和乘幂运算。
二.题目的意义
该程序需要建立一个复数类complex;定义复数类成员函数乘除等等,利用类成员函数的重载,进行乘法、除法、乘幂运算,据此产生一个运算的式子,从而实现复数计算的功能。
三.程序设计功能图
程序由4个功能模块(函数)组成,功能模块图如下:
图3-1程序设计功能图
表3-1主函数main()说明
模块名称
main
模块功能
主函数
模块说明
产生随机数、调用乘法,除法,乘幂运算
类型
变量名
初值
值域
变量说明
double
a[]
实部
double
b[]
虚部
double
c[]
计算结果
double
d[]
实部备份
double
e[]
虚部备份
int
n
int
i
0
控制循环次数
int
x
1
main()函数程序代码如下:
/************************
*学号:
1201010719
*姓名:
武思文
*班级:
电气12-7班
*题目代码:
B9
*程序功能:
在C/C++环境下实现复数乘法、除法、乘幂的运算。
************************/
#include"iostream.h"
#include"math.h"
doublea[2],b[2],c[2],d[2],e[2];//a实部,b虚部,c计算结果
d实部备份e虚部备份
//乘法
voidMul()
{
c[0]=a[0]*a[1]-b[0]*b[1];
c[1]=b[0]*a[1]+a[0]*b[1];
}
//除法
voidDiv()
{
c[0]=(a[0]*a[1]+b[0]*b[1])/(a[1]*a[1]+b[1]*b[1]);
c[1]=(b[0]*a[1]-a[0]*b[1])/(a[1]*a[1]+b[1]*b[1]);
}
//乘幂
voidPow()
{
intn;
n=floor(a[1]);
d[0]=a[0];
d[1]=a[1];
e[0]=b[0];
e[1]=b[1];
a[1]=a[0];
b[1]=b[0];
for(inti=0;i { if(i! =0) { a[0]=c[0]; b[0]=c[1]; } Mul(); } a[0]=d[0]; a[1]=d[1]; b[0]=e[0]; b[1]=e[1]; } voidinput() { cout<<"输入第一个复数: "< 复数a+bi,请输入ab,退出请输入-9990"< cin>>a[0]>>b[0]; cout<<"输入第二个复数: "< cin>>a[1]>>b[1]; } intmain() { intx=1; while (1) { input(); if(a[0]==-999.0&&b[0]==0) break; if(a[1]==-999.0&&b[1]==0) break; while(x! =0) { cout<<"请输入运算类型: "< (1)乘法运算"< (2)除法运算"< cin>>x; cout< switch(x) {case1: Mul(); cout<<"乘法结果: "< case2: Div(); cout<<"除法结果: "< case3: Pow(); cout<<"乘幂结果: "< case4: x=0; } } } return0; } 表3-2乘法函数mul()说明 模块名称 voidmulti 模块功能 乘法运算 模块说明 根据公式算出两复数乘积 类型 变量名 初值 值域 变量说明 double a[] 实部 double b[] 虚部 double c[] 计算结果 double d[] 实部备份 double e[] 虚部备份 int n int i 0 控制循环次数 int x 1 mul()函数程序代码如下: //乘法 voidMul() { c[0]=a[0]*a[1]-b[0]*b[1]; c[1]=b[0]*a[1]+a[0]*b[1]; } 表3-3除法函数div()说明 模块名称 div 模块功能 除法运算 模块说明 产生除法运算的式子,得出结果 类型 变量名 初值 值域 变量说明 double a[] 实部 double b[] 虚部 double c[] 计算结果 double d[] 实部备份 double e[] 虚部备份 int n int i 0 控制循环次数 int x 1 //除法 voidDiv() { c[0]=(a[0]*a[1]+b[0]*b[1])/(a[1]*a[1]+b[1]*b[1]); c[1]=(b[0]*a[1]-a[0]*b[1])/(a[1]*a[1]+b[1]*b[1]); } 表3-4函数multi()说明 模块名称 Pow 模块功能 乘幂运算 模块说明 根据乘幂运算公式,得出两复数乘幂结果 类型 变量名 初值 值域 变量说明 double a[] 实部 double b[] 虚部 double c[] 计算结果 double d[] 实部备份 double e[] 虚部备份 int n int i 0 控制循环次数 int x 1 pow()函数程序代码如下: voidPow() { intn; n=floor(a[1]); d[0]=a[0]; d[1]=a[1]; e[0]=b[0]; e[1]=b[1]; a[1]=a[0]; b[1]=b[0]; for(inti=0;i { if(i! =0) { a[0]=c[0]; b[0]=c[1]; } Mul(); } a[0]=d[0]; a[1]=d[1]; b[0]=e[0]; b[1]=e[1]; } 四.详细设计 图4-1主程序流程图 五.程序运行结果 图5-1代码编辑界面截图 图5-2运行界面截图 六.调试、分析及总结 No 遇到问题 解决措施 1 函数怎么进行分支 运用switch语句 2 输入-9900,如何退出 通过while (1)死循环,与if从句进行判定 3 复数的乘方运算表达式不懂 查找资料 4 怎样定义复数 分别用a.b代表实部和虚部 5 写函数时很多函数多次重复写出 先定义函数,后调用函数。 6 7 对本次设计的收获,对本课程的认识及思考。 对C/C++的接触、认识、使用有了更深一步的了解。 此程序让我知道了使用switch语句,执行不同命令下的子函数。 同时,利用while,if循环体的使用,来选择和判断结果。 六.参考资料 1.VisualC++从入门到精通(第2版)清华大学出版社2010、 2.大学C/C++程序设计案例教程中国铁道部出版社2010 4. 七.综合评分 以下内容任课教师填写 序号 考察主项 教师评语 得分 备注 1 完成题目情况 2 代码格式规范 3 题目难度系数 4 创新性 5 实验报告文档 6 平时成绩 7 成绩合计
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 理工 B9c 实验 报告