前言

最近学了一点python语法,所以写一个小程序练习一下。当然程序中有许多不完美的地方,仅供各位小伙伴参考呀,并且欢迎大家留言指出不合理的地方奥~


学生信息管理系统

1、系统介绍

该系统主要考察 python 基础语法的应用,包括循环、分支、函数、类和文件的应用等。

2、系统实现功能

  • 增加学生信息
  • 删除学生信息
  • 修改学生信息
  • 查询学生信息
  • 展示所有学生信息
  • 保存学生信息到 .txt 文件中
  • 退出系统

3、功能实现

(1)show_menu():打印系统菜单函数,定义为类的静态方法。
(2)add_student():增加学生信息函数,该函数可以一次增加任意数量的学生信息,而非每次只能添加一名学生;通过 for 循环依次由用户输入待添加的学生信息,若系统中不存在相同学号即可添加成功,若学号已存在,则无法添加。如果系统中还没有添加任何学生信息,则可以直接添加。
(3)delete_student():删除学生信息函数,函数先判断系统中是否有学生信息,若系统为空,则无法删除;否则按学号遍历系统中已经存在的学生信息查找是否有用户需要删除的学生信息,若存在则删除,否则返回无法删除提示。
(4)modify_student():修改学生信息函数,具体实现同删除学生信息函数类似,不同之处在于修改学生信息部分的实现,本文定义了一个类方法,实现学生的三项信息可以不全修改,若用户输入回车则对应项信息保持原值,如此不要求用户将学生的所有信息全部修改。
(5)search_student():查询学生信息函数,具体实现同删除学生信息函数类似。
(6)show_all():展示所有学生信息函数,函数先判断系统中是否有学生信息,若系统为空,则无法显示;否则依次打印学生信息。
(7)data():保存学生信息函数,函数先判断系统中是否有学生信息,若系统为空,则无法保存;否则利用open()函数打开指定 .txt 文件写入学生信息,最后记得关闭文件。
(8)退出系统由 python 内置函数 exit() 实现。

4、主函数实现

在无限循环中判断用户输入为哪个功能代码相应地调用对应实现函数即可。若用户输入代码错误则系统给出错误提示。

5、程序源码

(1)系统功能实现程序如下:

class StudentManageSystem:student_list=[]          #初始化学生列表为空#系统菜单展示@staticmethoddef show_menu():print("*"*50)print("*******欢迎登录学生信息管理系统!*******")print("         1:添加学生信息")print("         2:删除学生信息")print("         3:修改学生信息")print("         4:查询学生信息")print("         5:显示所有学生信息")print("         6:保存学生信息")print("         0:退出程序")print("***********************************")#添加学生信息def add_student(self):student_number=int(input("请输入添加学生人数:"))for i in range(student_number):print("请输入第%d位学生信息"%(i+1))sno=input("请输入学生学号:")sname=input("请输入学生姓名:")       #学生姓名、年龄不唯一sage=input("请输入学生年龄:")student=[sno,sname,sage]#判断学号是否已经存在if len(self.student_list)==0:      #初始时学生列表为空,故学号肯定不存在,可直接添加self.student_list.append(student)print("学号为%s的同学添加成功!"%sno)else:for each in self.student_list:if each[0]==sno:print("学号%s已存在!不能重复添加!"%sno)breakelse:self.student_list.append(student)print("学号为%s的同学添加成功!"%sno)#删除学生信息def delete_student(self):if len(self.student_list)==0:print("系统中学生列表为空,无法删除学生信息,请先添加学生信息!")else:sno = input("请输入需要删除的学生学号:")for each in self.student_list:if each[0]==sno:self.student_list.remove(each)print("删除成功!")breakelse:print("系统中没有学号为%s的学生信息,无法删除!"%sno)#修改学生信息时用户不输入则保持原值def user_input(self,message,info):s=input(message)if len(s)==0:return infoelse:return s#修改学生信息def modify_student(self):if len(self.student_list)==0:print("系统中学生列表为空,无法修改学生信息,请先添加学生信息!")else:sno = input("请输入需要修改的学生学号:")for each in self.student_list:if each[0]==sno:each[0]=self.user_input("请输入学号【回车不修改】",each[0])each[1] = self.user_input("请输入姓名【回车不修改】", each[1])each[2] = self.user_input("请输入年龄【回车不修改】", each[2])print("修改成功!")breakelse:print("系统中没有学号为%s的学生信息,无法修改!"%sno)#查询学生信息def search_student(self):if len(self.student_list)==0:print("系统中学生列表为空,无法查询学生信息,请先添加学生信息!")else:sno = input("请输入需要查询的学生学号:")for each in self.student_list:if each[0]==sno:print("学号:%s\t姓名:%s\t年龄:%s"%(each[0],each[1],each[2]))breakelse:print("系统中没有学号为%s的学生信息,无法查询!" % sno)#显示所有学生信息def show_all(self):if len(self.student_list)==0:print("系统中学生列表为空,无法展示学生信息,请先添加学生信息!")else:print("学号\t姓名\t年龄\t")for each in self.student_list:print("%s\t%s\t%s\t"%(each[0],each[1],each[2]))#保存学生信息def data(self):if len(self.student_list)==0:print("系统中学生列表为空,无法展示学生信息,请先添加学生信息!")else:data_file=open("E:\杂用lxs\研究生\DL\code\学生信息管理系统v1.0\\学生信息.txt","a")       #以追加的方式保存学生信息data_file.write("学号\t姓名\t年龄\t\n")for each in self.student_list:data_file.write(each[0]+"\t"+each[1]+"\t"+each[2]+"\n")data_file.close()print("保存成功!")

(2)主程序如下:

from project import StudentManageSystem as smssms.show_menu()
ss=sms()     #实例化对象while True:opt=input("请输入功能前面的代码:")if opt=="1":ss.add_student()elif opt=="2":ss.delete_student()elif opt=="3":ss.modify_student()elif opt=="4":ss.search_student()elif opt=="5":ss.show_all()elif opt=="6":ss.data()elif opt=="0":print("系统关闭成功,欢迎下次登陆!")exit()else:print("功能代码错误,请重新输入!")

6、运行结果

(1)增加学生信息

(2)其他功能

(3)保存 .txt 文件的内容


若有任何问题欢迎各位小伙伴评论区留言交流呀~
希望大家都走在开满鲜花的路上呀~


版权说明

原文作者:早知晓
博文链接:Click here
转载请注明出处,谢谢合作~


Python实现简易版学生信息管理系统,包含源码及相关实现说明~相关推荐

  1. Java版学生信息管理系统 附源码(JavaFX图形界面)

    1.登录界面 其中的图片存储路径可以替换成自己的,当然我这里的账号密码是先设置好的,其实可以做一个注册的功能,把账号密码存进文件中 package SchoolWork.ManagementSyste ...

  2. java毕业生设计学生信息管理系统计算机源码+系统+mysql+调试部署+lw

    java毕业生设计学生信息管理系统计算机源码+系统+mysql+调试部署+lw java毕业生设计学生信息管理系统计算机源码+系统+mysql+调试部署+lw 本源码技术栈: 项目架构:B/S架构 开 ...

  3. python成绩管理系统界面-python实现简易版学生成绩管理系统

    300来行python代码实现简易版学生成绩管理系统,供大家参考,具体内容如下 使用链表来实现 class Node(object): def __init__(self, data, pointer ...

  4. 基于PHP+MySQL的学生信息管理系统(源码)

    项目名称:基于PHP+MySQL的学生信息管理系统 本系统是一个用于管理学生信息的管理系统,包括基本的增删改查,系统使用PHP语言开发,使用MySQL数据库,可以供初学者参考使用. 系统环境 MySQ ...

  5. 基于SSM搭建的学生信息管理系统项目源码+学习视频

    基于SSM搭建的学生信息管理系统 目录 基于SSM搭建的学生信息管理系统 1.为什么要编写学生信息管理系统 1.1编写项目的起因: 2.编写学生信息管理系统的过程 2.1项目成果的展示: 登录界面: ...

  6. Java课设之Swing学生信息管理系统(源码)

    前言: 这是我学java时,写的一个练手项目,主要用来巩固知识,还有很多地方并不完善,有很多不足之处,仅供参考. 另外,如果直接按着我的代码敲很可能会出现bug.这大概率时JDK或MySQL的版本问题 ...

  7. c语言学生信息管理系统作用,C语言学生信息管理系统(附源码).doc

    . word范文 学生信息管理系统 #include #include #include #include #include #define LEN sizeof(struct student) #d ...

  8. Java课程设计——学生信息管理系统(源码)

    项目简介 该项目可以分为三个模块:登录模块.主页面模块.信息储存模块.本系统完成了基本所需功能,界面清晰,操作简单又实用,基本满足了学校对学生信息的增添.查询.修改和删除等功能,且具有登录系统使该系统 ...

  9. 学生成绩管理系统设计报告python_python实现简易版学生成绩管理系统

    300来行python代码实现简易版学生成绩管理系统,供大家参考,具体内容如下 使用链表来实现 class Node(object): def __init__(self, data, pointer ...

最新文章

  1. rpm怎样在win安装mysql_centos7.6安装mysql的正确步骤
  2. 大型应用软件产品设计方法
  3. DXperience,不能不爱
  4. Web文件管理器 elfinder-彩龙社区
  5. python打包成exe_Python打包成exe时,再犯这几个错误就说不过去了
  6. 被字句15个_成人高考要点解读、包含18个实用技巧
  7. 漫画:唐玄奘教你横扫 AVL 树面试题无敌手!
  8. redis 数据类型详解 以及 redis适用场景场合
  9. 最简单的视音频播放示例2:GDI播放YUV, RGB
  10. stardict词典全集
  11. 内室设计软件测试,室内量房APP哪家强?5款软件深度测评(量房易用性篇)
  12. C语言利用回调函数实现qsort函数
  13. 什么是数据库存储过程?
  14. 小米10系列详细参数对比,小米10 青春版\10\10Pro\10至尊纪念版
  15. 恒生电子2018秋招笔经面经(开发岗)
  16. 使用Java播放wav音乐
  17. MATLIB从excel表中读取数据并画出函数图像
  18. Vue2 Browserslist: caniuse-lite is outdated. Please run: npx browserslist@latest --update-db
  19. Tensorflow 2.* 网络训练(二) fit(x, y, batch_size, epochs, verbose, validation_split, initial_epoch... )
  20. 1435 牛刀小试结构体

热门文章

  1. 【拦截器】和【过滤器】
  2. Manjaro安装配置小记
  3. Excel if else or and 怎么使用(陕西省身份证号码区域划分)
  4. 2021-07-14 深度学习基础与实践(二)
  5. Web服务器站点设置和IIS安装设置图解
  6. 关于Handle的一些介绍
  7. 大学物理(英文版)笔记 chapter1 Measurement
  8. Linux: Top命令查询结果参数详解
  9. 【SQL必知必会笔记(3)】SELECT语句的WHERE子句数据过滤操作
  10. 宽带加速方法!网速提高30%-200%