大 学 习 大 讨 论 大 调 研 并 非 是 大 而 空 , 大 而 虚 , 大 而 泛 , 学 习 什 么 , 如 何 来 学 习 , 讨 论 什 么 , 从 哪 些 方 面 来 讨 论 , 大 学 习 大 讨 论 大 调 研 并 非 是 大 而 空 , 大 而 虚 , 大 而 泛 , 学 习 什 么 , 如 何 来 学 习 , 讨 论 什 么 , 从 哪 些 方 面 来 讨 论 , 调 研 什 么 , 如 何 调 研 , 这 都 需 要 认 真 思 考 , 不 能 因 为 热 潮 涌 动 失 去 了 方 向 。
调 研 什 么 , 如 何 调 研 , 这 都 需 要 认 真 思 考 , 不 能 因 为 热 潮 涌 动 失 去 了 方 向 。
吉林大学软件学院
《a Java 语言程序设计课程设计》
课程设计报告
题
目 目
指导老师
2012 年 5 月 29
大 学 习 大 讨 论 大 调 研 并 非 是 大 而 空 , 大 而 虚 , 大 而 泛 , 学 习 什 么 , 如 何 来 学 习 , 讨 论 什 么 , 从 哪 些 方 面 来 讨 论 , 调 研 什 么 , 如 何 调 研 , 这 都 需 要 认 真 思 考 , 不 能 因 为 热 潮 涌 动 失 去 了 方 向 。
大 学 习 大 讨 论 大 调 研 并 非 是 大 而 空 , 大 而 虚 , 大 而 泛 , 学 习 什 么 , 如 何 来 学 习 , 讨 论 什 么 , 从 哪 些 方 面 来 讨 论 , 调 研 什 么 , 如 何 调 研 , 这 都 需 要 认 真 思 考 , 不 能 因 为 热 潮 涌 动 失 去 了 方 向 。
目
录
第1 1 章
小组成员介绍 .............................3
第2 2 章
系统设计目的 .............................3
第3 3 章
系统实现思路及设计 ............................4
第4 4 章
系统调试运行 ..............................6
第5 5 章
课程设计心得 ..............................8
第6 6 章
附录 ...............................8
第 第 1 1 章 章
小组成员介绍
学号 姓名 比例分配
第 第 2 章
系统设计目的
1)
)
设计一个客观题考试系统,实现以下功能:
1.学生可以登录系统,选择考试科目,在规定时间内答完题目,退出;
2.教师可以登录系统,添加、修改、删除、查找试题题目,还可以查看考试科目分数结果、批量录入试题及更改密码等;
3.管理员可以登录系统,对科目、考试科目、任课教师信息和考试学生信息进行管理,如添加、查看、修改和删除等操作,还可以查看考试结果,批量录入科目、考试科目、任课教师和考生信息,更改密码等。
2 )
通过这次设计,旨在:
1.提高对 java 语言设计的掌握能力;
2.理论联系实际,进一步提高学生的软件开发技术;
3.使学生初步了解 java 项目的开发过程,培养团队意识;
3.培养学生分析、解决问题的能力。
大 学 习 大 讨 论 大 调 研 并 非 是 大 而 空 , 大 而 虚 , 大 而 泛 , 学 习 什 么 , 如 何 来 学 习 , 讨 论 什 么 , 从 哪 些 方 面 来 讨 论 , 调 研 什 么 , 如 何 调 研 , 这 都 需 要 认 真 思 考 , 不 能 因 为 热 潮 涌 动 失 去 了 方 向 。
大 学 习 大 讨 论 大 调 研 并 非 是 大 而 空 , 大 而 虚 , 大 而 泛 , 学 习 什 么 , 如 何 来 学 习 , 讨 论 什 么 , 从 哪 些 方 面 来 讨 论 , 调 研 什 么 , 如 何 调 研 , 这 都 需 要 认 真 思 考 , 不 能 因 为 热 潮 涌 动 失 去 了 方 向 。
第 第 3 章
系统实现思路 及详细设计
一. 总体设计
二. 1 )学生模块
2 )教师模块
3 )数据库设计模块
利用数据库的查询,插入,更新简单易于管理数据的特性,我组决定使用数据库来存储数据,能很大程度上提高考试系统的 性能,使其更稳定,简便。仔细考察题目要求,把将 要存储的内容提取出其属性,建成一些数库中的表,将 java 与数据库连接之后,在界面上的一些修改等操作会反应对表的操作,同时可以通过界面操作来动态创建和删除数据库中的表。
4 )管理模块
大 学 习 大 讨 论 大 调 研 并 非 是 大 而 空 , 大 而 虚 , 大 而 泛 , 学 习 什 么 , 如 何 来 学 习 , 讨 论 什 么 , 从 哪 些 方 面 来 讨 论 , 调 研 什 么 , 如 何 调 研 , 这 都 需 要 认 真 思 考 , 不 能 因 为 热 潮 涌 动 失 去 了 方 向 。
大 学 习 大 讨 论 大 调 研 并 非 是 大 而 空 , 大 而 虚 , 大 而 泛 , 学 习 什 么 , 如 何 来 学 习 , 讨 论 什 么 , 从 哪 些 方 面 来 讨 论 , 调 研 什 么 , 如 何 调 研 , 这 都 需 要 认 真 思 考 , 不 能 因 为 热 潮 涌 动 失 去 了 方 向 。
第 第 4 章
系统调试运行 一、
登陆界面
一、
功能
1 )学生考试 2 )教师管理
3 )管理员
大 学 习 大 讨 论 大 调 研 并 非 是 大 而 空 , 大 而 虚 , 大 而 泛 , 学 习 什 么 , 如 何 来 学 习 , 讨 论 什 么 , 从 哪 些 方 面 来 讨 论 , 调 研 什 么 , 如 何 调 研 , 这 都 需 要 认 真 思 考 , 不 能 因 为 热 潮 涌 动 失 去 了 方 向 。
大 学 习 大 讨 论 大 调 研 并 非 是 大 而 空 , 大 而 虚 , 大 而 泛 , 学 习 什 么 , 如 何 来 学 习 , 讨 论 什 么 , 从 哪 些 方 面 来 讨 论 , 调 研 什 么 , 如 何 调 研 , 这 都 需 要 认 真 思 考 , 不 能 因 为 热 潮 涌 动 失 去 了 方 向 。
第 第 5 章 章
课程设计心得 经过四个星期的课程设计,我组顺利完成该课程设计。通过该课程设计,收获颇多。
首先,是我们加深了对 Java 语言的理论知识的理解; 其次,让我们更加熟练的掌握了 Java 语言的设计能力并且有了实践经验; 再次,在设计过程中,学到了老师没有在课堂上没有教授的知识; 最后,加强了我们对 Java 语言的学习兴趣和好感。
第 第 6 章
附录 1. 登陆界面代码 import java.awt.Font; import java.awt.event.ActionEvent; import java.awt.event.ActionListener;
import java.awt.event.ItemEvent; import java.awt.event.ItemListener; import javax.swing.ButtonGroup; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.JPasswordField; import javax.swing.JRadioButton; import javax.swing.JTextField; public class main_login extends JPanel implements ItemListener {
JFrame frame=new JFrame(" 考试系统");
JLabel name;
JLabel pas;
JTextField tname;
JPasswordField tpas;
JRadioButton s_jbu;
JRadioButton t_jbu;
JRadioButton m_jbu;
JButton login;
JButton reset_button;
int k=0;
main_login(){
name=new JLabel(" 用户名");
tname=new JTextField(20);
pas=new JLabel(" 密码");
tpas=new JPasswordField(20);
s_jbu=new JRadioButton(" 学生");
t_jbu=new JRadioButton(" 教师");
m_jbu=new JRadioButton(" 管理员");
大 学 习 大 讨 论 大 调 研 并 非 是 大 而 空 , 大 而 虚 , 大 而 泛 , 学 习 什 么 , 如 何 来 学 习 , 讨 论 什 么 , 从 哪 些 方 面 来 讨 论 , 调 研 什 么 , 如 何 调 研 , 这 都 需 要 认 真 思 考 , 不 能 因 为 热 潮 涌 动 失 去 了 方 向 。
大 学 习 大 讨 论 大 调 研 并 非 是 大 而 空 , 大 而 虚 , 大 而 泛 , 学 习 什 么 , 如 何 来 学 习 , 讨 论 什 么 , 从 哪 些 方 面 来 讨 论 , 调 研 什 么 , 如 何 调 研 , 这 都 需 要 认 真 思 考 , 不 能 因 为 热 潮 涌 动 失 去 了 方 向 。
login=new JButton(" 登录");
reset_button = new JButton(" 重填");
this.setLayout(null);
name.setBounds(50,50,150,60);
tname.setBounds(170,50,200,50);
pas.setBounds(50,160,150,60);
tpas.setBounds(170,160,200,50);
s_jbu.setBounds(50,310,100,40);
t_jbu.setBounds(170,310,100,40);
m_jbu.setBounds(290,310,100,40);
login.setBounds(410,310,100,40);
//reset_button.setBounds();
Font fnt=new Font("Serief",Font.BOLD,20);
name.setFont(fnt);
pas.setFont(fnt);
s_jbu.setFont(fnt);
t_jbu.setFont(fnt);
m_jbu.setFont(fnt);
login.setFont(fnt);
ButtonGroup group=new ButtonGroup();
group.add(s_jbu);
group.add(t_jbu);
group.add(m_jbu);
this.add(name);
this.add(tname);
this.add(pas);
this.add(tpas);
this.add(s_jbu);
this.add(t_jbu);
this.add(m_jbu);
this.add(login);
this.add(reset_button);
reset_button.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
tname.setText("");
tpas.setText("");
}
});
s_jbu.addItemListener(this);
t_jbu.addItemListener(this);
m_jbu.addItemListener(this);
login.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
String s=tname.getText();
String p=tpas.getText();
try{
if(k==1){
if(new ResultSetDemo01().check(s, p,k)){
S1.login=s;
new S1().diaplay();
tname.setText("");
tpas.setText("");
}
else{
JOptionPane.showMessageDialog(null, " 用户名或密码错误");
tname.setText("");
tpas.setText("");
}
}
else if(k==2){
if(new ResultSetDemo01().check(s, p,k)){
大 学 习 大 讨 论 大 调 研 并 非 是 大 而 空 , 大 而 虚 , 大 而 泛 , 学 习 什 么 , 如 何 来 学 习 , 讨 论 什 么 , 从 哪 些 方 面 来 讨 论 , 调 研 什 么 , 如 何 调 研 , 这 都 需 要 认 真 思 考 , 不 能 因 为 热 潮 涌 动 失 去 了 方 向 。
大 学 习 大 讨 论 大 调 研 并 非 是 大 而 空 , 大 而 虚 , 大 而 泛 , 学 习 什 么 , 如 何 来 学 习 , 讨 论 什 么 , 从 哪 些 方 面 来 讨 论 , 调 研 什 么 , 如 何 调 研 , 这 都 需 要 认 真 思 考 , 不 能 因 为 热 潮 涌 动 失 去 了 方 向 。
T_new1.t_login=s;
//System.out.println(T_new1.t_login);
new T_new1().diaplay();
tname.setText("");
tpas.setText("");
}
else{
JOptionPane.showMessageDialog(null, " 用户名或密码错误 误");
tname.setText("");
tpas.setText("");
}
}else
if(k==3){
if(new ResultSetDemo01().check(s, p,k)){
M1.login=s;
new M1().display();
tname.setText("");
tpas.setText("");
}
else{
JOptionPane.showMessageDialog(null, " 用户名或密码错误");
tname.setText("");
tpas.setText("");
}
}
}catch (Exception ee) {
// TODO: handle exception
}
}
});
}
public void itemStateChanged(ItemEvent e){
if(e.getSource()==s_jbu){
k=1;
}else
if(e.getSource()==t_jbu){
k=2;
}else
if(e.getSource()==m_jbu){
k=3;
}
}
public static void main(String[] args) {
JFrame frame=new JFrame(" 考试系统");
frame.add(new main_login());
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
frame.setSize(600,400);
frame.setLocationRelativeTo(null);
} } 2. 学生考试部分代码 import java.awt.event.ActionEvent; import java.awt.event.ActionListener;
大 学 习 大 讨 论 大 调 研 并 非 是 大 而 空 , 大 而 虚 , 大 而 泛 , 学 习 什 么 , 如 何 来 学 习 , 讨 论 什 么 , 从 哪 些 方 面 来 讨 论 , 调 研 什 么 , 如 何 调 研 , 这 都 需 要 认 真 思 考 , 不 能 因 为 热 潮 涌 动 失 去 了 方 向 。
大 学 习 大 讨 论 大 调 研 并 非 是 大 而 空 , 大 而 虚 , 大 而 泛 , 学 习 什 么 , 如 何 来 学 习 , 讨 论 什 么 , 从 哪 些 方 面 来 讨 论 , 调 研 什 么 , 如 何 调 研 , 这 都 需 要 认 真 思 考 , 不 能 因 为 热 潮 涌 动 失 去 了 方 向 。
import java.sql.Date;
import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.JTextArea; import javax.swing.JTextField; import javax.swing.JLabel;
public class S2 extends JPanel implements ActionListener{
JTextField grade;
JTextArea jtx;
JButton jb1;
JButton jb2;
JTextField ans;
JButton jb3;
String ds;
JLabel jl;
JLabel jl1;
int np[]=new int[200];
int p;
int count;
String myAns[]=new String[1000];
String trueAns[]=new String[1000];
int tscore[]=new int [1000];
int myscore=0;
int w;
JButton end;
S2(){
try{
np= new get_test_number().readnumber(S1.choose);
count=np.length;
}catch (Exception e) {
// TODO: handle exception
}
try{
p=0;
StringBuffer buf=new ClobDemo02().readcontent(np[p]);
ds=new String(buf);
}catch (Exception e) {
// TODO: handle exception
}
grade=new JTextField();
grade.setEditable(false);
end = new JButton(" 交卷");
jtx=new JTextArea(ds);
jtx.setSize(400, 500);
jtx.setEditable(false);
jl=new JLabel(" 答案:");// 增加 2
jl1=new JLabel(" 分数:");// 增加 1
jb1=new JButton(" 上一题");
jb2=new JButton(" 下一题");
jb3=new JButton(" 提交");///////// 改一下位置
ans=new JTextField(50);
jtx.setLineWrap(true);
this.setLayout(null);
大 学 习 大 讨 论 大 调 研 并 非 是 大 而 空 , 大 而 虚 , 大 而 泛 , 学 习 什 么 , 如 何 来 学 习 , 讨 论 什 么 , 从 哪 些 方 面 来 讨 论 , 调 研 什 么 , 如 何 调 研 , 这 都 需 要 认 真 思 考 , 不 能 因 为 热 潮 涌 动 失 去 了 方 向 。
大 学 习 大 讨 论 大 调 研 并 非 是 大 而 空 , 大 而 虚 , 大 而 泛 , 学 习 什 么 , 如 何 来 学 习 , 讨 论 什 么 , 从 哪 些 方 面 来 讨 论 , 调 研 什 么 , 如 何 调 研 , 这 都 需 要 认 真 思 考 , 不 能 因 为 热 潮 涌 动 失 去 了 方 向 。
jl1.setBounds(400,100,50,30);// 改动 3
grade.setBounds(440,100,50,30);
jtx.setBounds(30,30,300,200);
jl.setBounds(50,250,60,30);
jb1.setBounds(90,350,80,30);
jb2.setBounds(195,350,80,30);
ans.setBounds(100,250,80,30);
jb3.setBounds(190,250,80,30);
end.setBounds(410,180,80,30);
jb1.addActionListener(this);
jb2.addActionListener(this);
jb3.addActionListener(this);
end.addActionListener(this);
this.add(jb1);
this.add(jl);
this.add(jl1);
this.add(jb2);
this.add(ans);
this.add(jb3);
this.add(jtx);
this.add(end);
this.add(grade);
}
void
display(){
JFrame frame=new JFrame(" 答题页面");
frame.setLocationRelativeTo(null);
frame.add(this);
frame.setVisible(true);
frame.setSize(600, 500);// 改动 4
}
public void actionPerformed(ActionEvent e){
if(e.getSource()==jb1){
if(p>0){
try{
p--;
StringBuffer buf=new ClobDemo02().readcontent(np[p]);
ds=new String(buf);
jtx.setText(ds);
}catch (Exception ew) {
// TODO: handle exception
}
}
}else
if(e.getSource()==jb2){
p+=1;
if(p<5){
try{
StringBuffer buf=new ClobDemo02().readcontent(np[p]);
ds=new String(buf);
//System.out.println(ds);
jtx.setText(ds);
}catch (Exception ew) {
// TODO: handle exception
}
}else
{
JOptionPane.showMessageDialog(null, " 题已经答完应该交卷了");
大 学 习 大 讨 论 大 调 研 并 非 是 大 而 空 , 大 而 虚 , 大 而 泛 , 学 习 什 么 , 如 何 来 学 习 , 讨 论 什 么 , 从 哪 些 方 面 来 讨 论 , 调 研 什 么 , 如 何 调 研 , 这 都 需 要 认 真 思 考 , 不 能 因 为 热 潮 涌 动 失 去 了 方 向 。
大 学 习 大 讨 论 大 调 研 并 非 是 大 而 空 , 大 而 虚 , 大 而 泛 , 学 习 什 么 , 如 何 来 学 习 , 讨 论 什 么 , 从 哪 些 方 面 来 讨 论 , 调 研 什 么 , 如 何 调 研 , 这 都 需 要 认 真 思 考 , 不 能 因 为 热 潮 涌 动 失 去 了 方 向 。
}
}else
if(e.getSource()==jb3){
String f= ans.getText();
myAns[p]=f;
ans.setText("");
}else
if(e.getSource()==end){
System.out.println("hello
"+count);
try{
/* java.util.Date
nows=new
java.util.Date();
int hh=nows.getHours();
int mm=nows.getMinutes();
int lk=hh*60+mm;
String ti=new read_test_time().readtesttime(S1.choose);
String hh1=ti.substring(0, 3);
String mm1=ti.substring(4, 7);
int rt1=new Integer(hh1.charAt(0))*10+new Integer(hh1.charAt(1));
int rt2=new Integer(hh1.charAt(2))*10+new Integer(hh1.charAt(3));
int rt= (rt1)*60+rt2+3;*/
// if(lk>rt){
ClobDemo04 da=new ClobDemo04();
ClobDemo03 db=new ClobDemo03();
for(int i=0;i<count;i++){
trueAns[i]=da .readanswer(np[i]);
tscore[i]=db.readscore(np[i]);
}
for(int i=0;i<count;i++){
System.out.println(trueAns[i]);
System.out.println(tscore[i]);
}
myscore=0;
for(int i=0;i<count;i++){
if(trueAns[i].equals(myAns[i])){
myscore+=tscore[i];
}
}
String sr=""+myscore;
grade.setText(sr);
System.out.println(" 我的成绩:"+myscore);
String sd=new Read_S_name().readname(new Integer(S1.login));
System.out.println(sd);
new S_record().intsert_s_record(new Integer(S1.login), sd, myscore);
// } else{
// JOptionPane.showMessageDialog(null, " 现在不能交卷");
// }
//
}catch (Exception er) {
// TODO: handle exception
}
}
}
}