BooSTstudy

 


 

前言

设计一个简单的学生信息管理系统,实现以下功能(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点知识点就可以轻松应对

    分类:

    技术点:

    相关文章:

    • 2021-11-18
    • 2021-04-10
    • 2021-04-24
    • 2021-10-16
    • 2022-12-23
    • 2023-02-15
    • 2021-12-15
    • 2021-11-11
    猜你喜欢
    • 2022-01-26
    • 2022-12-23
    • 2022-12-23
    • 2022-01-05
    • 2021-11-19
    • 2022-12-23
    • 2021-06-01
    相关资源
    相似解决方案