数学题自动生成系统Word格式.docx
- 文档编号:20699750
- 上传时间:2023-01-25
- 格式:DOCX
- 页数:33
- 大小:285.14KB
数学题自动生成系统Word格式.docx
《数学题自动生成系统Word格式.docx》由会员分享,可在线阅读,更多相关《数学题自动生成系统Word格式.docx(33页珍藏版)》请在冰豆网上搜索。
用户可以通过其包含的相关信息,与其他模块进行连接,可以在此系统中依次的进行题型选择,用户答题,显示正确答案以及记录历史答题信息等功能。
2.2题目信息模块
题目信息模块主要实现对数学练习题目信息的管理记录。
题目信息模块主要包括:
题目编号,甲空,题目题型,乙空,正确结果等相关信息。
2.3选题情况信息模块
选题情况信息模块主要实现对所具有的题目项目进行管理记录,根据对用户的基础信息和题目信息的相应连接可以实现不同用户对题型的选择,从而可以形成不同的题型,生成相对应的试卷。
选题情况信息模块主要包括:
用户编号,题目题型,题目编号等相关信息。
2.4答题信息模块
答题信息模块主要是为了实现与选题情况信息进行对接,根据实现后的答题信息可以直接录入到系统中进行记录。
答题信息模块主要包括:
用户编号,题目题型,题目编号,所填答案等相关信息。
2.5历史成绩信息模块
历史成绩信息模块主要是通过与选题情况信息模块相连接,实现小学生对数学练习习题答题历史成绩的记录。
历史成绩信息模块主要包括:
用户编号,答题时间,正确数目,错误数目等相关信息。
三、详细设计
3.1系统E-R图
在系统功能作了详细分析后,可以从中抽象出系统E-R模型,如图:
3.2关系模式
将E-R图转化为关系模型:
User(user_id,user_nam,user_class,user_tel)
Timu(timu_id,timu_one,timu_two,timu_true)
History(user_id,answer_time,true_no,flase_no)
3.3系统数据流图
3.4基本数据类型操作
①界面设计(设置不同按钮、文本大小以及字体类型大小等):
area=newJTextArea(42,100);
teacherZhang=newTeacher(this);
teacherZhang.setMaxInteger(100);
setLayout(newFlowLayout());
setSize(1300,500);
menubar=newJMenuBar();
menu1=newJMenu("
难度设置"
);
menu2=newJMenu("
历史档案"
grade1=newJMenuItem("
10以内加法"
grade2=newJMenuItem("
10以内减法"
grade3=newJMenuItem("
20以内加法"
grade4=newJMenuItem("
20以内减法"
grade5=newJMenuItem("
100以内加法"
grade6=newJMenuItem("
100以内减法"
grade7=newJMenuItem("
100以内乘法"
grade8=newJMenuItem("
100以内除法"
message=newJLabel("
你还没有回答呢"
Start=newJButton("
下一题"
giveAnswer=newJButton("
提交答案"
item=newJMenuItem("
答题记录"
Qcount=newJLabel("
题目数量"
set=newJButton("
设置"
Text1=newJTextField(5);
Text1.setText("
0"
textOne=newJTextField(5);
textTwo=newJTextField(5);
textResult=newJTextField(5);
operatorLabel=newJLabel("
"
finalFileDialogfiledialog_load=newFileDialog(this,"
打开文件对话框"
FileDialog.LOAD);
add(Qcount);
add(Text1);
add(set);
operatorLabel.setFont(newFont("
Arial"
Font.BOLD,20));
menu1.add(grade1);
menu1.add(grade2);
menu1.add(grade3);
menu1.add(grade4);
menu1.add(grade5);
menu1.add(grade6);
menu1.add(grade7);
menu1.add(grade8);
menu2.add(item);
menubar.add(menu1);
menubar.add(menu2);
setJMenuBar(menubar);
add(textOne);
add(operatorLabel);
add(textTwo);
add(newJLabel("
="
));
add(textResult);
add(giveAnswer);
add(message);
add(Start);
add(area);
textResult.requestFocus();
textOne.setEditable(false);
textTwo.setEditable(false);
②对不同按钮设置不同监视器:
Start.setActionCommand("
getProblem"
textResult.setActionCommand("
answer"
giveAnswer.setActionCommand("
teacherZhang.setJTextField(textOne,textTwo,textResult);
teacherZhang.setJLabel(operatorLabel,message);
Start.addActionListener(teacherZhang);
giveAnswer.addActionListener(teacherZhang);
textResult.addActionListener(teacherZhang);
setVisible(true);
validate();
setDefaultCloseOperation(DISPOSE_ON_CLOSE);
③对不同情况下的选择设置不同符号及能产生的最大随机数:
grade1.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEvente){
teacherZhang.setOperator("
+"
teacherZhang.setMaxInteger(10);
}
});
grade2.addActionListener(newActionListener(){
-"
grade3.addActionListener(newActionListener(){
teacherZhang.setMaxInteger(20);
grade4.addActionListener(newActionListener(){
grade5.addActionListener(newActionListener(){
teacherZhang.setMaxInteger(100);
grade6.addActionListener(newActionListener(){
grade7.addActionListener(newActionListener(){
*"
grade8.addActionListener(newActionListener(){
/"
④对答题记录设置监视器:
item.addActionListener(newActionListener(){
@Override
//TODOAuto-generatedmethodstub
publicvoidactionPerformed(ActionEvente)
{
if(e.getSource()==item)
{
filedialog_load.setVisible(true);
area.setText(null);
Strings;
if(filedialog_load.getFile()!
=null)
{
try
{
Filefile=newFile(filedialog_load.getDirectory(),filedialog_load.getFile());
FileReaderfile_reader=newFileReader(file);
BufferedReaderin=newBufferedReader(file_reader);
while((s=in.readLine())!
area.append(s+'
\n'
in.close();
file_reader.close();
}
catch(IOExceptione1)
}
}
}
});
⑤对“设置”创建监视器:
set.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEvente){
intn=0;
area.setText(null);
n=Integer.parseInt(Text1.getText());
if(n==0){
JOptionPane.showMessageDialog(null,"
请输入题目数量!
"
"
提示"
JOptionPane.OK_OPTION);
}else{
teacherZhang.setNum(n);
Strings=String.valueOf(n);
area.append(s+'
}
⑥设置监视器从而控制答题数量:
publicvoidactionPerformed(ActionEvente){
//TODOAuto-generatedmethodstub
Stringstr=e.getActionCommand();
try{
if(str.equals("
)&
&
k<
num){
textOne.setText("
+a[k]);
textTwo.setText("
+b[k]);
operatorLabel.setText(operator);
message.setText("
请回答"
textResult.setText(null);
}
elseif(str.equals("
k==num){
JOptionPane.showMessageDialog(null,"
答题结束"
SaveFile(operator);
⑦通过if_else循环来计算统一答题情况:
if(str.equals("
)){
Stringanswer=textResult.getText();
intresult=Integer.parseInt(answer);
c[k]=result;
if(operator.equals("
if(result==a[k]+b[k]){
message.setText("
回答正确"
k++;
setIsRight(true);
x++;
else{
Strings="
答案:
+String.valueOf(a[k]+b[k]);
message.setText(s);
setIsRight(false);
y++;
elseif(operator.equals("
if(result==a[k]-b[k]){
+String.valueOf(a[k]-b[k]);
if(result==a[k]*b[k]){
+String.valueOf(a[k]*b[k]);
if(result==a[k]/b[k]){
c[k]=result;
+String.valueOf(a[k]/b[k]);
catch(NumberFormatExceptionex){
message.setText("
请输入数字字符"
}catch(IOExceptione1){
//TODOAuto-generatedcatchblock
e1.printStackTrace();
}
⑧该函数能够产生随机数:
publicvoidsetNum(intn){
num=n;
for(inti=0;
i<
n;
i++){
a[i]=random.nextInt(maxInteger)+1;
b[i]=random.nextInt(maxInteger)+1;
⑨保存文件,能够借此找到历史答题情况:
publicvoidSaveFile(Stringstr)throwsIOException{
FileWriterfw=null;
Filefile=newFile("
station.txt"
fw=newFileWriter(file,true);
}catch(IOExceptione){
e.printStackTrace();
PrintWriterpw=newPrintWriter(fw);
pw.flush();
Datedate=newDate(0161,8,22);
DatenowTime=date;
pw.println("
答题时间:
+nowTime);
for(intj=0;
j<
num;
j++)
pw.println(a[j]+str+b[j]+"
作答"
+c[j]);
正确题数:
+x+"
错误题数:
+y);
pw.println();
pw.close();
fw.close();
publicvoidsetIsRight(booleanT){
this.isRight=T;
⑩主函数算法:
packageSYSTEM;
classMyFrame{
publicstaticvoidmain(Stringargs[]){
MathSystemframe;
frame=newMathSystem();
frame.setTitle("
小学生数学题目自动生成系统"
四、调试分析
1.没有建立相应的监视器,将两个不同的类连接起来,不能产生随机数,无法进行之后的操作
2.没有设置参数,从而不能控制答题数目,导致可以一直答题,没有限度。
之后,设置了单独参数,利用for循环,当大于输入答题数量时,循环结束,系统无法再产生随机题
3.没有设置数据从而对答题情况进行统计,调试后,在判断回答正确否的地方,添加两个数据,分别对对错进行累加,则可以最后显示答题情况
4.在历史答题情况中没
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数学题 自动 生成 系统