中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python實現學生成績管理系統

發布時間:2020-09-30 09:09:10 來源:腳本之家 閱讀:235 作者:田小思 欄目:開發技術

本文實例為大家分享了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

界面截圖如下:

Python實現學生成績管理系統

源碼:

# -*- 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)

更多學習資料請關注專題《管理系統開發》。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

延寿县| 晋州市| 佛教| 聂拉木县| 崇明县| 大石桥市| 深州市| 新竹市| 延川县| 屯昌县| 喀什市| 贵港市| 旅游| 尉氏县| 甘肃省| 南木林县| 高淳县| 姚安县| 金秀| 海阳市| 策勒县| 柏乡县| 巴彦淖尔市| 深泽县| 大庆市| 上犹县| 三台县| 永川市| 嘉黎县| 石门县| 乳山市| 化德县| 深州市| 阆中市| 扬中市| 平湖市| 五峰| 凯里市| 建湖县| 离岛区| 三台县|