网站建设企业模板哪家好,东莞做网站卓诚网络,WordPress京东自动转链插件,wordpress 文章别名目录开发环境要求运行方法具体的操作步骤如下#xff1a;代码示例源码及运行程序下载地址开发环境要求
本系统的软件开发及运行环境具体如下。 操作系统#xff1a;Windows 7、Windows 10。 Python版本#xff1a;Python 3.7.0。 开发工具#xff1a;Python IDLE。 …
目录开发环境要求运行方法具体的操作步骤如下代码示例源码及运行程序下载地址开发环境要求
本系统的软件开发及运行环境具体如下。 操作系统Windows 7、Windows 10。 Python版本Python 3.7.0。 开发工具Python IDLE。 Python内置模块os、re。
运行方法
在项目文件studentsystem.py上单击鼠标右键在弹出快捷菜单中选择“Edit with IDLE\Edit with IDLE 3.7(64-bit)”菜单项如图1所示。 在打开的Python Shell窗口中按下F5键运行程序即可。运行效果如图2所示。
具体的操作步骤如下
1录入学生信息。在“请选择”右侧光标所在位置输入数字1并按下键系统将分别提示输入学生编号、学生名字、英语成绩、Python成绩和C语言成绩输入正确的信息后系统会提示是否继续添加如下图所示。输入y系统将会再次提示用户输入用户信息输入n则将录入学生信息保存到文件中。 录入一条学生信息 2查找学生信息。在功能菜单上输入功能编号2并且按下键系统将要求用户选择是按学生编号查询还是按学生姓名查询如果用户输入1则要求用户输入学生ID表示按学生编号查询输入想要查询的学生编号系统查找该学生信息如果找到则显示效果如图3所示否则显示“(o.o) 无数据信息 (o.o)”效果如图所示。最后提示是否继续查找输入y系统将再次提示用户选择查找方式输入n则退出查找学生信息功能。 通过学生ID查找学生信息 未找到符合条件的学生信息 3删除学生信息。在功能菜单上输入功能编号3并且按下键系统将提示输入要删除学生的编号输入相应的学生ID后系统会直接从文件中删除该学生信息并且提示是否继续删除如下图所示。输入y系统将会再次提示用户输入要删除的学生编号输入n则退出删除功能。
4修改学生信息。在功能菜单上输入功能编号4并且按下键系统首先显示全部学生信息列表再提示输入要修改学生的编号输入相应的学生ID后系统会在文件中查找该学生信息如果找到则提示修改相应的信息否则不修改。最后提示是否继续修改如下图所示。输入y系统将会再次提示用户输入要修改的学生编号输入n则退出修改功能。
5排序。在功能菜单上输入功能编号5并且按下键系统将先显示不排序的全部学生信息然后提示选择排序方式这里输入2再选择降序排列“1”将对学生信息按Python成绩降序排列并显示如下图所示。
6统计学生总人数。在功能菜单上选择“6 统计学生总人数”菜单项并且按下键系统将自动统计出学生总人数并显示如下图所示。
7显示所有学生信息。在功能菜单上选择“7 显示所有学生信息”菜单项并且按下键系统将获取并显示全部学生信息如下图所示。
8退出系统。在功能菜单上输入功能编号5并且按下键即可退出系统如下图所示。
代码示例
# _*_ coding:utf-8 _*_
# 开发人员Administrator
# 开发时间2022/11/22 12:53
# 文件名称studentsystem.py
# 开发工具PyCharm
import re # 导入正则表达式模块
import os # 导入操作系统模块filename students.txt # 定义保存学生信息的文件名def menu():# 输出菜单print(╔———————学生信息管理系统————————╗│ ││ 功能菜单 ││ ││ 1 录入学生信息 ││ 2 查找学生信息 ││ 3 删除学生信息 ││ 4 修改学生信息 ││ 5 排序 ││ 6 统计学生总人数 ││ 7 显示所有学生信息 ││ 0 退出系统 ││ ││ 说明通过数字或↑↓方向键选择菜单 │╚———————————————————————╝)def main():ctrl True # 标记是否退出系统while (ctrl):menu() # 显示菜单option input(请选择) # 选择菜单项option_str re.sub(\D, , option) # 提取数字if option_str in [0, 1, 2, 3, 4, 5, 6, 7]:option_int int(option_str)if option_int 0: # 退出系统print(您已退出学生成绩管理系统)ctrl Falseelif option_int 1: # 录入学生成绩信息insert()elif option_int 2: # 查找学生成绩信息search()elif option_int 3: # 删除学生成绩信息delete()elif option_int 4: # 修改学生成绩信息modify()elif option_int 5: # 排序sort()elif option_int 6: # 统计学生总数total()elif option_int 7: # 显示所有学生信息show()1 录入学生信息def insert():stdentList [] # 保存学生信息的列表mark True # 是否继续添加while mark:id input(请输入ID如 1001)if not id: # ID为空跳出循环breakname input(请输入名字)if not name: # 名字为空跳出循环breaktry:english int(input(请输入英语成绩))python int(input(请输入Python成绩))c int(input(请输入C语言成绩))except:print(输入无效不是整型数值重新录入信息)continuestdent {id: id, name: name, english: english, python: python, c: c} # 将输入的学生信息保存到字典stdentList.append(stdent) # 将学生字典添加到列表中inputMark input(是否继续添加y/n:)if inputMark y: # 继续添加mark Trueelse: # 不继续添加mark Falsesave(stdentList) # 将学生信息保存到文件print(学生信息录入完毕)# 将学生信息保存到文件
def save(student):try:students_txt open(filename, a) # 以追加模式打开except Exception as e:students_txt open(filename, w) # 文件不存在创建文件并打开for info in student:students_txt.write(str(info) \n) # 按行存储添加换行符students_txt.close() # 关闭文件2 查找学生成绩信息def search():mark Truestudent_query [] # 保存查询结果的学生列表while mark:id name if os.path.exists(filename): # 判断文件是否存在mode input(按ID查输入1按姓名查输入2)if mode 1:id input(请输入学生ID)elif mode 2:name input(请输入学生姓名)else:print(您的输入有误请重新输入)search() # 重新查询with open(filename, r) as file: # 打开文件student file.readlines() # 读取全部内容for list in student:d dict(eval(list)) # 字符串转字典if id is not : # 判断是否按ID查if d[id] id:student_query.append(d) # 将找到的学生信息保存到列表中elif name is not : # 判断是否按姓名查if d[name] name:student_query.append(d) # 将找到的学生信息保存到列表中show_student(student_query) # 显示查询结果student_query.clear() # 清空列表inputMark input(是否继续查询y/n:)if inputMark y:mark Trueelse:mark Falseelse:print(暂未保存数据信息...)return3 删除学生成绩信息def delete():mark True # 标记是否循环while mark:studentId input(请输入要删除的学生ID)if studentId is not : # 判断要删除的学生是否存在if os.path.exists(filename): # 判断文件是否存在with open(filename, r) as rfile: # 打开文件student_old rfile.readlines() # 读取全部内容else:student_old []ifdel False # 标记是否删除if student_old: # 如果存在学生信息with open(filename, w) as wfile: # 以写方式打开文件d {} # 定义空字典for list in student_old:d dict(eval(list)) # 字符串转字典if d[id] ! studentId:wfile.write(str(d) \n) # 将一条学生信息写入文件else:ifdel True # 标记已经删除if ifdel:print(ID为 %s 的学生信息已经被删除... % studentId)else:print(没有找到ID为 %s 的学生信息... % studentId)else: # 不存在学生信息print(无学生信息...)break # 退出循环show() # 显示全部学生信息inputMark input(是否继续删除y/n:)if inputMark y:mark True # 继续删除else:mark False # 退出删除学生信息功能4 修改学生成绩信息def modify():show() # 显示全部学生信息if os.path.exists(filename): # 判断文件是否存在with open(filename, r) as rfile: # 打开文件student_old rfile.readlines() # 读取全部内容else:returnstudentid input(请输入要修改的学生ID)with open(filename, w) as wfile: # 以写模式打开文件for student in student_old:d dict(eval(student)) # 字符串转字典if d[id] studentid: # 是否为要修改的学生print(找到了这名学生可以修改他的信息)while True: # 输入要修改的信息try:d[name] input(请输入姓名)d[english] int(input(请输入英语成绩))d[python] int(input(请输入Python成绩))d[c] int(input(请输入C语言成绩))except:print(您的输入有误请重新输入。)else:break # 跳出循环student str(d) # 将字典转换为字符串wfile.write(student \n) # 将修改的信息写入到文件print(修改成功)else:wfile.write(student) # 将未修改的信息写入到文件mark input(是否继续修改其他学生信息y/n)if mark y:modify() # 重新执行修改操作5 排序def sort():show() # 显示全部学生信息if os.path.exists(filename): # 判断文件是否存在with open(filename, r) as file: # 打开文件student_old file.readlines() # 读取全部内容student_new []for list in student_old:d dict(eval(list)) # 字符串转字典student_new.append(d) # 将转换后的字典添加到列表中else:returnascORdesc input(请选择0升序1降序)if ascORdesc 0: # 按升序排序ascORdescBool False # 标记变量为False表示升序排序elif ascORdesc 1: # 按降序排序ascORdescBool True # 标记变量为True表示降序排序else:print(您的输入有误请重新输入)sort() mode input(请选择排序方式1按英语成绩排序2按Python成绩排序3按C语言成绩排序0按总成绩排序)if mode 1: # 按英语成绩排序student_new.sort(keylambda x: x[english], reverseascORdescBool)elif mode 2: # 按Python成绩排序student_new.sort(keylambda x: x[python], reverseascORdescBool)elif mode 3: # 按C语言成绩排序student_new.sort(keylambda x: x[c], reverseascORdescBool)elif mode 0: # 按总成绩排序student_new.sort(keylambda x: x[english] x[python] x[c], reverseascORdescBool)else:print(您的输入有误请重新输入)sort()show_student(student_new) # 显示排序结果 6 统计学生总数def total():if os.path.exists(filename): # 判断文件是否存在with open(filename, r) as rfile: # 打开文件student_old rfile.readlines() # 读取全部内容if student_old:print(一共有 %d 名学生 % len(student_old))else:print(还没有录入学生信息)else:print(暂未保存数据信息...) 7 显示所有学生信息 def show():student_new []if os.path.exists(filename): # 判断文件是否存在with open(filename, r) as rfile: # 打开文件student_old rfile.readlines() # 读取全部内容for list in student_old:student_new.append(eval(list)) # 将找到的学生信息保存到列表中if student_new:show_student(student_new)else:print(暂未保存数据信息...)# 将保存在列表中的学生信息显示出来
def show_student(studentList):if not studentList:print((o.o) 无数据信息 (o.o) \n)returnformat_title {:^6}{:^12}\t{:^8}\t{:^10}\t{:^10}\t{:^10}print(format_title.format(ID, 名字, 英语成绩, Python成绩, C语言成绩, 总成绩))format_data {:^6}{:^12}\t{:^12}\t{:^12}\t{:^12}\t{:^12}for info in studentList:print(format_data.format(info.get(id), info.get(name), str(info.get(english)), str(info.get(python)),str(info.get(c)),str(info.get(english) info.get(python) info.get(c)).center(12)))if __name__ __main__:main()源码及运行程序下载地址
学生管理系统的程序-python源码 https://download.csdn.net/download/duck251/87503040