已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
石家庄经济学院实 验 报 告学 院: 管理科学与工程学院 专 业: 信息管理与信息系统信息工程学院计算机实验中心制姓名董浩学号410105010201日期2009.10. 7-8节实验室计算机软件技术实验指导教师张有华设备编号实验题目实验1 抽象数据类型复数的实现一 实验内容实验1 抽象数据类型复数的实现二 实验目的1. 了解抽象数据类型(ADT)的基本概念,及描述方法。2. 通过对复数抽象数据类型ADT的实现,熟悉C语言语法及程序设计。为以后章节的学习打下基础。三 实验的内容及完成情况1、需求分析复数抽象数据类型ADT的描述及实现。 复数ADT的描述 ADT complex 数据对象:D= c1,c2 c1,c2FloatSet 数据关系:R= c1, c2 D 基本操作:创建一个复数 creat(a); 输出一个复数 outputc(a); 求两个复数相加之和 add(a,b); 求两个复数相减之差 sub(a,b); 求两个复数相乘之积 chengji(a,b); 等等; ADT complex;本实验实现使用TC2.0实现复数的描述及操作。具体实现要求:1从键盘分别输入2个复数,并可修改已输入的复数。2能输出指定的复数。3两个复数相加之和,观察输出结果。4两个复数相加之差,观察输出结果。5求两个复数相乘之积,观察输出结果。6程序应给用户提供如下操作界面。2、概要设计抽象数据类型的定义: ADT complex数据对象: D= c1,c2| c1,c2 FloatSet 数据关系: R= |c1,c2D 基本操作:creat(a);操作结果:创建一个复数outputc(a);初始条件:复数a已存在操作结果:输出一个复数add(a,b);初始条件:复数a和b已存在;操作结果:求两个复数相加之和sub(a,b);初始条件:复数a和b已存在操作结果:求两个复数相减之差mutiple(a,b);初始条件:复数a和a已存在操作结果:求两个复数相乘之积 ADT complex;2. 主程序的大致流程如下:主函数 调用函数Creatcomplex()调用函数Creatcomplex()调用函数Print_C()调用函数Print_C()调用函数SubComplex()与Print_C()调用函数AddComplex()与Print_C()调用函数MultiptyComplex()与Print_C(Case1Case2Case3Case4Case5Case6Case7图1函数调用关系图3、详细设计1. 定义复数的抽象数据类型#include #include typedef struct Complexfloat real;float image;Complex;void CreatComplex(Complex *c,float a,float b);void AddComplex(Complex *sum,Complex c1,Complex c2 );void Subtract_C(Complex *sub,Complex c1,Complex c2 );void Multiple_C(Complex *product,Complex c1,Complex c2 );void CreatComplex(Complex *c,float a,float b) (*c).real = a; (*c).image = b;void AddComplex(Complex *sum,Complex c1,Complex c2) (*sum).real = c1.real + c2.real; (*sum).image = c1.image + c2.image;void Subtract_C(Complex *sub,Complex c1,Complex c2 ) (*sub).real = c1.real -c2.real; (*sub).image = c1.image - c2.image;void Multiple_C(Complex *product,Complex c1,Complex c2 ) (*product).real = c1.real * c2.real - c1.image * c2.image; (*product).image = c1.real * c2.image + c1.image * c2.real;void Print_C(Complex c) if(c.real!=0.0) if(c.image = 0.0) printf(%5.2fn,c.real ); else printf(%5.2f+%5.2fin,c.real,c.image); else /* c.real=0.0 */ if(c.image!=0.0) printf(%5.2fin,c.image); else printf(0); void Subtract_C(Complex *sub,Complex c1,Complex c2 ) (*sub).real = c1.real -c2.real; (*sub).image = c1.image - c2.image;void Multiple_C(Complex *product,Complex c1,Complex c2 ) (*product).real = c1.real * c2.real - c1.image * c2.image; (*product).image = c1.real * c2.image + c1.image * c2.real;void Print_C(Complex c) if(c.real!=0.0) if(c.image = 0.0) printf(%5.2fn,c.real ); else printf(%5.2f+%5.2fin,c.real,c.image); else /* c.real=0.0 */ if(c.image!=0.0) printf(%5.2fin,c.image); else printf(0); 2. 主程序伪码算法: #include complex.h#include main() printf(用户选择界面); switch(ch)case1: scanf(复数c1的实部和虚部); case2: scanf(复数c2的实部和虚部); case3: CreatComplex(c1); printf(复数c1); case4: CreatComplex(c2); printf(复数c2); case5: AddComplex(c1,c2); Print(sum); Case6: Subtract_C(c1,c2); Print(Sub); Case7: Multiple_C(c1,c2); Print(Prod); Case0: Break; 4、调试分析(1)调试过程中出现的问题:、 编译的语句代码有粗心造成的符号不成对出现或者对变量的定义不全,造成错误,还有 文件无法找到,因为自己并未在TC环境下设置路径,通过提示认真更改,终于能运行。(2)经验和体会 努力尝试运用老师提倡的模块化的思想,多处用到函数,要及时复习C语言。(3)算法的时空分析和改进 该算法的时间复杂度和空间复杂度皆为O(1)5、用户使用说明打开可执行程序,即TC环境下,,参照用户选择界面提示即可使用本程序6、测试结果 * 1.Input c1 * 2.Input c2 * 3 print c1* 4. print c2 * 5. print c1+c2 * 6. print c1-c2 * 7. print c1*c2 * 0.exit *Input you choice:1 *Input c1,please!2.0000003.500000Input c2 please!3.000000-6.300005.
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025上海科技大学教育、创新和可持续发展研究中心(CEISD)招聘青年科学家青年研究员4人参考笔试试题及答案解析
- 2025陕西延安市安塞区招聘社区专职工作人员18人备考题库及答案详解(真题汇编)
- 2025四川泸州市纳溪区龙车镇人民政府招聘临聘人员2人参考考点题库及答案解析
- 2025年12月广东深圳市福田区梅林街道办事处选用场馆管理岗2人备考题库含答案详解ab卷
- 2026萧山农商银行校园招聘备考题库及答案详解(各地真题)
- 2025云南昆明石泸高速公路开发有限公司生产(工勤)岗招聘8人参考模拟试题及答案解析
- 2026中信银行长沙分行校园招聘备考题库及答案详解(名校卷)
- 2025重庆渝北区人民政府宝圣湖街道办事处公益性岗位招聘备考题库及答案详解(有一套)
- 2026杭州银行衢州分行秋季校园招聘备考题库及完整答案详解一套
- 2025重庆大足区公安局警务辅助人员招聘31人备考题库附答案详解(预热题)
- 第二单元 第4课《数据分包灵活传》课件 2025-2026学年人教版初中信息科技七年级全一册
- 抖音起号策划方案
- 风电场项目(土建、电气、机务)强制性条文汇编
- 2018版公路工程质量检验评定标准分项工程质量检验评定表路基土石方工程
- (2025年版)血友病治疗中国指南解读
- 【数】期中模拟检测卷(试题)-2025-2026学年八年级上册数学人教版
- DB42∕T 1752-2021 柳杉人工林可持续经营技术规程
- 寺院消防安全培训课件
- 船舶高技能人才评价-洞察与解读
- 北京某中学2026届高三年级上册开学考试 英语试题(含答案)
- 调料销售知识培训课件
评论
0/150
提交评论