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

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
云南大学软件学院 云南大学软件学院 数据结构实验报告 实验难度: A □ B □ C □ 序号 学号 姓名 成绩 指导教师 (签名) 学  期:  2017秋季学期 任课教师:    刘宇    实验题目: 组员及组长:      承担工作:     联系电话:         电子邮件:   完成提交时间:2017年10月24日   一、【实验构思(Conceive)】(10%) (本部分应包括:描述实验实现的基本思路,包括所用到的离散数学、工程数学、程序设计等相关知识,对问题进行概要性地分析) 实验要求制作一个复数计算器,要求能进行实数和虚数的混合运算,首先要解决的问题是复数的四则运算,确保运算正确无误。然后要解决的就是分离复数这个问题。分离复数最简单的方法就是输入复数的时候分别输入实部虚部,然后打印。但这过于简单,于是采取输入一个字符串来接入这个复数,然后用数组的方法进行实部虚部的分离。 用到的数学知识:复数四则运算,与或非运算,进行分支判断; 程序设计知识:目标分析-设计算法-程序编写-后期调试。 二、【实验设计(Design)】(20%) (本部分应包括:抽象数据类型的定义和基本操作说明,程序包含的模块以及各模块间的调用关系,关键算法伪码描述及程序流程图等,如有界面则需包括界面设计,功能说明等) 抽象数据类型的定义: typedef struct Complex //构造复数结构Complex { float real; //定义实部为real float imag; //定义虚部为imag }Complex; 基本操作: 功能一可以字符串形式输入一个复数,用数组的方法从字符串中分离出实部和虚部;功能二可以对输入的两个复数进行简单的加减乘除的四则运算。 模块: 加法函数: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 Getreal(Complex z) 分离虚部函数:float Getimag(Complex z) 分离函数:void spread_Complex() 算法伪码描述(分离函数): 输入一个复数字符串;实部标志为flag1,虚部标志为flag2,得到flag1和flag2的取值,判断该复数是否是完整的复数,或是纯实数、纯虚数;用符号来判断一个完整的复数的实部虚部,如果判断出字符串中接收到了‘+’或者‘-’,则符号前面的算实部,将符号舍去,后面的即为虚部,直到遇上‘i’。 程序流程图: SKIPIF 1 0 三、【实现(Implement)】(30%) (本部分应包括:抽象数据类型各操作的具体实现代码、 关键操作的具体算法实现、 函数实现,主程序实现等,并给出关键算法的时间复杂度分析。如有界面则需包括界面的关键实现方法等。) 主程序实现:打印功能选择的DOS窗口界面,输入功能选择,选择功能一调用复数分离函数,选择功能二则输入两个复数的实部和虚部,选择运算,+则调用加法函数,-号调用减法函数,*号调用乘法函数,/号调用除法函数,否则错误提示。 各主要函数实现: 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 z2.imag == 0) { printf(ERROR! z2 is 0!\n);//判断除数是否为零 system(pause);

文档评论(0)

shujukd + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档