1、利用Python编写程序实现⼀个简单的成绩管理系统。⾸先让⽤户不断输⼊姓名和成绩,直到输⼊为空时为⽌。接着让⽤户输⼊姓名后,查找并打印出成绩,对于不存在的姓名,给出提示,直到输⼊为空为⽌。(利⽤字典存储 姓名和成绩) 2、用户从键盘上输入10位学生的姓名和分数,请采用字典,程序最终输出平均分。(用Python解决)
3、用户从键盘上输入10位学生的学号、姓名和分数,这里采用字典。程序最终输出相同姓名的平均分。如果字典中不存在相同姓名的情况,则程序给出相应提示。(用Python解决)
4、实现函数offset,参数是一个列表。函数调整原列表中各元素的位置,规则如下:将第一个元素放到列表最后,将其余元素依次向前移动一位,如,列表['a','b','c','d']经调整位置后变为['b','c','d','a']。编写程序定义offset函数,然后初始化一个列表ls,调用函数offset(ls)10次,最终打印ls经过调整位置后的列表。(用Python解决) 5、采用合适的组合数据结构完成课程A的考勤记录统计。班上有多名同学,并且学号和姓名存储在name.txt文件中。本班的课程A总共有10次考勤记录,分别存储在10个文件中:r1.csv、r2.csv、… r10.csv。每一个csv文件的格式都相同,其中第一列和第二列分别表示在第一次考勤中(r1.csv)学生学号和姓名,第三列的1表示该生第1次考勤出勤,0则表示该生第1次考勤缺勤。请编写程序输出10次全勤同学的名字。(用Python解决)
#1
print('******成绩管理系统******')
print("输入学生姓名及成绩,输入为空结束:")
dic={}
while True:
a=input()
if a == '':
break
name,score=a.split()
dic[name]=score
while True:
stu=input('输入查找的学生名:')
if stu=='':break
if stu in dic:
print(f'{stu}成绩为{dic[stu]}')
else:
print('没有此学生')
其他参照此写就行了。
如有帮助请点击一下采纳按钮给予采纳。
如有帮助,请采纳。
# -*- 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)
请问第二题和第四题会了吗