Python实现学生成绩管理系统

本文实例为大家分享了Python实现学生成绩管理系统的具体代码,供大家参考,具体内容如下

基本功能:

输入并存储学生的信息:通过输入学生的学号、姓名、和分数,然后就可以把数据保存在建立的student文件里面。

打印学生的所有信息:通过一个打印函数就可以把所有的信息打印在屏幕上。

修改学生信息:这个功能首先通过查询功能查询出该学生是否存在,如果存在就对该学生的信息进行修改,如果不存在则返回到主界面。

删除学生信息:该功能是对相应的学生进行删除操作,如果学生存在就查找到进行删除。

按学生成绩进行排序: 这个功能是按照学生的成绩进行排序,对学生的信息进行操作。

查找学生信息:这个功能通过输入学号,查找该学生的信息,如果有该学号就输出该学生的信息,没有该学号就提示输入的学号不存在。

初始化功能

系统在开始使用之前先进行初始化功能,判断students.txt文件中是否保存的有学生的信息,如果有就把文件的内容读取出来,供接下来的操作使用,如用没有就初始化一个空的列表,用来保存用户的输入,程序中接下来的所有数据都会保存在该列表中相当与一个数据缓冲区。

首先是打开文件操作,对文件中的内容进行读取操作,由于在文件中保存的内容是由空格进行分割的,并且每一个学生的信息都占用一行,首先读出所有的内容,先进行按照换行进行分割,得到每个人的信息,然后再对每个人的信息进行安装空格分隔,得到每个人的详细信息包括用户的姓名,学号,成绩。

def Init(stulist): #初始化函数
  print "初始化......"
  file_object = open('students.txt', 'r')
  for line in file_object:
   stu = Student()
   line = line.strip("\n")
   s = line.split(" ")
   stu.ID = s[0]
   stu.name = s[1]
   stu.score = s[2]
  stulist.append(stu)
print "初始化成功!" 

成绩排序实现

这部分代码是按照学生成绩的高低进行排序,在实现的时候,首先是把所有人的成绩放到一个列表里面然后使用插入排序,按照成绩的大小对StuList中保存的学生信息的地址进行排序

def Sort(stulist): #按学生成绩排序
 Stu = []
 sum_count = []
 for li in stulist:
  temp = []
  temp.append(li.ID)
  temp.append(li.name)
  temp.append(int(li.score1))
  temp.append(int(li.score2))
  temp.append(int(li.score3))
  temp.append(int(li.sum))
  sum_count.append(int(li.sum))
  Stu.append(temp)

 #print sum_count
 #print Stu;
 #print stulist
 insertSort(sum_count, stulist)
 #print stulist;
 display(stulist)

def insertSort(a, stulist):
 for i in range(len(a)-1):
  #print a,i
  for j in range(i+1,len(a)):
   if a[i]<a[j]:
    temp = stulist[i]
    stulist[i] = stulist[j]
    stulist[j] = temp

界面截图如下:

源码:

# -*- coding: UTF-8 -*-

import os
import re
import numpy as np

class Student: #定义一个学生类
 def __init__(self):
  self.name = ''
  self.ID =''
  self.score1 = 0
  self.score2 = 0
  self.score1 = 0
  self.sum = 0

def searchByID(stulist, ID): #按学号查找看是否学号已经存在
 for item in stulist:
  if item.ID == ID:
   return True

def Add(stulist,stu): #添加一个学生信息
 if searchByID(stulist, stu.ID) == True:
  print"学号已经存在!"
  return False
 stulist.append(stu)
 print stu.name,stu.ID, stu.score1, stu.score2, stu.score3, stu.sum;
 print "是否要保存学生信息?"
 nChoose = raw_input("Choose Y/N")
 if nChoose == 'Y' or nChoose == 'y':
  file_object = open("students.txt", "a")
  file_object.write(stu.ID)
  file_object.write(" ")
  file_object.write(stu.name)
  file_object.write(" ")
  file_object.write(str(stu.score1))
  file_object.write(" ")
  file_object.write(str(stu.score2))
  file_object.write(" ")
  file_object.write(str(stu.score3))
  file_object.write(" ")
  file_object.write(str(stu.sum))
  file_object.write("\n")
  file_object.close()
  print u"保存成功!"

def Search(stulist, ID): #搜索一个学生信息
 print u"学号 姓名 语文 数学 英语 总分"
 count = 0
 for item in stulist:
  if item.ID == ID:
   print item.ID, '\t' ,item.name,'\t', item.score1,'\t',item.score2, '\t', item.score3, '\t',item.sum
   break
  count = 0
 if count == len(stulist):
  print "没有该学生学号!"

def Del(stulist, ID): #删除一个学生信息
 count = 0
 for item in stulist:
  if item.ID == ID:
   stulist.remove(item)
   print "删除成功!"
   break
  count +=1
 # if count == len(stulist):
 # print "没有该学生学号!"
 file_object = open("students.txt", "w")
 for stu in stulist:
  print stu.ID, stu.name, stu.score1,stu.score2, stu.score3, stu.sum
  file_object.write(stu.ID)
  file_object.write(" ")
  file_object.write(stu.name)
  file_object.write(" ")
  file_object.write(str(stu.score1))
  file_object.write(" ")
  file_object.write(str(stu.score2))
  file_object.write(" ")
  file_object.write(str(stu.score3))
  file_object.write(" ")
  file_object.write(str(stu.sum))
  file_object.write("\n")
  file_object.close()
 # print "保存成功!"
 file_object.close()
def Change(stulist, ID):
 count = 0
 for item in stulist:
  if item.ID == ID:
   stulist.remove(item)
   file_object = open("students.txt", "w")
   for stu in stulist:
    #print li.ID, li.name, li.score
    file_object.write(stu.ID)
    file_object.write(" ")
    file_object.write(stu.name)
    file_object.write(" ")
    file_object.write(str(stu.score1))
    file_object.write(" ")
    file_object.write(str(stu.score2))
    file_object.write(" ")
    file_object.write(str(stu.score3))
    file_object.write(" ")
    file_object.write(str(stu.sum))
    file_object.write("\n")
   # print "保存成功!"
   file_object.close()
   stu = Student()
   stu.name = raw_input("请输入学生的姓名")
   while True:
    stu.ID = raw_input("请输入学生的ID")
    p = re.compile('^[0-9]{3}$')
    if p.match(stu.ID):
     break
    else:
     print "输入的有错误!"
   while True:
    stu.score1 = int(raw_input("请输入学生语文成绩"))
    if stu.score1 <= 100 and stu.score1 > 0 :
     break
    else:
     print "输入的学生成绩有错误!"
   while True:
    stu.score2 = int(raw_input("请输入学生数学成绩"))
    if stu.score2 <= 100 and stu.score2 > 0 :
     break
    else:
     print "输入的学生成绩有错误!"
   while True:
    stu.score3 = int(raw_input("请输入学生英语成绩"))
    if stu.score3 <= 100 and stu.score3 > 0 :
     break
    else:
     print "输入的学生成绩有错误!"
   stu.sum = stu.score1 + stu.score2 + stu.score3
   Add(stulist,stu)
def display(stulist): #显示所有学生信息
 print u"学号 姓名 语文 数学 英语 总分"
 for item in stulist:
  print item.ID, '\t' ,item.name,'\t', item.score1,'\t',item.score2, '\t', item.score3, '\t',item.sum

def Sort(stulist): #按学生成绩排序
 Stu = []
 sum_count = []
 for li in stulist:
  temp = []
  temp.append(li.ID)
  temp.append(li.name)
  temp.append(int(li.score1))
  temp.append(int(li.score2))
  temp.append(int(li.score3))
  temp.append(int(li.sum))
  sum_count.append(int(li.sum))
  Stu.append(temp)

 #print sum_count
 #print Stu;
 #print stulist
 insertSort(sum_count, stulist)
 #print stulist;
 display(stulist)

def insertSort(a, stulist):
 for i in range(len(a)-1):
  #print a,i
  for j in range(i+1,len(a)):
   if a[i]<a[j]:
    temp = stulist[i]
    stulist[i] = stulist[j]
    stulist[j] = temp
 #return a 

def Init(stulist): #初始化函数
 print "初始化......"
 file_object = open('students.txt', 'r')
 for line in file_object:
  stu = Student()
  line = line.strip("\n")
  s = line.split(" ")
  stu.ID = s[0]
  stu.name = s[1]
  stu.score1 = s[2]
  stu.score2 = s[3]
  stu.score3 = s[4]
  stu.sum = s[5]
  stulist.append(stu)
 file_object.close()
 print "初始化成功!"
 main()

def main(): #主函数 该程序的入口函数
 while True:
  print "*********************"
  print u"--------菜单---------"
  print u"增加学生信息--------1"
  print u"查找学生信息--------2"
  print u"删除学生信息--------3"
  print u"修改学生信息--------4"
  print u"所有学生信息--------5"
  print u"按照分数排序--------6"
  print u"退出程序------------0"
  print "*********************"

  nChoose = raw_input("请输入你的选择:")
  if nChoose == "1":
   stu = Student()
   stu.name = raw_input("请输入学生的姓名")
   while True:
    stu.ID = raw_input("请输入学生的ID")
    p = re.compile('^[0-9]{3}$')
    if p.match(stu.ID):
     break
    else:
     print "输入的有错误!"
   while True:
    stu.score1 = int(raw_input("请输入学生语文成绩"))
    if stu.score1 <= 100 and stu.score1 > 0 :
     break
    else:
     print "输入的学生成绩有错误!"
   while True:
    stu.score2 = int(raw_input("请输入学生数学成绩"))
    if stu.score2 <= 100 and stu.score2 > 0 :
     break
    else:
     print "输入的学生成绩有错误!"
   while True:
    stu.score3 = int(raw_input("请输入学生英语成绩"))
    if stu.score3 <= 100 and stu.score3 > 0 :
     break
    else:
     print "输入的学生成绩有错误!"
   stu.sum = stu.score1 + stu.score2 + stu.score3
   Add(stulist,stu)

  if nChoose == '2':
   ID = raw_input("请输入学生的ID")
   Search(stulist, ID)

  if nChoose == '3':
   ID = raw_input("请输入学生的ID")
   Del(stulist, ID)
  if nChoose == '4':
   ID = raw_input("请输入学生的ID")
   Change(stulist, ID)

  if nChoose == '5':
   display(stulist)

  if nChoose == '6':
   Sort(stulist)

  if nChoose == '0':
   break

if __name__ == '__main__':
 stulist =[]
Init(stulist)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

您可能感兴趣的文章:

  • python实现学生管理系统
  • python实现外卖信息管理系统
  • 名片管理系统python版
  • Python学生成绩管理系统简洁版
  • Python实现学校管理系统
  • Python实现GUI学生信息管理系统
  • python版学生管理系统
  • python实现用户管理系统
  • 一个简单的Python名片管理系统
  • python实现员工管理系统
(0)

相关推荐

  • Python学生成绩管理系统简洁版

    讲起学生成绩管理系统,从大一C语言的课程设计开始,到大二的C++课程设计都是这个题,最近在学树莓派,好像树莓派常用Python编程,于是学了一波Python,看了一点基本的语法想写点东西练下手. 开发环境:Ubuntu+Python2.7 代码如下: #coding=utf-8 #保存学生信息 studentList=[] def addInfo(name,addr): tempInfo={} tempInfo['name']=name tempInfo['addr']=addr student

  • python实现用户管理系统

    本文实例为大家分享了python实现用户管理系统的具体代码,供大家参考,具体内容如下 <python核心编程>第七章练习题第五题 一.题目描述 userpw2.py.下面的问题和例题7.1中的管理名字-密码的键值对数据程序有关. (a) 修改那个脚本,使他能记录用户上次的登陆日期和时间(用time模块),并与用户密码一起保存起来.程序的界面要求用户输入用户名和密码的提示.无论用户名是否登陆成功,都应有提示,在用户登陆成功后,应更新相应用户的上次登陆时间戳.如果本次登陆与上次登陆在时间上相差不超

  • python实现学生管理系统

    python写的简单的学生管理系统,练习python语法. 可以运行在windows和linux下,python 2.7. #!/usr/local/bin/python # -*- coding:utf-8 -*- import os import re #定义学生类 class Student: def __init__(self): self.name = '' self.ID = '' self.score = 0 #根据学生分数进行从大到小的冒泡排序 def BuddleSortByS

  • Python实现GUI学生信息管理系统

    本文实例为大家分享了Python实现GUI学生信息管理系统的具体代码,供大家参考,具体内容如下 项目环境:  软件环境: OS:RedHat6.3                   Lib:Pygtk                   Language:Python                   Support tool:Glade3 项目简述: ①Glade3设计用户的登录窗口,功能主窗口 ②通过Gtk.Builder初始化,载入界面 ③在Mysql.py文件中实现Python操作数

  • python版学生管理系统

    写一个学生管理系统,最好用python. 我都没学过python呢,只好开始临时抱佛脚,再到网上找找有没有例子看看,下面是我参照另一个博主写的,中间有一些和我不能融合的错误,我已经解决了. input("\n\nPress the enter key to exit.") def functionList(): # 定义功能菜单 print("---------请输入序号选择您要得功能---------") print("") print(&qu

  • python实现外卖信息管理系统

    本文为大家分享了python实现外卖信息管理系统的具体代码,供大家参考,具体内容如下 一.需求分析 需求分析包含如下: 1.问题描述 以外卖信息系统管理员身份登陆该系统,实现对店铺信息.派送员信息.客服人员信息.订单信息.配送信息等进行有条件查询以及信息的录入.修改.删除等功能. 2.系统功能描述 (1)信息录入:使用wxpython设计排版编写窗口界面,给出录入信息的接口,通过python语句实现与数据库的连接,从而向数据库中插入相应数据. (2)信息修改:使用wxpython设计排版编写窗口

  • python实现员工管理系统

    这是一个简易的员工管理系统,实现最简单的功能: 1.登录用户密码验证(错误三次自动退出) 2.支持文本员工的搜索.添加.删除.修改 3.一级层级多个选项.二级层级多个选项,都支持判空.退出.返回上一层级 4.针对删除和修改有员工当前自动搜索到的结果进行参照修改和特殊提醒是否删除 用到的基础知识点比较多: 1.计数器 2.while True 以及给while做退出层级标记 3.if-elif-else 的嵌套使用 4.continue 和 break 以及简单函数定义def 5.键盘抓取 raw

  • 名片管理系统python版

    本文实例为大家分享了python名片管理系统的具体代码,供大家参考,具体内容如下 import os list_all = [] def page(): """输出主页面""" print("*" * 30) print("欢迎使用[名片管理系统]v2.0") print() print("1.新建名片") print("2.查看全部") print("3.

  • Python实现学校管理系统

    本文实例为大家分享了Python实现学校管理系统的具体代码,供大家参考,具体内容如下 一.功能分析 此学校管理系统应该可以实现学校的师资力量的调配,学生的入学.学习以及修学或者退学的情况 二.程序解读 1.下面的程序实现了学校管理系统的基本功能,包括: 1)学校的招生 2)讲师的招聘 3)课程的增加 4)等等 2.未实现的功能也有很多,比如: 1)学生类中有一个方法是缴费,也有一个方法是注册,这两个方法应该关联起来,缴费成功后,才可以进行注册 2)每个老师应该可以通过各种方式来查看自己学生的信息

  • 一个简单的Python名片管理系统

    字符串和列表学完,自己试着写了一个非常简单的Python名片管理系统. 新萌尝试,大佬们不要喷. 修改名片的功能我偷了个懒,因为我不知道怎么通过定义下标,然后通过下标来修改列表内的字符串. 我的思路是,把用户准备修改的名片删除,再把用户新命名的名片添加即可: 如果有大佬有直接修改的办法,欢迎指点一下. 代码如下: name = [] while True: print("="*50) print(" 欢迎进入名片管理系统V1.0") print("1:添加

随机推荐