python-archieve-projects/生成学生及成绩/作业3.py

233 lines
7.1 KiB
Python
Executable File
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# -*- coding:utf-8 -*-
import csv
import matplotlib.pyplot as plt
# 设置字体
plt.style.use('ggplot')
def python():
interval1 = 0
interval2 = 0
interval3 = 0
with open("Python 成绩降序表.csv", "r", encoding="utf-8") as file:
reader = csv.reader(file)
column = [row[3] for row in reader]
python = list(column)
del python[0]
for i in range(len(python)):
if 70 < eval(python[i]) <= 80:
interval1 += 1
if 80 < eval(python[i]) <= 90:
interval2 += 1
if 90 < eval(python[i]) <= 100:
interval3 += 1
# 横坐标列表
interval = ['70-80', '80-90', '90-100']
# 纵坐标列表
intervalNum = [interval1, interval2, interval3]
plt.title('Python') # 表名
plt.bar(x=interval, height=intervalNum, color='steelblue', alpha=0.8) # 柱状样式
# 合成元组进行输出具体数据(可不要)
for x1, yy in zip(interval, intervalNum):
plt.text(x1, yy + 1, str(yy), ha='center', va='bottom', fontsize=20, rotation=0)
# y轴的区间传入区间
plt.ylim((0, 40))
# 显示图表
plt.show()
def html():
interval1 = 0
interval2 = 0
interval3 = 0
with open("计算机导论成绩降序表.csv", "r", encoding="utf-8") as file:
reader = csv.reader(file)
column = [row[3] for row in reader]
html = list(column)
del html[0]
for i in range(len(html)):
if 70 < eval(html[i]) <= 80:
interval1 += 1
if 80 < eval(html[i]) <= 90:
interval2 += 1
if 90 < eval(html[i]) <= 100:
interval3 += 1
interval = ['70-80', '80-90', '90-100']
intervalNum = [interval1, interval2, interval3]
plt.title('Computer Introduction')
plt.bar(x=interval, height=intervalNum, color='steelblue', alpha=0.8)
for x1, yy in zip(interval, intervalNum):
plt.text(x1, yy + 1, str(yy), ha='center', va='bottom', fontsize=20, rotation=0)
plt.ylim((0, 40))
plt.show()
def math():
interval1 = 0
interval2 = 0
interval3 = 0
with open("离散数学成绩降序表.csv", "r", encoding="utf-8") as file:
reader = csv.reader(file)
column = [row[3] for row in reader]
math = list(column)
del math[0]
for i in range(len(math)):
if 70 < eval(math[i]) <= 80:
interval1 += 1
if 80 < eval(math[i]) <= 90:
interval2 += 1
if 90 < eval(math[i]) <= 100:
interval3 += 1
interval = ['70-80', '80-90', '90-100']
intervalNum = [interval1, interval2, interval3]
plt.title('Math')
plt.bar(x=interval, height=intervalNum, color='steelblue', alpha=0.8)
for x1, yy in zip(interval, intervalNum):
plt.text(x1, yy + 1, str(yy), ha='center', va='bottom', fontsize=20, rotation=0)
plt.ylim((0, 40))
plt.show()
def data():
interval1 = 0
interval2 = 0
interval3 = 0
with open("数据结构成绩降序表.csv", "r", encoding="utf-8") as file:
reader = csv.reader(file)
column = [row[3] for row in reader]
math = list(column)
del math[0]
for i in range(len(math)):
if 70 < eval(math[i]) <= 80:
interval1 += 1
if 80 < eval(math[i]) <= 90:
interval2 += 1
if 90 < eval(math[i]) <= 100:
interval3 += 1
interval = ['70-80', '80-90', '90-100']
intervalNum = [interval1, interval2, interval3]
plt.title('Data calMethture')
plt.bar(x=interval, height=intervalNum, color='steelblue', alpha=0.8)
for x1, yy in zip(interval, intervalNum):
plt.text(x1, yy + 1, str(yy), ha='center', va='bottom', fontsize=20, rotation=0)
plt.ylim((0, 40))
plt.show()
def c():
interval1 = 0
interval2 = 0
interval3 = 0
with open("C语言成绩降序表.csv", "r", encoding="utf-8") as file:
reader = csv.reader(file)
column = [row[3] for row in reader]
c = list(column)
del c[0]
for i in range(len(c)):
if 70 < eval(c[i]) <= 80:
interval1 += 1
if 80 < eval(c[i]) <= 90:
interval2 += 1
if 90 < eval(c[i]) <= 100:
interval3 += 1
interval = ['70-80', '80-90', '90-100']
intervalNum = [interval1, interval2, interval3]
plt.title('C Program')
plt.bar(x=interval, height=intervalNum, color='steelblue', alpha=0.8)
for x1, yy in zip(interval, intervalNum):
plt.text(x1, yy + 1, str(yy), ha='center', va='bottom', fontsize=20, rotation=0)
plt.ylim((0, 40))
plt.show()
def java():
interval1 = 0
interval2 = 0
interval3 = 0
with open("Java 成绩降序表.csv", "r", encoding="utf-8") as file:
reader = csv.reader(file)
column = [row[3] for row in reader]
java = list(column)
del java[0]
for i in range(len(java)):
if 70 < eval(java[i]) <= 80:
interval1 += 1
if 80 < eval(java[i]) <= 90:
interval2 += 1
if 90 < eval(java[i]) <= 100:
interval3 += 1
interval = ['70-80', '80-90', '90-100']
intervalNum = [interval1, interval2, interval3]
plt.title('Java Programming')
plt.bar(x=interval, height=intervalNum, color='steelblue', alpha=0.8)
for x1, yy in zip(interval, intervalNum):
plt.text(x1, yy + 1, str(yy), ha='center', va='bottom', fontsize=20, rotation=0)
plt.ylim((0, 40))
plt.show()
def calMeth():
interval1 = 0
interval2 = 0
interval3 = 0
with open("算法导论成绩降序表.csv", "r", encoding="utf-8") as file:
reader = csv.reader(file)
column = [row[3] for row in reader]
calMeth = list(column)
del calMeth[0]
for i in range(len(calMeth)):
if 70 < eval(calMeth[i]) <= 80:
interval1 += 1
if 80 < eval(calMeth[i]) <= 90:
interval2 += 1
if 90 < eval(calMeth[i]) <= 100:
interval3 += 1
interval = ['70-80', '80-90', '90-100']
intervalNum = [interval1, interval2, interval3]
plt.title('Calculating Methods')
plt.bar(x=interval, height=intervalNum, color='steelblue', alpha=0.8)
for x1, yy in zip(interval, intervalNum):
plt.text(x1, yy + 1, str(yy), ha='center', va='bottom', fontsize=20, rotation=0)
plt.ylim((0, 40))
plt.show()
def main():
print('本程序可查看各课程成绩中各区间的人数分布。')
print('请输入要查看的课程:')
print('1.Python 程序设计基础')
print('2.计算机导论')
print('3.离散数学')
print('4.数据结构')
print('5.C语言程序设计')
print('5.Java语言程序设计')
print('7.算法导论')
while (1):
num = eval(input("请输入要查看的课程编号输入0则退出"))
if num == 1:
python()
if num == 2:
html()
if num == 3:
math()
if num == 4:
data()
if num == 5:
c()
if num == 6:
java()
if num == 7:
calMeth()
if num == 0:
break
if __name__ == '__main__':
'''python()
html()
math()
data()
c()
java()
calMeth()'''
main()