[关闭]
@qwe147 2017-04-09T01:36:34.000000Z 字数 4097 阅读 726

安全16-4 第三组 python第一次综合练习


班级信息管理系统

第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 代码

  1. # -*- coding:utf-8 -*-
  2. print '''************************
  3. 欢迎使用学生信息管理系统
  4. ************************'''
  5. print '''1.查看学生信息
  6. 2.添加学生信息
  7. 3.删除学生信息
  8. 4.修改学生信息
  9. 5.输出平均成绩
  10. 6.各科最高和最低成绩
  11. 7.平均年龄
  12. 8.最大和最小年龄
  13. 9.帮助
  14. 0.退出系统操作'''
  15. for s in range(1000):
  16. names=[]
  17. numbers=[]
  18. sexs=[] #性别
  19. ages=[]
  20. maths=[]
  21. engs=[]
  22. coms=[]
  23. avers=[]
  24. datas=[]
  25. f = open('D:\班级成绩.txt','r')
  26. for line in f:
  27. a = line.split()
  28. name=a[1]
  29. number=a[0]
  30. sex=a[2]
  31. age=int(a[3])
  32. math=float(a[4])
  33. com=float(a[5])
  34. eng=float(a[6])
  35. aver=(math+com+eng)/3.0
  36. names.append(name)
  37. sexs.append(sex)
  38. ages.append(age)
  39. numbers.append(number)
  40. maths.append(math)
  41. coms.append(com)
  42. engs.append(eng)
  43. avers.append(aver)
  44. f.close()
  45. x=[numbers,names,sexs,ages,maths,engs,coms,avers]
  46. xuanze=int(raw_input('请选择操作:'))
  47. if xuanze==1:
  48. print '''所有学生信息如下所示:
  49. 学号 姓名 性别 年龄 数学 英语 计算机 平均分'''
  50. for i in range(len(names)):
  51. print numbers[i],' ',names[i],' ',sexs[i],' ',ages[i],' ',maths[i],' ',engs[i],' ',coms[i],' ',avers[i],' '
  52. if xuanze==2:
  53. number1=raw_input('请输入学号:')
  54. name1=raw_input('请输入姓名:')
  55. sex1=raw_input('请输入性别:')
  56. age1=raw_input('请输入年龄:')
  57. math1=raw_input('请输入数学成绩:')
  58. eng1=raw_input('请输入英语成绩:')
  59. com1=raw_input('请输入计算机成绩:')
  60. aver1=(float(math1)+float(eng1)+float(com1))/3.0
  61. e = open('D:\班级成绩.txt','a')
  62. e.write('\n')
  63. e.write(number1)
  64. e.write('\t')
  65. e.write(name1)
  66. e.write('\t')
  67. e.write(sex1)
  68. e.write('\t')
  69. e.write(age1)
  70. e.write('\t')
  71. e.write(math1)
  72. e.write('\t')
  73. e.write(eng1)
  74. e.write('\t')
  75. e.write(com1)
  76. e.close()
  77. print '添加成功'
  78. if xuanze==3:
  79. print '''所有学生信息如下所示:
  80. 序号 学号 姓名 性别 年龄 数学 英语 计算机 平均分'''
  81. for i in range(len(names)):
  82. print i,'.',numbers[i],' ',names[i],' ',sexs[i],' ',ages[i],' ',maths[i],' ',engs[i],' ',coms[i],' ',avers[i],' '
  83. file1 = open('D:\班级成绩.txt','r')
  84. for line in file1.readlines():
  85. datas.append(line)
  86. n=int(raw_input('请输入需要删除的学生的序号:'))
  87. del datas[n]
  88. file1.close
  89. file2=open('D:\班级成绩.txt',"w")
  90. file2.writelines(datas)
  91. file2.close
  92. print '删除成功'
  93. if xuanze==4:
  94. print '''所有学生信息如下所示:
  95. 序号 学号 姓名 性别 年龄 数学 英语 计算机 平均分'''
  96. for i in range(len(names)):
  97. print i,'.',numbers[i],' ',names[i],' ',sexs[i],' ',ages[i],' ',maths[i],' ',engs[i],' ',coms[i],' ',avers[i],' '
  98. m=int(raw_input('请输入需要修改的学生资料的序号:'))
  99. number2=raw_input('请输入修改后的学号:')
  100. name2=raw_input('请输入修改后的姓名:')
  101. sex2=raw_input('请输入修改后的性别:')
  102. age2=raw_input('请输入修改后的年龄:')
  103. math2=raw_input('请输入修改后的数学成绩:')
  104. eng2=raw_input('请输入修改后的英语成绩:')
  105. com2=raw_input('请输入修改后的计算机成绩:')
  106. e = open('D:\班级成绩.txt','a')
  107. e.write('\n')
  108. e.write(number2)
  109. e.write('\t')
  110. e.write(name2)
  111. e.write('\t')
  112. e.write(sex2)
  113. e.write('\t')
  114. e.write(age2)
  115. e.write('\t')
  116. e.write(math2)
  117. e.write('\t')
  118. e.write(eng2)
  119. e.write('\t')
  120. e.write(com2)
  121. e.close()
  122. file1 = open('D:\班级成绩.txt','r')
  123. for line in file1.readlines():
  124. datas.append(line)
  125. file1.close
  126. del datas[m]
  127. file2 = open('D:\班级成绩.txt',"w")
  128. file2.writelines(datas)
  129. file2.close
  130. print '修改成功'
  131. 148 if xuanze==5:
  132. print '数学平均分:',sum(maths)/len(maths),'\n','英语平均分:',sum(engs)/len(engs),'\n','计算机平均分:',sum(coms)/len(coms)
  133. if xuanze==6:
  134. print '数学最高分:',max(maths),' ','数学最低分:',min(maths)
  135. print '英语最高分:',max(engs),' ','英语最低分:',min(engs)
  136. print '计算机最高分:',max(coms),' ','计算机最低分:',min(coms)
  137. print '平均分最高分:',max(avers),' ','平均分最低分:',min(avers)
  138. if xuanze==7:
  139. print '平均年龄:',sum(ages)/len(ages)
  140. if xuanze==8:
  141. print '最大年龄:',max(ages),'\n','最小年龄:',min(ages)
  142. if xuanze==9:
  143. print '''制作人员:徐富 雷欢欢 孙峥
  144. 使用方法:1.在使用本程序前需要在您的电脑中D盘下创建一个重用名为‘班级成绩.txt’的txt文本
  145. 2.确定想要操作的项目前的序号。
  146. 3.输入序号回车
  147. 4.请严格按照提示操作。'''
  148. if xuanze==0:
  149. break
  150. s+=1
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注