一直忘了给源码 (可不是我懒~
大二上学期写的,有点菜,大佬误骂..
如果对您有帮助请点赞哦~~
登录界面 Login_Interface.java
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Font;
import java.awt.GridBagLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.IOException;
import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.UIManager;
public class Login_Interface extends JFrame {
private static final long serialVersionUID = 1L; //定义程序序列化,1L是默认定义
protected static String s1;
protected static String s2;
protected static String s3;
private JLabel jl1 = new JLabel("欢迎来到考试系统");
private JLabel jl2 = new JLabel("请填写下列信息");
private JLabel jl3 = new JLabel(" ");
private JLabel jl4 = new JLabel(" ");
private JLabel JLName = new JLabel("姓名:");
private JLabel JLMagic = new JLabel("专业:");
private JLabel JLClass = new JLabel("班级:");
private JTextField JTName = new JTextField(10);
private JTextField JTMagic = new JTextField(10);
private JTextField JTClass = new JTextField(10);
private JButton JB1 = new JButton("开始考试");
private JButton JB2 = new JButton("重置");
private JButton JBave = new JButton("平均分查看");
private JPanel jp1 = new JPanel();
private JPanel jp2 = new JPanel();
private JPanel jp3 = new JPanel();
private JPanel jp4 = new JPanel();
private JPanel jp5 = new JPanel();
private JPanel jp6 = new JPanel();
private JPanel jp7 = new JPanel();
private void Event() {
JB1.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
if(JTName.getText().equals("") || JTClass.getText().equals("") || JTMagic.getText().equals("")) {
String s = "请输入完整信息";
JOptionPane.showMessageDialog(null, s,"提示",JOptionPane.ERROR_MESSAGE);
}else {
setVisible(false);
dispose();
s1 = JTName.getText();
s2 = JTClass.getText();
s3 = JTMagic.getText();
new Test_Interface();
}
}
});
JB2.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
JTName.setText(null);
JTMagic.setText(null);
JTClass.setText(null);
}
});
JBave.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
try {
new Average_Score();
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
});
}
public Login_Interface() {
this.setTitle("广州市×小学数学考试自动系统");
this.setSize(500, 450);
this.setLocationRelativeTo(null); //将此窗口置于屏幕的中央
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setLayout(new BorderLayout(20,20));
jl1.setFont(new Font("黑体",Font.BOLD,35));
jl1.setForeground(Color.blue);
jp1.add(jl1);
jp1.setLayout(new GridBagLayout());
this.add(jp1,BorderLayout.NORTH);
jl2.setFont(new Font("黑体",Font.BOLD,25));
jl2.setForeground(Color.red);
jp2.add(jl2);
JLName.setFont(new Font("黑体",Font.BOLD,15));
jp3.add(JLName);
jp3.add(JTName);
JLMagic.setFont(new Font("黑体",Font.BOLD,15));
jp4.add(JLMagic);
jp4.add(JTMagic);
JLClass.setFont(new Font("黑体",Font.BOLD,15));
jp5.add(JLClass);
jp5.add(JTClass);
jp6.add(jp2);
jp6.add(jp3);
jp6.add(jp4);
jp6.add(jp5);
jp6.setLayout(new GridLayout(4,2));
this.add(jp6,BorderLayout.CENTER);
jp6.setBorder(BorderFactory.createLoweredBevelBorder());
jp7.add(JBave);
jp7.add(jl4);
jp7.add(JB1);
jp7.add(jl3);
jp7.add(JB2);
this.add(jp7,BorderLayout.SOUTH);
//美化界面
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
} catch (Exception e) {
e.printStackTrace();
}
Event();
this.setVisible(true);
}
public static void main(String[] args) {
new Login_Interface();
}
}
题目界面 Test_Interface.java
import java.awt.BorderLayout;
import java.awt.CardLayout;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Timer; //Timer用于管理在后台执行的延迟任务或周期性任务
import java.util.TimerTask; //其中的任务是用java.util.TimerTask表示
import javax.swing.BorderFactory;//边框
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.UIManager;
public class Test_Interface extends JFrame{
private static final long serialVersionUID = 1L; //定义程序序列化,1L是默认定义
private int max = 50;
private int a = 0;
private int b = 0;
private int c = 0;
private int count = 1;
private JLabel JLgross = new JLabel("共10页");
private JLabel JLpage = new JLabel(); //页码控制
private JLabel jl1 = new JLabel(" "); //插两个空格进去
private JLabel JLtime = new JLabel("倒计时:");
private JLabel JLhour = new JLabel();
private JLabel JLminute = new JLabel();
private JLabel JLseconds = new JLabel();
private JButton JB1 = new JButton("提交考卷");
private JButton b1 = new JButton("首页");
private JButton b2 = new JButton("上一页");
private JButton b3 = new JButton("下一页");
private JButton b4 = new JButton("尾页");
private JLabel jl[] = new JLabel[50]; //50个题目标签
private JTextField jtf[] = new JTextField[50];//50个文本框,存储答案
private JPanel pnl1 = new JPanel();
private JPanel pnl2 = new JPanel();
private JPanel pnl3 = new JPanel();
private JPanel pnl4 = new JPanel();
static CardLayout care = new CardLayout();
int[] answer=new int[max];
String[] studentAnswer=new String[max];
private File file = null;
private FileWriter fw1 = null;
public long time = 5400;
private void countDown() {
Timer timer = new Timer();
timer.schedule(new TimerTask() {
public void run() {
time--;
long hour = time / 3600;
long minute = (time - hour * 3600) / 60;
long seconds = time - hour * 3600 - minute * 60;
JLhour.setText(hour + "时");
JLminute.setText(minute + "分");
JLseconds.setText(seconds + "秒");
if( time == 0 ) {
JB1.doClick(); //调用提交试卷按钮
}
}
}, 0, 1000);
}
private void Event() {
//提交试卷按钮
JB1.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
int correctAnswer=0;
for(int i=0,k=0;i<max;i++,k++){
studentAnswer[i]=jtf[k].getText().trim();
try {
if(Integer.parseInt(studentAnswer[i]) == answer[k]){
//将string字符串类型转换为integer整数类型
correctAnswer++;
}
}catch(NumberFormatException u) {
}
}
int score = 100*(int)correctAnswer/max;
setVisible(false);
dispose();
String s="共50道题\n";
s=s+"答对"+correctAnswer+"道题\n";
s=s+"答错"+(max-correctAnswer)+"道题\n";
s=s+"成绩"+String.format("%d",score)+"分\n";
file = new File("信息收集.txt");
if(!file.exists()){
try {
file.createNewFile();
}catch (IOException u1) {
u1.printStackTrace();
}
}
try {
fw1 = new FileWriter(file, true);
fw1.write("姓名 " + Login_Interface.s1 + " 专业 " + Login_Interface.s3
+ " 班级 " + Login_Interface.s2 + " 考试得分:" + score + "\n");
fw1.close();
}catch(IOException u2) {
u2.printStackTrace();
}
JOptionPane.showMessageDialog(null, s,"考试结束",JOptionPane.ERROR_MESSAGE);
}
});
//首页
b1.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
care.first(pnl3);
count = 1;
JLpage.setText("第" + count + "页");
}
});
//前一页
b2.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
care.previous(pnl3);
if ( count > 1 && count <=10) {
count --;
}else {
count = 10 ;
}
JLpage.setText("第" + count + "页");
}
});
//下一页
b3.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
care.next(pnl3);
if ( count >= 1 && count < 10 ) {
count ++;
}else {
count = 1 ;
}
JLpage.setText("第" + count + "页");
}
});
//尾页
b4.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
care.last(pnl3);
count = 10;
JLpage.setText("第" + count + "页");
}
});
}
public Test_Interface() {
this.setTitle("开始考试");
this.setSize(550, 400);
this.setLocationRelativeTo(null); //将此窗口置于屏幕的中央
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setLayout(new BorderLayout(20,20)); //设置 各组件间水平垂直间隔为20像素
countDown();
pnl1.add(JLhour);
pnl1.add(JLminute);
pnl1.add(JLseconds);
JLpage.setText("第" + count + "页");
pnl2.setLayout(new FlowLayout());
pnl2.add(JLgross);
pnl2.add(JLpage);//页数
pnl2.add(jl1);
pnl2.add(JLtime);
pnl2.add(pnl1);
pnl2.add(JB1);
this.add(pnl2,BorderLayout.NORTH);
pnl3.setLayout(care);
this.add(pnl3,BorderLayout.CENTER);
pnl3.setBorder(BorderFactory.createLoweredBevelBorder()); //边框
for(int i = 0 , k = 0; i < 10 ; i++ ) {
JPanel p = new JPanel();
p.setLayout(new GridLayout(5,2,20,20)); //网格布局5行2列,水平垂直间距都设为20像素
for(int j = 0 ; j < 5 ; j++) {
a=(int)(Math.random()*100+1);
b=(int)(Math.random()*100+1);
c=(int)(Math.random()*100+1);
jl[k] = new JLabel(a + "+" + b + "-" + c + "=");
jl[k].setFont(new Font("黑体",Font.BOLD,15));
p.add(jl[k]);
answer[k] = a + b - c;
jtf[k] = new JTextField(6);
p.add(jtf[k]);
k++;
}
pnl3.add(p);
}
pnl4.setLayout(new GridLayout(1,4));
pnl4.add(b1);
pnl4.add(b2);
pnl4.add(b3);
pnl4.add(b4);
this.add(pnl4, BorderLayout.SOUTH);
//美化界面
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
} catch (Exception e) {
e.printStackTrace();
}
Event();
setVisible(true);
}
// public static void main(String[] args){
//
// new Test_Interface();
//
// }
}
平均分统计 Average_Score.java
import java.awt.Color;
import java.awt.Font;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import javax.swing.JFrame;
import javax.swing.JLabel;
public class Average_Score {
private int a;
private double c = 0;
private double d = 0;
private int e;
private String f;
private static JFrame h = new JFrame( );
private static JLabel i = new JLabel(); //标签
private static JLabel j = new JLabel();
public Average_Score() throws IOException{
BufferedReader input = new BufferedReader(new FileReader("信息收集.txt"));
while(( f = input.readLine() ) != null)
{
System.out.println(input.readLine());
String k[] = f.split(":");
a = Integer.parseInt((k[1]));
c = c + a;
e ++;
}
d = c / e;
if(e == 0) {
d = 0;
}
h.setTitle("平均分查看");
h.setLayout(null); //取消默认布局
h.setSize(400,180); //设置大小
h.setLocationRelativeTo(null); //使窗口显示在屏幕中央
h.getContentPane().setBackground(Color.YELLOW); //内容面板背景
i.setText("参加考试人数为 "+e);
h.getContentPane().add(i);
i.setBounds(45, 15, 120, 50);
j.setText("平均分为 "+d);
h.getContentPane().add(j);
j.setBounds(45, 50, 120, 50);
h.setVisible(true);
}
}
没咯.水平有限,喜欢点赞哦~
更多推荐
Java实现小学生数学考试系统(超级简易版 源码)
发布评论