前言

设计一个简单的学生信息管理系统,实现以下功能(bug) :

  1. 录入学生信息,信息以文件方式存储
  2. 以学生学号或者学生姓名为条件查询该学生的信息,若没存在该学生得有反馈
  3. 删除学生信息,以学生学号为查询条件,若不存在该学生得有反馈
  4. 修改学生信息,以学生学号为查询条件,若不存在该学生得有反馈
  5. 统计学生总数
  6. 显示文件中所有学生的全部记录

一、理解

代码如何实现呢?
思路和知识点如下:

    1. 文件存储与关闭
    2. 函数的调用
    3. 文件操作

二、部分截图展示




三、代码

  1 import sys
2
3
4 def studentDateInput(): # 学生信息录入功能
5 n = 0
6 f = open("D:\\作业\\date\\studentsdate.txt",'a')
7 studentNo = input("请输入学生学号:")
8 f1 = open("D:\\作业\\date\\studentsdate.txt", 'r')
9 findStudent = f1.readlines()
10 for line in findStudent:
11 if studentNo in line:
12 print("库中存在学号相同,错误404")
13 n = n + 1
14 if n==0:
15 studentName = input("请输入学生姓名:")
16 studentMath = input("请输入学生数学成绩:")
17 studentEnglish = input("请输入学生英语成绩:")
18 studentChinese = input("请输入学生语文成绩:")
19 studentPolicy = input("请输入学生政治成绩:")
20 studentSum = int(studentEnglish) + int(studentMath) + int(studentPolicy) + int(studentChinese)
21 studentInto = studentNo + '\t' + studentName + '\t' + studentMath + '\t' + studentEnglish + '\t' + studentChinese + '\t' +studentPolicy + '\t' + str(studentSum) + '\n'
22 f.write(studentInto)
23 print("信息录入成功")
24
25 f.close()
26
27 # code by bug制造者BooST
28 def checkStudentDate(): # 学生查询功能
29 n,m = 0,0
30 f = open("D:\\作业\\date\\studentsdate.txt", 'r')
31 findStudent = f.readlines()
32 findOp = input("按学号查询,请输入 1 , 按姓名查询,请输入 2 请输入:")
33 if findOp == '1':
34 findNo = input("请输入所查询的学生学号:")
35 for line in findStudent:
36 if findNo in line:
37 print(" 学号 ", end='\t')
38 print("姓名", end='\t')
39 print("数学", end='\t')
40 print("英语", end='\t')
41 print("语文", end='\t')
42 print("政治", end='\t')
43 print("总成绩", end='\t')
44 print("\n")
45 print(line)
46 n = n + 1
47 if n == 0:
48 print("无该学生的数据!!!")
49
50 elif findOp == '2':
51 findName = input("请输入所查询的学生姓名:")
52 for line in findStudent:
53 if findName in line:
54 print(" 学号 ", end='\t')
55 print("姓名", end='\t')
56 print("数学", end='\t')
57 print("英语", end='\t')
58 print("语文", end='\t')
59 print("政治", end='\t')
60 print("总成绩", end='\t')
61 print("\n")
62 print(line)
63 m = m + 1
64 if m == 0:
65 print("无该学生的数据!!!")
66
67 else:
68 print("输入有误")
69
70 f.close()
71
72 def delStudent():# 删除学生信息功能
73 n = 0
74 f1 = open("D:\\作业\\date\\studentsdate.txt", 'r')# f1 源文件
75 findStudent = f1.readlines()
76 f2 = open("D:\\作业\\date\\studentsdate.txt", 'w')# f2 修改后的文件
77 delNo = input("请输入要删除的学生号数:")
78 for line in findStudent:
79 if delNo in line:
80 continue
81 f2.write(line)
82 n = n + 1
83 if n == len(findStudent):
84 print("无该学生信息")
85 else:
86 print("学号{0}已经被删除".format(delNo))
87
88 f1.close()
89 f2.close()
90
91
92 def modify(): # 修改
93 n = 0 # 用于遍历
94 mod_studentNo = input("请输入你要修改的学生的学号:")
95 f1 = open("D:\\作业\\date\\studentsdate.txt", 'r') # f1 源文件
96 line_modify = f1.readlines()
97 f2 = open("D:\\作业\\date\\studentsdate.txt", 'w') # f2 修改后的文件
98 for line in line_modify: # 遍历
99 if mod_studentNo in line:
100 print("查询成功")# code by bug制造者BooST
101 studentName = input("请输入学生姓名:")
102 studentMath = input("请输入学生数学成绩:")
103 studentEnglish = input("请输入学生英语成绩:")
104 studentChinese = input("请输入学生语文成绩:")
105 studentPolicy = input("请输入学生政治成绩:")
106 studentSum = int(studentEnglish) + int(studentMath) + int(studentPolicy) + int(studentChinese)
107 studentInto = mod_studentNo + '\t' + studentName + '\t' + studentMath + '\t' + studentEnglish + '\t' + studentChinese + '\t' + studentPolicy + '\t' + str(studentSum) + '\n'
108 f2.write(studentInto)
109 print("修改成功")
110 continue
111 f2.write(line) # w方式打开的文件,会覆盖原有的文件,故要把原来的数据再次写入
112 n = n + 1
113 if n == len(line_modify):
114 print("库中无该所查询的学生数据")
115 else:
116 print("学号为{0}的学生信息已经修改".format(mod_studentNo))
117
118 f1.close()
119 f2.close()
120 def sumStudentsNumber(): # 统计学生总数
121 f1 = open("D:\\作业\\date\\studentsdate.txt", 'r') # f1 源文件
122 line_modify = f1.readlines()
123 print("库中有{0}名学生的记录".format(len(line_modify)))
124 f1.close()
125 # code by bug制造者BooST
126
127
128 def checkEveryStudents(): # 显示所有学生的记录
129 print(" 学号 ",end='\t')
130 print("姓名", end='\t')
131 print("数学", end='\t')
132 print("英语", end='\t')
133 print("语文", end='\t')
134 print("政治", end='\t')
135 print("总成绩", end='\t')
136 print("\n")
137 f = open("D:\\作业\\date\\studentsdate.txt", 'r')
138 findStudent = f.readlines()
139 for line in findStudent:
140 print(line)
141 f.close()# code by bug制造者BooST
142
143 def main():
144 y = 1
145 while y:
146 print("*" * 30)
147 print(" 请选择功能:")
148 print(" 1.录入学生信息")
149 print(" 2.单体学生信息查询")
150 print(" 3.删除学生信息")
151 print(" 4.修改学生信息")
152 print(" 5.统计学生总数")
153 print(" 6.打印总体学生信息")
154 print(" 7.退出程序")
155 print("*" * 30)
156 op = input(" 请输入:")
157 # code by bug制造者BooST
158 if op == '1':
159 studentDateInput()
160 elif op == '2':
161 checkStudentDate()
162 elif op == '3':
163 delStudent()
164 elif op == '4':
165 modify()
166 elif op == '5':
167 sumStudentsNumber()
168 elif op == '6':
169 checkEveryStudents()
170 elif op == '7':
171 print("欢迎您再次使用")
172 y = 0
173 else:
174 print("错误操作,被迫退出")
175 sys.exit()
176
177 if __name__ == '__main__':
178 main()
179 # code by bug制造者BooST

四、总结

利用

    • 文件存储与关闭
    • 函数的调用
    • 文件操作
      这3点知识点就可以轻松应对

搜索

复制

【python免费代码】设计一个简单的学生信息管理系统的更多相关文章

  1. JAVA课程设计——一个简单的教务人事管理系统

    大三上学期期末总结,没错,上学期,写在下学期新学期开始,哈哈哈. 上学期学习了面向对象程序设计,课程设计的题目使用JAVA语言完成一个简单的教务人事管理系统,能够实现访问数据库的登录验证,分别按部门和 ...

  2. PHP实现简单的学生信息管理系统(web版)

    (∩_∩) 1.概述 学了php的一些基础,包括HTML,php,pdo,mysql操作等,一直都没有将它们有机结合.最近写了一个简单的网页版学生信息管理系统,前台用HTML,脚本用到了JavaScr ...

  3. C++ 简单的学生信息管理系统

    // // main.cpp // 2013-7-17作业1 // // Created by 丁小未 on 13-7-17. // Copyright (c) 2013年 dingxiaowei. ...

  4. 程序阅读:简单C++学生信息管理系统

    课程首页在:http://blog.csdn.net/sxhelijian/article/details/11890759,内有完整教学方案及资源链接 [程序阅读]阅读并执行以下的程序,找出当中出现 ...

  5. Python基础案例练习:制作学生信息管理系统

    一.前言 学生信息管理系统,相信大家或多或少都有做过 最近看很多学生作业都是制作一个学生信息管理系统 于是,今天带大家做一个简单的学生信息管理系统 二.开发环境: 我用到的开发环境 Python 3. ...

  6. Python学生信息管理系统的开发

    # 第一题:设计一个全局变量,来保存很多个学生信息:学生(学号, 姓名,年龄):思考要用怎样的结构来保存:# 第二题:在第一题基础上,完成:让用户输入一个新的学生信息(学号,姓名,年龄):你将其保存在 ...

  7. Java课程设计---学生信息管理系统需求分析及总体设计

    按照软件工程实践的原则,开发大型程序需要经历需求分析.总体设计.详细设计.编码实现.系统测试.系统维护等几个阶段. 1.需求分析 本阶段是整个软件开发过程中最重要的环节.通过了解实际运行的系统或与用户 ...

  8. Py学生信息管理系统 案例(优化版)

    # 第一题:设计一个全局变量,来保存很多个学生信息:学生(学号, 姓名,年龄):思考要用怎样的结构来保存:# 第二题:在第一题基础上,完成:让用户输入一个新的学生信息(学号,姓名,年龄):你将其保存在 ...

  9. struts2学生信息管理系统篇章①

    最近在看java1234分享的一个Struts2的学生信息管理系统的知识.因为本身java没什么底子.所以就没有什么好的技术去解决问题.一直在百度,不懂就百度.这样子下来其实也能学到一些东西,过阵子等 ...

随机推荐

  1. 用Markdown写Html和.md也就图一乐,真骚操作还得用来做PPT

    前言 和这篇文章一样,我就是用Markdown写的.相信各位平时也就用Markdown写写文档,做做笔记,转成XHtml.Html等,今天教大伙一招骚操作:用Markdown写PPT. 绝大多数朋友做 ...

  2. 羽夏看Win系统内核——结语

    写在前面   此系列是本人一个字一个字码出来的,包括示例和实验截图.由于系统内核的复杂性,故可能有错误或者不全面的地方,如有错误,欢迎批评指正,本教程将会长期更新. 如有好的建议,欢迎反馈.码字不易, ...

  3. jQuery的优缺点,与vue的不同,vue的优缺点?

    jq优点: 比原生js更易书写, 封装了很多api, 有丰富的插件库; 缺点: 每次升级与之前版本不兼容, 只能手动开发, 操作DOM很慢, 不方便, 变量名污染, 作用域混淆等. vue优缺点: 双 ...

  4. String s = new String("xyz");创建了几个String Object?二者之间有什么区别?

    两个或一个,"xyz"对应一个对象,这个对象放在字符串常量缓冲区,常量"xyz"不管出现多少遍,都是缓冲区中的那一个.New String每写一遍,就创建一个新 ...

  5. Replicated State Machine和WAL

    在阅读raft论文的时候,考虑两个问题: 为什么要用Replicated State Machine?没有其他方式吗 为什么要先写日志再应用到Replicated State Machine,直接应用 ...

  6. Javascript Range对象的学习

    Range对象有几个特别难理解的属性,这里学习总结下 Range.startOffset:返回一个表示 Range 起点在 startContainer 中的位置的数字.此属性的值与Range.sta ...

  7. SublimeText 建立构建Node js系统

    Sublime Text 3 构建系统:https://www.sublimetext.com/docs/3/build_systems.html 注意: 文档中出现的 shell_cmd 和 cmd ...

  8. NULL 是什么意思 ?

    NULL 这个值表示 UNKNOWN(未知):它不表示""(空字符串).对 NULL 这 个值的任何比较都会生产一个 NULL 值.您不能把任何值与一个 NULL 值进行比 较,并 ...

  9. C语言之关键字(知识点2)

    关键字又叫保留字,这些关键字不可以再次定义 解析

  10. can总线第二讲

    一 CAN总线拓扑结构CAN是一种分布式的控制总线,总线上的每一个节点一般来说都比较简单,使用MCU控制器处理CAN总线数据,完成特定的功能:通过CAN总线将各节点连接只需较少的线缆(两根线:CAN_ ...