使用Python实现简单的学生成绩管理系统

作者:迢迢x 时间:2022-04-28 11:33:07 

基本功能:

  • 能够实现学生成绩相关信息的输入、输出、查找、删除、修改等功能;(使用数据库对数据进行存取)

  • 输入并存储学生的信息:通过输入学生的学号、姓名、和分数,然后就可以把数据保存在建立的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('请输入正确的操作选项!')

来源:https://blog.csdn.net/a55656aq/article/details/122604363

标签:Python,学生,管理系统
0
投稿

猜你喜欢

  • python用tkinter开发的扫雷游戏

    2022-05-16 18:39:40
  • python中的内置函数max()和min()及mas()函数的高级用法

    2023-01-21 18:45:43
  • Python排序算法之堆排序算法

    2023-01-17 02:00:55
  • MySQL数据库主从复制原理及作用分析

    2024-01-26 11:42:14
  • ORACLE LATERAL-SQL-INJECTION 个人见解

    2009-03-04 10:34:00
  • 2021年的Python 时间轴和即将推出的功能详解

    2023-07-14 22:32:04
  • asp实现本周的一周时间列表的代码

    2011-04-06 10:45:00
  • 基于TensorFlow中自定义梯度的2种方式

    2023-02-02 22:34:41
  • 浅谈Python中chr、unichr、ord字符函数之间的对比

    2022-02-27 16:02:58
  • golang gorm模型结构体的定义示例

    2024-04-23 09:35:24
  • Golang实现断点续传功能

    2023-07-24 08:19:26
  • 教你使用pyqt实现桌面歌词功能

    2021-04-22 16:11:04
  • 还原大备份mysql文件失败的解决方法分享

    2024-01-26 17:42:04
  • firefox 2正则表达式

    2008-08-25 19:15:00
  • python数据化运营的重要意义

    2021-05-05 21:02:27
  • asp日期 时间 星期函数使用方法详解

    2007-09-21 17:38:00
  • Python文件处理与垃圾回收机制详情

    2023-06-14 16:36:17
  • python使用turtle库绘制奥运五环

    2021-06-21 04:22:44
  • Python实现多任务进程示例

    2023-03-04 21:42:09
  • python for循环赋值问题

    2023-01-26 05:56:32
  • asp之家 网络编程 m.aspxhome.com