python学生成绩录入系统

1、启动Python文件之后,显示下面的主菜单:

01c3d5aeb86d4be094eb913f410c0542.png

主菜单:输入每个功能后面的数字或字母,按回车后,执行相应的功能。

 

功能1

1输入学生成绩信息(包括:学号、姓名、语文成绩、数学成绩、英语成绩),按回车后,添加该学生的成绩信息;

2添加完后,询问是否继续添加,如果是则继续重复前面的操作,如果不是,则结束。

 

 

功能2:使用该功能后,如果有学生成绩,则输出所有学生成绩。

 

 

功能3
1先输入要修改的学生学号,接着先输出该学生的所有信息(学号、姓名、语文成绩、数学成绩、英语成绩);

2然后输入新的学生成绩(语文成绩、数学成绩、英语成绩)进行修改,如果不输入直接回车,则保持原有数据。

 

功能4:先输入要删除的学生的学号,删除之前询问是否删除,确认之后才删除

 

功能Q:直接结束程序

 

 

功能(附加):增加导出学生成绩信息的功能。先是询问是否保存,如果是则将成绩信息保存文本文件中(要用到笔记中的文件操作)

 main

from functions import *


def InitStudentSys():
    while True:
        print("**********欢迎进入学生成绩管理系统**********")
        print("                      菜单                  ")
        print("输入成绩-----------------------------------1")
        print("查询成绩-----------------------------------2")
        print("修改成绩-----------------------------------3")
        print("删除成绩-----------------------------------4")
        print("退出系统-----------------------------------Q")
        index = input("请输入要使用的功能:")
        # 根据功能编号,创建相应的功能类对象,并执行该功能
        function = Functions()
        if index == '1':
            function = InputScore()
        elif index == '2':
            function = LookScore()
        elif index == '3':
            function = ModifyScore()
        elif index == '4':
            function = DeleteScore()
        elif index == 'Q' or index == 'q':
            function = Quit()
        function.Run()
        # 有个停留效果
        input("\n按Enter键继续.")


InitStudentSys()

funictions

#导入model层中的学生类
from model import Student

# 学生管理系统功能的简单工厂类
class Functions(object):
    #创建存放学生对象的字典
    d_students = {}

    # 执行功能的函数
    def Run(self):
        print('\n功能待定')


# 学生管理系统的功能
# 输入成绩功能类
class InputScore(Functions):
    def Run(self):
        #接收用户输入的学生信息
        infor = input('请输入学生信息(学号 姓名 语文成绩 数学成绩 英语成绩:\n')
        #使用字符串切割函数,来切割学生信息
        StudentInfors = infor.split('')
        #获取学生信息
        id = StudentInfors[0]
        name = StudentInfors[1]
        chinese = StudentInfors[2]
        math = StudentInfors[3]
        english = StudentInfors[4]
        #创建学生对象
        student = Student(id, name, chinese, math, english)
        #存储学生对象
        Functions.d_students[id] =  student
        #提示用户
        print('\n添加学生信息成功')
        #询问是否继续添加学生信息
        result = input('是否继续添加学生信息(y/n)')
        #判断是否继续输入学生信息
        if result == 'y' or result == 'Y':
            #这里我们再来执行Run方法,方法自己调用自己,我们称之为方法的递归
            self.Run()
        else:
            #如果不继续输入则return结束执行
            return



# 查询成绩类
class LookScore(Functions):
    def Run(self):
        #先判断是否有输入学生信息
        if len(Functions.d_students) == 0:
            print('\n查无学生信息')
            return
        #如果有学生信息,则来遍历字典输出学生成绩
        else:
            print('\n学号 姓名 语文成绩 数学成绩 英语成绩')
            for student in Functions.d_students.values():
                print(student)
            print('输出完毕')





# 修改成绩类
class ModifyScore(Functions):
    def Run(self):
        #询问要修改的学生学号
        id = input('\n请输入修改的学生学号')
        #判断是否有该学号
        if id not in Functions.d_students.keys():
            #如果不存在学号的话,那么提示用户
            print('查无此学号')
            return
        #如果存在该学号,先输出该学生的信息
        else:
            print('\n学号 姓名 语文成绩 数学成绩 英语成绩')
            student = Functions.d_students[id]
            print(student)
            #再要求用户输入新的三科成绩
            print('请输入新的三科成绩(语文成绩 数学成绩 英语成绩),如果不修改则直接回车')
            infor = input()
            #判断用户是否输入了新的三科成绩  字符串.strip()  去除字符串后多余空格
            if infor.strip() == '':
                print('\n 停止修改')
                return
            #如果输入不为空,则获得新的三科成绩
            score = infor.strip('')
            student.chinese = score[0]
            student.math = score[1]
            student.english = score[2]
            Functions.d_students[id] = student
            #提示用户
            print('修改成功')






# 删除成绩类:
class DeleteScore(Functions):
    def Run(self):
        #询问要删除的学生学号
        id = input('\n请输入要删除学生的学号')
        #第一步判断:是否存在该学号
        if id not in Functions.d_students.keys():
            print('查无此人')
            return

        #第二部判断:是否确认删除
        #在删除之前先显示该学生信息来确保没有删错
        print('\n学号 姓名 语文成绩 数学成绩 英语成绩')
        student = Functions.d_students[id]
        print(student)
        #询问用户,是否确认删除
        result = input('\n是否确认删除该学生信息(Y/n)')
        if result == 'Y'or result == 'y':
            Functions.d_students,pop(id)
            print('\n删除成功')
        else:
            print('停止删除。')


# 退出系统
class Quit(Functions):
    def Run(self):
        print('\n欢迎再次使用学生成绩管理系统')
        #sys.exit() 是强制结束程序的函数
        sys.exit()

model

#model层,存放我们封装的一些类

#学生类
class Student(object):
    #构成函数
    def __init__(self,id,name,chinese,math,english):
        #对象变量
        self.id = id
        self.name = name
        self.chinese = chinese
        self.math = math
        self.english = english
    #内置函数 __str__函数
    def __str__(self):
        infor = f'{self.id}{self.name}{self.chinese}{self.math}{self.english}'
        return infor


    #对象方法,暂时不写

 

 

 

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值