以前用C++和Java写过学生管理系统,也想用Python试试,果然“人生苦短,我用Python”。用Python写的更加简洁,实现雏形也就不到100行代码。

下面上代码

 #!/usr/bin/python3
# coding=utf-8 # 实现switch-case语句
class switch(object):
def __init__(self, value):
self.value = value
self.fall = False def __iter__(self):
"""Return the match method once, then stop"""
yield self.match
raise StopIteration def match(self, *args):
"""Indicate whether or not to enter a case suite"""
if self.fall or not args:
return True
elif self.value in args: # changed for v1.5, see below
self.fall = True
return True
else:
return False class student:
def __init__(self, name, age, id, grade):
self.next = None
self.name = name
self.age = age
self.id = id
self.grade = grade def show(self):
print('name:', self.name, ' ', 'age:', self.age, ' ', 'id:', self.id, ' ', 'grade:', self.grade) class stulist:
def __init__(self):
self.head = student('', 0, 0, 0) def display(self):
p = self.head.next
if p==None:
print('no student data in database!')
while p:
p.show()
p = p.next def insert(self):
print('please enter:')
name = input('name:')
age = input('age:')
id = input('id:')
grade = input('grade:')
newstu = student(name, age, id, grade)
p = self.head
while p.next:
p = p.next
p.next = newstu def query(self):
name = input('please enter the name you want to query:')
p = self.head.next
if p==None:
print('no such student in database')
while p:
if p.name == name:
p.show()
p = p.next def delete(self):
name = input("please enter the student'name you want to delete:")
p = self.head.next
pre = self.head
while p:
if p.name == name:
pre.next = p.next
p.next = None
print('the student info has been deleted!')
break
else:
pre = p
p = p.next def main():
stulist1 = stulist()
user_input = input('please enter the OPcode:')
while user_input:
print('a--insert/b--display/c--query/h or ''--help/d--delete')
for case in switch(user_input):
if case('a'):
stulist1.insert()
user_input = input('please enter the OPcode:')
break
if case('b'):
stulist1.display()
user_input = input('please enter the OPcode:')
break
if case('c'):
stulist1.query()
user_input = input('please enter the OPcode:')
break
if case('d'):
stulist1.delete()
user_input = input('please enter your OPcode:')
break
if case(): # default
print('please enter the OPcode...')
user_input = input('please enter the OPcode:')
break if __name__ == "__main__":
main()

下面是运行结果:

用python实现简易学生管理系统的更多相关文章

  1. python开发的学生管理系统

    python开发的学生管理系统(基础版) #定义一个函数,显示可以使用的功能列表给用户 def showInfo(): print("-"*30) print(" 学生管 ...

  2. JavaSE09-(练手)简易学生管理系统

    1.学生管理系统实现步骤 案例需求 系统主要功能如下: 添加学生:通过键盘录入学生信息,添加到集合中 删除学生:通过键盘录入要删除学生的学号,将该学生对象从集合中删除 修改学生:通过键盘录入要修改学生 ...

  3. python实现简易工资管理系统(Salary Manage)源码

    一.需求: 1.导入文件读取员工的信息和工资信息,最后将增加.删除或修改的员工工资信息写入原来的文件中 2.能够实现员工工资信息的增删改查 3.当增加和修改员工信息时用户用空格分隔员工姓名和薪资 4. ...

  4. Django_学生管理系统

    一. Django简易学生管理系统 1.在pycharm中创建工程student_manage_system,添加app:student_manage 2.配置静态文件:在工程项目目录下新建目录sta ...

  5. python简易版学生管理系统

    #coding=utf- def showInfo(): print("**************") print(" 学生管理系统") print(&quo ...

  6. Django 小实例S1 简易学生选课管理系统 9 创建课程模型(model)

    Django 小实例S1 简易学生选课管理系统 第9节--创建课程模型(model) 点击查看教程总目录 作者自我介绍:b站小UP主,时常直播编程+红警三,python1对1辅导老师. 对于课程模块, ...

  7. Django 小实例S1 简易学生选课管理系统 2 新建项目(project)并进行设置

    Django 小实例S1 简易学生选课管理系统 第2节--新建项目(project)并进行设置 点击查看教程总目录 作者自我介绍:b站小UP主,时常直播编程+红警三,python1对1辅导老师. 0 ...

  8. Django 小实例S1 简易学生选课管理系统 3 创建用户模型(model)

    Django 小实例S1 简易学生选课管理系统 第3节--创建用户模型(model) 点击查看教程总目录 作者自我介绍:b站小UP主,时常直播编程+红警三,python1对1辅导老师. 本文涉及到的新 ...

  9. Django 小实例S1 简易学生选课管理系统 0 初步介绍与演示

    Django 小实例S1 简易学生选课管理系统 第0章--初步介绍与演示 点击查看教程总目录 作者自我介绍:b站小UP主,时常直播编程+红警三,python1对1辅导老师. 1 初步介绍 先介绍下这个 ...

随机推荐

  1. css border 三角形阴影(不规则图形阴影) & 多重边框的制作

    前言:这是笔者学习之后自己的理解与整理.如果有错误或者疑问的地方,请大家指正,我会持续更新! border 的组合写法 border:border-width border-style border- ...

  2. (十七)SpringBoot之使用异步消息服务jms之ActiveMQ

    一.引入maven依赖 <dependencies> <dependency> <groupId>org.springframework.boot</grou ...

  3. C# explicit interface implementation(显式接口实现)

    C# explicit interface implementation 某个类要实现两个包含相同方法名的接口, 应该如何实现这两个方法? namespace ExplicitInterfaceImp ...

  4. HTTP参数污染(参数处理图)

  5. char str = '1.2.';问题

    偶然看到群里老哥问道这个问题 #include <iostream> using namespace std; int main() { char str = '1.2.'; ; } 什么 ...

  6. libssh2--ssh2实例

    #include "libssh2_config.h"#include<libssh2.h>#include<libssh2_sftp.h> 上述为所包含必 ...

  7. 《浏览器工作原理与实践》<11>this:从JavaScript执行上下文的视角讲清楚this

    在上篇文章中,我们讲了词法作用域.作用域链以及闭包,接下来我们分析一下这段代码: var bar = { myName:"time.geekbang.com", printName ...

  8. mariadb-server安装问题(Error: MariaDB-common conflicts with 1:mariadb-libs-5.5.60-1.el7_5.x86_64)

    问题:今天在安装mariadb-server包时,提示错误,无法正确安装linux自带的mariadb包,提示错误很明确,是由于MariaDB-common包与mariadb-libs包冲突. 解决办 ...

  9. init system

    参考:5 Best Modern Linux ‘init’ Systems (1992-2015) 参考:Linux开机流程 参考:<鸟哥的 Linux 私房菜:基础学习篇 第四版>第十七 ...

  10. jade-mixin 代码的重用

    有时候页面有好多个区块,比如列表区块,但是他们代码结构又是一模一样的怎么弄?jade天生就是节约成本,节约时间的,mixin就是让代码块可以重用的函数   mixin lession p jade s ...