Python实现简易的信息管理系统

Python信息管理系统

  • 刚学习Python,写了一个十分简易的信息管理系统。

环境

  • Python3.7.4,安装教程可以参考Python安装
  • PyCharm,安装教程可以参考PyCharm安装

功能

  • 主要功能如下:
    • 登录模块。
    • 根据用户信息判断用户角色。
    • 调用聚合网API,获取星座运势。

项目展示

Python实现简易的信息管理系统_第1张图片

文件结构

  • 文件结构如下:
    Python实现简易的信息管理系统_第2张图片
    • data:数据的初始化,存储用户账号密码信息。
    • DateUtil:工具类,获取用户属相、星座、年龄、图书信息等信息。
    • error:异常类。
    • main:主函数入口。
    • user:用户类。

代码部分

  • 下面直接上代码,如下:

user代码

from haicoder.DateUtil import DateUtil

#用户类模块
class User():
    def __init__(self, name, password):
        self.name = name
        self.password = password

    def login(self,name,password):
        if name ==self.name and password ==self.password:
            return self

class Student(User):
    def __init__(self,name,password,year=0,month=0,date=0,group="无",source=0):
        super().__init__(name,password)
        self.year = year
        self.month = month
        self.date = date
        self.group = group
        self.source = source
        self.util = DateUtil()


    #添加学生信息
    def updateStudentInfo(self):
        print("======更新信息=======")
        while True:
            try:
                year = int(input("请输入出生年份:"))
                break
            except ValueError:
                print("年份的输入格式错误,请输入数字:")

        while True:
            try:
                month = int(input("请输入出生月份:"))
                break
            except ValueError:
                print("月份的输入格式错误,请输入数字:")

        while True:
            try:
                date = int(input("请输入日期:"))
                break
            except ValueError:
                print("日期的输入格式错误,请输入数字:")

        while True:
            try:
                group = int(input("请输入年级:"))
                break
            except ValueError:
                print("年级的输入格式错误,请输入数字:")

        while True:
            try:
                source = int(input("请输入分数:"))
                break
            except ValueError:
                print("分数的输入格式错误,请输入数字:")



        self.year = year
        self.month = month
        self.date = date
        self.group = group
        self.source = source
        print("添加成功!")


    #展示学生信息
    def showStudentInfo(self):
        print("======显示学生信息======")
        sx = self.util.GetSX(self.year)
        xz = self.util.GetXZ(self.month,self.date)
        age = self.util.GetAge(self.year)
        xzys = self.util.GetXZYS(xz)

        print("学生姓名:%s,class:%s,属向:%s,星座:%s"%(self.name,self.group,sx,xz))
        print("年龄:%s"%age)
        print("分数为:%s"%self.source)
        print("星座运势:%s"%xzys)

class Teacher(User):
    def __init__(self,name,password,subject=0):
        super().__init__(name, password)
        self.subject=subject
        
    def showTeacherInfo(self):
        print("Teacher name:%s,subject:%s,"%(self.name,self.subject))

data代码

from haicoder.user import Student
from haicoder.user import Teacher
from haicoder.error import UserError
#数据模块
class Group():
    def __init__(self):
        self.data =[
            Student("张三",'123',1997,9,14,"six",90),
            Student("李四", '123'),
            Student("王五", '123'),
            Teacher("Tony",'123')]

    def check(self,inputUserName,inputPassword):
        for user in self.data:
            u = user.login(inputUserName,inputPassword)
            if u:
               return u
        else:
            raise UserError("用户名或者密码错误")

DateUtil代码

#工具类
from lxml import html

from haicoder.error import UserError
import datetime
import json
import  requests


class DateUtil():
    #数据初始化
    def __init__(self):
        self.sx = ['猴','鸡','狗','猪','鼠','牛','虎','兔','龙','蛇','马','羊']
        self.xz = ['摩羯座','水瓶座','双鱼座','白羊座','金牛座','双子座','巨蟹座','狮子座','处女座','天秤座','天蝎座','射手座']
        self.xz_data = [(1,20),(2,19),(3,21),(4,21),(5,21),(6,22),(7,23),(8,23),(9,23),(10,23),(11,23),(12,23)]
        self.book = ['','','']
    #验证信息
    def check(self,inputUserName,inputPassword):
        for user in self.data:
            u = user.login(inputUserName,inputPassword)
            if u:
               return u
        else:
            raise UserError("用户名或者密码错误")
    #获取属相
    def GetSX(self,year):
        print("获取属相")
        position = int(year) % 12
        return  self.sx[position]
    #获取星座
    def GetXZ(self,month,date):
        print("获取星座")
        n = 0
        while self.xz_data[n] < (month, date):
            n += 1
        return self.xz[n]
    #获取年龄
    def GetAge(self,year):
        print("获取年龄")
        return datetime.date.today().year-year
    #星座运势
    def GetXZYS(self,xz):
        print("今日星座运势")
        url = "http://web.juhe.cn:8080/constellation/getAll?consName=%s&type=today&key=ea6dcc3f96608847eea99f38b620685a"%xz
        jsonStr = requests.get(url).text
        result = json.loads(jsonStr)
        xzys = result['summary']

        return xzys
  • url = “http://web.juhe.cn:8080/constellation/getAll?consName=%s&type=today&key=ea6dcc3f96608847eea99f38b620685a”%xz
  • 以上代码的key为本人申请,一天只有50次免费,所以大家可以自己申请一个key。
  • 申请步骤如下:
    Python实现简易的信息管理系统_第3张图片
    Python实现简易的信息管理系统_第4张图片
    Python实现简易的信息管理系统_第5张图片
    Python实现简易的信息管理系统_第6张图片
    Python实现简易的信息管理系统_第7张图片

error代码

#错误信息模块
class UserError(Exception):
    def __init__(self,error):
        self.error = error

    def __str__(self):
        return self.error

main代码

from haicoder.user import Student,Teacher,User
from haicoder.data import Group
from haicoder.error import UserError

#入口模块
if __name__=='__main__':
    print("学生信息管理系统登录")
    group = Group()
    for i in range(3):
        name = input("请输入姓名:")
        pw = input("请输入密码:")
        try:
            user = group.check(name,pw)
        except UserError as e:
            print(e)
        else:
            print("正常登录")
            if isinstance(user,Student):
                user.updateStudentInfo()
                user.showStudentInfo()
            elif isinstance(user,Teacher):
                user.showTeacherInfo()
            break
  • 以上为本人做的一个简易的学生信息管理系统,本人学识尚浅,如有不对的地方,请大家及时指出,如果想学习更多相关Python知识,本人推荐嗨客网。

你可能感兴趣的:(Python实现简易的信息管理系统)