233 lines
7.1 KiB
Python
Executable File
233 lines
7.1 KiB
Python
Executable File
# -*- 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()
|