使用Python实现2、实现满足学生信息管理系统数据库表的设计。3、实现学生信息的添加功能如下:1.录入每个学生基本信息:支持单个录入、批量录入。学生基本信息包括:学号、姓名、性别、身份证号、院系、班级、专业、籍贯、手机、E_mail、QQ等信息。2.如何实现对数据的校验:如学号、身份证号、手机号的检查、以及其他信息的检查,确保录入的数据正确有效。3.数据录入后能够保存,以后查询时可以调入查询。
时间: 2023-08-09 18:09:19 浏览: 134
Python实现学生管理系统,可以对学生信息进行添加、删除、修改、查询、排序、统计
好的,我会尽力回答你的问题。
针对你的问题,我可以提供以下的思路:
1. 实现数据库表的设计
你可以使用Python中的SQLite3来实现数据库表的设计。在SQLite3中,可以使用CREATE TABLE语句来创建表格,例如:
```python
import sqlite3
# 连接数据库
conn = sqlite3.connect('students.db')
# 创建学生表
conn.execute('''CREATE TABLE STUDENT
(ID INT PRIMARY KEY NOT NULL,
NAME TEXT NOT NULL,
GENDER CHAR(10),
ID_CARD CHAR(18),
DEPARTMENT CHAR(50),
CLASS CHAR(50),
MAJOR CHAR(50),
HOMETOWN CHAR(50),
PHONE CHAR(20),
EMAIL CHAR(50),
QQ CHAR(20));''')
# 关闭数据库连接
conn.close()
```
2. 实现学生信息的添加功能
针对学生信息添加的功能,你可以使用Python的input函数来实现单个录入,使用CSV库来实现批量录入。
下面是单个录入的示例代码:
```python
import sqlite3
# 连接数据库
conn = sqlite3.connect('students.db')
# 获取用户输入
id = input("请输入学号:")
name = input("请输入姓名:")
gender = input("请输入性别:")
id_card = input("请输入身份证号:")
department = input("请输入院系:")
class_name = input("请输入班级:")
major = input("请输入专业:")
hometown = input("请输入籍贯:")
phone = input("请输入手机:")
email = input("请输入E-mail:")
qq = input("请输入QQ:")
# 插入数据
conn.execute(f"INSERT INTO STUDENT (ID, NAME, GENDER, ID_CARD, DEPARTMENT, CLASS, MAJOR, HOMETOWN, PHONE, EMAIL, QQ) \
VALUES ('{id}', '{name}', '{gender}', '{id_card}', '{department}', '{class_name}', '{major}', '{hometown}', '{phone}', '{email}', '{qq}');")
# 提交事务
conn.commit()
# 关闭数据库连接
conn.close()
```
对于批量录入,你可以使用CSV库来读取CSV文件中的数据,并将其插入到数据库中。
下面是批量录入的示例代码:
```python
import csv
import sqlite3
# 连接数据库
conn = sqlite3.connect('students.db')
# 打开CSV文件
with open('students.csv', 'r') as csvfile:
# 读取CSV文件
csvreader = csv.reader(csvfile)
# 跳过表头
next(csvreader)
# 循环插入数据
for row in csvreader:
# 获取学生信息
id = row[0]
name = row[1]
gender = row[2]
id_card = row[3]
department = row[4]
class_name = row[5]
major = row[6]
hometown = row[7]
phone = row[8]
email = row[9]
qq = row[10]
# 插入数据
conn.execute(f"INSERT INTO STUDENT (ID, NAME, GENDER, ID_CARD, DEPARTMENT, CLASS, MAJOR, HOMETOWN, PHONE, EMAIL, QQ) \
VALUES ('{id}', '{name}', '{gender}', '{id_card}', '{department}', '{class_name}', '{major}', '{hometown}', '{phone}', '{email}', '{qq}');")
# 提交事务
conn.commit()
# 关闭数据库连接
conn.close()
```
3. 实现数据的校验
对于数据的校验,你可以在录入数据之前进行判断。例如,可以使用正则表达式来检查学号、身份证号、手机号等信息的正确性。
下面是实现学号、身份证号、手机号检查的示例代码:
```python
import re
# 校验学号
def check_id(id):
# 学号为8位数字
if re.match(r'^\d{8}$', id):
return True
else:
return False
# 校验身份证号
def check_id_card(id_card):
# 身份证号为18位数字
if re.match(r'^\d{18}$', id_card):
return True
else:
return False
# 校验手机号
def check_phone(phone):
# 手机号为11位数字
if re.match(r'^\d{11}$', phone):
return True
else:
return False
```
在录入数据时,可以在用户输入数据之后,调用上述函数进行校验。如果数据不符合要求,则提示用户重新输入。
最后,对于数据的保存和查询,你可以使用SQLite3提供的INSERT和SELECT语句来实现。例如:
```python
# 插入数据
conn.execute(f"INSERT INTO STUDENT (ID, NAME, GENDER, ID_CARD, DEPARTMENT, CLASS, MAJOR, HOMETOWN, PHONE, EMAIL, QQ) \
VALUES ('{id}', '{name}', '{gender}', '{id_card}', '{department}', '{class_name}', '{major}', '{hometown}', '{phone}', '{email}', '{qq}');")
# 查询数据
result = conn.execute("SELECT * FROM STUDENT;")
for row in result:
print(row)
```
以上就是针对你提出的问题的回答,希望能对你有所帮助。
阅读全文