@qwe147
2017-04-09T01:36:34.000000Z
字数 4097
阅读 726
第1次综合训练报告
题目:班级信息管理系统
小 组:第3组
姓 名:徐富,雷欢欢,孙峥
专 业:安全工程
班 级:安全16-4班
指导教师:邓立军
(2017 年 03 月 30 日(封面的底部)
目 录
1 摘要 1
2 设计思路 1
3 运行结果 2
4 执行过程 5
5 总结 2
6 代码 2
题目 班级信息管理系统
1 摘要 通过简易的python语法:条件语句,循环语句,文件的读取和更改,列表的应用等。用计算机实现自动化管理。既可以减轻人员的劳动强度,又可以提高学校管理效率。本程序可以实现的功能如下:
1.查看学生信息
2.添加学生信息
3.删除学生信息
4.修改学生信息
5.输出平均成绩
6.各科最高和最低成绩
7.平均年龄
8.最大和最小年龄
9.帮助
0.退出系统操作
2 设计思路 通过运用文件对数据进行存储,运用列表对数据进行删除,修改,计算,排序等。来实现学生信息管理系统的各种功能,运用条件语句将各种功能分开,运用循环语句使整个程序可以循环操作,运用‘break’终止程序。
3运行结果
(1)选择查看学生信息
(2)选择添加学生信息
(3)选择删除学生信息
(4)选择修改学生信息
(5)选择输出平均成绩
(6)选择各科最高和最低成绩
(7)选择平均年龄
(8)选择最大和最小年龄
(9)帮助
(0)退出系统操作
4 执行过程
1~14:对各种功能进行编号
15:运用for语句对整个程序进行循环
16~24:定义列表
25~44:将文件中各种数据放入相应列表
45:定义一个嵌套式列表
46:输入需要进行的功能
47~149:用if语句分隔各种功能
47~51:显示文件中所有信息
52~77:添加学生信息
78~92:删除学生信息,运用‘del’删除特定位置的学生信息
93~130:运用添加学生信息和删除学生信息实现修改学生信息(这个方法也是没有办法的办法)
132~148:运用顺序语句对列表中的数据进行计算。实现输出平均成绩,各科最高和最低成绩,平均年龄,最大和最小年龄,帮助。
150:运用‘break’跳出循环。
5 总结
(1)心得体会:强化条件语句,循环语句,文件的读取和更改,列表的应用等基础操作方法。
(2)问题及解决方案:在编程过程中,经常遇到一些课外的python语法知识,这时我们充分利用网上资源进行进一步的探索;遇到一些很难逾越的困难时,会进行小组讨论,翻阅文献资料等方法;
(3)不足:没有实现可以任意修改数据中的某一项,修改学生信息只是把旧的信息删除,添加一个新的信息。没有达到最简便的语法。
6 代码
# -*- coding:utf-8 -*-
print '''************************
欢迎使用学生信息管理系统
************************'''
print '''1.查看学生信息
2.添加学生信息
3.删除学生信息
4.修改学生信息
5.输出平均成绩
6.各科最高和最低成绩
7.平均年龄
8.最大和最小年龄
9.帮助
0.退出系统操作'''
for s in range(1000):
names=[]
numbers=[]
sexs=[] #性别
ages=[]
maths=[]
engs=[]
coms=[]
avers=[]
datas=[]
f = open('D:\班级成绩.txt','r')
for line in f:
a = line.split()
name=a[1]
number=a[0]
sex=a[2]
age=int(a[3])
math=float(a[4])
com=float(a[5])
eng=float(a[6])
aver=(math+com+eng)/3.0
names.append(name)
sexs.append(sex)
ages.append(age)
numbers.append(number)
maths.append(math)
coms.append(com)
engs.append(eng)
avers.append(aver)
f.close()
x=[numbers,names,sexs,ages,maths,engs,coms,avers]
xuanze=int(raw_input('请选择操作:'))
if xuanze==1:
print '''所有学生信息如下所示:
学号 姓名 性别 年龄 数学 英语 计算机 平均分'''
for i in range(len(names)):
print numbers[i],' ',names[i],' ',sexs[i],' ',ages[i],' ',maths[i],' ',engs[i],' ',coms[i],' ',avers[i],' '
if xuanze==2:
number1=raw_input('请输入学号:')
name1=raw_input('请输入姓名:')
sex1=raw_input('请输入性别:')
age1=raw_input('请输入年龄:')
math1=raw_input('请输入数学成绩:')
eng1=raw_input('请输入英语成绩:')
com1=raw_input('请输入计算机成绩:')
aver1=(float(math1)+float(eng1)+float(com1))/3.0
e = open('D:\班级成绩.txt','a')
e.write('\n')
e.write(number1)
e.write('\t')
e.write(name1)
e.write('\t')
e.write(sex1)
e.write('\t')
e.write(age1)
e.write('\t')
e.write(math1)
e.write('\t')
e.write(eng1)
e.write('\t')
e.write(com1)
e.close()
print '添加成功'
if xuanze==3:
print '''所有学生信息如下所示:
序号 学号 姓名 性别 年龄 数学 英语 计算机 平均分'''
for i in range(len(names)):
print i,'.',numbers[i],' ',names[i],' ',sexs[i],' ',ages[i],' ',maths[i],' ',engs[i],' ',coms[i],' ',avers[i],' '
file1 = open('D:\班级成绩.txt','r')
for line in file1.readlines():
datas.append(line)
n=int(raw_input('请输入需要删除的学生的序号:'))
del datas[n]
file1.close
file2=open('D:\班级成绩.txt',"w")
file2.writelines(datas)
file2.close
print '删除成功'
if xuanze==4:
print '''所有学生信息如下所示:
序号 学号 姓名 性别 年龄 数学 英语 计算机 平均分'''
for i in range(len(names)):
print i,'.',numbers[i],' ',names[i],' ',sexs[i],' ',ages[i],' ',maths[i],' ',engs[i],' ',coms[i],' ',avers[i],' '
m=int(raw_input('请输入需要修改的学生资料的序号:'))
number2=raw_input('请输入修改后的学号:')
name2=raw_input('请输入修改后的姓名:')
sex2=raw_input('请输入修改后的性别:')
age2=raw_input('请输入修改后的年龄:')
math2=raw_input('请输入修改后的数学成绩:')
eng2=raw_input('请输入修改后的英语成绩:')
com2=raw_input('请输入修改后的计算机成绩:')
e = open('D:\班级成绩.txt','a')
e.write('\n')
e.write(number2)
e.write('\t')
e.write(name2)
e.write('\t')
e.write(sex2)
e.write('\t')
e.write(age2)
e.write('\t')
e.write(math2)
e.write('\t')
e.write(eng2)
e.write('\t')
e.write(com2)
e.close()
file1 = open('D:\班级成绩.txt','r')
for line in file1.readlines():
datas.append(line)
file1.close
del datas[m]
file2 = open('D:\班级成绩.txt',"w")
file2.writelines(datas)
file2.close
print '修改成功'
148 if xuanze==5:
print '数学平均分:',sum(maths)/len(maths),'\n','英语平均分:',sum(engs)/len(engs),'\n','计算机平均分:',sum(coms)/len(coms)
if xuanze==6:
print '数学最高分:',max(maths),' ','数学最低分:',min(maths)
print '英语最高分:',max(engs),' ','英语最低分:',min(engs)
print '计算机最高分:',max(coms),' ','计算机最低分:',min(coms)
print '平均分最高分:',max(avers),' ','平均分最低分:',min(avers)
if xuanze==7:
print '平均年龄:',sum(ages)/len(ages)
if xuanze==8:
print '最大年龄:',max(ages),'\n','最小年龄:',min(ages)
if xuanze==9:
print '''制作人员:徐富 雷欢欢 孙峥
使用方法:1.在使用本程序前需要在您的电脑中D盘下创建一个重用名为‘班级成绩.txt’的txt文本
2.确定想要操作的项目前的序号。
3.输入序号回车
4.请严格按照提示操作。'''
if xuanze==0:
break
s+=1