帮我写一份4000字的Python的学生管理系统的课程设计报告
时间: 2024-01-21 07:20:17 浏览: 90
好的,以下是一份可以参考的Python学生管理系统课程设计报告,仅供参考。
# 课程设计报告:Python学生管理系统
## 1. 项目简介
Python学生管理系统是一款基于Python语言开发的学生信息管理系统,旨在帮助学校或教育机构更好地管理学生信息,包括添加/修改/删除学生信息、查询学生信息、统计学生信息等功能。
## 2. 项目背景
学生信息管理是学校或教育机构必须面对的一项重要任务,传统的手工管理方式效率低下、易出错。因此,开发一款高效、易于使用的学生信息管理系统具有重要的现实意义。
## 3. 项目目标
本项目的目标是开发一款Python学生管理系统,实现以下功能:
- 添加学生信息
- 修改学生信息
- 删除学生信息
- 查询学生信息
- 统计学生信息
## 4. 系统设计
本系统采用Python语言开发,使用MySQL数据库存储学生信息。系统主要由以下几个模块组成:
### 4.1 数据库模块
本系统采用MySQL数据库存储学生信息,使用Python MySQL Connector模块进行数据库连接和操作。数据库设计如下:
```sql
CREATE DATABASE IF NOT EXISTS student;
USE student;
CREATE TABLE IF NOT EXISTS student_info (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(50) NOT NULL,
gender ENUM('男', '女') NOT NULL,
age INT NOT NULL,
class VARCHAR(50) NOT NULL,
phone VARCHAR(20) NOT NULL,
address VARCHAR(100)
);
```
### 4.2 添加学生信息模块
添加学生信息模块实现向数据库中添加新的学生信息。用户需要输入学生的姓名、性别、年龄、班级、电话和地址等信息。添加学生信息的代码如下:
```python
def add_student():
name = input("请输入学生姓名:")
gender = input("请输入学生性别(男/女):")
age = int(input("请输入学生年龄:"))
class_name = input("请输入学生班级:")
phone = input("请输入学生电话:")
address = input("请输入学生地址:")
sql = "INSERT INTO student_info (name, gender, age, class, phone, address) \
VALUES (%s, %s, %s, %s, %s, %s)"
val = (name, gender, age, class_name, phone, address)
try:
cursor.execute(sql, val)
db.commit()
print("添加学生信息成功")
except:
db.rollback()
print("添加学生信息失败")
```
### 4.3 修改学生信息模块
修改学生信息模块实现对数据库中已有的学生信息进行修改。用户需要输入要修改的学生姓名和新的学生信息。修改学生信息的代码如下:
```python
def modify_student():
name = input("请输入要修改的学生姓名:")
sql = "SELECT * FROM student_info WHERE name=%s"
val = (name, )
cursor.execute(sql, val)
result = cursor.fetchone()
if result == None:
print("该学生不存在")
return
print("该学生原信息为:")
print_student(result)
new_name = input("请输入新的学生姓名:")
new_gender = input("请输入新的学生性别(男/女):")
new_age = int(input("请输入新的学生年龄:"))
new_class = input("请输入新的学生班级:")
new_phone = input("请输入新的学生电话:")
new_address = input("请输入新的学生地址:")
sql = "UPDATE student_info SET name=%s, gender=%s, age=%s, class=%s, phone=%s, address=%s \
WHERE id=%s"
val = (new_name, new_gender, new_age, new_class, new_phone, new_address, result[0])
try:
cursor.execute(sql, val)
db.commit()
print("修改学生信息成功")
except:
db.rollback()
print("修改学生信息失败")
```
### 4.4 删除学生信息模块
删除学生信息模块实现从数据库中删除指定的学生信息。用户需要输入要删除的学生姓名。删除学生信息的代码如下:
```python
def delete_student():
name = input("请输入要删除的学生姓名:")
sql = "SELECT * FROM student_info WHERE name=%s"
val = (name, )
cursor.execute(sql, val)
result = cursor.fetchone()
if result == None:
print("该学生不存在")
return
print("该学生信息为:")
print_student(result)
confirm = input("确定要删除该学生信息吗?(Y/N)")
if confirm.upper() == 'Y':
sql = "DELETE FROM student_info WHERE id=%s"
val = (result[0], )
try:
cursor.execute(sql, val)
db.commit()
print("删除学生信息成功")
except:
db.rollback()
print("删除学生信息失败")
else:
print("取消删除操作")
```
### 4.5 查询学生信息模块
查询学生信息模块实现从数据库中查询指定的学生信息。用户需要输入要查询的学生姓名。查询学生信息的代码如下:
```python
def query_student():
name = input("请输入要查询的学生姓名:")
sql = "SELECT * FROM student_info WHERE name=%s"
val = (name, )
cursor.execute(sql, val)
result = cursor.fetchone()
if result == None:
print("该学生不存在")
else:
print_student(result)
def print_student(student):
print("ID:%d" % student[0])
print("姓名:%s" % student[1])
print("性别:%s" % student[2])
print("年龄:%d" % student[3])
print("班级:%s" % student[4])
print("电话:%s" % student[5])
print("地址:%s" % student[6])
```
### 4.6 统计学生信息模块
统计学生信息模块实现对数据库中所有学生信息进行统计,包括学生总数、男女比例、各班级学生数量等。统计学生信息的代码如下:
```python
def statistics_student():
sql = "SELECT COUNT(*) FROM student_info"
cursor.execute(sql)
total_num = cursor.fetchone()[0]
sql = "SELECT COUNT(*) FROM student_info WHERE gender='男'"
cursor.execute(sql)
male_num = cursor.fetchone()[0]
female_num = total_num - male_num
print("学生总数:%d" % total_num)
print("男生人数:%d,占比:%.2f%%" % (male_num, male_num/total_num*100))
print("女生人数:%d,占比:%.2f%%" % (female_num, female_num/total_num*100))
sql = "SELECT class, COUNT(*) FROM student_info GROUP BY class"
cursor.execute(sql)
result = cursor.fetchall()
for row in result:
print("班级:%s,学生人数:%d" % (row[0], row[1]))
```
## 5. 系统测试
为了保证系统的稳定性和正确性,我们进行了一系列的测试。
### 5.1 添加学生信息测试
我们使用不同的学生信息进行测试,添加成功后在数据库中查询是否添加成功。测试结果均符合预期。
### 5.2 修改学生信息测试
我们修改已有的学生信息,修改成功后在数据库中查询是否修改成功。测试结果均符合预期。
### 5.3 删除学生信息测试
我们删除已有的学生信息,删除成功后在数据库中查询是否删除成功。测试结果均符合预期。
### 5.4 查询学生信息测试
我们查询已有的学生信息,查询结果与数据库中的信息一致。测试结果均符合预期。
### 5.5 统计学生信息测试
我们统计数据库中所有学生信息,统计结果符合预期。
## 6. 总结
本项目成功实现了Python学生管理系统的设计和开发,具有一定的实用性和参考价值。在开发过程中,我们熟悉了Python语言以及MySQL数据库的使用,掌握了Python在数据库操作方面的基础知识和技能。在后续的学习和实践中,我们将继续深化对Python的理解和运用。
阅读全文