网站建设的经验,你知道吗 网站,长沙人才网官网入口,乌海网络推广文章目录1、需求分析2、系统设计3、系统开发必备4、主函数设计5、 学生信息维护模块设计6、 查询/统计模块设计7、排序模块设计8、 项目打包1、需求分析
学生管理系统应具备的功能#xff1a; ●添加学生及成绩信息 ●将学生信息保存到文件中 ●修改和删除学生信息 ●查询学生…
文章目录1、需求分析2、系统设计3、系统开发必备4、主函数设计5、 学生信息维护模块设计6、 查询/统计模块设计7、排序模块设计8、 项目打包1、需求分析
学生管理系统应具备的功能 ●添加学生及成绩信息 ●将学生信息保存到文件中 ●修改和删除学生信息 ●查询学生信息 ●根据学坐成绩进行排序 ●统计学生的总分
2、系统设计
系统功能结构 ●录入学生信息模块. ●查找学生信息模块 ●删除学生信息模块. ●修改学生信息模块. ●学生成绩排名模块 ●统计学生总人数模块 ●显示全部学生信息模块
3、系统开发必备 4、主函数设计 def main():while True:menm()choice int(input(请选择))if choice in [0,1,2,3,4,5,6,7]:if choice 0:answerinput(您确定要退出系统吗?y/n\nif answery or answerY :print(谢谢您的使用!!!)break #退出系统else:continueelif choice 1:insert() #录入学生信息elif choice 2:search()elif choice 3:delete()elif choice 4:modify()elif choice 5: sort()elif choice 6:total()elif choice 7: show()def insert():pass
def search():pass
def delete(): pass
def modify():pass
def sort(): pass
def total():pass
def show():pass def menm() :print(学生信息管理系统)print(-----------------功能菜单-----------------------)print( \t\t(t\t\t\t1.录入学生信息)print( \t\t\t\t\t\t2.查找学生信息)print( \t\t\t\t\t\t3.删除学生信息)print( \t\t\t\t\t\t4.修改学生信息)print( \t\t\t\t\t\t5.排序)print( \t\t\t\t\t\t6.统计学生总人数)print( \t\t\t\t\t\t7.显示所有学生信息)print( \t\t\t\t\t\t0.退出)print(-------------------------------------------------------------if __name__ __main__:main()5、 学生信息维护模块设计
filename student.txtdef insert():student_list[]while True:id input(请输入ID(如1001):)if not id:breakname input(请输入姓名:)if not name:breaktry:englishint(input(请输入英语成绩:))pythonint(input(请输入Python成绩:))javaint(input(请输入Java成绩:))except:print(输入无效不是整数类型请重新输入)continue#将录入的学生信息保存到字典中student{id:id,name; name,english:english,python: python,java:java}#将学生信息添加到列表中student_list.append(student)answerinput(是否继续添加?y/n\n)if answery :continueelse:break# 调用save()函数save(student_list)print(学生信息录入完毕)def save(lst):try:stu_txt open(filename,a,encoding utf-8)except:stu_txt open(filename,w,encoding utf-8)for item in lst:stu_txt.write(str(item)\n) stu_txt.close() def delete():while True:student_idinput(请输入要删除的学生的ID: )if student_id!:if os.path.exists(filename):with open(filename,r ,encodingutf-8) as file:
student_oldfile.readlines() else:student_old[]flagFalse #标记是否删除if student_old:with open(filename,wencodingutf-8) as wfile:d {}for item in student_old:ddict(eval(item)) #将字符串转成字典if d[id]!student_id:wfile.write(str(d)\n )else:flag Trueif flag:print(fid为{student_ id} 的学生信息已被删除)else:print (f没有找到ID为(student_id} 的学生信息)else:print(无学生信息)breakshow() #删除之后要重新显示所有学生信息answerinput(是否继续删除?y/n\n )if answery:continueelse: breakdef modify()show()if os.path.exists(filename):with open(filenane,r,encoding utf-8) as rfile:student_oldrfile.readlines()else:returnstudent_idinput(请输入要修改的学员的ID:)with open(filename,wencoding:utf-8) as wfile: for item in student_old:ddict(eval(item))if d[id] student_id :print(找到学生信息可以修改他的相关信息了!)while True:try:d[name]input(请输入姓名:)d[english]input(请输入英语成绩:)d[python]input(请输入Python成绩:)d[java]input(请输入Java成绩:)except :print(您的输入有误请重新输入!!!)else:break wfile.rite(str(d)\n)print(修改成功!!!)else:wfile.write(str(d)\n)answerinput(是否继续修改其它学生信息?y/n\n)if answery:modify()6、 查询/统计模块设计
def search():student_query[]while True:idnameif os.path.exists(filename):modeinput(按ID查找请输入1按姓名查找请输入2: )if mode1:idinput(请输入学生ID )elif mode2:nameinput(请输入学生姓名:)else:print(您的输入有误请重新输入)search()with open(filename,r,encodingutf-8) as rfile:studentrfile.readlines()for item in student :ddict(eval(item))if id!:if d[id]id:student_query.append(d)elif name !:if d[name] name :student_query.append(d)#显示查询结果show_student(student_query)# 请空列表student_query.clear()answerinput(是否要继续查询?y/n\n )if answery:continueelse :breakelse:print(暂未保存学生信息)returndef show_student(lst):if len(1st)0:print(没有查询到学生信息无数据显示! ! ! )return#定义标题显示格式format_title{:^6}\t{:^12}\t{:^8}\t{:^10}\t{:^10}\t{:^8}print(format_title.format(ID,姓名,英语成绩,Python成绩,Java成绩,总成绩))#定义内容的显示格式format_data{: 6}\t{:^12}\t{:^8}\t{:^10}\t{:^10}\t{:^8}for item in lst:print(format_data.format(item.get(id),item.get(name),item.get(english),item.get(python),item.get(java),int(item.get(english))int(item.get(python))(item.get(java))))def total():if os.path.exists(filename):with open(filename,r,encoding utf-8) as rfile:studentsrfile.readlines()if students:print(f-共有{len (students)}名学生)else:print(还没有录入学生信息)else :print(暂未保存数据信息...)def show():student_lst []if os.path.exists(filename):with open(filename,r,encodingutf-8) as rfile:studentsrfile.readlines()for item in students:student_1st.append(eval(item))if student_lst:show_student(student_lst)else:print(暂未保存过数据!!!)7、排序模块设计
def sort():show()if os.path.exists(filename):with open(filename,r,encodingutf-8) as rfile:student_listrfile.readlines()student_new[]for item in student_list : ddict(eval(item))student_new.append(d)else:returnasc_or_desc input(请选择(0.升序1.降序):)if asc_or_desc0:asc_or_desc_bool Falseelif asc_or_desc1:asc_or_desc_bool Trueelse: print(您的输入有误请重新输入)sort()modeinput(请选择排序方式(1.按英语成绩排序2. 按Python成绩排序3.按Java成绩排序0.按总成绩排序):)if mode1:student_new.sort(keylambda x: x[english],reverseasc_or_desc_bool)elif mode 2:student_new.sort(keylambda x: x[python],reverseasc_or_desc_bool)elif mode3:student_new.sort(keylambda x: x[java],reverseasc_or_desc_bool)elif mode0:student_new.sort(keylambda x: x[english]x[python]x[java],reverseasc_or_desc_bool)else:print(您的输入有误请重新输入!!!)sort()show_student(student_new) 8、 项目打包 详见https://blog.csdn.net/hhhmonkey/article/details/129009196?spm1001.2014.3001.5502
【参考】https://www.bilibili.com/video/BV1wD4y1o7AS