要求需要录入,删除,修改,查找,统计,排序…
需要设置密码…
求解,666666666666
一下是参考GPT给出的答案:
实现一个学生成绩管理系统的流程可以分为以下步骤:
安装 Flask 和相关依赖
设计数据库模型
创建 Flask 应用程序
创建数据库
创建用户认证系统
创建学生管理系统
下面是一个简单的示例程序,可以用来实现上述需求:
安装 Flask 和相关依赖
首先,我们需要在本地计算机安装 Flask 和相关依赖。可以使用 pip 命令进行安装:
pip install Flask
pip install flask_sqlalchemy
pip install flask_login
代码实现如下
from flask import Flask, render_template, redirect, url_for, request, flash
from flask_sqlalchemy import SQLAlchemy
from flask_login import LoginManager, UserMixin, login_user, logout_user, login_required, current_user
from werkzeug.security import generate_password_hash, check_password_hash
app = Flask(__name__)
app.config['SECRET_KEY'] = 'secret'
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///db.sqlite'
db = SQLAlchemy(app)
login_manager = LoginManager()
login_manager.init_app(app)
login_manager.login_view = 'main.login'
class User(UserMixin, db.Model):
id = db.Column(db.Integer, primary_key=True)
username = db.Column(db.String(50), unique=True)
password = db.Column(db.String(100))
def set_password(self, password):
self.password = generate_password_hash(password)
def check_password(self, password):
return check_password_hash(self.password, password)
@login_manager.user_loader
def load_user(user_id):
return User.query.get(int(user_id))
class Student(db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(50))
grade = db.Column(db.Integer)
main = Blueprint('main', __name__)
@main.route('/')
def index():
return render_template('index.html')
@main.route('/login', methods=['GET', 'POST'])
def login():
if request.method == 'POST':
username = request.form['username']
password = request.form['password']
remember = True if 'remember' in request.form else False
user = User.query.filter_by(username=username).first()
if not user or not user.check_password(password):
flash('Please check your login details and try again.')
return redirect(url_for('main.login'))
login_user(user, remember=remember)
return redirect(url_for('main.dashboard'))
return render_template('login.html')
@main.route('/signup', methods=['GET', 'POST'])
def signup():
if request.method == 'POST':
username = request.form['username']
password = request.form['password']
user = User.query.filter_by(username=username).first()
if user:
flash('Username already exists.')
return redirect(url_for('main.signup'))
new_user = User(username=username)
new_user.set_password(password)
db.session.add(new_user)
db.session.commit()
return redirect(url_for('main.login'))
return render_template('signup.html')
@main.route('/dashboard')
@login_required
def dashboard():
return render_template('dashboard.html', name=current_user.username)
students = Blueprint('students', __name__)
@students.route('/students')
@login_required
def student_list():
students = Student.query.all()
return render_template('students/list.html', students=students)
@students.route('/students/add', methods=['GET', 'POST'])
@login_required
def add_student():
if request.method == 'POST':
name = request.form['name']
grade = request.form['grade']
student = Student(name=name, grade=grade)
db.session.add(student)
db.session.commit()
flash('Student added successfully.')
return redirect(url_for('students.student_list'))
return render_template('students/add.html')
@students.route('/students/delete/<int:student_id>', methods=['POST'])
@login_required
def delete_student(student_id):
student = Student.query.get_or_404(student_id)
db.session.delete(student)
db.session.commit()
flash('Student deleted successfully.')
return redirect(url_for('students.student_list'))
@students.route('/students/search', methods=['GET', 'POST'])
@login_required
def search_student():
if request.method == 'POST':
search_term = request.form['search_term']
students = Student.query.filter(Student.name.like(f'%{search_term}%')).all()
return render_template('students/search.html', students=students, search_term=search_term)
return render_template('students/search.html')
@students.route('/students/stats')
@login_required
def student_stats():
total_students = Student.query.count()
avg_grade = db.session.query(db.func.avg(Student.grade)).scalar()
max_grade = db.session.query(db.func.max(Student.grade)).scalar()
min_grade = db.session.query(db.func.min(Student.grade)).scalar()
return render_template('students/stats.html', total_students=total_students, avg_grade=avg_grade, max_grade=max_grade, min_grade=min_grade)
@students.route('/students/sort/<string:sort_type>')
@login_required
def sort_students(sort_type):
if sort_type == 'name':
students = Student.query.order_by(Student.name).all()
elif sort_type == 'grade':
students = Student.query.order_by(Student.grade.desc()).all()
else:
students = []
return render_template('students/list.html', students=students)
app.register_blueprint(main)
app.register_blueprint(students)
if __name__ == '__main__':
db.create_all()
app.run()
前端代码如下
{% extends 'base.html' %}
{% block content %}
<h1>Student List</h1>
<table class="table">
<thead>
<tr>
<th>ID</th>
<th>Name</th>
<th>Grade</th>
<th>Actions</th>
</tr>
</thead>
<tbody>
{% for student in students %}
<tr>
<td>{{ student.id }}</td>
<td>{{ student.name }}</td>
<td>{{ student.grade }}</td>
<td>
<a href="{{ url_for('students.delete_student', student_id=student.id) }}" class="btn btn-danger btn-sm">Delete</a>
</td>
</tr>
{% endfor %}
</tbody>
</table>
<a href="{{ url_for('students.add_student') }}" class="btn btn-primary">Add Student</a>
<a href="{{ url_for('students.search_student') }}" class="btn btn-primary">Search Student</a>
<a href="{{ url_for('students.student_stats') }}" class="btn btn-primary">Student Stats</a>
<a href="{{ url_for('students.sort_students', sort_type='name') }}" class="btn btn-primary">Sort by Name</a>
<a href="{{ url_for('students.sort_students', sort_type='grade') }}" class="btn btn-primary">Sort by Grade</a>
{% endblock %}
这就是一个简单的学生成绩管理系统的完整代码,可以在本地计算机上运行。现在您可以打开 Web 浏览器并访问 http://127.0.0.1:5000/%EF%BC%8C%E5%B0%9D%E8%AF%95%E5%9C%A8%E7%B3%BB%E7%BB%9F%E4%B8%AD%E6%B7%BB%E5%8A%A0%E3%80%81%E5%88%A0%E9%99%A4%E3%80%81%E6%9F%A5%E7%9C%8B%E3%80%81%E6%9F%A5%E6%89%BE%E3%80%81%E7%BB%9F%E8%AE%A1%E5%92%8C%E6%8E%92%E5%BA%8F%E5%AD%A6%E7%94%9F%E6%95%B0%E6%8D%AE%E3%80%82
“Devil组”引证GPT后的撰写:
# 定义一个空字典,用于存储记录
records = {}
# 定义一个密码,用于保护数据
password = 'password123'
# 定义一个函数,用于添加记录
def add_record():
name = input("请输入姓名:")
age = int(input("请输入年龄:"))
records[name] = age
print("添加成功!")
# 定义一个函数,用于删除记录
def delete_record():
name = input("请输入要删除的姓名:")
if name in records:
del records[name]
print("删除成功!")
else:
print("记录不存在!")
# 定义一个函数,用于修改记录
def edit_record():
name = input("请输入要修改的姓名:")
if name in records:
age = int(input("请输入新的年龄:"))
records[name] = age
print("修改成功!")
else:
print("记录不存在!")
# 定义一个函数,用于查找记录
def search_record():
name = input("请输入要查找的姓名:")
if name in records:
print(f"{name}的年龄是{records[name]}岁。")
else:
print("记录不存在!")
# 定义一个函数,用于统计记录数
def count_record():
print(f"共有{len(records)}条记录。")
# 定义一个函数,用于排序记录
def sort_record():
sorted_records = sorted(records.items(), key=lambda x: x[1])
for record in sorted_records:
print(f"{record[0]}的年龄是{record[1]}岁。")
# 定义一个函数,用于保护数据
def check_password():
password_attempt = input("请输入密码:")
return password_attempt == password
# 主程序循环
while True:
# 如果密码不正确,则继续循环
if not check_password():
print("密码错误!")
continue
# 显示菜单
print("请选择操作:")
print("1. 添加记录")
print("2. 删除记录")
print("3. 修改记录")
print("4. 查找记录")
print("5. 统计记录")
print("6. 排序记录")
print("0. 退出程序")
# 获取用户选择
choice = int(input("请选择:"))
# 根据用户选择执行对应的操作
if choice == 1:
add_record()
elif choice == 2:
delete_record()
elif choice == 3:
edit_record()
elif choice == 4:
search_record()
elif choice == 5:
count_record()
elif choice == 6:
sort_record()
elif choice == 0:
break
else:
print("选择无效!")
小魔女参考了bing和GPT部分内容调写:
Python学生成绩管理系统的元码如下:
# 导入模块
import os
# 定义学生信息类
class StudentInfo:
def __init__(self, name, age, score):
self.name = name
self.age = age
self.score = score
# 定义学生管理类
class StudentManager:
def __init__(self):
self.students = []
self.password = '666666666666'
# 添加学生
def add_student(self, student):
self.students.append(student)
# 删除学生
def delete_student(self, name):
for student in self.students:
if student.name == name:
self.students.remove(student)
# 修改学生信息
def modify_student(self, name, new_age, new_score):
for student in self.students:
if student.name == name:
student.age = new_age
student.score = new_score
# 查找学生
def find_student(self, name):
for student in self.students:
if student.name == name:
return student
# 统计学生总数
def count_students(self):
return len(self.students)
# 排序学生
def sort_students(self):
self.students.sort(key=lambda student: student.score, reverse=True)
回答不易,记得采纳呀。
该回答引用ChatGPT
代码如下,如有疑问可以回复我:
import getpass
# 设置密码
password = "666666666666"
password_input = getpass.getpass("请设置密码:")
while password_input != password:
password_input = getpass.getpass("密码错误,请重新输入:")
# 初始化数据
data = []
# 录入数据
def add_data():
name = input("请输入姓名:")
age = int(input("请输入年龄:"))
gender = input("请输入性别:")
data.append({"name": name, "age": age, "gender": gender})
print("录入成功!")
# 删除数据
def del_data():
name = input("请输入要删除的姓名:")
for i in range(len(data)):
if data[i]["name"] == name:
del data[i]
print("删除成功!")
return
print("没有找到该数据!")
# 修改数据
def modify_data():
name = input("请输入要修改的姓名:")
for i in range(len(data)):
if data[i]["name"] == name:
age = int(input("请输入新的年龄:"))
gender = input("请输入新的性别:")
data[i]["age"] = age
data[i]["gender"] = gender
print("修改成功!")
return
print("没有找到该数据!")
# 查找数据
def search_data():
name = input("请输入要查找的姓名:")
for i in range(len(data)):
if data[i]["name"] == name:
print("姓名:", data[i]["name"])
print("年龄:", data[i]["age"])
print("性别:", data[i]["gender"])
return
print("没有找到该数据!")
# 统计数据
def count_data():
print("共有", len(data), "条数据。")
# 排序数据
def sort_data():
sorted_data = sorted(data, key=lambda x: x["age"])
for i in range(len(sorted_data)):
print("姓名:", sorted_data[i]["name"])
print("年龄:", sorted_data[i]["age"])
print("性别:", sorted_data[i]["gender"])
# 主程序
while True:
print("\n请选择要执行的操作:")
print("1. 录入数据")
print("2. 删除数据")
print("3. 修改数据")
print("4. 查找数据")
print("5. 统计数据")
print("6. 排序数据")
print("0. 退出程序")
choice = int(input())
if choice == 0:
break
elif choice == 1:
add_data()
elif choice == 2:
del_data()
elif choice == 3:
modify_data()
elif choice == 4:
search_data()
elif choice == 5:
count_data()
elif choice == 6:
sort_data()
可以把需求再描述细些,比如是否需要连接数据库,是否需要界面,如果需要界面使用什么web框架之类的。
参考GPT和自己的思路:以下是一个简单的Python学生成绩管理系统示例代码,它包括录入、删除、修改、查找、统计和排序等功能,并且有一个密码保护系统。请注意,这仅仅是一个示例代码,你需要根据你的具体需求来自定义修改。
# -*- coding: utf-8 -*-
# 学生成绩管理系统
# 定义学生类
class Student:
def __init__(self, name, id, score):
self.name = name
self.id = id
self.score = score
def get_info(self):
return f'{self.name}({self.id}): {self.score}'
# 定义学生成绩管理系统类
class ScoreManagementSystem:
def __init__(self):
self.students = []
self.password = '123456' # 设置默认密码
def add_student(self, student):
self.students.append(student)
def delete_student(self, id):
for student in self.students:
if student.id == id:
self.students.remove(student)
break
def modify_student(self, id, name=None, score=None):
for student in self.students:
if student.id == id:
if name:
student.name = name
if score:
student.score = score
break
def search_student(self, id):
for student in self.students:
if student.id == id:
return student.get_info()
return '未找到该学生信息'
def count_student(self):
return len(self.students)
def sort_student(self, reverse=False):
self.students.sort(key=lambda x: x.score, reverse=reverse)
return [student.get_info() for student in self.students]
def set_password(self, password):
self.password = password
def check_password(self, password):
return password == self.password
# 定义主函数
def main():
sms = ScoreManagementSystem()
sms.set_password('123456') # 设置密码
while True:
print('1. 录入成绩')
print('2. 删除成绩')
print('3. 修改成绩')
print('4. 查找成绩')
print('5. 统计成绩')
print('6. 排序成绩')
print('7. 修改密码')
print('8. 退出系统')
choice = input('请选择操作: ')
if choice == '1': # 录入成绩
name = input('请输入学生姓名: ')
id = input('请输入学生学号: ')
score = float(input('请输入学生成绩: '))
student = Student(name, id, score)
sms.add_student(student)
print('添加成功')
elif choice == '2': # 删除成绩
id = input('请输入要删除的学生学号: ')
sms.delete_student(id)
print('删除成功')
elif choice == '3': # 修改成绩
id = input('请输入要修改的学生学号: ')
name = input('请输入要修改的学生姓名(不修改请回车): ')
score = input('请输入要修改的学生成绩(不修改请回车): ')
sms.modify_student(id, name, score)
print('修改成功')
elif choice == '4': # 查找成绩
id = input('请输入要查找的学生学号: ')
info = sms.search_student(id)
print(info)
elif choice == '5': # 统计成绩
count = sms.count_student()
print(f'共有 {count} 名学生')
elif choice == '6': # 排序成绩
reverse = input('请选择排序方式(升序请输入0,降序请输入1): ')
reverse = True if reverse == '1' else False
infos = sms.sort_student(reverse)
for info in infos:
print(info)
elif choice == '7': # 修改密码
old_password = input('请输入原密码: ')
if sms.check_password(old_password):
new_password = input('请输入新密码: ')
sms.set_password(new_password)
print('密码修改成功')
else:
print('密码错误')
elif choice == '8': # 退出系统
print('谢谢使用')
break
else:
print('输入错误,请重新输入')
我可以写呀。
是要python程序,还是要flask的
以下是一个简单的Python学生成绩管理系统的代码示例,包含了录入、删除、修改、查找、统计、排序等功能,并设置了密码保护。代码中使用了字典来存储学生信息和成绩数据,通过菜单的方式让用户选择不同的功能。
统计学生成绩函数:
import getpass
# 设置密码
password = getpass.getpass('请输入密码:')
while True:
if password == '123456':
break
else:
print('密码错误,请重新输入!')
password = getpass.getpass('请输入密码:')
# 初始化学生数据
students = {}
# 菜单函数
def menu():
print('\n')
print('*' * 20, '学生成绩管理系统', '*' * 20)
print('\t1. 录入学生信息')
print('\t2. 删除学生信息')
print('\t3. 修改学生信息')
print('\t4. 查找学生信息')
print('\t5. 统计学生成绩')
print('\t6. 排序学生成绩')
print('\t0. 退出系统')
print('*' * 60)
# 录入学生信息函数
def add_student():
print('\n')
print('*' * 20, '录入学生信息', '*' * 20)
while True:
sid = input('请输入学生ID(例如:1001):')
if sid in students:
print('学生ID已存在,请重新输入!')
else:
break
name = input('请输入学生姓名:')
score = int(input('请输入学生成绩(0~100):'))
students[sid] = {'name': name, 'score': score}
print('学生信息录入成功!')
# 删除学生信息函数
def remove_student():
print('\n')
print('*' * 20, '删除学生信息', '*' * 20)
sid = input('请输入要删除的学生ID:')
if sid in students:
del students[sid]
print('学生信息删除成功!')
else:
print('学生ID不存在,请重新输入!')
# 修改学生信息函数
def modify_student():
print('\n')
print('*' * 20, '修改学生信息', '*' * 20)
sid = input('请输入要修改的学生ID:')
if sid in students:
name = input('请输入学生姓名:')
score = int(input('请输入学生成绩(0~100):'))
students[sid]['name'] = name
students[sid]['score'] = score
print('学生信息修改成功!')
else:
print('学生ID不存在,请重新输入!')
# 查找学生信息函数
def search_student():
print('\n')
print('*' * 20, '查找学生信息', '*' * 20)
sid = input('请输入要查找的学生ID:')
if sid in students:
print('学生ID:', sid)
print('学生姓名:', students[sid]['name'])
print('学生成绩:', students[sid]['score'])
else:
print('学生ID不存在,请重新输入!')
# 统计学生成绩函数
def count_student():
print('\n')
print('*' * 20, '统计学生成绩', '*' * 20)
count = 0
total = 0
for sid in students:
count += 1
total += students[sid]['score']
average = total / count
print('学生人数:', count)
print('总分数:', total)
print('平均分数:', average)
排序学生成绩函数:
def sort_student():
print('\n')
print('' * 20, '排序学生成绩', '' * 20)
order = input('请选择排序方式(1. 升序,2. 降序):')
if order == '1':
sorted_students = sorted(students.items(), key=lambda x: x[1]['score'])
else:
sorted_students = sorted(students.items(), key=lambda x: x[1]['score'], reverse=True)
print('学生ID\t学生姓名\t学生成绩')
for sid, info in sorted_students:
print(sid, '\t', info['name'], '\t', info['score'])
主函数:
def main():
while True:
menu()
choice = input('请选择功能:')
if choice == '1':
add_student()
elif choice == '2':
remove_student()
elif choice == '3':
modify_student()
elif choice == '4':
search_student()
elif choice == '5':
count_student()
elif choice == '6':
sort_student()
elif choice == '0':
print('欢迎下次使用!')
break
else:
print('输入有误,请重新选择!')
if name == 'main':
main()
1. 导入必要的库:
import os
import sys
import csv
2. 定义一些函数:
def Add():
# 代码实现添加学生成绩信息
def Delete():
# 代码实现删除学生成绩信息
def Modify():
# 代码实现修改学生成绩信息
def Search():
# 代码实现查找学生成绩信息
def Statistics():
# 代码实现统计学生成绩信息
def Sort():
# 代码实现排序学生成绩信息
def Set_Password():
# 代码实现设置系统密码
3. 主程序:
if __name__ == '__main__':
while True:
# 打印菜单信息
print('1.录入')
print('2.删除')
print('3.修改')
print('4.查找')
print('5.统计')
print('6.排序')
print('7.设置密码')
print('0.退出')
# 获取用户输入
choice = input('请输入您的选择:')
# 根据用户输入调用相应的函数
if choice == '1':
Add()
elif choice == '2':
Delete()
elif choice == '3':
Modify()
elif choice == '4':
Search()
elif choice == '5':
Statistics()
elif choice == '6':
Sort()
elif choice == '7':
Set_Password()
elif choice == '0':
break
else:
print('输入错误,请重新输入!')
以下答案由GPT-3.5大模型与博主波罗歌共同编写:
请找到 Python 学生管理系统的完整代码和详细说明。
这是一个简单的 Python 学生管理系统,可以实现以下功能:
├── main.py # 程序入口
├── student.py # 学生类定义
└── utils.py # 工具函数
学生类 Student
包含以下属性:
id
:学号name
:姓名gender
:性别birthday
:出生日期address
:地址同时,它还包含以下方法:
__str__
: 将学生信息转化为字符串输出to_list
: 将学生信息转化为列表输出to_dict
: 将学生信息转化为字典输出工具函数 load_data
和 save_data
分别用于从文件中加载数据和保存数据到文件。
函数 input_student_info
和 input_student_id
分别用于读取用户输入的学生信息和学生 ID。
main.py
是程序入口,包含以下功能:
如果我的回答解决了您的问题,请采纳!
就是一个数据的增删改查,是否需要图形界面,数据库等,不通要求实现方式难度都不一样
# 定义学生类
class Student:
def __init__(self, name, gender, age, score):
self.name = name
self.gender = gender
self.age = age
self.score = score
# 定义操作类
class Students:
def __init__(self):
self.students = []
self.password = "666666666666"
# 添加学生信息
def add_student(self, name, gender, age, score):
s = Student(name, gender, age, score)
self.students.append(s)
# 删除学生信息
def delete_student(self, name):
for s in self.students:
if s.name == name:
self.students.remove(s)
# 修改学生信息
def modify_student(self, name, gender, age, score):
for s in self.students:
if s.name == name:
s.gender = gender
s.age = age
s.score = score
# 查找学生信息
def find_student(self, name):
for s in self.students:
if s.name == name:
return s
return None
# 统计学生数量和总分数
def count_students(self):
count = len(self.students)
total_score = sum([s.score for s in self.students])
return count, total_score
# 按成绩排序
def sort_students(self):
self.students.sort(key=lambda x:x.score, reverse=True)
# 验证密码
def check_password(self, password):
return self.password == password
# 主程序
if __name__ == "__main__":
students = Students()
# 添加学生信息
students.add_student("张三", "男", 18, 90)
students.add_student("李四", "女", 19, 85)
students.add_student("王五", "男", 20, 95)
# 删除学生信息
students.delete_student("李四")
# 修改学生信息
students.modify_student("张三", "男", 18, 95)
# 查找学生信息
s = students.find_student("张三")
if s:
print(f"姓名:{s.name}, 性别:{s.gender}, 年龄:{s.age}, 成绩:{s.score}")
else:
print("未找到该学生!")
# 统计学生数量和总分数
count, total_score = students.count_students()
print(f"学生数量:{count}, 总分数:{total_score}")
# 排序学生信息
students.sort_students()
for s in students.students:
print(f"姓名:{s.name}, 性别:{s.gender}, 年龄:{s.age}, 成绩:{s.score}")
# 验证密码
password = input("请输入密码:")
if students.check_password(password):
print("密码正确!")
else:
print("密码错误!")
#import pickle
import os
stulist=[]#新建学生列表存储学生对象
class stu:
def __init__(self):
self.name=""
self.id=""
self.score1=0 #语文
self.score2=0 #数学
self.score3=0 #英语
self.sum=0 #总分
def sumscore(self):
self.sum=self.score1+self.score2+self.score3
return self.sum
def output(self,file_object):
file_object.write(self.name)
file_object.write(" ")
file_object.write(self.id)
file_object.write(" ")
file_object.write(str(self.score1))
file_object.write(" ")
file_object.write(str(self.score2))
file_object.write(" ")
file_object.write(str(self.score3))
file_object.write(" ")
file_object.write(str(self.sum))
file_object.write("\n")
#添加学生信息
def addstu():
student=stu()
student.name=input("请输入学生姓名:")
student.id=input("请输入学生id:")
if(cfindstu(student.id)!=-1):
print("该学生已存在,添加失败")
return False
student.score1=int(input("请输入学生语文成绩:"))
student.score2=int(input("请输入学生数学成绩:"))
student.score3=int(input("请输入学生英语成绩:"))
stulist.append(student)
print("添加成功!")
return True
#查找学生信息
def findstu():
idin=input("请输入学生学号:")
for i in range(0,len(stulist)):
if(idin==stulist[i].id):
print("该学生信息如下:")
print("学号:",stulist[i].id,end="\t|")
print("姓名:",stulist[i].name,end="\t|")
print("语文成绩:",stulist[i].score1,end="\t|")
print("数学成绩:",stulist[i].score2,end="\t|")
print("英语成绩:",stulist[i].score3,end="\t|")
print("总成绩:",stulist[i].sumscore())
return True
print("没有该学生信息")
return False
#查重 已存在:返回列表中坐标;不存在:返回-1
def cfindstu(idin):
for i in range(0,len(stulist)):
if(idin==stulist[i].id):
return i
return -1
#查看所有学生信息
def checkstu():
print("学生信息如下:")
print("*"*100)#换行
if len(stulist)==0:
print("当前无学生信息")
for i in range(0,len(stulist)):
print("学号:",stulist[i].id,end="\t|")
print("姓名:",stulist[i].name,end="\t|")
print("语文成绩:",stulist[i].score1,end="\t|")
print("数学成绩:",stulist[i].score2,end="\t|")
print("英语成绩:",stulist[i].score3,end="\t|")
print("总成绩:",stulist[i].sumscore())
print("-"*100)#换行
#删除学生信息
def delstu():
idin=input("请输入你要删除学生的学号:")
#利用查重函数返回删除学生在列表中坐标
result=cfindstu(idin)
if result==-1:
print("该学生不存在")
else:
for i in range(result,len(stulist)-1):
stulist[i]=stulist[i+1]
del stulist[len(stulist)-1]
print("删除成功")
#修改学生信息
def changestu():
idin=input("请输入你要修改学生的学号:")
result=cfindstu(idin)
if result==-1:
print("该学生不存在")
else:
id=input("请重新输入学生id:")
if(cfindstu(id)!=-1):
print("该id已存在,修改失败")
return False
stulist[result].id=id
stulist[result].name=input("请重新输入学生姓名:")
stulist[result].score1=int(input("请重新输入学生语文成绩:"))
stulist[result].score2=int(input("请重新输入学生数学成绩:"))
stulist[result].score3=int(input("请重新输入学生英语成绩:"))
print("修改成功,按“5”查看")
#按学生成绩排序,采用插入法
def sortstu():
for i in range(0,len(stulist)-1):
for j in range(i+1,0,-1):
if stulist[j].sum > stulist[j-1].sum:
tmp=stu()
tmp=stulist[j-1]
stulist[j-1]=stulist[j]
stulist[j]=tmp
print("排序成功!")
checkstu()
#将学生信息保存到文件
def writeinfo():
if os.path.exists('students.txt'):
os.remove('students.txt')
i=0
while i<len(stulist):
file_object=open("students.txt","a")
stulist[i].output(file_object)
file_object.close()
i+=1
#将学生信息读取到内存
def readinfo():
if os.path.exists('students.txt'):
file_object=open('students.txt','r')
for line in file_object:
stu1=stu()
line=line.strip("\n")
s=line.split(" ")
stu1.name=s[0]
stu1.id=s[1]
stu1.score1=int(s[2])
stu1.score2=int(s[3])
stu1.score3=int(s[4])
stu.sum=int(s[5])
stulist.append(stu1)
file_object.close()
print("加载成功")
else:
print("没有学生信息,请添加")
def main():
print("欢迎来到学生成绩管理系统")
print("*"*30)
print("-"*7,"菜单","-"*7)
print("1.增加学生信息")
print("2.删除学生信息")
print("3.修改学生信息")
print("4.查找学生信息.")
print("5.察看所有学生信息")
print("6.学生成绩排序")
print("7.退出系统")
print("正在加载文件信息···")
readinfo()#读取文件信息
while True:
writeinfo()#保存到文件
a=input("请选择:")
if(a=="1"):
addstu()
elif a=="2":
delstu()
elif a=="3":
changestu()
elif(a=="4"):
findstu()
elif(a=="5"):
checkstu()
elif a=="6":
sortstu()
elif a=="7":
print("已退出!")
print("文件信息已更新!")
break;
else:
print("选择有误,请重新选择")
main()