基于python的学生成绩管理,用python做成绩管理系统

大家好,小编为大家解答python编写一个简单的学生成绩管理程序的问题。很多人还不知道python设计学生成绩管理系统详细步骤,现在让我们一起来看看吧!

基本功能:

  • 能够实现学生成绩相关信息的输入、输出、查找、删除、修改等功能;(使用数据库对数据进行存取)
  • 输入并存储学生的信息:通过输入学生的学号、姓名、和分数,然后就可以把数据保存在建立的student文件里面。
  • 打印学生的所有信息:通过一个打印函数就可以把所有的信息打印在屏幕上python创意小作品
  • 查找学生信息:这个功能通过输入学号,查找该学生的信息,如果有该学号就输出该学生的信息,没有该学号就提示输入的学号不存在。
  • 删除学生信息:该功能是对相应的学生进行删除操作,如果学生存在就查找到进行删除。
  • 修改学生信息:这个功能首先通过查询功能查询出该学生是否存在,如果存在就对该学生的信息进行修改,如果不存在则返回到主界面。
实现效果:

制作技巧

 1.定义变量

(1)定义交互输入变量

主要用于展示学生成绩管理系统的操作界面。

(2)定义学生成绩信息变量

主要用于学生成绩信息的存取。

s_info = """
*****************************************************

【学生成绩管理系统】
                            q. 退出学生成绩系统
                            1. 显示学生成绩信息
                            2. 新建学生成绩信息                            
                            3. 查询学生成绩信息
                            4. 删除学生成绩信息
                            5. 修改学生成绩信息
                            
******************************************************"""
    students=[]

2.读取学生成绩信息

主要是从TXT文件中读取学生成绩信息,并保存到学生成绩变量中。

f=open("students.txt","r+")
    for st in f.readlines():
        students.append(eval(st))
    f.close()

3.循环等待操作指令并执行

主要是循环等待输入的学生管理系统操作指令,获取到操作指令后执行对学生成绩信息的显示、新建、查询、删除、修改操作。

while True:
        print(s_info)
        handle = input('请选择你要的操作选项:')
        if handle == 'q':
            print('q. 退出系统')
            break
        elif handle == '1':            
            s_display(students)
        elif handle == '2':
            s_new(students)
            
        elif handle == '3':
            s_find(students)       
        elif handle == '4':
            s_delect(students)
        elif handle == '5':
            s_modify(students)         
        else:
            print('请输入正确的操作选项!')

4.编写操作指令执行函数

(1)显示学生成绩信息函数

主要功能是显示所有学生成绩信息。

def s_display(students):
        print('1. 显示全部信息')
        print('姓名\t语文\t数学\t英语\t总分')
        for stu in students:
            print(f'{stu["name"]}\t{stu["chinese"]}\t{stu["math"]}\t{stu["english"]}\t{stu["total"]}')

(2)新建学生成绩信息函数

主要是新建学生成绩信息,并更新保存学生成绩信息的文件。

def s_new(students):
        print('2. 新建学生信息')
        name = str(input('请输入学生的姓名:'))
        chinese = int(input('请输入学生的语文成绩:'))
        math = int(input('请输入学生的数学成绩:'))
        english = int(input('请输入学生的英语成绩:'))
        total = chinese + math + english
        stu = {'name': name, 'chinese': chinese, 'math': math, 'english': english, 'total': total}
        students.append(stu)
        s_write_to_file(students)

(3)查询学生成绩信息函数

主要是查询给定姓名的学生成绩信息。


def s_find(students):
        print('3. 查询学生信息')
        name = input('请输入你要查询学生的姓名:')
        for stu in students:
            if name == stu['name']:
                print('姓名\t语文\t数学\t英语\t总分')
                print(f'{stu["name"]}\t{stu["chinese"]}\t{stu["math"]}\t{stu["english"]}\t{stu["total"]}')
                break
        else:
            print('该学生不存在, 请检查名字是否输入正确!')
        s_write_to_file(students)

(4)删除学生成绩信息函数

主要是删除给定姓名的学生成绩信息,并更新保存学生成绩信息的文件。

def s_delect(students):
        print('4. 删除学生信息')
        name = input('请输入你要删除学生的姓名:')
        for stu in students:
            if name == stu['name']:
                students.remove(stu)
                break
        else:
            print('该学生不存在, 请检查名字是否输入正确!')
        s_write_to_file(students)

(5)修改学生成绩信息函数

主要是修改给定姓名的学生成绩信息,并更新保存学生成绩信息的文件。


def s_modify(students):
        print('5. 修改学生信息')
        name = input('请输入你要修改学生的姓名:')
        for stu in students:
            if name == stu['name']:
                print('(如果不想修改,直接回车!)')
                name = input('请重新输入学生的姓名:')
                chinese = input('请重新输入学生的语文成绩:')
                math = input('请重新输入学生的数学成绩:')
                english = input('请重新输入学生的英语成绩:')
                if name:
                    stu['name'] = str(name)
                if chinese:
                    stu['chinese'] = int(chinese)
                if math:
                    stu['math'] = int(math)
                if english:
                    stu['english'] = int(english)
                stu['total'] = stu['chinese'] + stu['math'] + stu['english']
                break
        else:
            print('该学生不存在, 请检查名字是否输入正确!')
        s_write_to_file(students)

5.保存学生成绩信息函数

主要实现学生成绩信息的保存更新。


def s_write_to_file(students):
        f=open("students.txt","r+")
        for s  in students:
            f.write(str(s)+"\n")
        f.close()

完整源代码

def s_write_to_file(students):
        f=open("students.txt","r+")
        for s  in students:
            f.write(str(s)+"\n")
        f.close()

def s_display(students):
        print('1. 显示全部信息')
        print('姓名\t语文\t数学\t英语\t总分')
        for stu in students:
            print(f'{stu["name"]}\t{stu["chinese"]}\t{stu["math"]}\t{stu["english"]}\t{stu["total"]}')

def s_new(students):
        print('2. 新建学生信息')
        name = str(input('请输入学生的姓名:'))
        chinese = int(input('请输入学生的语文成绩:'))
        math = int(input('请输入学生的数学成绩:'))
        english = int(input('请输入学生的英语成绩:'))
        total = chinese + math + english
        stu = {'name': name, 'chinese': chinese, 'math': math, 'english': english, 'total': total}
        students.append(stu)
        s_write_to_file(students)
        
def s_find(students):
        print('3. 查询学生信息')
        name = input('请输入你要查询学生的姓名:')
        for stu in students:
            if name == stu['name']:
                print('姓名\t语文\t数学\t英语\t总分')
                print(f'{stu["name"]}\t{stu["chinese"]}\t{stu["math"]}\t{stu["english"]}\t{stu["total"]}')
                break
        else:
            print('该学生不存在, 请检查名字是否输入正确!')
        s_write_to_file(students)

def s_delect(students):
        print('4. 删除学生信息')
        name = input('请输入你要删除学生的姓名:')
        for stu in students:
            if name == stu['name']:
                students.remove(stu)
                break
        else:
            print('该学生不存在, 请检查名字是否输入正确!')
        s_write_to_file(students)

def s_modify(students):
        print('5. 修改学生信息')
        name = input('请输入你要修改学生的姓名:')
        for stu in students:
            if name == stu['name']:
                print('(如果不想修改,直接回车!)')
                name = input('请重新输入学生的姓名:')
                chinese = input('请重新输入学生的语文成绩:')
                math = input('请重新输入学生的数学成绩:')
                english = input('请重新输入学生的英语成绩:')
                if name:
                    stu['name'] = str(name)
                if chinese:
                    stu['chinese'] = int(chinese)
                if math:
                    stu['math'] = int(math)
                if english:
                    stu['english'] = int(english)
                stu['total'] = stu['chinese'] + stu['math'] + stu['english']
                break
        else:
            print('该学生不存在, 请检查名字是否输入正确!')
        s_write_to_file(students)
            

if __name__=="__main__":
    s_info = """
*****************************************************

【学生成绩管理系统】
                            q. 退出学生成绩系统
                            1. 显示学生成绩信息
                            2. 新建学生成绩信息                            
                            3. 查询学生成绩信息
                            4. 删除学生成绩信息
                            5. 修改学生成绩信息
                            
******************************************************"""
    students=[]
    f=open("students.txt","r+")
    for st in f.readlines():
        students.append(eval(st))
    f.close()
    while True:
        print(s_info)
        handle = input('请选择你要的操作选项:')
        if handle == 'q':
            print('q. 退出系统')
            break
        elif handle == '1':            
            s_display(students)
        elif handle == '2':
            s_new(students)
            
        elif handle == '3':
            s_find(students)       
        elif handle == '4':
            s_delect(students)
        elif handle == '5':
            s_modify(students)         
        else:
            print('请输入正确的操作选项!')

结尾:

 今天的分享就到这里,喜欢就点个吧!

需要完整的项目源码的可以私信我即可哟!或者点击这行蓝色字体

  • 10
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
学生成绩管理系统是一种非常常见的应用。Python 是一种非常流行的编程语言,因此使用 Python 来开发学生成绩管理系统是非常可行的。下面是一个简单的学生成绩管理系统的实现: 1. 首先定义一个 Student 类,用来表示每个学生的信息,包括姓名、学号、年级和成绩等属性。 ```python class Student: def __init__(self, name, id, grade, score): self.name = name self.id = id self.grade = grade self.score = score ``` 2. 然后定义一个 GradeBook 类,用来管理所有的学生信息,包括添加学生、删除学生、查询学生信息、计算平均成绩等方法。 ```python class GradeBook: def __init__(self): self.students = [] def add_student(self, student): self.students.append(student) def remove_student(self, student): self.students.remove(student) def find_student_by_id(self, id): for student in self.students: if student.id == id: return student return None def find_student_by_name(self, name): for student in self.students: if student.name == name: return student return None def calculate_average_score(self): total_score = 0 for student in self.students: total_score += student.score return total_score / len(self.students) ``` 3. 最后,可以编写一个简单的交互式命令行界面,用来操作学生成绩管理系统。 ```python def main(): grade_book = GradeBook() while True: print("学生成绩管理系统") print("1. 添加学生") print("2. 删除学生") print("3. 查询学生信息") print("4. 计算平均成绩") print("5. 退出") choice = int(input("请选择操作: ")) if choice == 1: name = input("请输入学生姓名: ") id = input("请输入学生学号: ") grade = input("请输入学生年级: ") score = float(input("请输入学生成绩: ")) student = Student(name, id, grade, score) grade_book.add_student(student) print("学生添加成功!") elif choice == 2: id = input("请输入要删除的学生学号: ") student = grade_book.find_student_by_id(id) if student: grade_book.remove_student(student) print("学生删除成功!") else: print("未找到该学生!") elif choice == 3: id_or_name = input("请输入要查询的学生学号或姓名: ") student = grade_book.find_student_by_id(id_or_name) or grade_book.find_student_by_name(id_or_name) if student: print("姓名: ", student.name) print("学号: ", student.id) print("年级: ", student.grade) print("成绩: ", student.score) else: print("未找到该学生!") elif choice == 4: average_score = grade_book.calculate_average_score() print("平均成绩: ", average_score) elif choice == 5: break else: print("无效操作,请重新选择!") if __name__ == "__main__": main() ``` 这样,一个简单的学生成绩管理系统就完成了。当然,这只是一个简单的示例,实际开发中需要考虑更多的功能和异常情况。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值