python-archieve-projects/期末大作业/作业1-2-4.py

185 lines
9.1 KiB
Python
Executable File

# -*- coding:utf-8 -*-
import random as rd
import csv
import pandas as pd
FirstName = '赵钱孙李周吴郑王冯陈褚卫蒋沈韩杨朱秦尤许何吕施张孔曹严华金魏陶姜戚谢邹喻柏水窦章云苏潘葛奚范彭郎鲁韦昌马苗凤花方俞任袁柳酆鲍史唐费廉岑薛雷贺倪汤滕殷罗毕郝邬安常乐于时傅皮卞齐康伍余元卜顾孟平黄和穆萧尹姚邵湛汪祁毛禹狄米贝明臧计伏成戴谈宋茅庞熊纪舒屈项祝董梁'
LastName = '豫章故郡洪都新府星分翼轸地接衡庐襟三江而带五湖郑王冯陈褚卫蒋沈韩杨朱秦尤许何吕施张孔曹严华金魏陶姜飞李周吴郑王冯陈褚卫蒋沈韩杨朱秦尤许何吕施张孔曹严华金魏陶姜戚谢邹喻柏水窦章云苏潘葛奚范彭郎鲁韦昌马苗凤花方俞任袁柳酆鲍史唐湛汪祁毛禹狄米贝明臧计伏成戴谈宋茅庞熊纪舒屈项祝董梁'
#二维字典定义
data_struc = {'structure': {'姓名': '', '性别': '', '学号': '', 'Python程序设计基础': '', '计算机导论': '', '离散数学': '', '数据结构': '', 'C语言程序设计': '', 'Java语言程序设计': '', '算法导论': '', '总分': ''}}
#学生总字典定义
stuDic = {}
stuList=[]
stuList = stuDic.values()
# 生成学生个人字典
def gennerateStu(i, name, sex, number, pythonMark, htmlMark, mathMark, dataMark, cMark, javaMark, methodMark):
stuDic[i] = {}
stuDic[i]['姓名'] = name
stuDic[i]['性别'] = sex
stuDic[i]['学号'] = number
stuDic[i]['Python程序设计基础'] = pythonMark
stuDic[i]['计算机导论'] = htmlMark
stuDic[i]['离散数学'] = mathMark
stuDic[i]['数据结构'] = dataMark
stuDic[i]['C语言程序设计'] = cMark
stuDic[i]['Java语言程序设计'] = javaMark
stuDic[i]['算法导论'] = methodMark
stuDic[i]['总分'] = round(stuDic[i]['Python程序设计基础'] + stuDic[i]['计算机导论'] + stuDic[i]['离散数学'] + stuDic[i]['数据结构'] + stuDic[i]['C语言程序设计'] + stuDic[i]['Java语言程序设计'] + stuDic[i]['算法导论'],1)
#学生信息设置
def gennerator():
for i in range(60):
xing = rd.choice(FirstName)
ming = "".join(rd.choice(LastName) for i in range(2))
name = str(rd.choice(xing)) + str("".join(rd.choice(ming) for i in range(2)))
sex = rd.choice("男女")
number = i + 4201800
pythonMark = round(rd.uniform(74, 95), 1)
htmlMark = round(rd.uniform(74, 95), 1)
mathMark = round(rd.uniform(74, 95), 1)
dataMark = round(rd.uniform(74, 95), 1)
cMark = round(rd.uniform(74, 95), 1)
javaMark = round(rd.uniform(74, 95), 1)
methodMark = round(rd.uniform(74, 95), 1)
gennerateStu(i, name, sex, number, pythonMark, htmlMark, mathMark, dataMark, cMark, javaMark, methodMark)
# 写入csv
def writeCSV():
with open("成绩表.csv", "w") as file:
writer = csv.DictWriter(file, fieldnames=data_struc['structure'].keys())
writer.writeheader()
for i in range(60):
writer.writerow(stuDic[i])
def sortPythonMark():
python = sorted(stuList, key=lambda i:i['Python程序设计基础'], reverse = True)
with open("Python 成绩降序表.csv", "w", encoding="utf-8") as file:
writer = csv.DictWriter(file, fieldnames=data_struc['structure'].keys())
writer.writeheader()
for i in range(60):
writer.writerow(python[i])
data = pd.read_csv("Python 成绩降序表.csv", encoding="utf-8")
data1=data.drop(["离散数学"],axis=1)
data2=data1.drop(["计算机导论"],axis=1)
data3=data2.drop(["数据结构"],axis=1)
data4=data3.drop(["C语言程序设计"],axis=1)
data5=data4.drop(["Java语言程序设计"],axis=1)
data6=data5.drop(["算法导论"],axis=1)
data7=data6.drop(["总分"],axis=1)
data7.to_csv('Python 成绩降序表.csv', header=data_struc, index=False)
def sortJavaMark():
java = sorted(stuList, key=lambda i:i['Java语言程序设计'], reverse = True)
with open("Java 成绩降序表.csv", "w", encoding="utf-8") as file:
writer = csv.DictWriter(file, fieldnames=data_struc['structure'].keys())
writer.writeheader()
for i in range(60):
writer.writerow(java[i])
data = pd.read_csv("Java 成绩降序表.csv", encoding="utf-8")
data1=data.drop(["离散数学"],axis=1)
data2=data1.drop(["计算机导论"],axis=1)
data3=data2.drop(["数据结构"],axis=1)
data4=data3.drop(["C语言程序设计"],axis=1)
data5=data4.drop(["Python程序设计基础"],axis=1)
data6=data5.drop(["算法导论"],axis=1)
data7=data6.drop(["总分"],axis=1)
data7.to_csv('Java 成绩降序表.csv', header=data_struc, index=False)
def sortHTMLMark():
html = sorted(stuList, key=lambda i:i['计算机导论'], reverse = True)
with open("计算机导论成绩降序表.csv", "w", encoding="utf-8") as file:
writer = csv.DictWriter(file, fieldnames=data_struc['structure'].keys())
writer.writeheader()
for i in range(60):
writer.writerow(html[i])
data = pd.read_csv("计算机导论成绩降序表.csv", encoding="utf-8")
data1=data.drop(["离散数学"],axis=1)
data2=data1.drop(["Python程序设计基础"],axis=1)
data3=data2.drop(["数据结构"],axis=1)
data4=data3.drop(["C语言程序设计"],axis=1)
data5=data4.drop(["Java语言程序设计"],axis=1)
data6=data5.drop(["算法导论"],axis=1)
data7=data6.drop(["总分"],axis=1)
data7.to_csv('计算机导论成绩降序表.csv', header=data_struc, index=False)
def sortMathMark():
Math = sorted(stuList, key=lambda i:i['离散数学'], reverse = True)
with open("离散数学成绩降序表.csv", "w", encoding="utf-8") as file:
writer = csv.DictWriter(file, fieldnames=data_struc['structure'].keys())
writer.writeheader()
for i in range(60):
writer.writerow(Math[i])
data = pd.read_csv("离散数学成绩降序表.csv", encoding="utf-8")
data1=data.drop(["计算机导论"],axis=1)
data2=data1.drop(["Python程序设计基础"],axis=1)
data3=data2.drop(["数据结构"],axis=1)
data4=data3.drop(["C语言程序设计"],axis=1)
data5=data4.drop(["Java语言程序设计"],axis=1)
data6=data5.drop(["算法导论"],axis=1)
data7=data6.drop(["总分"],axis=1)
data7.to_csv('离散数学成绩降序表.csv', header=data_struc, index=False)
def sortDataMark():
Data = sorted(stuList, key=lambda i:i['数据结构'], reverse = True)
with open("数据结构成绩降序表.csv", "w", encoding="utf-8") as file:
writer = csv.DictWriter(file, fieldnames=data_struc['structure'].keys())
writer.writeheader()
for i in range(60):
writer.writerow(Data[i])
data = pd.read_csv("数据结构成绩降序表.csv", encoding="utf-8")
data1=data.drop(["离散数学"],axis=1)
data2=data1.drop(["Java语言程序设计"],axis=1)
data3=data2.drop(["计算机导论"],axis=1)
data4=data3.drop(["C语言程序设计"],axis=1)
data5=data4.drop(["Python程序设计基础"],axis=1)
data6=data5.drop(["算法导论"],axis=1)
data7=data6.drop(["总分"],axis=1)
data7.to_csv('数据结构成绩降序表.csv', header=data_struc, index=False)
def sortCMark():
C = sorted(stuList, key=lambda i:i['C语言程序设计'], reverse = True)
with open("C语言成绩降序表.csv", "w", encoding="utf-8") as file:
writer = csv.DictWriter(file, fieldnames=data_struc['structure'].keys())
writer.writeheader()
for i in range(60):
writer.writerow(C[i])
data = pd.read_csv("C语言成绩降序表.csv", encoding="utf-8")
data1=data.drop(["离散数学"],axis=1)
data2=data1.drop(["Java语言程序设计"],axis=1)
data3=data2.drop(["数据结构"],axis=1)
data4=data3.drop(["算法导论"],axis=1)
data5=data4.drop(["Python程序设计基础"],axis=1)
data6=data5.drop(["计算机导论"],axis=1)
data7=data6.drop(["总分"],axis=1)
data7.to_csv('C语言成绩降序表.csv', header=data_struc, index=False)
def sortMethMark():
Meth = sorted(stuList, key=lambda i:i['算法导论'], reverse = True)
with open("算法导论成绩降序表.csv", "w", encoding="utf-8") as file:
writer = csv.DictWriter(file, fieldnames=data_struc['structure'].keys())
writer.writeheader()
for i in range(60):
writer.writerow(Meth[i])
data = pd.read_csv("算法导论成绩降序表.csv", encoding="utf-8")
data1=data.drop(["离散数学"],axis=1)
data2=data1.drop(["Python程序设计基础"],axis=1)
data3=data2.drop(["数据结构"],axis=1)
data4=data3.drop(["C语言程序设计"],axis=1)
data5=data4.drop(["Java语言程序设计"],axis=1)
data6=data5.drop(["计算机导论"],axis=1)
data7=data6.drop(["总分"],axis=1)
data7.to_csv('算法导论成绩降序表.csv', header=data_struc, index=False)
def main():
gennerator()
writeCSV()
sortPythonMark()
sortJavaMark()
sortHTMLMark()
sortMathMark()
sortDataMark()
sortCMark()
sortMethMark()
if __name__ == '__main__':
main()