写个学生管理系统,并用数据库存储数据
时间: 2023-08-07 22:42:59 浏览: 66
好的,以下是一个简单的学生管理系统的设计和实现过程:
1. 数据库设计
我们可以使用 MySQL 数据库来存储学生信息,首先需要设计数据库表,如下所示:
```
CREATE TABLE `students` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(50) NOT NULL,
`age` int(11) NOT NULL,
`gender` varchar(10) NOT NULL,
`major` varchar(50) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4;
```
其中,`students` 表包含以下字段:
- `id`:学生编号,自增长整数类型;
- `name`:学生姓名,非空字符串类型;
- `age`:学生年龄,整数类型;
- `gender`:学生性别,非空字符串类型;
- `major`:学生专业,非空字符串类型。
2. 实现代码
接下来,我们可以使用 Python 语言和 MySQL 数据库连接器 pymysql 来实现学生管理系统。代码如下所示:
```python
# -*- coding: utf-8 -*-
import pymysql
# 连接数据库
conn = pymysql.connect(
host='localhost',
port=3306,
user='root',
password='123456',
db='test',
charset='utf8mb4'
)
# 添加学生
def add_student(name, age, gender, major):
try:
with conn.cursor() as cursor:
sql = "INSERT INTO students (name, age, gender, major) VALUES (%s, %s, %s, %s)"
cursor.execute(sql, (name, age, gender, major))
conn.commit()
print("Add student success!")
except Exception as e:
conn.rollback()
print("Add student failed:", e)
# 删除学生
def delete_student(id):
try:
with conn.cursor() as cursor:
sql = "DELETE FROM students WHERE id=%s"
cursor.execute(sql, (id,))
conn.commit()
print("Delete student success!")
except Exception as e:
conn.rollback()
print("Delete student failed:", e)
# 修改学生
def update_student(id, name, age, gender, major):
try:
with conn.cursor() as cursor:
sql = "UPDATE students SET name=%s, age=%s, gender=%s, major=%s WHERE id=%s"
cursor.execute(sql, (name, age, gender, major, id))
conn.commit()
print("Update student success!")
except Exception as e:
conn.rollback()
print("Update student failed:", e)
# 查询学生
def query_student(id):
try:
with conn.cursor() as cursor:
sql = "SELECT * FROM students WHERE id=%s"
cursor.execute(sql, (id,))
result = cursor.fetchone()
if result:
print("ID\tName\tAge\tGender\tMajor")
print("{0}\t{1}\t{2}\t{3}\t{4}".format(result[0], result[1], result[2], result[3], result[4]))
else:
print("No student found!")
except Exception as e:
print("Query student failed:", e)
# 显示全部学生
def show_students():
try:
with conn.cursor() as cursor:
sql = "SELECT * FROM students"
cursor.execute(sql)
results = cursor.fetchall()
if results:
print("ID\tName\tAge\tGender\tMajor")
for result in results:
print("{0}\t{1}\t{2}\t{3}\t{4}".format(result[0], result[1], result[2], result[3], result[4]))
else:
print("No student found!")
except Exception as e:
print("Show students failed:", e)
# 关闭数据库连接
def close_connection():
conn.close()
# 测试代码
if __name__ == '__main__':
add_student('Tom', 20, 'male', 'Computer Science')
add_student('Lucy', 21, 'female', 'Mathematics')
show_students()
update_student(1, 'Jerry', 22, 'male', 'Physics')
query_student(1)
delete_student(2)
show_students()
close_connection()
```
在以上代码中,我们定义了以下函数:
- `add_student(name, age, gender, major)`:添加学生,参数为学生姓名、年龄、性别和专业;
- `delete_student(id)`:删除学生,参数为学生编号;
- `update_student(id, name, age, gender, major)`:修改学生,参数为学生编号、姓名、年龄、性别和专业;
- `query_student(id)`:查询学生,参数为学生编号;
- `show_students()`:显示全部学生;
- `close_connection()`:关闭数据库连接。
在测试代码中,我们先添加了两个学生,然后显示全部学生信息,接着修改了学生信息并查询学生,最后删除了一个学生并再次显示全部学生信息。
3. 运行结果
运行以上代码后,可以得到如下输出结果:
```
Add student success!
Add student success!
ID Name Age Gender Major
1 Tom 20 male Computer Science
2 Lucy 21 female Mathematics
Update student success!
ID Name Age Gender Major
1 Jerry 22 male Physics
Delete student success!
ID Name Age Gender Major
1 Jerry 22 male Physics
```
以上就是一个简单的学生管理系统的设计和实现过程。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)