python学生信息管理系统、sqlite_使用 python 与 sqlite3 实现简易的学生信息管理系统...

使用 python 与 sqlite3 实现简易的学生信息管理系统

需求分析

一个简单的学生信息管理系统,应该包括如下功能

可以对学生信息进行增删改查

添加学生信息(增)

删除学生信息(删)

修改学生信息(改)

查询学生信息(查)

退出管理系统,要保存数据,方便下次登录时,仍然能查看之前添加或修改的数据

设计思路

先设计一个数据表,以方便存储数据。我们简单设计一个数据表如下

Id

Class

Student_name

Birthday

20180103

18计科1班

小秦

1999-06-01

20190405

19软工2班

小路

2000-07-04

20200611

20管理3班

小明

2001-12-11

对应的创建数据表的 SQL 语句如下

CREATE TABLE IF NOT EXISTS students (

(Id INT(12) PRIMARY KEY NOT NULL,

Class VARCHAR(25) NOT NULL,

Student_name VARCHAR(10) NOT NULL,

Birthday DATE NOT NULL)

根据之前的需求分析,我们不妨使用面向对象编程,目前我们可以大概写一下代码的结构——

class StudentManageSystem(object):

def __init__(self):

pass

def read_all_student(self):

'''查看全部学生信息'''

pass

def read_student(self):

'''查看指定学生信息'''

pass

def add_student(self):

'''添加学生信息'''

pass

def update_student(self):

'''更新学生信息'''

pass

def delete_student(self):

'''删除学生信息'''

pass

具体代码实现

管理系统的初始化设置

初始化内容应该包含——

对数据库 sqlite3 的连接

可以直接操作数据库的变量(在 sqlite3 中,直接操作数据的是 cursor())

判断数据表是否存在,如果没有就需要创建数据表

class StudentManagerSystem(object):

def __init__(self):

# 连接数据库 student_info.db, 如果不存在就创建

self.conn = sqlite3.connect('student_info.db')

# 定义操作数据库的 cursor()

self.cursor = self.conn.cursor()

# 判断数据表是否存在,如果不存在就创建

self.cursor.execute('''CREATE TABLE IF NOT EXISTS students

(Id INT(12) PRIMARY KEY NOT NULL,

Class VARCHAR(25) NOT NULL,

Student_name VARCHAR(10) NOT NULL,

Birthday DATE NOT NULL)''')

查看全部学生信息

def read_all_student(self) -> List[tuple]:

self.cursor.execute('SELECT * FROM students')

student_list = self.cursor.fetchall()

if not student_list:

print('目前系统中没有存有任何信息!')

print('\n')

return student_list

print('学号\t\t姓名\t\t年龄\t\t住址')

for student in student_list:

print(student)

print('\n')

return student_list

查看指定学生的信息

def read_student(self) -> None:

number = input('请输入要查询学生的学号: ')

self.cursor.execute(

'SELECT * FROM students where id=?', (number,))

result = self.cursor.fetchall()

if not result:

print('所查询学号不存在!')

print('\n')

return

print('查询结果如下:')

print(result)

print('\n')

添加学生信息

def add_student(self) -> None:

number = input('请输入学生的学号: ')

while True:

if self._is_in_database(number):

print('该学号已存在!')

number = input('请重新输入学号: ')

else:

break

_class = input('请输入班级: ')

name = input('请输入学生的姓名: ')

birthday = input('请输入学生的生日(格式 yy-mm-dd): ')

self.cursor.execute(

'INSERT INTO students VALUES (?, ?, ?, ?)',

(number, _class, name, birthday))

# 添加学生信息, 要进行数据提交, 这样数据才会保存

self.conn.commit()

print('信息添加成功!')

print('\n')

更新学生的信息

def update_student(self) -> None:

number = input('请输入要修改信息的学生学号: ')

if not self._is_in_database(number):

print('要修改信息的学号不存在!')

print('\n')

return

_class = input('请输入新的班级: ')

name = input('请输入新的姓名: ')

birthday = input('请输入新的生日(格式 yy-mm-dd): ')

self.cursor.execute(

'''UPDATE students SET Class=?,

Student_name=?,

Birthday=? WHERE id=?''',

(_class, name, birthday, number))

# 对数据进行修改, 要提交事务, 这样修改才会保存

self.conn.commit()

print('信息修改成功!')

print('\n')

删除学生的信息

def delete_student(self) -> None:

number = input('请输入要删除信息的学生学号: ')

if not self._is_in_database(number):

print('要删除的学号不存在!')

print('\n')

return

self.cursor.execute(

'DELETE FROM students WHERE id=?', (number,))

# 删除信息, 要进行事物提交, 这样更改才会保存

self.conn.commit()

print('信息删除成功!')

print('\n')

判断学生信息是否在数据库中

def _is_in_database(self, number: str) -> bool:

self.cursor.execute(

'SELECT * FROM students WHERE id=?', (number,))

result = self.cursor.fetchall()

return True if result else False

关闭数据库连接

def close_connection_database(self) -> None:

self.conn.close()

最终的实现

import sqlite3

from typing import List

if __name__ == '__main__':

studentManagerSystem = StudentManagerSystem()

while True:

print("======欢迎来到学生管理系统======")

print('1.查看所有学生信息')

print('2.添加学生信息')

print('3.修改学生信息')

print('4.删除学生信息')

print('5.查询某个学生信息')

print('6.退出系统')

choiceNumber = input('请输入你的选择: ')

if choiceNumber == '1':

studentManagerSystem.read_all_student()

elif choiceNumber == '2':

studentManagerSystem.add_student()

elif choiceNumber == '3':

studentManagerSystem.update_student()

elif choiceNumber == '4':

studentManagerSystem.delete_student()

elif choiceNumber == '5':

studentManagerSystem.read_student()

elif choiceNumber == '6':

studentManagerSystem.close_connection_database()

break

总结

这个小项目基本实现了最基本的学生管理系统,顺便实践了一下数据库的使用。

  • 1
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值