第三次上机内容
- 格式:pdf
- 大小:250.84 KB
- 文档页数:8
第3次上机实习内容(2课时)实验名称:HTML及DHTML上机实习2实验目的及要求:1、通过练习,继续熟悉HTML文档的基本结构;2、掌握表格、表单、框架结构等。
3、掌握客户端动态页面(DHTML)的DOM(文档对象模型)、CSS(层叠样式表)和SCRIPT(脚本程序语言)技术的基本概念及进行简单的DHTML页面设计。
实验内容:1、表格、表单、框架结构的使用;2、CSS的使用;3、SCRIPT技术的使用。
一、表格、表单、框架的上机练习注意:本次实验使用工具为Windows自带写字板(可以结合Dreamweaver 的设计视图和代码视图来完成)(1)制作并完成个人简介表格(2)表单制作:制作并完成情况调查表(3)完成如下示例,体会JavaScript脚本语言的使用。
设计含有左、中、右3个纵向框架的框架集页面。
①框架集页面(sample2.html)文件代码如下:<html><head><title>框架页面示例2</title></head><noframes>您的浏览器不支持框架结构,故当前网页无法显示!</noframes><frameset cols=”20%,*,30%”><frame src=”left.htm”><frame src=”middle.htm”><frame src=”right.htm”></frameset></html>②left.htm页面文件代码如下:<html><head><title>left.htm文件</title></head><body>这是左面框架文件</body></html>③right.htm页面文件代码如下:<html><head><title>right.htm文件</title></head><body>这是右面框架文件</body></html>图纵向框架结构同样将这3个文件也存放在同一个文件夹中,浏览sample2.html文件即可看到如上图的效果。
数值分析上机实践题第三次上机题目(二分法)第一组:组长:李龙宇,组员:杜彦霖,胡朋,黄湘云,雷盛华,李伟元 用二分法求方程010423=-+x x , ]2,1[∈x 的近似根,要求根精确到 510- ,并求二分次数.第二组: 组长:王宇彬,组员:马泽川,权涛涛,师楠??,路世伦,仲晓磊 用二分法求方程04442234=++--x x x x ,]0,2[-∈x 的近似根,要求根精确到 510- ,并求二分次数.第三组: 组长: 薛原 ,组员:谢胜权,杨帆,王正奇,肖特,张锡云 用二分法求方程04442234=++--x x x x ,]2,0[∈x 的近似根,要求根精确到 510- ,并求二分次数.第四组: 组长:柴春晓 ,组员: 韩静兰,李金慧,刘从,马超群,孟凯悦 用二分法求方程04442234=++--x x x x ,]2,1[∈x 的近似根,要求根精确到 510- ,并求二分次数.第五组: 组长:龙纯鹏,组员:代喜,白鑫,鲍亚强,周邦安,张佳伟 用二分法求方程02=--x x ,]1,0[∈x 的近似根,要求根精确到 510- ,并求二分次数.第六组: 组长:何关瑶 ,组员:纪伟亮,侯佳意,李济言,李振华,马文磊 用二分法求方程06cos 2=-++-x e e x x ,]2,1[∈x 的近似根,要求根精确到 510- ,并求二分次数.第七组: 组长:杨钦 ,组员: 王凌宇,吴凯杰,薛小龙,袁权炜,师俊峰 用二分法求方程0232=-+-x x e x ,]1,0[∈x 的近似根,要求根精确到 510- ,并求二分次数.第八组: 组长:汪芳 ,组员:张学利,周幸茹,李雨珏,张飞用二分法求方程05.0cos 2=++x x π,]5.1,5.0[∈x 的近似根, 要求根精确到510- ,并求二分次数.第九组: 组长:刘永鸿 ,组员:黄尚政,李超,郭新磊,何奎奎用二分法求 15 的近似根,要求根精确到 510- ,并求二分次数.第十组: 组长:杨吉望 ,组员:龙力,任金雄,王亮,王文强,谢丁波 用二分法求方程 325 的近似根,要求根精确到 510- ,并求二分次数.第十一组: 组长: 张国强,组员: 赵奇,袁硕,郭凯旋,于沛生,鲍宏雷 用二分法求方程 ,05.0c o s 2=++x x π在]2,0[内的近似根,要求根精确到 510- ,并求二分次数.第十二组: 组长:苏映雪 ,组员: 邓晓庆,钟桂平,崔楚轩,高鹏程 用二分法求方程 0797*******=-+--x x x x 的靠近x=2的近似根,要求根精确到 510- ,并求二分次数.备用题:第一组:用二分法求方程 016=--x x , ]2,1[∈x 的近似根,要求根精确到 510- ,并求二分次数.第二组:用二分法求方程 0t a n =-x x ,]5.4,4[∈x 的近似根,要求根精确到 510- ,并求二分次数.补充知识MATLAB 中自带的求根函数:1. roots :求解多项式P(x)=0的根可以用此语句, 输入多项式P(x)的系数(按降幂排列), 输出为P(x)=0的全部根;例如:要求013178)(39=+-+=x x x x P 的根,可以用以下语句:>> fa =[8,0,0,0,0,0,17,0,-3,1]>> gen= roots(fa)运行后输出全部根.2. fsolve: 求解超越方程f(x)=0的根可以用此语句(也可以解多项式方程,但计算量较大), 输入多项式P(x)的系数(按降幂排列), 输出为P(x)=0的全部根调用格式: X = fsolve(F,X0)其中输入函数F(x)的M文件名和解X的初始值X0,X0可以是矩阵或向量。
第一次上机作业(2021):要求:独立完成,上机调试通事后上交作业提交邮件主题命名:班级学号姓名(第1次作业),例如:电1301班2王鹏(第1次作业)以附件形式将每次作业的所有程序源程序紧缩打包后提交,紧缩文件命名格式同上。
程序必需采用缩进格式1.大写字母转换成小写字母从键盘输入一个大写英文字母,输出相应的小写字母。
例:输入G输出g2.求平方根输入一个实数x,计算并输出其平方根(保留1 位小数)。
例:输入17输出The square root of is3.温度转换设计一个程序将华氏温度转换成摄氏温度c = 5/9(f-32)a)输入华氏温度(实型)b)输出的摄氏温度结果保留两位小数例:Please input Fahrenheit temperature:The corresponding Celsius temperature is4. 计算旅途时刻输入二个整数time1 和time2,表示火车的起身时刻和抵达时刻,计算并输出旅途时刻。
(输入的有效的时刻范围是0000 到2359,不需要考虑起身时刻晚于抵达时刻的情形。
)例:输入712 1411 (起身时刻是7:12,抵达时刻是14:11)输出The train journey time is 6 hours 59 minutes.5. 数字加密输入一个四位数,将其加密后输出。
方式是将该数每一名上的数字加9,然后除以10 取余,做为该位上的新数字,最后将第1 位和第3 位上的数字互换,第2 位和第4 位上的数字互换,组成加密后的新数。
例:输入1257输出The encrypted number is 4601试探题:你可否编程找出谁做的好事?有四位同窗中的一名做了好事,不留名,夸奖信来了以后,校长问这四位是谁做的好事。
⏹A说:不是我。
⏹B说:是C。
⏹C说:是D。
⏹D说:他乱说。
已知三个人说的是实话,一个人说的是谎话。
此刻要依照这些信息,找出做了好事的人。
文献检索课第四次上机题目试卷5学号:专业:班级:一、单项选择题1.以下运算符,哪一个属于逻辑或运算符()A andB notC ()D or2. 用谷歌手气不错翻译:It is an ill bird that fouls its own nest.结果是()A家丑不可外扬B 这是一个病态的鸟,弄脏自己的窝C这是一个有病的鸟D它是犯规把自己的巢病鸟3. 用百度的手写功能输入“込”,得知该字的发音是()A yūB yúC yǔD yù4.在爱课程网的资源共享模板中,以“信息检索”为关键词,进行搜索,可以得到()项检索结果A 4B 3C 1D 25. 教育部在国务院部委中排第()位A 1B 2C 3D 46. 新华网有()个地方频道A 30B 32C 34D 367. 上海图书馆电子报纸导读(.cn/index.htm)中馆藏旧报纸目录中,儿童画报创刊于哪一年( )A 1942B 1947C 1936D 19568. 教育部网址()A .cn/B .cn/C .cn/D9. 2012年德州市国民经济和社会发展统计公报中,德州全市实现地区生产总值()亿元A 2230.56B 2100.45C 2579.46D 3100.2410. 中国知网的默认阅读器是()A CAJViewerB 福昕阅读器C WordD PDF阅读器二、填空题1. 中国研究生招生信息网创办于___年2. 通过“新华网—时政—高层”菜单下查询:现任最高人民法院院长是__3. 中华人民共和国国家统计局成立于年4. 中华人民共和国教育法》第二十一条:国家实行学业制度5. 北京师范大学教授于丹,在爱课程网的视频公开课中所讲课程的名称是三、判断题1. 人民网网站设有相关报系的检索()2. 国研网搜索平台提供了全部、教育版、综合版、党政版、企业版、金融版和世经版等的分类检索栏目()3. 2008年1月,著名国学大师季羡林获印度公民荣誉奖()4. 我校现任校长是李保海()5. 国家精品课程资源网中开设课程的教育层次:博硕士教育、本科教育和高职高专教育()四、检索题1.国家精品课程网站检索:检索资源中心下面本科教育阶段文学-新闻传播学类的视频资料一共有几条2.检索“上海图书馆电子报纸导读”——免费报纸网站链接:《人民日报海外版》往期回顾中2014-4-16日共有几个版面,分别是什么3.新华网检索:在新华报刊中,找到《参考消息》共有几个信息板块,分别是什么?4.新华网检索:在资料库中检索中国机构——中央军委的七大军区司令和政委信息。
考生守则(技术上机考试)一、考生报名时应认真阅读《诚信考试承诺书》的内容,并确认同意。
二、考生必须自觉服从监考员、系统管理员、候考(滞留)室管理员等考试工作人员的管理,不得以任何理由妨碍监考员、系统管理员等考试工作人员履行职责。
不得扰乱考场及其他考试工作地点的秩序。
三、考试时间以北京时间为准,考生必须凭准考证在规定的截止时间之前进入候考室等候,否则视为当次(每半年一次)考试缺考。
四、考生进入考场后,应对号入座,并将准考证放在电脑桌左下角。
五、考生除携带毛巾(擦汗用须拧干)、无商标纸的饮料外(除特殊规定的除外),其他任何物品不准带入候考室、滞留室和考场。
严禁携带具有发送或者接收信息功能的设备、电子存储记忆录放设备、移动存贮设备(如优盘、PDA)以及涂改液、修正带等物品进入候考室,滞留室和考场。
候考室、滞留室和考场内不得自行传递物品。
六、监考员宣布机考操作正式开始后,考生应立即进行系统登录,因考生原因超过5分钟未登录,以考生弃考(0分)论处。
七、考生登录时,应及时校对考生基本信息,如不符,立即举手,与监考员取得联系。
八、考试过程中,如出现死机或系统问题,应及时举手与监考员取得联系;考生不得旁窥、交谈,不得拔动电源插座、禁止故意损坏考场设施设备,禁止考生将无关文件拷入考生文件夹、禁止抄录(复制)有关试题信息,否则视为违规。
九、上机考试时间由系统自动控制,考试期间考生必须及时进行存盘,在系统计时结束前提交考试结果;系统计时结束,应立即停止任何操作。
十、开考20分钟后,允许考生离场,考生离场后,不得以任何理由返回考场。
提前交卷考生,须经监考员、考场系统管理员确认考试包回收、检查无误后,方可离开考场,到滞留室等候进一步通知。
十一、整场考试结束时,考生在原位等候,待考场系统管理员将考生数据包回收、检查无误后,按监考员指令动作,不准在考场逗留。
十二、机考试题在考试结束前属国家机密级材料,考生不得以任何方式向外界透露。
非参数检验上机操作内容第一部分:单样本非参数检验●卡方检验1.某地一周内各日患忧郁症的人数分布如表所示,请检验一周内各日人们忧郁数是否满足1:1:2:2:1:1:1。
2.某集团公司打算进行一项改革,但此项改革涉及到各分公司的利益。
今采用抽样方法分别从下设的四个分公司中共抽取420名职工了解对此项改革的看法。
如果四个分公司对改革的看法一致,则决定实施这项改革。
调查结果如下表所示:3.为了解非计算机专业对计算机课程教学的意见,在金融系和统计系本科生中进行了一次抽样调查,得到了390名学生的调查数据。
试据此推断两系本科生对计算机课程教学的意见是否一致。
数据文件为“关于计算机课程满足程度的调查.sav”.4.数据文件“数据集4 dischargedata.sav”记录了医院每天的病人流量。
医院管理者需要了解是否一周中每天的病人流量是相同的。
●二项分布检验1.某地某一时期内出生35名婴儿,其中女性19名(定Sex=0),男性16名(定Sex=1)。
问这个地方出生婴儿的性别比例与通常的男女性比例(总体概率约为0.5)是否不同?数据如表所示。
2.一家电信公司每个月大约有27%的用户会离开,为减少客户流失,公司经理想了解不同的客户群流失比例是否有差异。
数据文件为:telco.sav********************************************************************* ********************************************************************* ********************************************************************* 此分割线上方内容为非参数检验第一次上机内容。
下方为第二次上机内容。
3. 如果想知道收入的高低与流失是否有关系。
以收入的中位数$47,000作为分割点,检验在流失和没有流失的客户中,收入在$47,000以上的家庭和$47,000以下的家庭所占的比例是否有显著差异。
河工大文献检索第三次作业+答案+指导-标准化文件发布号:(9456-EUATWK-MWUB-WUNN-INNUL-DDQTY-KII第三次上机检索实习指导书外文数据库(二)一、使用美国ASP+BSP数据库检索:中美双方关于中国参加世贸组织的谈判成功以后,美国企业对中国市场越发关注。
在著名期刊《哈佛商业评论》2000年的某一期中,有一篇文章重点介绍了美国柯达公司是如何在中国建立西方模式的股份公司的。
请你在Business Source Premier数据库中找到这篇文献,并回答:①这篇文章的题目、作者、发表的卷期号、页数是什么?答:题目:A Better Way to Crack China.作者:Vanhonacker, Wilfried R.发表的卷期号:Jul/Aug2000, Vol. 78 Issue 4页数:p20-22②柯达公司目前有几家中国公司,分布在什么地方?答:两家。
1:柯达(中国):厦门汕头 2:柯达(无锡):无锡③柯达公司在这些公司中所占股份是多少?答:柯达(中国)占有80%;柯达(无锡)占有70%登陆图书馆主页:,在“电子资源栏”中选择“西文数据库”:图1在西文数据库列表中找到“美国ASP+BSP数据库”,点击地址链接进入主页:默认进入Academic Search Premier(ASP)数据库,如图所示,点击“选择数据库”链接:只勾选Business Source Premier(BSP),点击确定进入BSP数据库:根据题目要求,在BSP的检索界面中按下图所示输入,检索限定也如图,出版日期限定为2000年,单击搜索。
根据题意,在检索结果列表中找到第一条结果符合,单击其篇名。
文章题目:A Better Way to Crack China.作者:Vanhonacker, Wilfried R.;卷期号:Jul/Aug2000, Vol. 78 Issue 4 ;页数:p20-22。
第三次上机
验证试验(必作题):
题目:二叉树相关算法的实验验证
[实验目的]
验证二叉树的链接存储结构及其上的基本操作。
[实验内容及要求]
1、定义链接存储的二叉树类。
2、实验验证如下算法的正确性、各种功能及指标:
1)创建一棵二叉树,并对其初始化;
2)先根、中根、后根遍历二叉树;
3)在二叉树中搜索给定结点的父结点;
4)搜索二叉树中符合数据域条件的结点;
3、由教师随机指定树结构,测试上述功能;
设计实验(选作题):
题目:判别给定二叉树是否为完全二叉树。
[实验目的]
在掌握二叉树的链接存储及基本操作的基础上,设计解决问题的算法。
[实验内容及要求]
设计算法判别给定二叉树t是否为完全二叉树;实现链接存储的二叉树类。
通过CNKI完成以下练习
1、查找由中国社会科学院主办的社科双高期刊,并写出刊名和种类。
2、查找从2008年---2009年第一作者为周来达所写的文章,写明题名及文献来源和来源库。
3、按照中图分类法查找分类号为G251或含“图书馆”的论文,并写明查找到的文献总量
数目。
4、查找作者单位是“北华航天工业学院”的文章,并写明所查找到的文献总量。
5、利用高级检索功能查找2004年1月至2009年1月,在文章关键词中含有计算机或含程
序设计,作者单位是清华大学的文献,并写明题名、文献来源、发表时间。
6、利用专业检索功能检索题名中含有机械,关键词含有机械加工并且作者为张姓的文献,
写明检索表达式,并记录检索结果。
浏览查看图书馆的各种数据库,如库客(KUKE)数字音乐图书馆等。
4.求f(x)=sin x 在[0,π/2]上的最佳一次逼近多项式。
解:设P 1(x)=a 0+a 1x 是f(x) 的最佳一次逼近多项式,则P 1(x)在[0,π/2]上有三个交错点, 满足0<=x 1<x 2<x 3<=π/2。
由于 [f(x)- P 1(x)]’’=(cos x-a 1)’= -sin x 在[0,π/2]上小于0,定号, 故(cos x-a 1)’在[0,π/2]上单调递减,且仅有一个驻点。
故f(x)- P 1(x)在[0,π/2]上只有一个偏差点x 2,满足[f(x)- P 1(x)]’|x=x2 =cos x 2-a 1=0 (1)。
另外两个偏差点x 1=0 ,x 3=π/2 .于是sin 0-a 0 =sin π/2-a 0-π/2a 1 (2), sin x 2 –a 0-a 1x 2= -( sin 0-a 0) (3) 由(1)(2)(3)式得:a 1=2/π x 2=arccos 2/π=0.88 a 0=-1.18 所以P 1= -1.18+2/π x 。
6.求f(x)=2x 4+3x 3-x 2+1在[-1,1]上的三次最佳一致逼近多项式。
解:设f(x)的三次最佳一致逼近多项式为P 3(x),由切比雪夫多项式的极性可得 1/2[f(x)- P 3(x)]=1/8T 4(x)=1/8(8x 4-8x 2+1)所以P 3(x)=f(x)-1/4(8x 4-8x 2+1)= 2x 4+3x 3-x 2+1-2x 4+2x 2-1/4 =3x 3+x 2+3/49.求函数f(x)在指定区间上关于Φ(x)=span{1,x}的最佳平方逼近多项式。
(3)f(x)=cosπx, x ∈[0,1];(4)f(x)=ln x, x ∈[1,2].解:(3)在[0,1]上,经计算得 d 0= ⎰1)(f dx x =0 ,d 1=⎰1)(x dx x f = -2/π2得到法方程组为a 0+1/2a 1=0 ,1/2a 0+1/3a 1= -2/π2 由上面两式解得 a 0=12/π2 ,a 1= -24/π2所以f(x)=cosπx 在[0,1]上的最佳平方逼近多项式为 S 1*=12/π2 -24/π2 x 。
上机报告内容和要求1、上机报告1内容及要求:根据所提供的上机内容和要求完成下列内容;(1)、在熟悉和学习ANSYS相关操作和命令过程中遇到的问题和解决方法,根据自己的实际情况,选择4~6个问题详细展开阐述;(2)、完成所给出的三个例子的模型的建立,要求写出稍微详细的建模过程和分析过程,适当抓取一些图片附在报告中,抓模型图时要求将图形界面上的相关信息(如系统时间等)都要体现出来,所建立的三个模型要求提交,分别取名为:姓名全拼_1.db; 姓名全拼_2.db; 姓名全拼_3.db,并同时提交对应的日志文件(*.log文件),发邮件到caereport@;另外,报告中的每幅图都要求有图号和图名。
附:建模1建模2:带三个圆孔的钢板模型:板厚20mm,板的材料参数为:E=200GPa,泊松比为0.25;大圆孔半径为30mm,倒圆角半径为50mm;两个小圆孔半径为10mm,倒圆角半径为20mm;大圆与小圆之间的距离为80mm,两个小圆孔间的距离为60mm。
建模3:轴承支座1、上机报告2内容及要求:根据所提供的上机内容和要求完成下列内容;(1)、在进一步熟悉和学习ANSYS相关操作和命令以及完成第一次上机报告过程中遇到的问题和解决方法,根据自己的实际情况,选择4~6个问题详细展开阐述;(2)、完成所给出的两个例子的模型的建立的有限元分析求解,要求写出稍微详细的分析过程,适当抓取一些图片附在报告中,抓模型图时要求将图形界面上的相关信息(如系统时间等)都要体现出来,所建立的两个模型要求提交,分别取名为:姓名全拼_1.db; 姓名全拼_2.db并同时提交对应的日志文件(*.log文件),发邮件到caereport@;另外,报告中的每幅图都要求有图号和图名。
例子1:在两个相距a=10m的刚性面之间,有两根等截面杆铰接在2号点,杆件与水平面的夹角θ=30︒,在铰链处有一向下的集中力F=1000N,杆件材料的弹性模量E=2.1×1011Pa,泊松比μ=0.3,A=10cm2,试利用二维杆单元LINK1确定两根杆件内力和集中力位置处的位移。
上机练习内容一、安装及导入1.安装前对试室环境的要求2.安装服务器前的注意事项3.安装服务器,获取服务器IP地址4.安装及配置监考机、考试机、备用考试机5.检查试室内的机器安装情况,修改配置考试机6.简述Alt+F7与Alt+F8的区别7.关闭所有考试机、重新启动所有考试机8.考生信息数据及试卷数据信息的导入顺序及导入后的检测9.导入数据后,更换试室信息二、第一场考试1.简述监考人员与系统管理员职责区别2.监考机“考生入场”-“开考”-“收卷”-“考试结束”操作(1)考生入场操作前“分配座位号”操作(2)个别考试机未收到入场指令,重试“考生入场”操作(3)开考后“重启考试机”操作(4)开考后考试机答题界面描述(5)查看考生当前状态、网络状态、答题进度及考生信息(6)监考机端对某考试机“强制收卷”及“撤销交卷”操作(7)监考机端对某考试机“时间调整”操作以及限制要求(8)考试过程中“启用备用考试机”操作(9)考试过程中对某考生执行“违纪处理”操作(10)监考机“收卷”操作以及注意事项3.查询当前场次缺考、违纪、增减时间、重新开考人员4.单场考试结束后,服务器数据“备份”操作以及注意事项三、第二场考试1.监考机“考生入场”-“开考”-“收卷”-“考试结束”操作(1)考生入场操作前出现个别考试机断网情况且无备用机,单机开考(2)考生入场操作后出现个别考试机断网情况且无备用机,单机开考(3)考试过程中,断网考试机单机“增减时间”操作(4)考试机“导出答题信息”操作(5)简述监考机两种导入方式的区别(6)监考机“导入答题信息”操作(7)监考机“收卷”操作时导入操作2.单场考试结束后,服务器数据“备份”操作四、每两场考试结束或全部考试结束1.合并数据的意义,具体操作及注意事项2.数据上传方式3.简述每两场考试结束和全部考试结束的合并的区别4.若在合并数据后,发现“缺少试卷”数非0,应如何解决5.远程删除操作及注意事项。
单元测试阶段Mock Object的用法使用的开发工具:Eclipse、JUnit、eclemma和EasyMock实际系统可能会有复杂的体系结构,例如某些类会使用底层基础类提供的功能或服务,这些被使用的类称为合作者。
当对这种复杂类进行单元测试时,实例化这些合作者通常不合理,例如:合作者类还未实现,无法提供相关功能。
但目前又需要进行单元测试,一种解决方案是采用模仿对象(Mock Object)技术。
例如实现了Purchase类,该类需要调用DBAccess类的getPriceFromDB()方法。
目前需要对Purchase类进行测试,但DBAccess类可能还尚未实现,可以采用Mock Object技术(即MockDBAccess类)。
如图1所示实例,假设要测试Purchase类,但Purchase类调用的DBAccess类并未实现,可以派生出一个MockDBAccess类。
图1:类图相关类的代码如下:Purchase类:public class Purchase {public double getTotalPrice(DBAccess dbAccess){return dbAccess.getPriceFromDB();}}DBAccess类:public class DBAccess {public double getPriceFromDB(){//假设还未实现完整double price = 180.0;return price;}}实际的测试代码:PurchaseWithRealDBAccessTest类import static org.junit.Assert.*;import org.junit.Test;public class PurchaseWithRealDBAccessTest {@Testpublic void test() {Purchase purchase = new Purchase();DBAccess dbAccess = new DBAccess();assertEquals(180.0, purchase.getTotalPrice(dbAccess),00001);}}采用Mock Object方法MockDBAccess类:public class MockDBAccess extends DBAccess {public double getPriceFromDB(){double price = 180.0;return price;}}修改相应的测试代码:PurchaseWithMockDBAccess类import static org.junit.Assert.*;import org.junit.Test;public class PurchaseWithMockDBAccess {@Testpublic void test() {Purchase purchase = new Purchase();MockDBAccess mockDBAccess = new MockDBAccess();assertEquals(180.0, purchase.getTotalPrice(mockDBAccess),0.00001);}}实验内容:设计一个ATM系统:代码目录如下所示其中:类ATMService(提供了取款、存款、转账和查询功能):public class ATMService {private IDataConnection dconn;public ATMService(IDataConnection dc){dconn = dc;}/**** 取款操作* @param cardNo* @param amount*/public void withdraw(String cardNo, int amount){//to be added}/**** 存款操作* @param cardNo* @param amount*/public void deposit(String cardNo, int amount){// to be added}/***** 转账操作* @param fromCardNo* @param toCardNo* @param amount*/public void transfer(String fromCardNo, String toCardNo, int amount){ // to be added}/***** 查询操作*/public int inquiry(String cardNo){// to be added}}账户信息类AccountInfopublic class AccountInfo {private String cardNo;private String password;private int balance;public AccountInfo(String c, String p, int b){cardNo=c;password = p;balance = b;}public String getCardNo() {return cardNo;}public void setCardNo(String cardNo) {this.cardNo = cardNo;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}public int getBalance() {return balance;}public void setBalance(int balance) {this.balance = balance;}}接口:IDataConnectionpublic interface IDataConnection {public AccountInfo getAccount(String id);public void updateAccount(AccountInfo account);public void addAccount(AccountInfo account);}采用Mock Object实现MockDataConnectionimport java.util.HashMap;public class MockDataConnection implements IDataConnection { private HashMap<String,AccountInfo> mdb;public MockDataConnection(){mdb = new HashMap<String,AccountInfo>();AccountInfo a = new AccountInfo("1","111111",300);AccountInfo b = new AccountInfo("2","222222",1000);mdb.put(a.getCardNo(), a);mdb.put(b.getCardNo(), b);}@Overridepublic AccountInfo getAccount(String id) {// TODO Auto-generated method stubreturn mdb.get(id);}@Overridepublic void updateAccount(AccountInfo account) {// TODO Auto-generated method stubaddAccount(account);}@Overridepublic void addAccount(AccountInfo account) {// TODO Auto-generated method stubmdb.put(account.getCardNo(), account);}}设计测试用例对A TM类中的所有方法进行系统测试。
测试类是TestA TMServiceimport static org.junit.Assert.*;import org.junit.Test;public class TestATMService {private IDataConnection mdc = new MockDataConnection();private ATMService atm = new ATMService(mdc);@Testpublic void testWithdraw() {atm.withdraw("1", 20);AccountInfo a = mdc.getAccount("1");assertEquals(280,a.getBalance());}@Testpublic void testDeposit(){atm.deposit("1",20);AccountInfo a = mdc.getAccount("1");assertEquals(320,a.getBalance());}@Testpublic void testTransfer(){atm.transfer("2", "1", 200);AccountInfo a = mdc.getAccount("1");AccountInfo b = mdc.getAccount("2");assertEquals(500,a.getBalance());assertEquals(300,b.getBalance());}@Testpublic void testInquiry(){assertEquals(500,atm.inquiry("2"));}}作业要求:1、将ATMService类中一些方法实现完成2、利用TestATMService单元测试用例来测试实现的方法,同时利用代码覆盖工具EclEmma对代码覆盖率进行分析。
3、学习easymock的用法下载网址:/(将easymock-3.1.jar包含到项目内)一个参考学习资料:/blog/829340在另外写一个测试类TestA TMServiceWithEMock:并仿照transfer功能的写法,将其他功能补充完整:testWithdraw、testDeposit、testInquiry。