如何编写一个学生管理系统
时间: 2024-05-10 16:17:08 浏览: 0
编写学生管理系统需要考虑以下几个方面:
1. 数据库设计:需要设计数据库表,包括学生信息、课程信息、成绩信息等。
2. 用户界面设计:需要设计用户界面,包括登录界面、学生信息录入界面、课程信息录入界面、成绩录入界面、查询界面等。
3. 功能实现:需要实现各种功能,包括添加学生信息、添加课程信息、添加成绩信息、查询学生信息、查询课程信息、查询成绩信息等。
以下是一个简单的学生管理系统的代码示例:
```python
import sqlite3
def create_database():
conn = sqlite3.connect('students.db')
c = conn.cursor()
c.execute('''CREATE TABLE IF NOT EXISTS students
(id INTEGER PRIMARY KEY,
name TEXT,
age INTEGER,
gender TEXT)''')
c.execute('''CREATE TABLE IF NOT EXISTS courses
(id INTEGER PRIMARY KEY,
name TEXT)''')
c.execute('''CREATE TABLE IF NOT EXISTS grades
(id INTEGER PRIMARY KEY,
student_id INTEGER,
course_id INTEGER,
grade INTEGER)''')
conn.commit()
conn.close()
def add_student(name, age, gender):
conn = sqlite3.connect('students.db')
c = conn.cursor()
c.execute("INSERT INTO students (name, age, gender) VALUES (?, ?, ?)", (name, age, gender))
conn.commit()
conn.close()
def add_course(name):
conn = sqlite3.connect('students.db')
c = conn.cursor()
c.execute("INSERT INTO courses (name) VALUES (?)", (name,))
conn.commit()
conn.close()
def add_grade(student_id, course_id, grade):
conn = sqlite3.connect('students.db')
c = conn.cursor()
c.execute("INSERT INTO grades (student_id, course_id, grade) VALUES (?, ?, ?)", (student_id, course_id, grade))
conn.commit()
conn.close()
def get_student(id):
conn = sqlite3.connect('students.db')
c = conn.cursor()
c.execute("SELECT * FROM students WHERE id=?", (id,))
result = c.fetchone()
conn.close()
return result
def get_course(id):
conn = sqlite3.connect('students.db')
c = conn.cursor()
c.execute("SELECT * FROM courses WHERE id=?", (id,))
result = c.fetchone()
conn.close()
return result
def get_grade(id):
conn = sqlite3.connect('students.db')
c = conn.cursor()
c.execute("SELECT * FROM grades WHERE id=?", (id,))
result = c.fetchone()
conn.close()
return result
def get_all_students():
conn = sqlite3.connect('students.db')
c = conn.cursor()
c.execute("SELECT * FROM students")
result = c.fetchall()
conn.close()
return result
def get_all_courses():
conn = sqlite3.connect('students.db')
c = conn.cursor()
c.execute("SELECT * FROM courses")
result = c.fetchall()
conn.close()
return result
def get_all_grades():
conn = sqlite3.connect('students.db')
c = conn.cursor()
c.execute("SELECT * FROM grades")
result = c.fetchall()
conn.close()
return result
# 创建数据库
create_database()
# 添加学生信息
add_student('张三', 20, '男')
add_student('李四', 21, '女')
add_student('王五', 22, '男')
# 添加课程信息
add_course('英语')
add_course('数学')
add_course('计算机')
# 添加成绩信息
add_grade(1, 1, 80)
add_grade(1, 2, 90)
add_grade(2, 1, 85)
add_grade(2, 2, 95)
add_grade(3, 1, 90)
add_grade(3, 2, 95)
add_grade(3, 3, 100)
# 查询学生、课程、成绩信息
print(get_student(1))
print(get_course(1))
print(get_grade(1))
# 查询所有学生、课程、成绩信息
print(get_all_students())
print(get_all_courses())
print(get_all_grades())
```
以上示例代码使用 SQLite3 数据库,实现了添加、查询学生、课程、成绩信息的功能。你可以根据自己的需求做进一步的修改和优化。