- 18
- 0
- 约3.26千字
- 约 6页
- 2016-05-23 发布于重庆
- 举报
数据结构实验报告范例
实验报告
实验题目
[问题描述]
设计一个可进行复数运算的演示程序。
[基本要求]
实现下列六种基本运算:
由输入的实部和虚部生成一个复数
两个复数求和
两个复数求差
两个复数求积
从已知复数中分离出实部
从已知复数中分离出虚部
运算结果以相应的复数或实数的表示形式显示。
概要设计
定义复数类型:
ADT Complex{
数据对象:D={ci|ci=(real,image),real∈实数,image∈实数,i=1,2,3,…}
数据关心:R1={}
基本操作:
C_Sum(C,C1,C2)
初始条件:复数C1,C2存在。
操作结果:做和运算C1+C2,结果放在C中。
C_Difference(C,C1,C2)
初始条件:复数C1,C2存在。
操作结果:做减运算C1-C2,结果放在C中。
C_Product(C,C1,C2)
初始条件:复数C1,C2存在。
操作结果:做乘运算C1*C2,结果放在C中。
C_Print(C)
初始条件:复数C存在。
操作结果:将复数C以“实部+虚部i”的形式显示输出。
}ADT Complex
2.程序包含四个模块
主程序模块
main()
{初始化;
选择命令;
while(“命令”!=“退出”)
{处理命令;}
}
两复数求和模块
两复数求差模块
两复数求积模块
打印复数模块
3.程序流程图
详细设计
复数数据类型
typedef struct
{float real;
float image;
}complex,*complex_ptr;
void C_Difference(complex_ptr C,complex C1,complex C2)
//将复数C1,C2相减,结果放入复数指针C所指向的复数单元中去。
void C_Product(complex_ptr C,complex C1,complex C2)
//将复数C1,C2相乘,结果放入复数指针C所指向的复数单元中去。
void C_Print(complex_ptr C)
//将复数指针C所指向的复数单元中的内容以“实部+虚部i”的形式显示输出。
.
调试分析
项目选择“choice”变量的类型定义。
起初choice变量是定义为int型,其值范围在1、2、3、4内。但考虑到在实际操作中,用户可能存在随意按键的情况,即输入任意字符或字符串,因此将choice定义为char型,其值范围在字符集{‘1’,‘2’,‘3’,‘4’}内。
对于键盘缓冲区清空的处理
在实际运行中,发现程序不能正常循环,表现在choice变量不能重复赋值。现象是在第一次复数运算结束后,程序在给出命令菜单后,提示用户选择,并等待输入。但情况并非如此,程序并未等待直接要求用户输入第一个复数值。通过分析是之前输入的内容影响对choice变量赋值的scanf语句的执行。
如图:
解决办法是使用fflush(stdin),对键盘缓冲区作清空处理,该库函数是在stdio.h文件中定义的。
测试结果
加运算
输入:
复数一:1,3
复数二:2,4
结果:3.000000+7.000000i
减运算
复数一:3.4,5.6
复数二:2.7,4.8
结果:0.700000+0.800000i
3.乘运算
复数一:7,8
复数二:9.1,2.5
结果:43.700005+90.300003i
附录
源程序代码:
#include stdio.h
typedef struct{
float real;
float image;
}complex,*complex_ptr;
void C_Sum(complex_ptr c_ptr,complex com1,complex com2)
{c_ptr-real=com1.real+com2.real;
c_ptr-image=com1.image+com2.image;
}
void C_Difference(complex_ptr c_ptr,complex com1,complex com2)
{c_ptr-real=com1.real-com2.real;
c_ptr-image=com1.image-com2.image;
}
void C_Product(complex_ptr c_ptr,complex com1,complex com2)
{c_ptr-real=com1.real*com2.real-com1.image*com2.image;
c_ptr-image=com1.real*com2.image+com1.image*com2.real;
}
void C_Print(complex_ptr c_ptr)
{printf(\nThe result is:%f+%fi\n,c_p
您可能关注的文档
- 教师资格考试小学教育心理学章节知识重点第十章.doc
- 教师资格考试小学综合素质复习资料(4.7).doc
- 教师资格认定宣传手册(2008年春季).doc
- 教师面试技巧之说课试讲及面试篇说教材.doc
- 教案---牛津英语7AUnit6FashionWelcometotheunit.doc
- 教案--第3节群落的结构.doc
- 教案4集合与集合间的关系1.doc
- 教案Module1SmallTalk.doc
- 教案《唯一的听众》.doc
- 教案《蜗牛的奖杯》.doc
- 小区绿化施工协议书.docx
- 墙面施工协议书.docx
- 1 古诗二首(课件)--2025-2026学年统编版语文二年级下册.pptx
- (2026春新版)部编版八年级道德与法治下册《3.1《公民基本权利》PPT课件.pptx
- (2026春新版)部编版八年级道德与法治下册《4.3《依法履行义务》PPT课件.pptx
- (2026春新版)部编版八年级道德与法治下册《6.2《按劳分配为主体、多种分配方式并存》PPT课件.pptx
- (2026春新版)部编版八年级道德与法治下册《6.1《公有制为主体、多种所有制经济共同发展》PPT课件.pptx
- 初三教学管理交流发言稿.docx
- 小学生课外阅读总结.docx
- 餐饮门店夜经济运营的社会责任报告(夜间贡献)撰写流程试题库及答案.doc
原创力文档

文档评论(0)