欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    云南大学软件学院数据结构实验一实验报告桌面复数计算器.docx

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

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

    云南大学软件学院数据结构实验一实验报告桌面复数计算器.docx

    1、云南大学软件学院数据结构实验一实验报告桌面复数计算器 (本实验项目方案受“教育部人才培养模式创新实验区(X3108005)”项目资助) 实验难度: A B C 序号学号姓名成绩123指导教师 (签名)学期: 任课教师: 实验题目: 实验一,设计桌面计算器 小 组 长: 联系电话: 电子邮件: 完成提交时间:年月日云南大学软件学院2010学年 秋季 学期数据结构实验成绩考核表学号: 姓名: 本人承担角色: 课题分析,算法设计,程序编写,后期调试,完成实验报告 评分项目评分指标分值得分实验构思(10%)1. 实验目的明确52. 实验内容理解透彻、对实验所涉及到的知识点分析到位5实验设计(15%)1

    2、. 有对基本数据结构的抽象数据类型定义52. 实验方案设计完整,数据结构、算法选择合理 53.算法结构和程序功能模块之间逻辑清晰、有相应的流程图5实验实现(25%)1. 代码编写规范、风格统一、注释清楚易读 52. 程序运行正常,测试结果正确153. 界面友好、易于操作、有较强的容错性5实验报告撰写(10%)1. 内容详实无缺漏,文字流畅、图表清楚52. 实验结果分析客观、详细,实验体会真实可信,对原实验方案的改进和对实验内容的发散性思考5个人工作量(30%)1. 个人完成工作量152. 个人技术水平103. 团队合作精神5实验运作(10%)1. 有一定用户群52. 应用前景分析5综合得分:

    3、(满分100分)指导教师: 年 月 日(注:此表在难度为C时使用,每个成员一份。)云南大学软件学院2010学年 秋季 学期数据结构实验成绩考核表学号: 姓名: 本人承担角色: 课题分析,算法设计,后期调试 评分项目评分指标分值得分实验构思(10%)1. 实验目的明确52. 实验内容理解透彻、对实验所涉及到的知识点分析到位5实验设计(15%)1. 有对基本数据结构的抽象数据类型定义52. 实验方案设计完整,数据结构、算法选择合理 53.算法结构和程序功能模块之间逻辑清晰、有相应的流程图5实验实现(25%)1. 代码编写规范、风格统一、注释清楚易读 52. 程序运行正常,测试结果正确153. 界面

    4、友好、易于操作、有较强的容错性5实验报告撰写(10%)1. 内容详实无缺漏,文字流畅、图表清楚52. 实验结果分析客观、详细,实验体会真实可信,对原实验方案的改进和对实验内容的发散性思考5个人工作量(30%)1. 个人完成工作量152. 个人技术水平103. 团队合作精神5实验运作(10%)1. 有一定用户群52. 应用前景分析5综合得分: (满分100分)指导教师: 年 月 日(注:此表在难度为C时使用,每个成员一份。)云南大学软件学院2010学年 秋季 学期数据结构实验成绩考核表学号: 姓名: 本人承担角色: 课题分析,算法设计,后期调试 评分项目评分指标分值得分实验构思(10%)1. 实

    5、验目的明确52. 实验内容理解透彻、对实验所涉及到的知识点分析到位5实验设计(15%)1. 有对基本数据结构的抽象数据类型定义52. 实验方案设计完整,数据结构、算法选择合理 53.算法结构和程序功能模块之间逻辑清晰、有相应的流程图5实验实现(25%)1. 代码编写规范、风格统一、注释清楚易读 52. 程序运行正常,测试结果正确153. 界面友好、易于操作、有较强的容错性5实验报告撰写(10%)1. 内容详实无缺漏,文字流畅、图表清楚52. 实验结果分析客观、详细,实验体会真实可信,对原实验方案的改进和对实验内容的发散性思考5个人工作量(30%)1. 个人完成工作量152. 个人技术水平103

    6、. 团队合作精神5实验运作(10%)1. 有一定用户群52. 应用前景分析5综合得分: (满分100分)指导教师: 年 月 日(注:此表在难度为C时使用,每个成员一份。)(下面的内容由学生填写,格式统一为,字体: 楷体, 行距: 固定行距18,字号: 小四,个人报告按下面每一项的百分比打分。难度A满分70分,难度B满分90分)一、【实验构思(Conceive)】(10%)(本部分应包括:描述实验实现的基本思路,包括所用到的离散数学、工程数学、程序设计、算法等相关知识)本实验要求制作一个桌面计算器,要求能进行实数和虚数的混合运算,首先要解决如何处理四则运算的算法,并进行正确无误的数据存储以及传递

    7、。本程序使用两个变量来保存一个复数,分别存储实部和虚部,利用四个子程序事先加减乘除四则运算,最后在主程序中调用并显示结果。利用程序设计的相关知识:贯彻设计程序所必需的五大步骤,目标分析-设计算法-程序编写-后期调试-售后服务 的流程完成这个项目。利用算法设计相关知识:该算法满足 有穷性,确定性,可行性,有0个或多个输入,有一个或多个输出输出,以及正确性,可读性,健壮性的特性。数学基础知识:利用高中所学之复数的基本运算的知识。离散数学相关知识:正确合理的适用与或非之间的关系,进行程序分支判断,保证程序正常进行。二、【实验设计(Design)】(20%)(本部分应包括:抽象数据类型的功能规格说明、

    8、主程序模块、各子程序模块的伪码说明,主程序模块与各子程序模块间的调用关系)本程序使用C#进行编写,全部程序一共22个对象,3个类:窗口类,按钮类,文本框类:窗口类:用于实现整个程序窗口的初始化,窗口重绘,程序变量的初始化,以及最后窗口的销毁。按钮类:用于对各种触发事件以予正确的响应,实现程序的友好界面。文本框类:能对部分触发事件进行响应,并正确接受以及传递数据作为内部程序的参数,也能提供给用户检查输入的值是否正确,并以予更正的机会。当程序运行后窗口类生成的窗口对个值进行初始化,当用户按下各个功能键时,分别调用各个触发事件函数,当用户按下计算按钮时,计算机根据判断符的取值来进行选择具体调用那一个

    9、函数进行计算。各个触发时间函数伪代码:按钮0:判断输入指针指向那一个文本框; 判断目标文本框里面是否为0,若是不做任何反应,结束子程序; 判断操作符是不是为=,若是,清楚目标文本框里面的所有数据,结束子程序; 向目标文本框的字符串中的末尾添加一个0,结束子程序;按钮1:判断输入指针指向那一个文本框; 判断目标文本框里面是否为0,若是不做任何反应,结束子程序; 判断操作符是不是为=,若是,清楚目标文本框里面的所有数据,结束子程序; 向目标文本框的字符串中的末尾添加一个1,结束子程序;按钮2:判断输入指针指向那一个文本框; 判断目标文本框里面是否为0,若是不做任何反应,结束子程序; 判断操作符是不

    10、是为=,若是,清楚目标文本框里面的所有数据,结束子程序; 向目标文本框的字符串中的末尾添加一个2,结束子程序;按钮3:判断输入指针指向那一个文本框; 判断目标文本框里面是否为0,若是不做任何反应,结束子程序; 判断操作符是不是为=,若是,清楚目标文本框里面的所有数据,结束子程序; 向目标文本框的字符串中的末尾添加一个3,结束子程序;按钮4:判断输入指针指向那一个文本框; 判断目标文本框里面是否为0,若是不做任何反应,结束子程序; 判断操作符是不是为=,若是,清楚目标文本框里面的所有数据,结束子程序; 向目标文本框的字符串中的末尾添加一个4,结束子程序;按钮5:判断输入指针指向那一个文本框; 判

    11、断目标文本框里面是否为0,若是不做任何反应,结束子程序; 判断操作符是不是为=,若是,清楚目标文本框里面的所有数据,结束子程序; 向目标文本框的字符串中的末尾添加一个5,结束子程序;按钮6:判断输入指针指向那一个文本框; 判断目标文本框里面是否为0,若是不做任何反应,结束子程序; 判断操作符是不是为=,若是,清楚目标文本框里面的所有数据,结束子程序; 向目标文本框的字符串中的末尾添加一个6,结束子程序;按钮7:判断输入指针指向那一个文本框; 判断目标文本框里面是否为0,若是不做任何反应,结束子程序; 判断操作符是不是为=,若是,清楚目标文本框里面的所有数据,结束子程序; 向目标文本框的字符串中

    12、的末尾添加一个7,结束子程序;按钮8:判断输入指针指向那一个文本框; 判断目标文本框里面是否为0,若是不做任何反应,结束子程序; 判断操作符是不是为=,若是,清楚目标文本框里面的所有数据,结束子程序; 向目标文本框的字符串中的末尾添加一个8,结束子程序;按钮9:判断输入指针指向那一个文本框; 判断目标文本框里面是否为0,若是不做任何反应,结束子程序; 判断操作符是不是为=,若是,清楚目标文本框里面的所有数据,结束子程序; 向目标文本框的字符串中的末尾添加一个9,结束子程序;输入实部按钮:将输入指针指向实部文本框; 令输入实部按钮的有效性为false; 输入虚部按钮:将输入指针指向虚部文本框;

    13、令输入虚部按钮的有效性为false;Reset按钮:令实部文本框的字符串为0; 令虚部文本框的字符串为0; 令各个寄存器内的数字为0;令操作符为空; 令输入实部按钮有效性为true; 令输入虚部按钮有效性为true; Backspace按钮:判断输入指针指向的文本框是不是只有一个字符,若是,则将指针指向的文本框清零,结束子程序; 将指针指向的文本框的文本长度-1; 结束子程序;+按钮:将操作符存储器刷新为+;结束子程序;-按钮:将操作符存储器刷新为-;结束子程序;*按钮:将操作符存储器刷新为*; 结束子程序;/按钮:将操作符存储器刷新为/;结束子程序;Calculate键:判断操作符; 如果是

    14、 +,调用加法函数; 如果是 -,调用减法函数; 如果是 *,调用乘法函数; 如果是 /,调用除法程序; 输出结果; 结束子程序;三、【实现描述(Implement)】(30%)(本部分应包括:抽象数据类型具体实现的函数原型说明、 关键操作实现的伪码算法、 函数设计、函数间的调用关系,关键的程序流程图等,给出关键算法的时间复杂度分析。)本程序含有22个C#对象函数:0-9 10个数字按钮:实现往程序输入框中输入数据。运算符号按钮:用于更改操作符暂存器的值,以便后面的程序正常执行。系统功能键: 主要用于实现某些系统功能,如寄存器清零,操作符清零,文本框退格等等。计算按钮:根据已经输入的数值和运算

    15、符来判断输入是否合法,如合法就通过调用对应的子程序来给出正确结果,不正确就给出友好错误提示。程序输入框:用于输入程序的各种等待运算的数据。窗体:用于窗体的初始化,程序变量的初始化以及显示。时间复杂度分析:各个子程序的时间复杂度均为n. 人性化设计:1. 在输入出现错误时例如除数的实部与虚部同时为零时,程序会给出友好的提示。2. 充分尊重不同用户群的使用习惯,本程序提供了三种人机交互方式: (1).利用鼠标进行操作:在输入实部时,点击“输入实部”按钮,光标自动切换到实部输入框;欲输入虚部时,点击“输入虚部”按钮,光标自动切换至虚部输入框,在任何一个输入框中都能依靠鼠标点击下面的数字按钮来输入数据

    16、,最后点击calculate显示结果。 (2).利用键盘进行操作:在输入实部时,按下Tab键转移焦点至“输入实部”按钮,光标自动切换到实部输入框;欲输入虚部时,按Tab键转移焦点至“输入虚部”按钮,光标自动切换至虚部输入框,在任何一个输入框中都能按Tab键转移焦点至下面的数字按钮来输入数据,最后按Tab键转移焦点至calculate键进行计算,显示结果。 (3).利用鼠标与键盘同时操作,这也是最快捷的方法:在输入实部时,点击实部输入框,光标自动切换到实部输入框;欲输入虚部时,点击虚部输入框,光标自动切换至虚部输入框,在任何一个输入框中都能直接依靠鼠标键盘的数字键来输入数据,最后点击calcul

    17、ate按钮显示结果。3利用算法设计尽量避免用户出现操作失误:当用户通过任意一种手段切换光标至实部输入框时,实部切换按钮自动变为不可用,当用户通过任意一种手段切换光标至虚部输入框时,虚部切换按钮也自动变为不可用。四、【测试结果(Testing)】(10%)(本部分应包括:对实验的测试结果,应具体列出每次测试所输入的数据以及输出的数据,并对测试结果进行分析总结)程序开始运行后进行初始化,完成后的界面:焦点在实部时:焦点在虚部时:程序正确性测试1:计算(1+i)+(2+2i):计算结果:程序正确性测试2:计算(6+3i)(9+4i)计算结果:程序正确性测试3:计算(4+5i)*(3+9i)计算结果:

    18、程序正确性测试4:计算(12+9i)/(3+3i)计算结果:程序健壮性测试:令除数为0:测试:(9+3i)/(0+0i)显示结果:四、【实验总结】(10%)(本部分应包括:自己在实验中完成的任务,注意组内的任意一位同学都必须独立完成至少一项接口的实现;对所完成实验的经验总结、心得)这次和我们小组完成这个桌面计算器,大家分工协作,配合默契。我在这个小组中参与了课题分析,算法设计,后期测试。独立完成了程序代码的编写,实验报告的编写。总结:由于是功利化地为了完成试验才突击某一门编程语言,虽然有所基础,还是难免仓促,现在回顾自己编写的代码,相比较同学的代码,我发现我没有完全的利用面向对象的代码重用性的

    19、便利,代码几乎没有重复利用,导致代码有500行之巨,实在是有悖于面向对象编程的简洁性,重用性,安全性的设计初衷,这现象在以后对面向对象编程有了更深了解之后将会大量减少。五、【项目运作描述(Operate)】(10%)(本部分应包括:项目的成本效益分析,应用效果等的分析。) 这是一个初级的,基本的桌面计算器程序,主要目的是锻炼我们的团队合作意识,这个桌面计算器能用来进行简单的复数计算,方便同学们从繁杂的复数乘除法解脱出来。 六、】【代码】(10%)(本部分应包括:完整的代码及充分的注释。 注意纸质的实验报告无需包括此部分。格式统一为,字体: Georgia , 行距: 固定行距12,字号: 小五

    20、)using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;/By Yang Yangnamespace 数据结构实验一桌面计算器 public partial class Form1 : Form bool real_or_imag = true; /用来判断需要输入的是实部还是虚部,令true = r

    21、eal, false = imag string oper = ; /存放操作符 double result_real = 0; /存放实部运算结果 double result_imag = 0; /存放虚部运算结果 double num1_real = 0; /第一个数的实部 double num2_real = 0; /第二个数的实部 double num1_imag = 0; /第一个数的虚部 double num2_imag = 0; /第二个数的虚部 public Form1() InitializeComponent(); private void operplus() /加法模块

    22、函数 num2_real = Convert.ToDouble(text_real.Text); /字符串转化为双精度数 num2_imag = Convert.ToDouble(text_imag.Text); result_real = num1_real + num2_real; result_imag = num1_imag + num2_imag; text_real.Text = Convert.ToString(result_real); /双精度数转化成为字符串 text_imag.Text = Convert.ToString(result_imag); private vo

    23、id opermin() /减法模块函数 num2_real = Convert.ToDouble(text_real.Text); /字符串转化为双精度数 num2_imag = Convert.ToDouble(text_imag.Text); result_real = num1_real - num2_real; result_imag = num1_imag - num2_imag; text_real.Text = Convert.ToString(result_real); /双精度数转化成为字符串 text_imag.Text = Convert.ToString(result

    24、_imag); private void opermul() /乘法模块函数 num2_real = Convert.ToDouble(text_real.Text); /字符串转化为双精度数 num2_imag = Convert.ToDouble(text_imag.Text); result_real = (num1_real * num2_real)-(num1_imag * num2_imag); result_imag = (num1_real * num2_imag)+(num1_imag * num2_real); text_real.Text = Convert.ToStri

    25、ng(result_real); /双精度数转化成为字符串 text_imag.Text = Convert.ToString(result_imag); private int operdiv() /除法模块函数 num2_real = Convert.ToDouble(text_real.Text); /字符串转化为双精度数 num2_imag = Convert.ToDouble(text_imag.Text); if (num2_real * num2_real) + (num2_imag * num2_imag) = 0) /判断除数是否为零,避免非法操作 text_real.Tex

    26、t = 除数不合法; text_imag.Text = 请从新输入; return 0; result_real = (num1_real * num2_real)+(num1_imag * num2_imag)/(num2_real * num2_real)+(num2_imag * num2_imag); result_imag = (num1_imag * num2_real)-(num1_real * num2_imag)/(num2_real * num2_real)+(num2_imag * num2_imag); text_real.Text = Convert.ToString

    27、(result_real); /双精度数转化成为字符串 text_imag.Text = Convert.ToString(result_imag); return 0; private void Form1_Load(object sender, EventArgs e) /窗口载入程序,令Backspace键暂时不可用 button_backspace.Enabled = false ; private void label1_Click(object sender, EventArgs e) private void button18_Click(object sender, Event

    28、Args e) /加号键的触发事件 oper = +; num1_real = Convert.ToDouble( text_real.Text); num1_imag = Convert.ToDouble( text_imag.Text); text_real.Text = 0; text_imag.Text = 0; private void button15_Click(object sender, EventArgs e) /减号健的触发事件 oper = -; num1_real = Convert.ToDouble(text_real.Text); num1_imag = Conv

    29、ert.ToDouble(text_imag.Text); text_real.Text = 0; text_imag.Text = 0; private void button16_Click(object sender, EventArgs e) /乘号键的触发事件 oper = *; num1_real = Convert.ToDouble(text_real.Text); num1_imag = Convert.ToDouble(text_imag.Text); text_real.Text = 0; text_imag.Text = 0; private void enter_real_Click(object sender, EventArgs e) /输入实部键的触发事件 real_or_imag = true; enter_real.Enabled = false; enter_imag.Enabled = true; private void ent


    注意事项

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

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




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开