Java和mysql写一个简单的在线考试系统
时间: 2024-03-10 15:50:17 浏览: 85
基于Java与MySQL开发的在线考试系统
5星 · 资源好评率100%
好的,下面是一个简单的基于Java和MySQL的在线考试系统的代码示例。
首先,我们需要创建一个MySQL数据库,里面有两张表:
- 用户表(user):存储用户的账号和密码信息。
- 试题表(question):存储考试题目和答案信息。
用户表(user):
| 字段 | 类型 | 描述 |
| ---- | -------- | -------- |
| id | int | 主键 |
| name | varchar | 用户名 |
| pwd | varchar | 密码 |
试题表(question):
| 字段 | 类型 | 描述 |
| -------- | -------- | -------- |
| id | int | 主键 |
| content | varchar | 题目内容 |
| option_a | varchar | 选项A |
| option_b | varchar | 选项B |
| option_c | varchar | 选项C |
| option_d | varchar | 选项D |
| answer | varchar | 正确答案 |
然后,我们可以使用Java中的JDBC(Java Database Connectivity)来连接MySQL数据库,并实现在线考试系统的功能。下面是示例代码:
```java
import java.sql.*;
import java.util.*;
public class ExamSystem {
// 数据库连接信息
private static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";
private static final String DB_URL = "jdbc:mysql://localhost:3306/exam_system";
private static final String USER = "root";
private static final String PASS = "123456";
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
int score = 0; // 记录用户得分
try {
// 注册JDBC驱动
Class.forName(JDBC_DRIVER);
// 打开连接
System.out.println("连接数据库...");
conn = DriverManager.getConnection(DB_URL, USER, PASS);
// 登录系统
System.out.println("欢迎使用在线考试系统!");
System.out.print("请输入用户名:");
String username = sc.nextLine();
System.out.print("请输入密码:");
String password = sc.nextLine();
String sql = "SELECT * FROM user WHERE name='" + username + "' AND pwd='" + password + "'";
stmt = conn.createStatement();
rs = stmt.executeQuery(sql);
if (rs.next()) {
System.out.println("登录成功!");
} else {
System.out.println("用户名或密码错误,登录失败!");
return;
}
// 开始考试
System.out.println("考试开始!");
sql = "SELECT * FROM question";
rs = stmt.executeQuery(sql);
while (rs.next()) { // 循环遍历题目
System.out.println("题目:" + rs.getString("content"));
System.out.println("A." + rs.getString("option_a"));
System.out.println("B." + rs.getString("option_b"));
System.out.println("C." + rs.getString("option_c"));
System.out.println("D." + rs.getString("option_d"));
System.out.print("请输入答案(A/B/C/D):");
String userAnswer = sc.nextLine(); // 获取用户输入的答案
if (userAnswer.equalsIgnoreCase(rs.getString("answer"))) { // 判断答案是否正确
System.out.println("回答正确!");
score += 20; // 累计用户得分
} else {
System.out.println("回答错误!");
}
}
System.out.println("考试结束!");
System.out.println("您的得分为:" + score); // 输出用户得分
} catch (SQLException se) {
// 处理JDBC错误
se.printStackTrace();
} catch (Exception e) {
// 处理Class.forName错误
e.printStackTrace();
} finally {
// 关闭资源
try {
if (rs != null) {
rs.close();
}
} catch (SQLException se2) {
}
try {
if (stmt != null) {
stmt.close();
}
} catch (SQLException se2) {
}
try {
if (conn != null) {
conn.close();
}
} catch (SQLException se) {
se.printStackTrace();
}
}
}
}
```
以上代码实现了一个简单的在线考试系统,用户需要先输入账号和密码登录系统,然后系统会从数据库中读取题目信息,用户需要逐一回答,系统会根据用户的回答情况给出相应的提示,并计算出用户的得分。
阅读全文