数据结构实验1

上传人:mg****85 文档编号:34047447 上传时间:2018-02-20 格式:DOC 页数:15 大小:568KB
返回 下载 相关 举报
数据结构实验1_第1页
第1页 / 共15页
数据结构实验1_第2页
第2页 / 共15页
数据结构实验1_第3页
第3页 / 共15页
数据结构实验1_第4页
第4页 / 共15页
数据结构实验1_第5页
第5页 / 共15页
点击查看更多>>
资源描述

《数据结构实验1》由会员分享,可在线阅读,更多相关《数据结构实验1(15页珍藏版)》请在金锄头文库上搜索。

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

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

3、(10% ) 2. 应用前景分析 5综合得分: (满分 100 分)指导教师: 年 月 日(注:此表在难度为 C 时使用,每个成员一份。 )(下面的内容由学生填写,格式统一为,字体: 楷体, 行距: 固定行距 18,字号: 小四,个人报告按下面每一项的百分比打分。难度 A 满分 70 分,难度 B 满分 90 分)一、 【实验构思(Conceive ) 】(10%)(本部分应包括:描述实验实现的基本思路,包括所用到的离散数学、工程数学、程序设计、算法等相关知识)我们小组运用到了以下的知识:基本思路:先写控制台程序,保证算法的正确性后,再将程序封装成界面程序;程序设计:用结构体定义复数的数据结构

4、。数学知识:清空 textbox 的 text 的操作通过 pressdown 事件和数据键值来控制输入的数据类型警告报错是通过点击事件中进行判定,如果用户输入被除数为 0,则发出警告。二、 【实验设计(Design)】(20%)(本部分应包括:抽象数据类型的功能规格说明、主程序模块、各子程序模块的伪码说明,主程序模块与各子程序模块间的调用关系)CpxNum其中定义复数的结构体,数据部分包括实部和虚部;而操作包括CPlus(加法)、CMinus(减法)、cmultiply(乘法)、cdivide(除法)等运算。1处理 0-9 数字由用户自行输入2.+-*/的功能实现通过判断 radiobutt

5、on 的 checked 值 1 或 0,在点击“计算”时采取不同的计算方式如果没有选择运算符号则不进行任何操作。显示结果3.清零的实现定义“清零”按钮事件,点击事件为清空所有 textbox 来实现。5.防止文本框输入字符的实现通过修改 textbox 的 keydown 和 keypress 两个属性来实现。实现代码为:private:bool nonNumberEntered;/ Handle the KeyDown event to determine the type of character entered into the control.void textBox1_KeyDow

6、n( Object /*sender*/, System:Windows:Forms:KeyEventArgs e )/ Initialize the flag to false.nonNumberEntered = false;/ Determine whether the keystroke is a number from the top of the keyboard.if ( e-KeyCode KeyCode Keys:Decimal )/ Determine whether the keystroke is a number from the keypad. if ( e-Key

7、Code KeyCode Keys:NumPad9 )/ Determine whether the keystroke is a backspace.if ( e-KeyCode != Keys:Back )/ A non-numerical keystroke was pressed./ Set the flag to true and evaluate in KeyPress event.nonNumberEntered = true;/If shift key was pressed, its not a number.if (Control:ModifierKeys = Keys:S

8、hift) nonNumberEntered = true;/ This event occurs after the KeyDown event and can be used to prevent/ characters from entering the control.void textBox1_KeyPress( Object /*sender*/, System:Windows:Forms:KeyPressEventArgs e )/ Check for the flag being set in the KeyDown event.if ( nonNumberEntered =

9、true ) / Stop the character from being entered into the control since it is non-numerical.e-Handled = true; 在头文件中定义复数以及复数的四则运算,写出其基本代码,并进行声明,在源文件中对应地写出相应的运算代码,最后是单击运算符实现单击事件代码。在窗体中设计必须的对应的窗口,并且在事件代码中把窗口数据转化,运用源文件代码编辑计算。三、 【实现描述(Implement ) 】(30%)(本部分应包括:抽象数据类型具体实现的函数原型说明、 关键操作实现的伪码算法、函数设计、函数间的调用关系,关

10、键的程序流程图等,给出关键算法的时间复杂度分析。 )3.各子程序模块:清除按钮:用于重置除存储区外其他所有参数。运算符号按钮:用于更改操作符暂存器的值,以便后面的程序正常执行。“计算”按钮:根据已经输入的数值和运算符来判断输入是否合法,如合法就通过调用对应的子程序来给出正确结果,不正确就给出友好错误提示。输入实部输入虚部按钮:用于输入程序的各种等待运算的数据。4.时间复杂度分析:各个子程序的时间复杂度均为 O(1).四、 【测试结果(Testing) 】(10%)(本部分应包括:对实验的测试结果,应具体列出每次测试所输入的数据以及输出的数据,并对测试结果进行分析总结)首先对输入字母进行验证,结

11、果失败对加,减,乘,除进行先检验,结果均正常,加法操作如下在加法原有计算结果的基础上使用继续键,然后再次进行一次额外的减(1+1i)计算,结果正常在此基础上使用归零键,结果正常,全部 textbox 的 text 清除令除数为 0,进行运算,信息后的 textbox 输出 You input a erro(截图失败,原因不明)四、 【实验总结】(10%)(本部分应包括:自己在实验中完成的任务,注意组内的任意一位同学都必须独立完成至少一项接口的实现;对所完成实验的经验总结、心得)彭程:完成任务:(1)完成本实验程序大体初步代码,并协助李泰然同学加强本程序的健壮性和稳固性。(2)实现“继续”按钮的

12、合理人性化化功能。实验总结:(1)初步了解了 Windows 窗体程序的设计和应用,对头文件作用,以及源文件中代码应用有了明确的认识,并且大体了解了窗体程序的结构,以及运行方式。(2)学习了窗体程序中控件的使用,以及对事件的概念。(3)学会了 VS2010 C+集成开发环境中控件的属性应用。实验心得:实验并不困难,初步确立程序方向很容易,困难的是对该程序的健壮性,稳固性的维护。同时明白,无论怎样的问题,只要提出,终究会有相对合理的解决方法。五、 【项目运作描述(Operate) 】(10%)(本部分应包括:项目的成本效益分析,应用效果等的分析。 )项目运作正常,用户界面人性化,尽可能地防止用户

13、输入不合理参数,可以正确执行,并算出输入参数后的正确结果。同时,视觉感官并不突兀,拥有比较不错的体验效果。复数的四则运算都能运行,效果良好,计算器设计一般。六、 【代码】(10%)(本部分应包括:完整的代码及充分的注释。 注意纸质的实验报告无需包括此部分。格式统一为,字体: Georgia , 行距: 固定行距 12,字号: 小五)例如:#include stdafx.h#include cpxNum.hint _tmain(int argc, _TCHAR* argv)cpxNum c1, c2;double real, imag;cout real imag;assign(c1, real

14、, imag);cout real imag;assign(c2, real, imag);cout textBox1-Text=)|(this-textBox2-Text=)|(this-textBox3-Text=)|(this-textBox4-Text=) return; /判断输入用textbox是否为空,如果为空,不进行任何操作if(this-radioButton1-Checked=0)&(this-radioButton2-Checked=0)&(this-radioButton3-Checked=0)&(this-radioButton4-Checked=0)return;/

15、判断决定算法的四个radiobutton是否为空(即检测是否选择算法)double real1=System:Convert:ToDouble(this-textBox1-Text);double imag1=System:Convert:ToDouble(this-textBox2-Text);double real2=System:Convert:ToDouble(this-textBox3-Text);double imag2=System:Convert:ToDouble(this-textBox4-Text);/以上四行均为将textbox中字符型参数转化为double型参数。assign(c1,real1,imag1);assign(c2,real2,imag2);/构成两个复数的结构体,分实部和虚部。if( this-radioButton1-Checked=1)result=cplus(c1,c2);this-butt

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号