java设计一个投票统计的系统,在第一个界面有三个投票按钮,被投票人分别是张三、李四、王五,点击哪个投票按钮,就在一个数据库的vote表中显示被投票人的姓名,并累计一次被投票人的得票情况,运用sql语句。也可以先在右下角的文本框中输入想要推荐投给谁之后,再点击"另外推荐"按钮去投票。投票之后,程序自动将被投票人的姓名添加到vote表中;在第二个界面,分别显示张三、李四、王五(及其他被推荐的人)各自的得票数;在第三个界面,根据查询结果,提取出姓名、票数,从而更新界面中的内容
时间: 2024-02-12 20:02:54 浏览: 133
java网上投票系统
4星 · 用户满意度95%
好的,这是一个比较完整的系统,我可以为您提供一些设计思路和代码实现的参考。
首先,我们需要设计一个数据库表来存储投票信息,可以创建一个名为 vote 的表,包含以下字段:
- id:自增长的唯一标识符
- name:被投票人的姓名
- count:得票数
然后,我们需要在 Java 中编写代码来实现投票功能。可以创建一个名为 VoteSystem 的类,包含以下方法:
1. connectDB():连接数据库,返回一个 Connection 对象。
```java
public Connection connectDB() {
Connection conn = null;
try {
Class.forName("com.mysql.jdbc.Driver");
String url = "jdbc:mysql://localhost:3306/vote_system";
String user = "root";
String password = "password";
conn = DriverManager.getConnection(url, user, password);
} catch (ClassNotFoundException | SQLException e) {
e.printStackTrace();
}
return conn;
}
```
2. vote(String name):根据被投票人的姓名,在数据库中新增一条投票记录,如果已存在记录则更新得票数。
```java
public void vote(String name) {
Connection conn = connectDB();
try {
Statement stmt = conn.createStatement();
String sql = "SELECT * FROM vote WHERE name = '" + name + "'";
ResultSet rs = stmt.executeQuery(sql);
if (rs.next()) {
int count = rs.getInt("count") + 1;
sql = "UPDATE vote SET count=" + count + " WHERE name='" + name + "'";
stmt.executeUpdate(sql);
} else {
sql = "INSERT INTO vote (name, count) VALUES ('" + name + "', 1)";
stmt.executeUpdate(sql);
}
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
```
3. getVoteCount():从数据库中读取所有投票记录,并返回一个 Map,其中 key 是被投票人的姓名,value 是得票数。
```java
public Map<String, Integer> getVoteCount() {
Map<String, Integer> voteCount = new HashMap<>();
Connection conn = connectDB();
try {
Statement stmt = conn.createStatement();
String sql = "SELECT * FROM vote";
ResultSet rs = stmt.executeQuery(sql);
while (rs.next()) {
String name = rs.getString("name");
int count = rs.getInt("count");
voteCount.put(name, count);
}
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
return voteCount;
}
```
最后,我们可以在界面中添加按钮和文本框,通过监听器来调用上述方法实现投票和显示投票结果。例如,在第一个界面中,可以添加三个按钮和一个文本框,点击按钮时调用 vote() 方法,输入文本框时保存需要推荐的人的姓名。在第二个界面中,可以调用 getVoteCount() 方法来获取投票结果,并显示在界面上。在第三个界面中,可以根据查询结果来更新界面的内容。
希望这些代码可以帮助您完成投票统计系统的开发。
阅读全文