面象程序设计(JAVA)课程设计说明书
学院名称: 计算机信息工程学院
班级名称: 20XX级计算机科学技术
题 目: 学算术运算测试程序
面象程序设计(JAVA)课程设计务书
学 院
计算机信息工程学院
专 业
20XX级计算机科学技术
课程名称
面象程序设计(JAVA)
题 目
学算术运算测试程序
完成期限
2018年01月02日2018年01月08日1周
容
务
项目目
1.加深学生面象程序设计(Java)课程基知识理解综合应学知识独立完成面象程序设计应课题设计
2.根问题需通查阅手册文献资料培养分析解决实际问题力
3灵活运类象输入输出流GUI线程数库编程等相关知识编写程序
二项目务容求
容:编写供学数学运算程序:选择题目难度根选择难度分配加减法题目根输入题数分配分值(总分100)判断做题否正确计算分数
求:1编写图形化界面组4分工独立完成
2 够求完成系统设计撰写课程设计报告
三项目设计思路
题目求设计动出题(算数运算)测试程序首先需明确该系统功:选择题目难度选择题数题数动分配分值动出题评卷出答题数总分接着根功设计图形化界面:选择题目难度界面试卷界面评分界面然结合功图形化界面编写代码进行测试断完善代码需测试程序
四具体成果形式求
程序课程设计文档
进
度
安
排
起止日期
工作容
2018年01月02日
2018年01月02日
需求分析
2018年01月03日
2018年01月04日
系统设计根前期需求分析结果设计功模块
2018年01月05日
2018年01月06日
编码调试测试程序
2018年01月07日
2018年01月08日
撰写课程设计报告进行答辩
参
考
资
料
[1] 赵生慧Java面象程序设计(第二版)[M]北京中国水利水电出版社2013
[2]毕广吉Java程序设计实例教程[M]北京冶金工业出版社2007
[3]王保罗Java面象程序设计[M]北京清华学出版社2003
[4]高林周海燕JSP网书店系统案例分析[M]北京民邮电出版社2004
指导教师
意见
(签字): 年 月 日
系(教研室)意见
(签字): 年 月 日
目 录
摘 1
1引言 1
11选题背景 1
12 选题意义 1
13容分工 1
14组织结构 2
2需求分析 2
21系统流程图 2
22系统功图 2
3 系统设计 3
31类设计 3
32功模块设计 3
321户选择信息模块 3
322题目信息模块 4
323答案信息模块 4
324成绩信息模块 4
4编码 4
41导入相关包类 4
411包 4
412类 4
42模块代码 5
421户选择信息模块 5
422题目信息模块 5
423答案信息模块 7
424成绩信息模块 8
5测试结果 9
51户选择信息模块 9
52题目信息模块 10
53答案信息模块 10
54成绩信息模块 11
6 结束语 12
附录 12
参考文献 21
致谢 22
摘
文Java面象程序设计语言实现学算数运算测试程序该程序功根户需求定义试卷题目难度题目数量试卷总分100分根题数动分配题分值提交评卷出答题数总分测试结果表明该程序运行正常
1引言
11选题背景
计算数学知识中重容数学计算力项基数学力计算力学数学学科重基础学教材中计算教学占重较学生计算力高低直接影响着学生学质量数学中概念引入需通计算进行数学中解决实际问题解题思路步骤结果通计算落实提高孩子数学计算力速度时方便家长便捷孩子进行准确数学算术测试设计简单数学测试程序
12 选题意义
者说该程序根输入题目数出题分配分值(总分100)机抽取10关加减开方数学题测试题三种难度级家长根孩子情况行选择测试出孩子分显示出正确答案设计者言该程序够全面熟悉掌握Java程序设计基知识增强问题运灵活选择合适数结构Java程序设计领[1]熟悉编制调试程序技巧掌握分析结果干效方法[2]进步提高机动手力增强Java程序设计概念[3]熟悉Java语言编程养成提供文档资料惯规范编程思想继课程实验课程设计较扎实基础进步提高机动手力培养计算机解决实际问题力继课程实验课程设计扎实基础[4]
13容分工
程序功:
(1)选择难度等级分初级中级高级
(2)输入题目数
(3)填写题目答案选择重新出题
(4)系统评卷题目前*出题数总分
(5)退出系统
成员分工:
(1)XX:需求分析测试结果记(文档)三种级评卷重新出题事件监听器(代码)
(2)XX:结束语附录致谢(文档)户选择信息界面(代码)
(3)XX:总体设计编码(文档)答案判断(代码)
(4)XX:摘引言(文档)三种级题目机产生(代码)
14组织结构
第章 :摘介绍该报告体容
第二章 :引言介绍选题背景意义容成员分工组织结构
第三章 :需求分析介绍系统功图系统流程图
第四章 :总体设计介绍类设计功模块设计
第五章 :编码介绍功模块具体实现代码
第六章:测试结果介绍功模块测试结果
第七章:结束语介绍工作总体概括
2需求分析
21系统流程图
系统流程图21示开始程序选择困难等级输入题目数填写答案重新出题评卷结束
选择难度等级
输入题目数
填写题目答案
评 卷
退 出
图21 学算术运算测试系统流程图
22系统功图
系统功图图22示等级分初级中级高级输入题目数填写答案重新出题评卷时题目前面标*出题数总分结束系统
选择难度等级
初级
中级
高级
输入题目数
重新出题
填写题目答案
评 卷
题目前面*
出题数总分
退 出
图22 学算术运算测试系统功图
3 系统设计
分析题意学算数运算测试系统拆分四模块分户选择信息题目信息答题信息成绩信息四功模块根功模块编写相应代码进行测试达需求结果
31类设计
定义名Paper类里面定义构造方法监听器等组件次定义计算中间容器JiusuanPanel类继承面板类容里面添加容器定义生成算数计算方法判断方法
32功模块设计
321户选择信息模块
户选择应难度题目分初级中级高级首先选择题目难度单选选择单选框钮JRadioButtonPaper方法实现单选功注册监听器ActionListener
322题目信息模块
通模块加数组功实现根输入题目数出相应题目题目类型空格通定义计算方法easymiddlehardt创建种类型题目MathRandom()*a生成机数添加计算中间容器JisuanPanel
323答案信息模块
实现选题信息接答题信息模块包括填写答案答案判断出答案题目信息模块类定义布尔类型方法right判断正确通建立输入框答案输入获答案正确较监听器方法中结果相正确题数加1
324成绩信息模块
监听器接口实现方法进行if语句for循环实现选择题型答题正确数累加话框actionPerformed监听器事件方法中实现题目数分值总成绩统计
4编码
41导入相关包类
411包
import javaawtBorderLayout
import javaawtContainer
import javaawtFlowLayout
import javaawtGridLayout
import javaawteventActionEvent
import javaawteventActionListener
import javaxswingButtonGroup
import javaxswingJButton
import javaxswingJFrame
import javaxswingJLabel
import javaxswingJOptionPane
import javaxswingJPanel
import javaxswingJRadioButton
import javaxswingJScrollPane
import javaxswingJTextField
412类
Class Paper类
Class JisuanPanel副类存放方法体
JFrame
JPanel父类
42模块代码
421户选择信息模块
创建JLabel标签JRadioButton单选钮组件显示出户选择界面框架:
JFrame jf new JFrame(等级选择)
JLabel lab new JLabel(选择等级:)
JRadioButton rb1 new JRadioButton(初级)
JRadioButton rb2 new JRadioButton(中级)
JRadioButton rb3 new JRadioButton(高级)
ButtonGroup grp new ButtonGroup()创建单选钮
protected JisuanPanel[] panels
类中创建Paper方法继承JFrame中功方法排列组件面板中布局:
public Paper() {
super(数学等级计算题)
Container cp jfgetContentPane()
********************等级选择界面设计 ********************
jfsetSize(200 150)
cpsetLayout(null)
labsetBounds(20 20 140 20)
rb1setBounds(20 40 140 20)
rb2setBounds(20 60 140 20)
rb3setBounds(20 80 140 20)
grpadd(rb1)
grpadd(rb2)
grpadd(rb3)
cpadd(lab)
cpadd(rb1)
cpadd(rb2)
cpadd(rb3)
jfsetDefaultCloseOperation(JFrameEXIT_ON_CLOSE)
jfsetVisible(true)
422题目信息模块
********************选择初级********************
jrb1addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
TODO Autogenerated method stub
int s JOptionPaneshowConfirmDialog(null 确定选择初级? 初级 JOptionPaneYES_NO_OPTION) 询问确认问题
if (s 0) {
String inputValue JOptionPaneshowInputDialog(输入题目数:)
try {
Papern IntegerparseInt(inputValue)
} catch (Exception e) {
Papern 20
} 未输入题数动分配20题
jpanels new JisuanPanel[Papern]
for (int i 0 i < jpanelslength i++)
jpanels[i] new JisuanPanel()创建数组象利for循环jisuanPanel组件全部生成
Container c jgetContentPane()
csetLayout(new BorderLayout())
JPanel panel new JPanel(new GridLayout(Papern 2 + 1 2))
for (int i 0 i < jpanelslength i++)
paneladd(jpanels[i])
cadd(new JScrollPane(panel) BorderLayoutCENTER)
********************重新出题********************
paneladd(button)
button new JButton(重新出题)
buttonaddActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
TODO Autogenerated method stub
for (int i 0 i < jpanelslength i++)
jpanels[i]easy()
}
)}
调jisuanPanel类中方法初级难度方法代码传递:
public JisuanPanel() {构造参方法讲方法传数组中
super()
label new JLabel() 创建没文字标签
field new JTextField(4) 创建文框
add(label) 标签添加尾部
add(field) 文框添加尾部
easy()
}
public void easy() { 机生成运算题目方法
int a b
String c
a (int) (Mathrandom() * 10) + 1 机产生10整数
b (int) (Mathrandom() * 10) + 1
switch ((int) (Mathrandom() * 2)) {
case 0
c +
labelsetText( + a + c + b + )
result a + b
break 加法
case 1
c
labelsetText( + a + c + b + )
result a b
break 减法
default
JOptionPaneshowMessageDialog(null 出错)
Systemexit(0)
}
fieldsetText()
return
}
423答案信息模块
创建答题区域文框等组件:参数回调组件监听事件中:
public JisuanPanel() {
super()
label new JLabel() 创建没文字标签
field new JTextField(4) 创建文框
add(label) 标签添加尾部
add(field) 文框添加尾部
easy()
}
public JisuanPanel(int n) {
super()
label new JLabel() 创建没文字标签
field new JTextField(4) 创建文框
add(label) 标签添加尾部
add(field) 文框添加尾部
if(n1) {
middle()
}
if(n2) {
hard()
}
}
答案模块文框答案计算机出答案代码:
public boolean right() {
if (fieldgetText()equals())
return false
double num result + 1
try {
num DoubleparseDouble(fieldgetText())
} catch (NumberFormatException e) {
JOptionPaneshowMessageDialog(null 输入错误)
fieldsetText()
}
if (num result) {
if ((labelgetText())startsWith(正确))
labelsetText( * + labelgetText())核心步骤较
return true
} else
return false
}
}
424成绩信息模块
回答正确题目统计系统均分配分值分代码:
********************评卷********************
panel new JPanel(new FlowLayout())
JButton button new JButton(评卷)
buttonaddActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
TODO Autogenerated method stub
int n 0
for (int i 0 i < jpanelslength i++) {
if (jpanels[i]right())
n++
}
JOptionPaneshowMessageDialog(null
+ Papern + 题做 + n + 道\n分: + (int) ((((double) n) Papern) * 100))
Papern 0
}
})
5测试结果
51户选择信息模块
图51 初级选择
图52 确认初级选择
图53 中级选择
图54 确定中级选择
图55 高级选择
图56 确定高级选择
图57 输入题目数
52题目信息模块
图58 出题做题
图59 重新出题
53答案信息模块
图510 评卷结果
54成绩信息模块
图511 分
6 结束语
文通运Java语言计算机中实现学计算试卷模拟该程序机产生计算题目作出答案进行核出测试分数测试该程序够正确运行生成等级界面通勾选初级中级高级选择等级难度定义题目数量生成试卷题目进行填写点击提交系统行答案进行分析核出正确题目数总分数测试结果表明该程序运行正常次程序设计生成界面需美化方提交果够出错误题目解析会程序更加完善
附录
参考文献
[1]赵生慧Java面象程序设计(第二版)[M]北京中国水利水电出版社2013
[2]毕广吉Java程序设计实例教程[M]北京冶金工业出版社2007
[3]王保罗Java面象程序设计[M]北京清华学出版社2003
[4]高林周海燕JSP网书店系统案例分析[M]北京民邮电出版社2004
[5]张银鹤JSP+Ajax网站开发典型实例[M]北京电子工业出版社2009年01月
[6]WeissMA 数结构算法分析Java语言描述[M]北京机械工业出版社2009年01月
[7]Metsker S JJava设计模式[M]北京电子工业出版社2012年09 月
[8]孙卫琴TomcatJava Web开发技术详解[M]北京电子工业出版社2009年01月
[9]刘京华等Java Web整合开发王者[M]北京清华学出版社2010年 01月
[10]贺松基MVC模式BS架构研究应[D]武汉华中科技学出版社2006年4月
[11]毕建信基MVC设计模式Web应研究实现[D]武汉武汉理工学出版社2006年5月
致谢
次程序设计中特感谢指导老师XXX老师热情关怀悉心指导老师选题程序容完善方面少建议灵感予帮助时感谢XXXXXXXX学认真付出齐心协力程序进行构思设计编写调试通分工合作报告文档程序够呈现
指导教师评语
成绩评定
指导教师签名: 填表日期: 年 月 日
文档香网(httpswwwxiangdangnet)户传
《香当网》用户分享的内容,不代表《香当网》观点或立场,请自行判断内容的真实性和可靠性!
该内容是文档的文本内容,更好的格式请下载文档