ImageVerifierCode 换一换
格式:DOC , 页数:8 ,大小:279.50KB ,
资源ID:3678663      下载积分:10 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.docduoduo.com/d-3678663.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(云南大学软件学院数据结构实验1.doc)为本站会员(weiwoduzun)主动上传,道客多多仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知道客多多(发送邮件至docduoduo@163.com或直接QQ联系客服),我们立即给予删除!

云南大学软件学院数据结构实验1.doc

1、 实验难度: A B C 序号 学号 姓名 成绩指导教师 (签名)学 期: 2017 秋季学期 任课教师: 刘宇 实验题目: 组员及组长: 承担工作: 联系电话: 电子邮件: 完成提交时间:2017 年 10 月 24 日云南大学软件学院 数据结构实验报告一、 【实验构思(Conceive ) 】(10%)(本部分应包括:描述实验实现的基本思路,包括所用到的离散数学、工程数学、程序设计等相关知识,对问题进行概要性地分析)实验要求制作一个复数计算器,要求能进行实数和虚数的混合运算,首先要解决的问题是复数的四则运算,确保运算正确无误。然后要解决的就是分离复数这个问题。分离复数最简单的方法就是输入复

2、数的时候分别输入实部虚部,然后打印。但这过于简单,于是采取输入一个字符串来接入这个复数,然后用数组的方法进行实部虚部的分离。用到的数学知识:复数四则运算,与或非运算,进行分支判断;程序设计知识:目标分析-设计算法-程序编写-后期调试。二、 【实验设计(Design)】(20%)(本部分应包括:抽象数据类型的定义和基本操作说明,程序包含的模块以及各模块间的调用关系,关键算法伪码描述及程序流程图等,如有界面则需包括界面设计,功能说明等)抽象数据类型的定义:typedef struct Complex /构造复数结构 Complexfloat real; /定义实部为 realfloat imag;

3、 /定义虚部为 imagComplex;基本操作:功能一可以字符串形式输入一个复数,用数组的方法从字符串中分离出实部和虚部;功能二可以对输入的两个复数进行简单的加减乘除的四则运算。模块:加法函数:Complex Add(Complex z1, Complex z2)减法函数:Complex Sub(Complex z1, Complex z2)乘法函数:Complex Mul(Complex z1, Complex z2)除法函数:Complex Div(Complex z1, Complex z2)打印函数:void print_Complex(Complex z)分离实部函数:float

4、Getreal(Complex z)分离虚部函数:float Getimag(Complex z)分离函数:void spread_Complex()算法伪码描述(分离函数):输入一个复数字符串;实部标志为 flag1,虚部标志为 flag2,得到 flag1 和 flag2 的取值,判断该复数是否是完整的复数,或是纯实数、纯虚数;用符号来判断一个完整的复数的实部虚部,如果判断出字符串中接收到了+或者- ,则符号前面的算实部,将符号舍去,后面的即为虚部,直到遇上i 。程序流程图:开始功能选择分离复数 四则运算M o d = 1Y E S N OC h = +调用加法函数Y e s其他调用减法函

5、数其他其他C h = y s eC h = *n on o调用乘法函数C h = /调用除法函数y e sy e sn o实部虚部判断完整复数纯虚数纯实数分别打印实部和虚部结束三、 【实现(Implement) 】(30%)(本部分应包括:抽象数据类型各操作的具体实现代码、 关键操作的具体算法实现、 函数实现,主程序实现等,并给出关键算法的时间复杂度分析。如有界面则需包括界面的关键实现方法等。 )主程序实现:打印功能选择的 DOS 窗口界面,输入功能选择,选择功能一调用复数分离函数,选择功能二则输入两个复数的实部和虚部,选择运算,+则调用加法函数,-号调用减法函数,*号调用乘法函数,/号调用除

6、法函数,否则错误提示。各主要函数实现:1.加法函数:z.real = z1.real + z2.real;z.imag = z1.imag + z2.imag;2.减法函数:z.real = z1.real - z2.real;z.imag = z1.imag - z2.imag;3.乘法函数:z.real = z1.real * z2.real+z1.imag*z2.imag;z.imag = z1.real * z2.imag+z1.imag*z2.real;4.除法函数:if( z2.real = 0 /判断除数是否为零system(“pause“);exit(0);elsez.real

7、 = (z1.real*z2.real-z1.imag*z2.imag)/(z1.real*z1.real-z1.imag*z1.imag);z.imag = (z1.imag*z2.real-z1.real*z2.imag)/(z1.real*z1.real-z1.imag*z1.imag);5.分离函数:void spread_Complex()char fushu20 = 0 , real10 = 0 , imag10 = 0 ;int i = 0, j = 0, n = 0, k = 0, flag1 = 0, flag2 = 0;printf(“请输入一个复数字符串:“);getch

8、ar();gets(fushu);while (fushun = )n+;if (fushun = 0 system(“pause“);exit(0);else if (flag2 = 0) /*判断为纯实数*/printf(“该复数实部为%sn“ , fushu);printf(“该复数虚部为0n“);system(“pause“);exit(0);else if (flag1 = 0) /*判断为纯虚数*/imagj = real0;j+;for (; fushun != i; j+)if (fushun0 j-;continue;imagj = fushun;n+;elseprintf(

9、“nERROR!n“);system(“pause“);exit(0);imagj = i;printf(“该复数实部为%sn“ , real);printf(“该复数虚部为%sn“ , imag);system(“pause“);exit(0);printf(“ERROR!n“);system(“pause“);exit(0);printf(“ERROR!n“);system(“pause“);exit(0);时间复杂度分析:四、 【测试结果(Testing) 】(10%)(本部分应包括:对实验的测试结果,应具体列出每次测试所输入的数据以及输出的数据,并对测试结果进行分析,可附截图)程序初始界面:第一个功能实现:第二个功能实现(输入的第一个复数均是 9-4i;第二个复数均是-1-3i):加法:减法:乘法:除法:五、 【实验总结】(10%)(本部分应包括:自己在实验中完成的任务,及存在的问题,所完成实验过程中的具体经验总结、心得)本次试验中,起初是直接使用输入复数的时候分别输入实部虚部,然后打印,以此来分离复数,但考虑到这样做非常简单,所以后面做了修改,于是采取输入一个字符串来接入这个复数,然后用数组的方法进行实部虚部的分离。其他的复数的四则运算则很容易实现,没有什么困难。然后就是要考虑全面,尽量避免错误。

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报