免责声明 本教程仅为合法的教学目的而准备,严禁用于任何形式的违法犯罪活动及其他商业行为,在使用本教程前,您应确保该行为符合当地的法律法规,继续阅读即表示您需自行承担所有操作的后果,如有异议,请立即停止本文章阅读。 #陇羽sec#
目录
系统概述
主要功能模块
类设计
数据库设计
系统实现
系统测试
系统部署
系统设计
主函数的业务流程
代码实现
源码如下
主函数
主函数调用
菜单打印:
录入学生信息
附源码:
系统概述
面向对象编程(OOP)学生管理信息系统是一个用于管理学生信息的软件系统。该系统通过面向对象的方法,将学生、课程、成绩等实体抽象为对象,并通过类和对象的关系来管理这些信息。
主要功能模块
学生信息管理
添加学生信息
修改学生信息
删除学生信息
查询学生信息
课程信息管理
添加课程信息
修改课程信息
删除课程信息
查询课程信息
成绩信息管理
录入学生成绩
修改学生成绩
删除学生成绩
查询学生成绩
类设计
Student类
属性:学号、姓名、性别、出生日期、联系方式
方法:添加学生、修改学生信息、删除学生、查询学生信息
Course类
属性:课程编号、课程名称、学分、授课教师
方法:添加课程、修改课程信息、删除课程、查询课程信息
Grade类
属性:学号、课程编号、成绩
方法:录入成绩、修改成绩、删除成绩、查询成绩
数据库设计
学生表(Student)
字段:学号(主键)、姓名、性别、出生日期、联系方式
课程表(Course)
字段:课程编号(主键)、课程名称、学分、授课教师
成绩表(Grade)
字段:学号(外键)、课程编号(外键)、成绩
系统实现
编程语言选择
可以选择Java、Python、C++等支持面向对象编程的语言。
开发环境
使用Eclipse、IntelliJ IDEA、Visual Studio等集成开发环境。
数据库连接
使用JDBC、SQLAlchemy等数据库连接工具。
系统测试
单元测试
对每个类的方法进行单元测试,确保功能正确。
集成测试
测试各个模块之间的交互,确保系统整体功能正常。
用户测试
邀请用户进行测试,收集反馈并进行改进。
系统部署
部署环境
选择合适的操作系统和服务器,如Linux、Windows Server等。
部署工具
使用Docker、Jenkins等工具进行自动化部署。
维护与更新
定期进行系统维护,修复bug,更新功能。
系统设计
主函数的业务流程
代码实现
''''
1: 技术实现分析
1.数据存储的结构设计student = [
{"name" : "张三" , 'yw' :88,'sx': 90 , 'yy':80}
{"name" : "李四" , 'yw' :88,'sx': 90 , 'yy':80}
]2.实现的技术
循环、列表、字典、函数、字符串、数值3.技术实现的步骤
1运行显示欢迎信息
2打印菜单信息
3用户输入选择的功能
4判断用户的选择,进行相关的操作
添加,删除,查找,显示所有的学生
1,用户输入
#请输入学号
###判断程序是否退出
( 2-4步骤,循环执行)5按平均分排列
6显示学生成绩
7退出程序
'''
源码如下
主函数
python">def main():while True:menm()n = int(input("请选择: "))if n in [0, 1, 2, 3, 4, 5, 6, 7, 8]:if n == 0:an = input("您确定退出系统吗?y/n: ")if an.lower() == 'y':print('谢谢使用!!!')break # 退出系统 else:continue else:print(f"您选择了操作 {n},请继续其他操作。")else:print("无效的选择,请重新输入。")
主函数调用
python">if __name__ == '__main__':main()
菜单打印:
python">def menm():##打印 菜单menustr = """*******************************************==========欢迎使用学生成绩管理系统===========【1】录入学生信息【2】查找学生信息【3】删除学生信息【4】修改学生成绩【5】对学生成绩排序【6】统计学生信息【7】显示所有学生信息【8】########【0】退出管理系统*******************************************"""print(menustr)
录入学生信息
附源码:
python">import json
import os class StudentInfoManager:"""学生信息管理系统"""def __init__(self):self.students = []self.load_data() @staticmethod def print_menu():"""打印菜单"""menustr = """*******************************************==========欢迎使用学生成绩管理系统===========【1】录入学生信息 【2】查找学生信息 【3】删除学生信息 【4】修改学生成绩 【5】对学生成绩排序 【6】统计学生信息 【7】显示所有学生信息 【8】########## 【0】退出管理系统 *******************************************"""print(menustr)def check_stu_id(self, stu_id):"""检验学号是否重复"""for student in self.students: if student['stu_id'] == stu_id:return True return False def add_students(self):"""添加学生信息"""print("*****添加学生信息******")stu = {}while True:stu['stu_id'] = input("请输入学生学号:")if self.check_stu_id(stu['stu_id']): print("学号重复,请重新输入:")else:break stu['stu_name'] = input("请输入学生姓名:")stu['stu_yw'] = self.validate_score(" 请输入语文成绩:")stu['stu_sx'] = self.validate_score(" 请输入数学成绩:")stu['stu_yy'] = self.validate_score(" 请输入英语成绩:")self.students.append(stu) print(f"添加成功!学生信息为:{stu}")def delete_students(self):"""删除学生信息"""print('*****删除操作******')while True:stu_id = input("请输入要删除的学生号:")for student in self.students: if student['stu_id'] == stu_id:self.students.remove(student) print(f"学生{stu_id}的信息已删除。")return print("未找到该学号的学生,请重新输入。")def validate_score(self, subject):"""验证成绩有效性"""while True:score = input(subject)try:score = float(score)if 0 <= score <= 100:return score else:print("成绩超出范围,请输入0到100之间的数字。")except ValueError:print("输入无效,请输入一个数字。")def load_data(self):"""加载数据"""if os.path.exists('students.json'): with open('students.json', 'r', encoding='utf-8') as f:self.students = json.load(f) else:self.students = []def save_data(self):"""保存数据"""with open('students.json', 'w', encoding='utf-8') as f:json.dump(self.students, f, ensure_ascii=False, indent=4)def find_students(self):"""查找学生信息"""stu_id = input("请输入要查找的学生学号:")for student in self.students: if student['stu_id'] == stu_id:print(f"找到学生信息:{student}")return print("未找到该学号的学生。")def modify_scores(self):"""修改学生成绩"""stu_id = input("请输入要修改成绩的学生学号:")for student in self.students: if student['stu_id'] == stu_id:student['stu_yw'] = self.validate_score(" 请输入新的语文成绩:")student['stu_sx'] = self.validate_score(" 请输入新的数学成绩:")student['stu_yy'] = self.validate_score(" 请输入新的英语成绩:")print(f"学生成绩已更新:{student}")return print("未找到该学号的学生。")def sort_scores(self):"""对学生成绩排序"""sort_key = input("请选择排序依据(yw:语文,sx:数学,yy:英语):")if sort_key not in ['yw', 'sx', 'yy']:print("输入有误,请输入'yw','sx'或'yy'。")return self.students.sort(key=lambda x: x[f'stu_{sort_key}'], reverse=True)print("排序完成。")def statistics_info(self):"""统计学生信息"""num_students = len(self.students) total_scores = {'yw': sum(student['stu_yw'] for student in self.students), 'sx': sum(student['stu_sx'] for student in self.students), 'yy': sum(student['stu_yy'] for student in self.students), }avg_scores = {key: value / num_students for key, value in total_scores.items()} print(f"学生总数:{num_students}")print(f"各科总成绩:{total_scores}")print(f"各科平均成绩:{avg_scores}")def display_all_students(self):"""显示所有学生信息"""for student in self.students: print(student)def run(self):"""运行管理系统"""while True:self.print_menu() choice = input("请输入您的选择:")if choice == '1':self.add_students() elif choice == '2':self.find_students() elif choice == '3':self.delete_students() elif choice == '4':self.modify_scores() elif choice == '5':self.sort_scores() elif choice == '6':self.statistics_info() elif choice == '7':self.display_all_students() elif choice == '0':self.save_data() print("退出管理系统。")break else:print("输入有误,请重新输入。")if __name__ == "__main__":manager = StudentInfoManager()manager.run()