Python 实现读书管理系统
"""
实现一个命令行版的读书管理系统
"""
import os. path
import sys
students = [ ] def save ( ) : """用于存档,将内存保存到文件中:return:""" with open ( './resource.txt' , 'w' , encoding= 'utf8' ) as file : for stu in students: file . write( f" { stu[ 'studentId' ] } \t { stu[ 'name' ] } \t { stu[ 'gender' ] } \t { stu[ 'className' ] } \n" ) print ( f"[存档成功] 共储存了 { len ( students) } 条记录!" ) def load ( ) : """用于读档:return:""" if not os. path. exists( './resource.txt' ) : return global studentsstudents = [ ] with open ( './resource.txt' , 'r' , encoding= 'utf8' ) as file : for line in file : line = line. strip( ) splitList = line. split( '\t' ) if len ( splitList) != 4 : print ( f'当前格式存在问题, line= { line} ' ) continue student = { 'studentId' : splitList[ 0 ] , 'name' : splitList[ 1 ] , 'gender' : splitList[ 2 ] , 'className' : splitList[ 3 ] } students. append( student) print ( f"[读档成功] 共读取了 { len ( students) } 条记录" ) def menu ( ) : print ( '-----------------------------------------' ) print ( ' 1.新增学生 ' ) print ( ' 2.显示学生 ' ) print ( ' 3.查找学生 ' ) print ( ' 4.删除学生 ' ) print ( ' 0.退出程序 ' ) print ( '-----------------------------------------' ) choice = input ( ' 请输入您的选择:' ) return choicedef insert ( ) : print ( '[新增学生]开始!' ) studentId = int ( input ( '请输入学生学号:' ) ) name = input ( '请输入学生的姓名:' ) gender = input ( '请输入学生的性别:' ) if gender not in [ '男' , '女' ] : print ( '性别输入内容不符合要求' ) return className = input ( '请输入学生班级' ) student = { 'studentId' : studentId, 'name' : name, 'gender' : gender, 'className' : className} global studentsstudents. append( student) save( ) print ( '[新增学生]完毕!' ) def display ( ) : print ( '[显示学生] 开始!' ) for stu in students: print ( f" { stu[ 'studentId' ] } \t { stu[ 'name' ] } \t { stu[ 'gender' ] } \t { stu[ 'className' ] } " ) print ( f'[显示学生] 完毕,共显示了 { len ( students) } 条记录' ) def find ( ) : print ( '[查找学生] 开始!' ) name = input ( '请输入要查找的学生姓名' ) count = 0 global studentsfor stu in students: if stu[ 'name' ] == name: print ( f" { stu[ 'studentId' ] } \t { stu[ 'name' ] } \t { stu[ 'gender' ] } \t { stu[ 'className' ] } " ) count += 1 print ( f'[查找学生] 完毕, 共匹配到 { count} 条记录' ) def delete ( ) : print ( '[删除学生] 开始' ) studentId = input ( '请输入要删除学生的学号:' ) global studentsfor stu in students: if stu[ 'studentId' ] == studentId: print ( f"删除 { stu[ 'name' ] } 同学的信息!" ) students. remove( stu) save( ) print ( '[删除学生] 结束' ) def main ( ) : """入口函数:return:""" print ( '--------------------------------------------' ) print ( ' 欢迎来到学生管理系统' ) print ( '--------------------------------------------' ) load( ) while True : chioce = menu( ) if chioce == '1' : insert( ) elif chioce == '2' : display( ) elif chioce == '3' : find( ) elif chioce == '4' : delete( ) elif chioce == '0' : print ( 'goodbye!' ) sys. exit( 0 ) else : print ( '输入有误,请重新输入' ) main( )