**# 综合训练报告**
**姓名:齐佳民
学号:1403050116
专业:安全工程(矿山通风安全)
班级:通风14-1班
指导讲师:邓立军
职称:讲师
2015年05月16日**
**目录**
1.摘要
2.问题分析
3.程序描述
4.源程序
5.总结
1.摘要
随着科技发展和社会进步,,尤其是计算机大范围的普及,计算机应用逐渐由大规模计算的海量数据处理转向大规模的事物处理和对工作流的管理,这就产生以台式计算机为核心的管理系统。
在学校中,过去的档案管理显得过于麻烦以及繁琐。用计算机实现自动化管理既可以减轻人员的劳动强度,又可以提高学校管理效率。
2.问题分析
2.1 全面性
考虑输出全面。所以考虑采用了for循环的方法,以保证其输出的全面性 。
2.2 调取数据
为了使调取学生的信息方便简洁,考虑采用了嵌套词典的方法。嵌套词典,使得调取数据以及增添和删除学生信息、修改学生信息非常方便,实用性较强。
2.3 重复性
为了能显示所有学生的详细信息,有一个重复打印的过冲,需要利用for循环。加一些限定条件来消除重复但是这样做不但会出错,还不能保证它的输出全面性。于是我想在输出的时候加限定条件,使重复的只输出一遍。
3.程序描述
3.1 主要思路及代码执行过程
首先输入通风14-1班26个学生的姓名、学号、性别、年龄以及成绩信息为一个嵌套词典,将成绩单独编写一个数组。先打印出每个学生的个人信息,先建立一个key,
names=xueshengmingdan.keys()
之后利用for 循环,
for name in names:
之后,
print '姓名:',name,'学号:',xueshengmingdan[name]['学号'],'性别:',xueshengmingdan[name]['性别'],'年龄',xueshengmingdan[name]['年龄'],'成绩信息',xueshengmingdan[name]['成绩信息']。
如果要计算与年龄和成绩信息有关的问题,需要先定义两个空数组,
ages=[]
grades=[]
之后利用for循环,
for name in names:
ages.append(xueshengmingdan[name]['年龄'])
grades.append(xueshengmingdan[name]['成绩信息'])
之后便可打印与年龄和成绩信息有关的东西了:
print '最大年龄',max(ages) #最大年龄
print '最小年龄',min(ages) #最小年龄
print '平均年龄',(1.0*sum(ages)/len(ages)) #平均年龄
print '最高成绩',max(grades) #最高成绩
print '最低成绩',min(grades) #最低成绩
print '平均成绩',1.0*sum(grades)/len(grades) #平均成绩
但是,不要忘记引入math函数:
import math
要想使学生名单按成绩排序,就要定义一个函数:
def two_cmp(x1,x2):
return cmp(x11,x21)
b=sorted(grade,two_cmp)
print b #按成绩排序
3.2 程序的主要函数及功能
如果要增加学生 请输入
a={}
a=['xxx']={
'学号':'xxxxxx',
'性别':'x'
'年龄':'xx'
'成绩信息':'xx'}
如果要删除某学生 请输入 del a['xx']
例如 print xueshengmingdan['朱诗豪']
如果想要修改某个学生的信息 请输入 xueshengmingdan['name']['修改的信息']='xxxx'
例如 xueshengmingdan['朱诗豪']['学号']=1403050127
如果想查找学生的某个信息 请输入 print xueshengmingdan['name']['查找的信息']
例如 print xueshengmingdan['黄靖宇']['学号']
4.源程序
import math
xueshengmingdan={
'车永杰':{'学号':'1403050101','性别':'男','年龄':19,'成绩信息':80},
'陈晓军':{'学号':'1403050102','性别':'男','年龄':19,'成绩信息':76},
'程太阳':{'学号':'1403050103','性别':'男','年龄':19,'成绩信息':77},
'单宇轩':{'学号':'1403050104','性别':'男','年龄':19,'成绩信息':68},
'耿峰':{'学号':'1403050105','性别':'男','年龄':19,'成绩信息':72},
'顾生权':{'学号':'1403050106','性别':'男','年龄':20,'成绩信息':76},
'黄靖宇':{'学号':'1403050107','性别':'男','年龄':19,'成绩信息':74},
'刘天威':{'学号':'1403050108','性别':'男','年龄':19,'成绩信息':76},
'刘增富':{'学号':'1403050109','性别':'男','年龄':19,'成绩信息':56},
'刘凯元':{'学号':'1403050110','性别':'男','年龄':19,'成绩信息':68},
'鲁肖丰':{'学号':'1403050111','性别':'男','年龄':19,'成绩信息':76},
'路琦':{'学号':'1403050112','性别':'男','年龄':19,'成绩信息':76},
'聂朝刚':{'学号':'1403050113','性别':'男','年龄':19,'成绩信息':78},
'戚志鹏':{'学号':'1403050114','性别':'男','年龄':19,'成绩信息':76.5},
'齐佳民':{'学号':'1403050115','性别':'男','年龄':19,'成绩信息':100},
'司建伟':{'学号':'1403050116','性别':'男','年龄':19,'成绩信息':77},
'宋健':{'学号':'1403050117','性别':'男','年龄':19,'成绩信息':82},
'隋文武':{'学号':'1403050118','性别':'男','年龄':19,'成绩信息':86},
'王本松':{'学号':'1403050119','性别':'男','年龄':19,'成绩信息':46},
'王大勇':{'学号':'1403050120','性别':'男','年龄':19,'成绩信息':72},
'王哲':{'学号':'1403050121','性别':'男','年龄':19,'成绩信息':98},
'吴文祥':{'学号':'1403050122','性别':'男','年龄':19,'成绩信息':45},
'杨强':{'学号':'1403050123','性别':'男','年龄':23,'成绩信息':32},
'杨文杰':{'学号':'1403050124','性别':'男','年龄':19,'成绩信息':75},
'杨智宇':{'学号':'1403050125','性别':'男','年龄':19,'成绩信息':86},
'朱诗豪':{'学号':'1403050126','性别':'男','年龄':19,'成绩信息':66}
}
grade=[
['车永杰',80],
['陈晓军',76],
['程太阳',77],
['单宇轩',68],
['耿峰',72],
['顾生权',76],
['黄靖宇',74],
['刘天威',76],
['刘增富',56],
['刘凯元',68],
['鲁肖丰',76],
['路琦',76],
['聂朝刚',78],
['戚志鹏',76.5],
['齐佳民',100],
['司建伟',77],
['宋健',82],
['隋文武',86],
['王本松',46],
['王大勇',72],
['王哲',98],
['吴文祥',45],
['杨强',32],
['杨文杰',75],
['杨智宇',86],
['朱诗豪',66]]
ages=[]
grades=[]
names = xueshengmingdan.keys()
打印所有学生的姓名,学号,性别,年龄,成绩信息
for name in names:
ages.append(xueshengmingdan[name]['年龄'])
grades.append(xueshengmingdan[name]['成绩信息'])
def two_cmp(x1,x2):
return cmp(x11,x21)
print ' 欢迎使用班级档案管理系统'
print '---------------------------------------------------'
print ' 1.按成绩排序 '
print ' 2.全班人数'
print ' 3.最大年龄'
print ' 4.最小年龄'
print ' 5.平均年龄'
print ' 6.最高成绩'
print ' 7.最低成绩'
print ' 8.平均成绩'
print ' 9.打印所有学生的姓名,学号,性别,年龄,成绩信息'
print '----------------------------------------------------'
a=input('请输入要选择的操作:')
if a==1:
b=sorted(grade,two_cmp)
print b
elif a==2:
print '全班人数',len(names)
elif a==3:
print '最大年龄',max(ages)
elif a==4:
print '最小年龄',min(ages)
elif a==5:
print '平均年龄',(1.0*sum(ages)/len(ages))
elif a==6:
print '最高成绩',max(grades)
elif a==7:
print '最低成绩',min(grades)
elif a==8:
print ' 8.平均成绩',1.0*sum(grades)/len(grades)
else:
for name in names:
print '姓名:',name,'学号:',xueshengmingdan[name]['学号'],'性别:',xueshengmingdan[name]['性别'],'年龄',xueshengmingdan[name]['年龄'],'成绩信息',xueshengmingdan[name]['成绩信息']
'''
如果要增加学生 请输入
a={}
a=['xxx']={
'学号':'xxxxxx',
'性别':'x'
'年龄':'xx'
'成绩信息':'xx'}
如果要删除某学生 请输入 del a['xx']
例如 print xueshengmingdan['朱诗豪']
如果想要修改某个学生的信息 请输入 xueshengmingdan['name']['修改的信息']='xxxx'
例如 xueshengmingdan['朱诗豪']['学号']=1403050127
如果想查找学生的某个信息 请输入 print xueshengmingdan['name']['查找的信息']
例如 print xueshengmingdan['黄靖宇']['学号']
制作人员信息
编码及测试人员:齐佳民
收集数据:隋文武
撰写报告:刘增富
答辩演讲:王大勇
'''
5.总结
在编写班级档案管理系统的过程中,看似简单,其实也反映出了很多的问题出来,这个小程序对python的各个方面有着很多的应用,嵌套词典、for循环、引入math函数、定义新函数等等。
首先,python语言综合训练让我把以前学习到的知识得到巩固和进一步的提高认识,对已有知识有了更进一步的理解和认识,再次,我在综合训练中碰到了很多的问题,我通过查阅相关书籍,资料,通过自己钻研, 当然,通过这次综合训练,我也发现了自身的很多不足之处。
想起这次综合训练的这些日子,至今我仍感慨颇多。以前上课时学的都是一些最基本的东西,觉得很枯燥无味。但当自己能把所学的知识转换为有用的东西时,心中却不知何时有了一种莫名的动力,在电脑前面一坐就是好几个小时。或许这就是有压力才有动力吧!
在整整一星期的日子里,面对一件新事物,从理论到实践,可以说是苦多于甜。这一周的综合训练,不仅使我巩固了以前所学过的知识,更使我获得了很多在书本上所没有学到过的知识。通过这次综合训练使我懂得了理论与实际相结合的重要性,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从实践中得出结论,才能真正掌握好所学知识,才能够实现理论到使用的升华!
毕竟这是我进行的第一次综合训练,所以在该过程中遇到问题,可以说是数不胜数。此外,在设计的过程中发现了自己对以前所学过的知识理解得不够透彻、掌握得不够牢固的不足之处。
好的学习方法在学习中很多时候都起着至关重要的作用!尤其是在这次综合训练过程中,深深地体会到,善于总结是学习过程中不可缺少的重要的一个环节。每次完成一个编程任务,完成一段代码,都应当有目的的跟踪该程序的调试和运行状况,随时总结,找到自己的错误与不足之处,这样所编写的程序才能逐步提高。就如生活那样,汗水预示着结果也见证着收获。直到实际动手做,我才真正领略到“一份耕耘,一份收获。”这一句话的真正含义。这次的c语言设计,对我们而言,知识上的收获重要,但是在一个团队间的团结合作的幕幕更让我们记忆终生。挫折是一份财富,经历是一份拥有。虽然这些日子很短暂但我相信这次实际操作必会成为我人生路上的一段美好的回忆!
最后我想对给过我帮助的所有同学和各位指导老师表示忠心的感谢。
参考资料
(1)python学习手册
(2)综合训练报告模板