




免费预览已结束,剩余20页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
一、设计任务与要求1.1 设计任务与要求(1)课程设计任务: 根据所选题目算术运算程序设计完成课程设计的分析、设计和编码,写出课程设计报告。(2)课程要求:该程序用图形界面实现十道100以内加减法数学题,能根据题目计算出答案,与输入答案对比,判断做题是否正确,最后计算分数。设计上交内容:设计报告一份(按格式书写);源程序文件。(3)要求掌握:A.掌握Java的语言规范,面向对象的核心概念和特性;B.掌握Java的编程技术,包括异常处理,图形界面设计,多线程,网络通信程序等;C.掌握Java应用软件的开发环境和开发过程;D.掌握面向对象的思想和程序设计方法。1.2 选题目的与意义(1)目的:通过设计本课程的算术运算程序设计达到复习、巩固Java语言的基础知识,进一步加深对Java语言的理解和掌握。根据课堂讲授内容,消化课堂所讲解的内容;通过调试典型例题或习题积累设计Java程序的经验;通过完成课程设计,逐渐培养学生的编程能力、用计算机解决实际问题的能力。(2)意义: 在本次设计的过程遇到了各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,通过这次课程设计,把以前所学过的知识重新温故,巩固了所学的知识。A.有利于基础知识的理解;B.有利于逻辑思维的锻炼;C.有利于与其他学科的整合;D.有利于治学态度的培养。二、需求分析2.1 用户需求分析2.1.1程序设计目标算术的学习为以后的数学学习奠定了坚实的基础,为了提高学生的算术水平,使学生的算术能力得到提高,需要设计一个算术运算程序。要该求程序能够加强学生的100以内加减法的数学算数能力,达到平时自我练习的目的。学生能够自主检测自己的算术水平,使自己的能力得到提高。程序要求操作简单方便,运行起来快捷。2.1.2程序功能要求程序用字符界面实现十道100以内加减法数学题,具体要求如下:(1)运算符必须是100以内的正整数,运算是加减法。(2)题目个数十道。(3)能根据学生输入的答案判断解答是否正确,正确则提示正确并记录正确个数,错误则提示错误,不做记录,但在错误时我们可以重新多次输入答案,如果实在算不出来可以选择放弃,进行下一题的测试,直到测试完十道题为止。(4)最后计算分数。(5)要有测试使用说明。2.1.3程序操作要求界面应该友好,简洁并给出操作提示。所以此程序应该简单易操作,程序执行的过程又可描述为:首先是登陆界面,通过选择可以进行不同的操作,然后依据操作结果给出提示语句。2.2 开发环境分析2.2.1程序设计分析运用类的知识设计这一个运算类,该类应该包含:选择题目数量,随机出题,判断正误,统计题目正误的数量,给出相应的提示等内容。在此之上,由于软件面对的是小学生,界面应该简单。所以此程序应该简单易操作。 界面部分,首先是登陆界面,通过选择可以进行不同的操作,然后依据操作结果给出提示语句。登陆界面应该设置有提示语句,然后是操作界面,因为用户是小学生在操作过程中为了不让孩子丧失兴趣,所以操作界面应该鲜艳,友好。这就表示颜色不能太单调。后台部分,核心就是产生随机算术式。用一个字符串数组存放加和减的操作符,产生一个大等于于0小于2的随机数,即为0或1,通过此随机数对应操作符数组中的字符,决定产生的算术式为加法或者减法,后产生两个100以内的随机数,然后通过以上判断求出结果,保存在私有变量中,同时对应的产生一个通过连接完成的字符串,作为界面题目输出的内容,以上便完成了随机算术式的生成。2.2.2程序运行环境分析(1)在装载程序时,正常就运行,异常就停止;JAVA编程系统出现错误,将会产生不可预见的问题,热启,整个终端程序就会再次启动;程序出现错误,重新装载。若依然有错,按照提示逐渐装载。本软件的组成程序为JAVA程序设计语言,组够均较简单,直观意义上的较独立。因此,给予电子化的所构成的硬件的简单的可维护性的特点,决定该软件的简单可维护性可转移的环境时奔腾133,16兆内存以上;可用向上兼容的高版本的JAVA兼容编程系统。(2)硬件环境:奔腾133、硬盘空间128MB、内存16兆以上的PC机满足输入端条件、交互工具为鼠标、显示器VGA以上显示器。(3)软件环境:Windows/XP操作系统,开发工具:MyEclipse (8.0 GA)(4)开发工具简介:MyEclipse是一个十分优秀的用于开发Java, J2EE的Eclipse插件集合,MyEclipse的功能非常强大,支持也十分广泛,尤其是对各种开元产品的支持十分不错。MyEclipse目前支持Java Servlet,AJAX, JSP, JSF, Struts,Spring, Hibernate,EJB3,JDBC数据库链接工具等多项功能。可以说MyEclipse几乎囊括了目前所有主流开元产品的专属eclipse开发工具。作为一款商业eclipse插件来说,一直是笔者十分喜欢的Java开发工具之一,但随着MyEclipse的体积越来越大,插件支持越来越丰富,MyEclipse也变得越来越臃肿,貌似有种WSAD的感觉了,当然MyEclipse仍然是比WSAD要轻便的多。MyEclipse (8.0 GA)包含了如下的更新:1. MyEclipse 8.0 GA增强了Java事件探查器支持探查Eclipse插件支持探查精简接口支持独立启动探查器 2. MyEclipse 8.0 GA新增了对Struts 2的支持MyEclipse 8.0 GA可以在任何类型的项目中新增对Struts2的支持MyEclipse 8.0 GA新增了对Struts2代码的自动完成提示信息 3. MyEclipse 8.0 GA增强了加载模块的自定义功能MyEclipse 8.0 GA可以自定义插件加载MyEclipse 8.0 GA可以管理MyEclipse模块 4. MyEclipse 8.0 GA增强了对WTP项目的支持MyEclipse 8.0 GA增强了对报表的支持,升级了BIRT2.5,并且新增了格式化信息。三、系统设计3.1 系统总体设计菜单选择界面开始测试测试说明输入答案提示正误下一题退出测试开始后台运算部分计算题目个数判断答案正误计算测试得分图3.1 系统总体设计图程序总体设计分为两个方面一方面是开始菜单选择界面,另一方面是后台运算部分。菜单选择界面分为开始测试和测试说明,选择开始测试之后即跳到测试阶段,通过输入的题目答案给出正误的提示。进入下一道或者是重新计算,还可以直接退出测试。后台运算部分分为计算题目个个数,判断答案正误和计算最后测试分数。3.2 功能模块设计本程序功能模块设计分为两部分,分别微微界面部分和后台运行部分。各个部分有分别的分模块。详细见表3.1功能模块设计表。表3.1 功能模块设计表功能模块分模块模块功能算术运算程序用户操作界面开始测试显示算是题目显示题目序号输入答案提示答案正误下一题退出测试退出测试回到开始选择菜单后台运算部分计算个数规定题目个数判断正误判断答案正误计算得分给出最后测试得分3.3 类的设计表3.2 类设计表类名YunSuanQi运算器类属性xTMBT显示题目标题xTM显示题目xAnswer显示答案标题xTH题号xZQS正确数aTJ提交答案aStart开始测试aEnd停止测试aExit退出测试xsAnswer显示输入答案框m随机数nlx计数参数answer输入的答案trueAnswer正确答案char fl运算符数组方法yunSuanQi()构造函数,该函数是窗体的初始化,包括添加窗体包括添加窗体、设置控件位置等,还包括对一些参数的初始化creatQuestion()新建题目函数,目的是创建一道新的算术题test()检测函数,该函数目的是在每次新建题目前检测是否已经做够十道题showMe()窗体显示函数,该函数是对主窗体的基本初始化,包括设置窗体打开的位置,设置窗体大小,设置窗体可见和设置窗体关闭方式actionPerformed(ActionEvent e)事件处理,该函数目的是处理所有按钮单击事件,通过对按钮的监听,分辨哪个按钮被单击,然后运行对应按钮事件的代码。还包括对异常的处理main(String args)主函数,对方法和类的调用四、程序实现4.1 程序流程图 开始点击开始游戏进入测试输入答案点击提交答案判断答案是否正确提示错误,点击确定,可继续输输入答案提示正确,点击确定自动进入下一题如果不会点击下一题可直接进入下一题提示正确,点击确定自动进入下一题显示所做的题目数和测试得分,点击确定结束测试结束判断题目个数是否到10个显示题目否是是否图4.1 程序流程图4.2 关键算法与技术实现4.2.1构造函数算法 public YunSuanQi()/构造函数 getContentPane().setBackground(Color.cyan); this.x=0;/参数初始化 this.trueAnswer=0; this.setTitle(算数测试);/控件初始化 this.setLayout(new GridLayout(10,2);/6行2列布局 this.xTMBT=new JLabel(); xTMBT.setText(题目:); this.xTM=new JLabel(); this.xAnswer=new JLabel(); xAnswer.setText( 答案:); this.aStart=new JButton(开始测试); aStart.addActionListener(this);/添加事件监听器 this.aEnd=new JButton(完成测试); aEnd.setEnabled(false);/开始时不可用 aEnd.addActionListener(this);/添加事件监听器 this.aTJ=new JButton(提交答案); aTJ.setEnabled(false);/开始时不可用 aTJ.addActionListener(this);/添加事件监听器 this.aExit=new JButton(退出测试); aExit.addActionListener(this);/添加事件监听器 this.xsAnswer=new JTextField(); xsAnswer.setBackground(Color.lightGray); xTH=new JLabel(); xTH.setText(题号:+x); xZQS=new JLabel(); xZQS.setText(正确提交:+trueAnswer); this.setBackground(Color.gray); this.add(xTH);/添加控件 this.add(xZQS); this.add(xTMBT); this.add(xTM); this.add(xAnswer); this.add(xsAnswer); this.add(new JLabel(使用说明); this.add(new JLabel(); this.add(new JLabel(1.点击开始测试进入答题阶段!); this.add(new JLabel(); this.add(new JLabel(2.输入答案后点击提交答案显示对错!); this.add(new JLabel(); this.add(new JLabel(3.点击完成测试可显示所做题目数和得分!); this.add(new JLabel(); this.add(new JLabel(4.点击推出测试则结束测试!); this.add(new JLabel(); this.add(aStart); this.add(aTJ); this.add(aEnd); this.add(aExit); 4.2.2新建题目函数算法public void creatQuestion()/新建题目函数,产生随机的算术题 this.m=(int)(Math.random()*100);/随机运算数this.n=(int)(Math.random()*100);this.l=(int)(Math.random()*1);/随机数0或1,匹配随机运算符if(fll=+)/l为0时加法answer=m+n;/加法结果this.xTM.setText(m+fll+n+=?);/使label显示题目内容else if(fll=-)/l为1时减法answer=m-n;/减法结果this.xTM.setText(m+fll+n+=?);/使label显示题目内容 4.2.3检测函数算法public void test()/检测函数,检测是否做到10道题 if(this.x=11)/如果做够数目 xTH.setText(题号:0);/界面初始化 xZQS.setText(正确提交:0); aStart.setText(开始测试); this.xsAnswer.setText();this.xTM.setText(); JOptionPane.showMessageDialog( null , 您一共做了:10道题,测试得分为:+(10*trueAnswer), , JOptionPane.INFORMATION_MESSAGE);/弹出统计对话框 x=0;/数据初始化 trueAnswer=0;aStart.setEnabled(true);/设置对应按钮是否可用aEnd.setEnabled(false);aTJ.setEnabled(false); 4.2.4窗体显示函数算法public void showMe()/窗体显示函数,对主窗体的基本初始化,设置窗体打开的位置,设置窗体大小,设置窗体可见和设置窗体关闭方式 this.setLocationRelativeTo(null);/设置窗体在屏幕中央打开 this.setSize(300,200);/设置窗体大小 this.setVisible(true);/设置窗体可见 this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);/设置窗体关闭方式 4.2.5事件处理函数算法public void actionPerformed(ActionEvent e) /事件处理函数if(e.getSource()=aStart)/开始游戏或下一题按钮if(aStart.getText()=开始测试)/按钮为开始游戏x+;/题目增一aStart.setText(下一题);aEnd.setEnabled(true);/设置按钮可用aTJ.setEnabled(true);creatQuestion();/新建题目xTH.setText(题号:+x);xZQS.setText(正确提交:+trueAnswer);else if(aStart.getText()=下一题)/按钮为下一题x+;/题目增一creatQuestion();/新建题目test();/测试题目总数是否够10xTH.setText(题号:+x);xZQS.setText(正确提交:+trueAnswer);else if(e.getSource()=aTJ)/提交答案按钮tryint q=Integer.parseInt(xsAnswer.getText();if(q=answer)/答案正确JOptionPane.showMessageDialog( null , 回答正确,进入下一题!, , JOptionPane.INFORMATION_MESSAGE);/提示正确trueAnswer+;/正确回答数增一creatQuestion();/新建题目x+;xTH.setText(题号:+x);xZQS.setText(正确提交:+trueAnswer);test();/判断题目总数this.xsAnswer.setText();/答案输入框置空else/答案错误JOptionPane.showMessageDialog( null , 回答错误,请改正!, , JOptionPane.INFORMATION_MESSAGE);/提示错误catch(NumberFormatException nfe)/转换异常处理JOptionPane.showMessageDialog( null , 输入有误,请检查输入信息是否正确!, , JOptionPane.ERROR_MESSAGE);/提示有误else if(e.getSource()=aEnd)/中途结束游戏按钮xTH.setText(题号:0);/界面初始化xZQS.setText(正确提交:0);aStart.setText(开始测试);this.xTM.setText();aStart.setEnabled(true);aEnd.setEnabled(false);aTJ.setEnabled(false);JOptionPane.showMessageDialog( null , 您共回答了:+x+道题,测试得分为:+(10*trueAnswer), , JOptionPane.INFORMATION_MESSAGE);/统计信息对话框else if(e.getSource()=aExit)/退出游戏按钮System.exit(0);4.2.6主函数算法public static void main(String args)/主函数YunSuanQi y=new YunSuanQi();/创建实例对象y.showMe();/运用用图形界面显示五、测试运行5.1 系统测试方案5.1.1程序打开测试测试程序界面显示是否正常: 测试方法:点击“开始测试”完成下列几项:A.查看程序是否可以正常运行;B.查看界面显示信息是否正确,是否符合用户要求;C.查看结果并截图.5.1.2程序运行测试(1)测试程序随机生成算术题目、题目个数、正确提交个数功能是否正常:测试方法:首先点击“开始测试”程序应显示一道随机产生的算术题目;题号为1;正确提交为0。然后点击“下一题”,程序应显示下一道随机产生的算术题目;题号为2;正确提交为0。依次点击“下一题”查看题号是否依次增加,题目是否随机变换。当题号为10时再点击“下一题”程序应弹出对话框显示“您一共做了:10道题,测试得分为:0”;点击“确定”回到初始界面测试完成并截图。(2)测试答案输入框与提交答案功能是否正常测试方法:首先点击“开始测试”完成下列几项:A. 不在文本框中输入任何信息,点击“提交答案”程序应弹出对话框显示“输入有误,请检查输入信息是否正确!”。B. 在文本框中输入字母或特殊符号,点击“提交答案”程序应弹出对话框显示“输入有误,请检查输入信息是否正确!”。C. 在文本框中输入任意数字,点击“提交答案”程序应弹出对话框显示“回答错误,请改正!”。D. 在文本框中输入正确答案,点击“提交答案”程序应弹出对话框显示“回答正确,进入下一题!”。点击“确定”返回界面,界面应显示题号为2,正确提交为1.并随机产生下一道算术题目。E. 查看结果并截图(3)测试“完成测试”与“退出测试”按钮是否正常测试方法:点击“开始测试”,再点击“完成测试”程序应弹出对话框显示“您共回答了:1道题,测试得分为:0”点击“确定”返回开始界面。点击“开始测试”,再点击“退出测试”程序应自动关闭。(4)测试程序得分功能是否正常测试方法:点击“开始测试”完成下列几项:A. 不在文本框中输入任何信息,连续点击“下一题”一直到测试结束,程序应弹出对话框显示“您应该做了:10道题,测试得分为:0”。B. 在答案文本框中出入正确答案点击“提交答案”,系统应弹出对话框显示“回答正确,进入下一题”。点击“确定”进入下一题,界面应显示正确提交为1。在连续点击“下一题”一直到测试结束,程序应弹出对话框显示“您一共做了:10道题,测试得分为:10”。C. 在答案文本框中出入正确答案点击“提交答案”,系统应弹出对话框显示“回答正确,进入下一题”。点击“确定”进入下一题,界面应显示正确提交为1。依次做完10道题之后,程序应弹出对话框显示“您一共做了:10道题,测试得分为:100”。D. 查看结果并截图5.2 运行结果分析5.2.1程序打开测试结果测试程序界面显示是否正常运行程序显示界面:图5.1 测试结果图点击“开始测试”后界面显示:图5.2 测试结果图5.2.2程序运行测试结果1. 测试程序随机生成算术题目、题目个数、正确提交个数功能是否正常首先点击“开始测试”程序应显示一道随机产生的算术题目;题号为1;正确提交为0:图.3测试结果图然后点击“下一题”,程序应显示下一道随机产生的算术题目;题号为2;正确提交为0:图5.4 测试结果图依次点击“下一题”查看题号是否依次增加,题目是否随机变换:图5.5 测试结果图当题号为10时再点击“下一题”程序应弹出对话框显示“您一共做了:10道题,测试得分为:0”:图5.6 测试结果图点击“确定”回到初始界面:图5.7 测试结果图2.测试答案输入框与提交答案功能是否正常A首先点击“开始测试”不在文本框中输入任何信息:图5.8 测试结果图点击“提交答案”程序应弹出对话框显示“输入有误,请检查输入信息是否正确!”:图5.9 测试结果图B在文本框中输入字母或特殊符号:图5.10 测试结果图图5.11 测试结果图点击“提交答案”程序应弹出对话框显示“输入有误,请检查输入信息是否正确!”:图5.12 测试结果图C在文本框中输入任意数字:图5.13 测试结果图点击“提交答案”程序应弹出对话框显示“回答错误,请改正!”:图5.14 测试结果图D在文本框中输入正确答案:图5.15 测试结果图点击“提交答案”程序应弹出对话框显示“回答正确,进入下一题!”:图5.16 测试结果图点击“确定”返回界面,界面应显示题号为2,正确提交为1.并随机产生下一道算术题目:图5.17 测试结果图3.测试“完成测试”与“退出测试”按钮是否正常点击“开始测试”,再点击“完成测试”程序应弹出对话框显示“您共回答了:1道题,测试得分为:0”:图5.18 测试结果图点击“确定”返回开始界面:图5.19 测试结果图4.测试程序得分功能是否正常A、点击“开始测试”不在文本框中输入任何信息,连续点击“下一题”一直到测试结束,程序应弹出对话框显示“您应该做了:10道题,测试得分为:0”:图5.20 测试结果图B、在答案文本框中出入正确答案:图5.21 测试结果图点击“提交答案”,系统应弹出对话框显示“回答正确,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 商业综合体物业公司员工劳动纪律与职业素养协议
- 网络主播签约经纪公司服务协议模板
- 离婚协议书中财产分割与子女监护权具体规定
- 节能减排物业公司员工劳务合同及环保指标达成协议
- 玫瑰精油神经酸胶囊产品研发与知识产权保护合同
- 贵州省黔东南州2021-2022学年九年级上学期期末文化水平模拟测试道德与法治试卷
- 《公共关系原理与实务》 第四版 练习与答案 朱崇娴 - 第1-5章
- 网络强国思想课件
- 朗读者比赛课件
- 抗菌技术测试题及答案大全
- 2025年河南省(安阳市)事业单位招聘联考内黄县(综合类)岗位考察考试参考试题及答案解析
- 2025年中组部机关公开遴选公务员面试模拟题集
- 研发中心资产管理办法
- 2025年教师时事政治热点题库及完整答案
- 2025至2030中国电子束晶圆检查系统行业项目调研及市场前景预测评估报告
- 贵州省榕江县2025年上半年事业单位公开遴选试题含答案分析
- 第2课《中国人首次进入自己的空间站》课件
- 22S803 圆形钢筋混凝土蓄水池
- 《中华人民共和国职业分类大典》电子版
- 天文地理知识竞赛题库及答案
- 行业标准:TSG T7007-2016 电梯型式试验规则
评论
0/150
提交评论