欢迎来到三一文库! | 帮助中心 三一文库31doc.com 一个上传文档投稿赚钱的网站
三一文库
全部分类
  • 研究报告>
  • 工作总结>
  • 合同范本>
  • 心得体会>
  • 工作报告>
  • 党团相关>
  • 幼儿/小学教育>
  • 高等教育>
  • 经济/贸易/财会>
  • 建筑/环境>
  • 金融/证券>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 三一文库 > 资源分类 > DOCX文档下载  

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

    • 资源ID:6110124       资源大小:100.19KB        全文页数:8页
    • 资源格式: DOCX        下载积分:4
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录   微博登录  
    二维码
    微信扫一扫登录
    下载资源需要4
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

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

    最新资料推荐实验难度:A BC序号学号姓名成绩指导教师(签名)学期:2017 秋季学期任课教师 :刘宇实验题目 :组员及组长 :承担工作:联系电话 :电子邮件 :完成提交时间: 2017 年 10 月 24 日1最新资料推荐一、【实验构思( Conceive)】(10%)(本部分应包括:描述实验实现的基本思路,包括所用到的离散数学、工程数学、程序设计等相关知识,对问题进行概要性地分析)实验要求制作一个复数计算器,要求能进行实数和虚数的混合运算,首先要解决的问题是复数的四则运算,确保运算正确无误。然后要解决的就是分离复数这个问题。分离复数最简单的方法就是输入复数的时候分别输入实部虚部,然后打印。但这过于简单,于是采取输入一个字符串来接入这个复数,然后用数组的方法进行实部虚部的分离。用到的数学知识:复数四则运算,与或非运算,进行分支判断;程序设计知识:目标分析->设计算法 ->程序编写 -> 后期调试。二、【实验设计 ( Design) 】(20%)(本部分应包括:抽象数据类型的定义和基本操作说明,程序包含的模块以及各模块间的调用关系,关键算法伪码描述及程序流程图等,如有界面则需包括界面设计,功能说明等)抽象数据类型的定义:typedefstruct Complex/ 构造复数结构Complexfloat real;/ 定义实部为realfloat imag;/ 定义虚部为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 Getreal(Complex z)分离虚部函数:float Getimag(Complex z)分离函数:void spread_Complex()算法伪码描述(分离函数):输入一个复数字符串;实部标志为flag1,虚部标志为flag2,得到 flag1 和 flag2 的取值,判断该复数是否是完整的复数,或是纯实数、纯虚数;用符号来判断一个完整的复数的实部虚部,2最新资料推荐如果判断出字符串中接收到了+或者 -,则符号前面的算实部,将符号舍去,后面的即为虚部,直到遇上i 。程序流程图:开始功能选择YESMod=1NO分离复数四则运算纯实数实部虚部判断纯虚数Ch=+no其他Yes调用加Ch= no其他法函数完整复数yse调用减Ch=*no其他法函数分别打印实部和虚yes部调用乘Ch=/法函数yes调用除法函数结束三、【实现( 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;3最新资料推荐4.除法函数: if( z2.real = 0 && z2.imag = 0) printf("ERROR! z2 is 0!n");/判断除数是否为零system("pause");exit(0);elsez.real = (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( " 请输入一个复数字符串:");getchar();gets(fushu);while (fushun = )n+;if (fushun >=0 && fushun <=9 | fushun =- | fushun =+ )reali = fushun;/* 把第一个字符处理掉*/i+;n+;for (k = i; k<20; k+)if (fushuk =+ | fushuk =-) / 判断是否为完整复数flag1+;else if (fushuk =i )/* 判断是否为纯实数*/flag2+;if (flag2 > 1)printf( "ERROR!" );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+)4最新资料推荐if (fushun>0 && fushun <=9 | fushun =. | fushun = )if (fushun = )n+;j-;continue ;imagj = fushun;n+;elseprintf( "nERROR!n");system( "pause" );exit(0);imagj =i;printf( " 该复数实部为 0n" );printf( " 该复数虚部为 %sn" , imag);system( "pause" );exit(0);if (flag1 = 1)/ 判断为完整复数for (; fushun !=+ && fushun !=- ; i+)if (fushun>0 && fushun <=9 | fushun =. | fushun = )if (fushun = )n+;i-;continue ;reali = fushun;n+;elseprintf( "nERROR!n");system( "pause" );exit(0);if (fushun =- )/* 负号算在虚部 */imagj = fushun;j+;n+;5最新资料推荐else if (fushun =+ )/* 加号舍去 */n+;for (; fushun !=i ; j+)if (fushun>0 && fushun <=9 | fushun =. | fushun = )if (fushun = )n+;j-;continue ;imagj = fushun;n+;elseprintf( "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%)(本部分应包括:对实验的测试结果,应具体列出每次测试所输入的数据以及输出的数据,并对测试结果进行分析,可附截图)程序初始界面:6最新资料推荐第一个功能实现:第二个功能实现(输入的第一个复数均是9-4i ;第二个复数均是-1-3i) :加法:减法:7最新资料推荐乘法:除法:五、【实验总结】 (10%)(本部分应包括:自己在实验中完成的任务,及存在的问题,所完成实验过程中的具体经验总结、心得)本次试验中,起初是直接使用输入复数的时候分别输入实部虚部,然后打印,以此来分离复数,但考虑到这样做非常简单,所以后面做了修改,于是采取输入一个字符串来接入这个复数,然后用数组的方法进行实部虚部的分离。其他的复数的四则运算则很容易实现,没有什么困难。然后就是要考虑全面,尽量避免错误。8

    注意事项

    本文(云南大学软件学院数据结构实验1.docx)为本站会员(罗晋)主动上传,三一文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    经营许可证编号:宁ICP备18001539号-1

    三一文库
    收起
    展开