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编程开发之textwrap文本样式处理技巧
Nov 13 Python
python如何实现远程控制电脑(结合微信)
Dec 21 Python
python进行TCP端口扫描的实现
Dec 21 Python
PyTorch里面的torch.nn.Parameter()详解
Jan 03 Python
Django 实现 Websocket 广播、点对点发送消息的代码
Jun 03 Python
pytorch加载自己的图像数据集实例
Jul 07 Python
基于logstash实现日志文件同步elasticsearch
Aug 06 Python
Django启动时找不到mysqlclient问题解决方案
Nov 11 Python
Jupyter notebook 更改文件打开的默认路径操作
May 21 Python
Python图片处理之图片裁剪教程
May 27 Python
Python实现DBSCAN聚类算法并样例测试
Jun 22 Python
 Python 中 logging 模块使用详情
Mar 03 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
改进的IP计数器
2006/10/09 PHP
PHP中array_slice函数用法实例详解
2014/11/25 PHP
PHP符合PSR编程规范的实例分享
2016/12/21 PHP
Javascript 各浏览器的 Javascript 效率对比
2008/01/23 Javascript
jquery 多行滚动代码(附详细解释)
2010/06/17 Javascript
js focus不起作用的解决方法(主要是因为dom元素是否加载完成)
2010/11/05 Javascript
用js写了一个类似php的print_r输出换行功能
2013/02/18 Javascript
jquery验证表单中的单选与多选实例
2013/08/18 Javascript
jQuery事件用法实例汇总
2014/08/29 Javascript
jQuery中next方法用法实例
2015/04/24 Javascript
javascript中substring()、substr()、slice()的区别
2015/08/30 Javascript
浅析Bootstrap缩略图组件与警示框组件
2016/04/29 Javascript
Vue中组件之间数据的传递的示例代码
2017/09/08 Javascript
React Router v4 入坑指南(小结)
2018/04/08 Javascript
Vue+Mock.js模拟登录和表格的增删改查功能
2018/07/26 Javascript
JS原型对象操作实例分析
2020/06/06 Javascript
详解Vue中的MVVM原理和实现方法
2020/07/15 Javascript
如何在vue中使用HTML 5 拖放API
2021/01/14 Vue.js
[02:36]DOTA2亚洲邀请赛小组赛精彩集锦:EE凭借法力虚空拿下4杀
2017/03/30 DOTA
在Python中操作字符串之replace()方法的使用
2015/05/19 Python
[原创]python爬虫(入门教程、视频教程)
2018/01/08 Python
使用apidoc管理RESTful风格Flask项目接口文档方法
2018/02/07 Python
利用python实现微信头像加红色数字功能
2018/03/26 Python
Python爬虫之pandas基本安装与使用方法示例
2018/08/08 Python
django+mysql的使用示例
2018/11/23 Python
python高阶函数map()和reduce()实例解析
2020/03/16 Python
TensorFlow2.1.0安装过程中setuptools、wrapt等相关错误指南
2020/04/08 Python
python实现批处理文件
2020/07/28 Python
Python如何实现线程间通信
2020/07/30 Python
python定时截屏实现
2020/11/02 Python
Css3新特性应用之形状总结
2016/12/08 HTML / CSS
HTML5微信播放全屏问题的解决方法
2017/03/09 HTML / CSS
Hotter Shoes英国官网:英伦风格,舒适的鞋子
2017/12/28 全球购物
业务代表的岗位职责
2013/11/16 职场文书
2014超市收银员工作总结
2014/11/13 职场文书
优秀员工演讲稿
2019/06/21 职场文书