Python实现学校管理系统


Posted in Python onJanuary 11, 2018

本文实例为大家分享了Python实现学校管理系统的具体代码,供大家参考,具体内容如下

Python实现学校管理系统

一、功能分析

此学校管理系统应该可以实现学校的师资力量的调配,学生的入学、学习以及修学或者退学的情况

二、程序解读

1.下面的程序实现了学校管理系统的基本功能,包括:

1)学校的招生
2)讲师的招聘
3)课程的增加
4)等等

2.未实现的功能也有很多,比如:

1)学生类中有一个方法是缴费,也有一个方法是注册,这两个方法应该关联起来,缴费成功后,才可以进行注册
2)每个老师应该可以通过各种方式来查看自己学生的信息,比如按照姓名,学号等等
3)每个学生都应该可以查看学校所有的课程和教师情况
4)所有的这些信息必须保存在文件或者数据库中才可以得到永久的保存
5)在客户上传相应的数据时,应该对其有所约束,比如说学号必须是10位正整数(在这里,为了避免报错,将所有的数据都设置为字符串型)
6)讲师,学生和课程的删除,修改,查询等操作需要添加
7)各类对象在初始化的时候需要输入的信息太多,应该做成只需要唯一ID和PASSWD这种类型的来进行相应的登录
8)等等

二、程序代码

#!/usr/bin/env python
#coding:utf-8
"""
file:Management.py
date:9/9/179:57 PM
author:hx
desc:管理系统雏形
"""
##添加模块
import sys
import json

##学校类定义
class School(object):
  ##初始化函数
  def __init__(self,SchoolName,SchoolPlace,SchoolMotto):
    self.SchoolName = SchoolName
    self.SchoolPlace = SchoolPlace
    self.SchoolMotto = SchoolMotto
  ##招生函数
  def RecruitStu(self):
    NewStuName = raw_input("StuName:")
    NewStuAge = raw_input("StuAge:")
    NewStuSex = raw_input("StuSex:")
    NewStuSchool = raw_input("StuSchool:")
    CourseNo = raw_input("CourseNo:")
    NewStuID = raw_input("StuID:")
    CoursePrice = raw_input("CoursePrice:")
    NewStu = Stu(NewStuName,NewStuAge,NewStuSex,NewStuSchool,CourseNo,NewStuID,CoursePrice)   ##实例化学员对象
    stus_dict = {"StuName":NewStuName,"StuAge":NewStuAge,"StuSex":NewStuSex,"StuSchool":NewStuSchool,"CourseNo":CourseNo,"StuID":NewStuID,"CoursePrice":CoursePrice} # 用字典来存放讲师信息
    if not dic:
      dic[NewStuName] = stus_dict
      json.dump(dic, open("student_db", "w"), encoding='utf-8', ensure_ascii=False, indent=2)
    else:
      if dic.get(NewStuName):
        print("%s学生已存在,不能注册名字相同的学生" % NewStuName)
      else:
        dic[NewStuName] = stus_dict
        json.dump(dic, open("student_db", "w"),encoding='utf-8', ensure_ascii=False, indent=2)
    print("The student has already added successfully".center(50, '-'))
    NewStu.StuInfo()
  ##聘请讲师
  def HireTch(self):
    print "Welcome to hire teacher from here~"
    NewTeacherName = raw_input("Please input the teacher's name:")
    NewTeacherAge = raw_input("Please input the teacher's age:")
    NewTeacherSex = raw_input("Please input the teacher's sex:")
    NewCourseNo = raw_input("Please input the teacher's course number:")
    NewSalary = raw_input("Please input the teacher's salary:")
    NewTeacher = Teacher(NewTeacherName, NewTeacherAge, NewTeacherSex, NewCourseNo,NewSalary) # 实例化讲师对象
    teachers_dict = {"TeacherName":NewTeacherName,"TeacherAge":NewTeacherAge,"TeacherSex":NewTeacherSex,"CourseNo":NewCourseNo,"Salary":NewSalary} # 用字典来存放讲师信息
    # 通过json将讲师的字典反序列化到dic字典中
    if not dic:                 #字典如果为空
      dic[NewTeacherName] = teachers_dict    #将讲师名与讲师对象相关联
      # 通过json将讲师的字典序列化到teacher_db文件中
      json.dump(dic, open("teacher_db", "w"),encoding='utf-8',ensure_ascii=False,indent=2)
    else:                    #如果文件中已有讲师信息
      if dic.get(NewTeacherName):       #字典中不存在key,则返回none,不报错
        print("%s讲师已存在,不能创建名字相同的讲师" % NewTeacherName)
      else:
        dic[NewTeacherName] = teachers_dict
        json.dump(dic, open("teacher_db", "w"),encoding='utf-8',ensure_ascii=False,indent=2)
    NewTeacher.TeacherInfo() ##将新老师的信息打印在屏幕上

  ##新增课程
  def CreateCourse(self):
    print "Welcome to create course!"
    NewCourseNo = raw_input("CourseNo:")
    NewCourseName = raw_input("CourseName:")
    NewCoursePrice = raw_input("CoursePrice:")
    NewCourse = Course(NewCourseNo,NewCourseName,NewCoursePrice)  ##新创建的对象直接实例化
    courses_dict = {"CourseNo":NewCourseNo,"CourseName":NewCourseName,"CoursePrice":NewCoursePrice} # 用字典来存放讲师信息
    if not dic:
      dic[NewCourseNo] = courses_dict
      json.dump(dic, open("course_db", "w"), encoding='utf-8', ensure_ascii=False, indent=2)
    else:
      if dic.get(NewCourseNo):
        print("%s课程已存在,不能注册课程号相同的课程" % NewCourseNo)
      else:
        dic[NewCourseNo] = courses_dict
        json.dump(dic, open("course_db", "w"),encoding='utf-8', ensure_ascii=False, indent=2)
    print("Course has already created successfully".center(50, '-'))
    print ("""
    CourseNo:%s
    CourseName:%s
    CoursePrice:%s"""%(NewCourseNo,NewCourseName,NewCoursePrice))

class Teacher(object):
  def __init__(self, TeacherName, TeacherAge, TeacherSex, CourseNo, Salary):
    self.TeacherName = TeacherName
    self.TeacherAge = TeacherAge
    self.TeacherSex = TeacherSex
    self.CourseNo = CourseNo
    self.Salary = Salary

  def TeachKnowledge(self):
    print "Teach Knowlege~"

  def TeacherInfo(self):
    print("""
    -------------讲师信息-------------
    Name:%s
    Age:%s
    Sex:%s
    CourseNo:%s
    Salary:%s
    """ % (self.TeacherName, self.TeacherAge,self.TeacherSex, self.CourseNo, self.Salary))
##课程类定义
class Course(object):
  def __init__(self,CourseNo,CourseName,CoursePrice):
    self.CourseNo = CourseNo
    self.CourseName = CourseName
    self.CoursePrice = CoursePrice
  def ShowCourseInfo(self):
    print ("""
    CourseNO:%s
    CourseName:%s
    CoursePrice:%s""" %(self.CourseNo,self.CourseName,self.CoursePrice))
##学员类定义
class Stu(object):
  def __init__(self,StuName,StuAge,StuSex,StuSchool,CourseNo,StuID,CoursePrice):
    self.StuName = StuName
    self.StuAge = StuAge
    self.StuSex = StuSex
    self.StuSchool = StuSchool
    self.CourseNo = CourseNo
    self.StuID = StuID
    self.CoursePrice = CoursePrice
  def Study(self):
    print "study"
  def PayMoney(self):
    print "Paying for money~"
  def StuInfo(self):
    print("""
        ---------------学生信息--------------
        Name:%s
        Age:%s
        Sex:%s
        School:%s
        CourseNo:%s
        ID:%s
        CoursePrice:%s
        """ %(self.StuName,self.StuAge,self.StuSex,self.StuSchool,self.CourseNo,self.StuID,self.CoursePrice))

def students_view(): # 学员视图
  while True:
    pro = """
    1.欢迎注册
    2.返回
    3.退出

    请选择:
    """
    num = raw_input(pro)
    if num == '1':
      choice_school_obj.RecruitStu()   # 调用学生注册方法并生成学生对象
    elif num == '2':
      break
    elif num == '3':
      sys.exit()
    else:
      continue

def teacher_view(): # 讲师视图
  name = raw_input("请输入讲师姓名:")
  while True:
    if dic.get(name) or teachers_dict.get(name):
      print("欢迎%s讲师".center(50, '-') % name)
    elif not dic.get(name) and not teachers_dict.get(name):
      print("%s讲师不存在" % name)
      break
    pro = """
    1.查看学员信息
    2.返回
    3.退出

    请输入你的选择:
    """
    num = raw_input(pro)
    if num == '1':
      if teachers_dict.get(name):
        teachers_dict[name].show_student() # 查看学生信息
      else:
        print("功能未完善,只能输入lvah,cheng")
    elif num == '2':
      break
    elif num == '3':
      sys.exit()
    else:
      continue

def school_view(): # 学校视图
  while True:
    pro = """
    1.创建课程
    2.招生注册
    3.聘用讲师
    4.返回
    5.退出

    请输入你的选择:
    """
    num = raw_input(pro)
    if num == '1':
      choice_school_obj.CreateCourse()
    elif num == '2':
      choice_school_obj.RecruitStu()
    elif num == '3':
      choice_school_obj.HireTch()
    elif num == '4':
      break
    elif num == '5':
      sys.exit()
    else:
      continue

def main():
  global dic # 全局变量
  global choice_school_obj
  dic = {}

  while True:
    print("请选择学校".center(50, '*'))
    pro1 = """
  1. %s
  2. %s
  3. 返回
  4. 退出

  请输入你的选择:
""" % (school1.SchoolName, school2.SchoolName)
    choice_school = raw_input(pro1)
    if choice_school == '1':
      choice_school_obj = school1 # 将对象引用传给choice_school
    elif choice_school == '2':
      choice_school_obj = school2
    elif choice_school == '3':
      break
    elif choice_school == '4':
      sys.exit()
    else:
      continue
    while True:
      print("请选择视图".center(50, '*'))
      pro2 = """
    1.学员视图
    2.讲师视图
    3.学校管理视图
    4.返回
    5.退出

    请选择视图:
    """

      num = raw_input(pro2)

      if num == '1':
        print("欢迎进入学员视图".center(50, '*'))
        students_view()
      elif num == '2':
        print("欢迎进入讲师视图".center(50, '*'))
        teacher_view()
      elif num == '3':
        print("欢迎进入学校管理视图".center(50, '*'))
        school_view()
      elif num == '4':
        break
      elif num == '5':
        sys.exit()
      else:
        continue

if __name__ == '__main__':

  teachers_dict = {}
  courses_dict = {}
  stus_dict = {}

  school1 = School("A大学", "曲江校区", "祖国、荣誉、责任")  # 实例化两个学校
  school2 = School("B大学", "长安区", "爱国、求是、奋进")

  t1 = Teacher("leo", "28", "male", "01", "10000")
  t2 = Teacher("harry", "26", "female", "02", "9000")      # 实例化两个讲师
  teachers_dict["leo"] = t1
  teachers_dict["harry"] = t2
  teacher_dict = {"TeacherName": "leo", "TeacherAge": "28", "TeacherSex": "male", "CourseNo": "01", "Salary": "10000"}
  teacher_dict = {"TeacherName": "harry", "TeacherAge": "26", "TeacherSex": "female", "CourseNo": "02","Salary": "9000"}

  course1 = Course("01", "Linux云自动化运维", "12800")      # 实例化两个课程
  course2 = Course("02", "c/c++开发", "9800")
  courses_dict["01"] = course1
  courses_dict["02"] = course2
  courses_dict = {"CourseNo":"01","CourseName":"Linux云自动化运维","CoursePrice":"12800"}
  courses_dict = {"CourseNo": "02", "CourseName": "c/c++开发", "CoursePrice": "9800"}

  stu1 = Stu("Katy","18","female","A大学","01","3150911026","12800")  ##实例化两个学员
  stu2 = Stu("Betty","18","male","B大学","02","3150911022","12000")
  stus_dict["Katy"] = stu1
  stus_dict["Betty"] = stu2
  stu_dict = {"StuName":"Katy","StuAge":"18","StuSex":"female","StuSchool":"A大学","CourseNo":"01","StuID":"3150911026","CoursePrice":"12800"}
  stu_dict = {"StuName":"Betty","StuAge":"18","StuSex":"male","StuSchool":"B大学","CourseNo":"02","StuID":"3150911022","CoursePrice":"12000"}
  print(school1, school2)
  main()

三、运行结果

Python实现学校管理系统

Python实现学校管理系统

初级基本功能的实现就不一一上图了,待后期完善后在上传。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
使用Python神器对付12306变态验证码
Jan 05 Python
最大K个数问题的Python版解法总结
Jun 16 Python
python django 访问静态文件出现404或500错误
Jan 20 Python
解决python3 urllib中urlopen报错的问题
Mar 25 Python
Python标准库之itertools库的使用方法
Sep 07 Python
Python3.5.3下配置opencv3.2.0的操作方法
Apr 02 Python
浅谈pandas中Dataframe的查询方法([], loc, iloc, at, iat, ix)
Apr 10 Python
Python实现base64编码的图片保存到本地功能示例
Jun 22 Python
Python中文编码知识点
Feb 18 Python
Python中Numpy mat的使用详解
May 24 Python
Python自定义函数计算给定日期是该年第几天的方法示例
May 30 Python
Python 实现自动登录+点击+滑动验证功能
Jun 10 Python
Python实现GUI学生信息管理系统
Apr 05 #Python
使用python 爬虫抓站的一些技巧总结
Jan 10 #Python
python版学生管理系统
Jan 10 #Python
python实现用户管理系统
Jan 10 #Python
python的Tqdm模块的使用
Jan 10 #Python
python3.6 实现AES加密的示例(pyCryptodome)
Jan 10 #Python
Python设计模式之MVC模式简单示例
Jan 10 #Python
You might like
PHP 自定义错误处理函数trigger_error()
2013/03/26 PHP
php实现的百度搜索某地天气的小偷代码
2014/04/23 PHP
Laravel如何使用Redis共享Session
2018/02/23 PHP
优秀js开源框架-jQuery使用手册(1)
2007/03/10 Javascript
js/jquery获取浏览器窗口可视区域高度和宽度以及滚动条高度实现代码
2012/12/17 Javascript
Jquery同辈元素选中/未选中效果的实例代码
2013/08/01 Javascript
js模拟点击以提交表单为例兼容主流浏览器
2013/11/29 Javascript
iframe里面的元素触发父窗口元素事件的jquery代码
2014/10/19 Javascript
JS实现单行文字不间断向上滚动的方法
2015/01/29 Javascript
jquery使用经验小结
2015/05/20 Javascript
JS实现登录页面记住密码和enter键登录方法推荐
2016/05/10 Javascript
JS操作input标签属性checkbox全选的实现代码
2017/03/02 Javascript
JavaScript 程序错误Cannot use 'in' operator to search的解决方法
2017/07/10 Javascript
Angular指令之restict匹配模式的详解
2017/07/27 Javascript
使用JS中的Replace()方法遇到的问题小结
2017/10/20 Javascript
vue mounted组件的使用
2018/06/18 Javascript
解决vue 打包发布去#和页面空白的问题
2018/09/04 Javascript
vue+element UI实现树形表格带复选框的示例代码
2019/04/16 Javascript
解决vue单页面应用中动态修改title问题
2019/06/09 Javascript
Python 专题四 文件基础知识
2017/03/20 Python
TF-IDF与余弦相似性的应用(二) 找出相似文章
2017/12/21 Python
python3中获取文件当前绝对路径的两种方法
2018/04/26 Python
python检测IP地址变化并触发事件
2018/12/26 Python
对python读取zip压缩文件里面的csv数据实例详解
2019/02/08 Python
详解Python函数式编程—高阶函数
2019/03/29 Python
python打包多类型文件的操作方法
2020/09/21 Python
CSS3实现DIV圆角效果完整代码
2012/10/10 HTML / CSS
英国建筑用品在线:Building Supplies Online(BSO)
2018/04/30 全球购物
检察官就职演讲稿
2014/01/13 职场文书
销售人员职业生涯规划范文
2014/03/01 职场文书
助理政工师申报材料
2014/06/03 职场文书
开展党的群众路线教育实践活动领导班子对照检查材料
2014/09/25 职场文书
还款承诺书范本
2015/01/20 职场文书
2015年教学工作总结
2015/04/02 职场文书
五年级语文教学反思
2016/03/03 职场文书
MongoDB误操作后使用oplog恢复数据
2022/04/11 MongoDB