基本功能:

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

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

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

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

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

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


初始化功能

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

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

1.  def Init(stulist):  #初始化函数
2.      print "初始化......"
3.      file_object = open('students.txt', 'r')
4.      for line in file_object:
5.          stu = Student()
6.          line = line.strip("\n")
7.          s = line.split(" ")
8.          stu.ID = s[0]
9.          stu.name = s[1]
10.         stu.score = s[2]
11.         stulist.append(stu)
12.     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 stulistinsertSort(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 npclass Student: #定义一个学生类def __init__(self):self.name = ''self.ID =''self.score1 = 0self.score2 = 0self.score1 = 0self.sum = 0def searchByID(stulist, ID): #按学号查找看是否学号已经存在for item in stulist:if item.ID == ID:return Truedef Add(stulist,stu): #添加一个学生信息if searchByID(stulist, stu.ID) == True:print"学号已经存在!"return Falsestulist.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 = 0for item in stulist:if item.ID == ID:print item.ID, '\t' ,item.name,'\t', item.score1,'\t',item.score2, '\t', item.score3, '\t',item.sumbreakcount = 0if count == len(stulist):print "没有该学生学号!"def Del(stulist, ID): #删除一个学生信息count = 0for item in stulist:if item.ID == ID:stulist.remove(item)print "删除成功!"breakcount +=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.sumfile_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 = 0for 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.scorefile_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):breakelse:print "输入的有错误!"while True:stu.score1 = int(raw_input("请输入学生语文成绩"))if stu.score1 <= 100 and stu.score1 > 0 :breakelse:print "输入的学生成绩有错误!"while True:stu.score2 = int(raw_input("请输入学生数学成绩"))if stu.score2 <= 100 and stu.score2 > 0 :breakelse:print "输入的学生成绩有错误!"while True:stu.score3 = int(raw_input("请输入学生英语成绩"))if stu.score3 <= 100 and stu.score3 > 0 :breakelse:print "输入的学生成绩有错误!"stu.sum = stu.score1 + stu.score2 + stu.score3Add(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.sumdef 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 stulistinsertSort(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):breakelse:print "输入的有错误!"while True:stu.score1 = int(raw_input("请输入学生语文成绩"))if stu.score1 <= 100 and stu.score1 > 0 :breakelse:print "输入的学生成绩有错误!"while True:stu.score2 = int(raw_input("请输入学生数学成绩"))if stu.score2 <= 100 and stu.score2 > 0 :breakelse:print "输入的学生成绩有错误!"while True:stu.score3 = int(raw_input("请输入学生英语成绩"))if stu.score3 <= 100 and stu.score3 > 0 :breakelse:print "输入的学生成绩有错误!"stu.sum = stu.score1 + stu.score2 + stu.score3Add(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':breakif __name__ == '__main__':stulist =[]
Init(stulist)

Python简单实现学生成绩管理系统相关推荐

  1. Python:结合列表和字典,编写一个简单的学生成绩管理系统

            本次主要使用新学的列表和字典,结合定义函数等知识点,成功编写了一个简单的学生成绩管理系统.实现了在系统内使用学生的姓名或者学号,即可实现显示.添加.删除.修改.查找(增删改查).成绩排 ...

  2. 简单的学生成绩管理系统

    简单的学生成绩管理系统 写一个科目类,包含科目名称,科目分数2个数据成员,一个衡量是否及格的成员函数,用其构造函数为科目对象赋值.写一个学生类,含学号,姓名2个数据成员,以及一个成绩对象指针成员(指向 ...

  3. java简单学生成绩系统_JAVA 实现简单的学生成绩管理系统

    一.实验目的 1.掌握java的类与对象的基本概念: 2.掌握简单的信息管理系统的设计与实现. 二.实验环境 实验建议在安装了以下软件的计算机上完成: 1.       Windows xp/win7 ...

  4. 第一篇博客——C语言实现简单的学生成绩管理系统

    C语言简单实现学生成绩管理系统 一.前言 首先,要写一个管理系统必须要先搭出一个框架来,即明确自己要实现哪些功能,将每个功能都写陈一个函数,然后再去编写实现各个功能的函数,最后再思考各个函数之间的相互 ...

  5. C语言期末课设:从头开始设计一个简单的学生成绩管理系统

    整个可以运行的源代码在文章最后!!! 首先我们先创建一个结构体,用来抽象一个学生的信息,包含该学生的学号,姓名,成绩(这里我们为了程序简单,只包含了一个成绩.也可以自行添加,其他成绩信息,以及性别,年 ...

  6. 学生成绩管理系统mysql课程设计_数据库课程设计(极其简单的学生成绩管理系统)...

    这个是我大三上学期的时候刚开始学习数据库课程的时候做的一个很稀烂的课程设计的源代码,当时刚刚开始学习Java和Oracle,而且当时就花了今年元旦3天假,做的这个C/S程序中没有加入触发器和存储过程等 ...

  7. C实现的一个简单的学生成绩管理系统

    /*学生成绩管理系统 */ //#include "StdAfx.h" #include "stdio.h"   /*标准输入输出函数库*/ #include ...

  8. python基于django学生成绩管理系统o8mkp

    目录 1 绪论 1 1.1课题背景 1 1.2课题研究现状 1 1.3初步设计方法与实施方案 2 1.4本文研究内容 2 2 系统开发环境 4 2.1 django简介 4  2.3 B/S结构简介 ...

  9. 用matlab时提示数据写入文件期间被裁剪_用C语言简单开发学生成绩管理系统

    要求设计的管理系统能够实现以下功能: 1.每一条记录包括一个学生的学号.姓名.3个成绩(平时成绩.作业成绩.考试成绩) 2.成绩录入功能:(成绩信息用文件保存,可以一次完成若干条记录) 3.成绩信息显 ...

最新文章

  1. dataset string dataset
  2. WinSock学习笔记
  3. 【源码解读】Vue与ASP.NET Core WebAPI的集成
  4. mvc 一般注释_使用带有注释和JQuery的Spring MVC 3的Ajax
  5. 帕斯卡命名法 pascal命名法
  6. 【模拟】蓝桥20:蛇形填数
  7. 使用VS.NET2003操作SQLServer DTS.
  8. java单线程共享,「Java并发编程实战」之对象的共享
  9. svg绘图工具raphael.js的使用
  10. Mac如何设置允许和iCloud之间使用接力功能?
  11. WebCollector 网页正文快速提取
  12. 物联网通信技术期末复习6:第六章-应用传输技术
  13. Kvaser怎么使用虚拟驱动?Kvaser Leaf Light HS v2
  14. roslyn生成html,通过Roslyn将字符串生成可以执行的C#代码
  15. [Power Query] 数据格式转换
  16. 卡片游戏--循环队列实现
  17. Web测试所涉及的主要测试点
  18. js replace使用方法
  19. 闲谈“个人核心竞争力”与“危机感”
  20. unity使用ugui自制调色面板

热门文章

  1. 前端-vue-excel遇到坑
  2. web测试方法总结 -- 非原创,存留一份
  3. 以太坊君士坦丁堡:是利好?-千氪
  4. 《实用C++》第8课:赋值运算符和赋值表达式
  5. 逐飞与龙邱英飞凌miniwiggler仿真器硬件接口适配与差异总结
  6. 蓝牙的定位,智能蓝牙定位追踪-新导智能
  7. 使用flash id不拆盘查看SSD颗粒
  8. ubuntu安装微信,解决网页版微信不能登陆问题
  9. 学生认证免费领取——使用阿里云服务器的Ubuntu版本,并进行图形化
  10. 数据分析--数据分析是什么?