使用Python语言做一个网上投票系统,系统采用sqlite3存储数据,实现系统基本的查询、插入、删除、修改功能,执行各操作成功提示成功,失败提示原因,使用tk设计交互式界面,要直观体现系统功能 选择,并可循环调用,完整代码
时间: 2024-03-10 07:50:43 浏览: 127
好的,以下是使用Python语言做一个网上投票系统的完整代码:
```python
import sqlite3
import tkinter as tk
# 连接到数据库
conn = sqlite3.connect('vote.db')
# 创建一个投票表
cursor = conn.cursor()
cursor.execute('''CREATE TABLE IF NOT EXISTS vote
(id INTEGER PRIMARY KEY, name TEXT, count INTEGER)''')
conn.commit()
# 定义一个函数来更新投票数
def vote(name):
cursor.execute("SELECT count FROM vote WHERE name = ?", (name,))
result = cursor.fetchone()
if result:
count = result[0] + 1
cursor.execute("UPDATE vote SET count = ? WHERE name = ?", (count, name))
else:
cursor.execute("INSERT INTO vote (name, count) VALUES (?, ?)", (name, 1))
conn.commit()
# 定义一个函数来显示投票结果
def show_result():
cursor.execute("SELECT * FROM vote")
rows = cursor.fetchall()
result = "投票结果:\n"
for row in rows:
result += f"{row[1]}:{row[2]}票\n"
result_label.config(text=result)
# 定义一个函数来清空投票结果
def clear_result():
cursor.execute("DELETE FROM vote")
conn.commit()
show_result()
# 定义一个函数来处理投票
def handle_vote(name):
vote(name)
show_result()
# 定义一个函数来创建投票界面
def create_vote():
vote_window = tk.Toplevel()
vote_window.title("投票")
tk.Label(vote_window, text="请选择您要投票的人:").grid(row=0, column=0, padx=10, pady=10)
tk.Button(vote_window, text="张三", command=lambda: handle_vote("张三")).grid(row=1, column=0, padx=10, pady=10)
tk.Button(vote_window, text="李四", command=lambda: handle_vote("李四")).grid(row=2, column=0, padx=10, pady=10)
tk.Button(vote_window, text="王五", command=lambda: handle_vote("王五")).grid(row=3, column=0, padx=10, pady=10)
# 创建主界面
root = tk.Tk()
root.title("网上投票系统")
# 创建投票按钮
tk.Button(root, text="投票", command=create_vote).pack(padx=10, pady=10)
# 创建投票结果标签
result_label = tk.Label(root)
result_label.pack(padx=10, pady=10)
# 创建显示投票结果按钮
tk.Button(root, text="显示投票结果", command=show_result).pack(padx=10, pady=10)
# 创建清空投票结果按钮
tk.Button(root, text="清空投票结果", command=clear_result).pack(padx=10, pady=10)
# 进入主循环
root.mainloop()
# 关闭数据库连接
conn.close()
```
该系统使用了sqlite3来存储投票数据,每次投票时会更新数据库中对应人员的投票数,然后显示投票结果。用户可以通过点击投票按钮来进入投票界面,选择投票人员后即可进行投票。用户也可以通过点击显示投票结果按钮来查看当前投票结果,或者点击清空投票结果按钮来清空所有投票数据。
阅读全文