(一)创建相关的模块以及学生类,包括学号、姓名、性别、班级等信息,要求类名Stu,模块名为自己姓名的首字母。 (二)Stu类中定义函数实现学生信息的增加、删除、修改、查询,预览等功能。 (三)定义Db类,包含保存文件,读取文件,数据与列表的转换等功能 (四)实现文本存数据,保证数据不丢失。
时间: 2024-03-09 18:47:18 浏览: 6
以下是一个可能的实现,我的姓名首字母为L。
(一)stu.py模块:
```python
class Stu:
def __init__(self, id, name, gender, clazz):
self.id = id
self.name = name
self.gender = gender
self.clazz = clazz
def __str__(self):
return f'{self.id}\t{self.name}\t{self.gender}\t{self.clazz}'
def __repr__(self):
return str(self)
def update(self, id, name, gender, clazz):
self.id = id
self.name = name
self.gender = gender
self.clazz = clazz
```
(二)db.py模块:
```python
import os
class Db:
def __init__(self, file_path):
self.file_path = file_path
def save(self, data):
with open(self.file_path, 'w') as f:
for item in data:
f.write(str(item) + '\n')
def read(self):
data = []
if os.path.exists(self.file_path):
with open(self.file_path, 'r') as f:
lines = f.readlines()
for line in lines:
id, name, gender, clazz = line.strip().split('\t')
data.append(Stu(id, name, gender, clazz))
return data
def to_list(self, data):
return [str(item) for item in data]
def to_data(self, lst):
data = []
for item in lst:
id, name, gender, clazz = item.strip().split('\t')
data.append(Stu(id, name, gender, clazz))
return data
```
其中,`Db`类包含了保存、读取文件以及数据与列表的转换功能。
(三)main.py模块:
```python
from stu import Stu
from db import Db
def add_stu():
id = input('请输入学号:')
name = input('请输入姓名:')
gender = input('请输入性别:')
clazz = input('请输入班级:')
stu = Stu(id, name, gender, clazz)
data.append(stu)
db.save(data)
print('添加成功!')
def delete_stu():
id = input('请输入要删除的学生学号:')
for i in range(len(data)):
if data[i].id == id:
del data[i]
db.save(data)
print('删除成功!')
return
print('未找到该学生!')
def update_stu():
id = input('请输入要修改的学生学号:')
for i in range(len(data)):
if data[i].id == id:
name = input('请输入新的姓名:')
gender = input('请输入新的性别:')
clazz = input('请输入新的班级:')
data[i].update(id, name, gender, clazz)
db.save(data)
print('修改成功!')
return
print('未找到该学生!')
def query_stu():
id = input('请输入要查询的学生学号:')
for item in data:
if item.id == id:
print(item)
return
print('未找到该学生!')
def preview():
for item in data:
print(item)
db = Db('data.txt')
data = db.read()
while True:
print('学生信息管理系统')
print('1.添加学生信息')
print('2.删除学生信息')
print('3.修改学生信息')
print('4.查询学生信息')
print('5.预览学生信息')
print('6.退出')
choice = input('请选择操作(1-6):')
if choice == '1':
add_stu()
elif choice == '2':
delete_stu()
elif choice == '3':
update_stu()
elif choice == '4':
query_stu()
elif choice == '5':
preview()
elif choice == '6':
break
else:
print('选项无效,请重新选择!')
```
这个程序实现了一个简单的学生信息管理系统,使用了`Stu`类和`Db`类,可以实现学生信息的增加、删除、修改、查询和预览等功能,并且可以将数据保存到文件中,以保证数据不丢失。