【python免費代碼】設計一個簡單的學生信息管理系統
- 2022 年 4 月 21 日
- 筆記
前言
設計一個簡單的學生信息管理系統,實現以下功能(bug) :
- 錄入學生信息,信息以文件方式存儲
- 以學生學號或者學生姓名為條件查詢該學生的信息,若沒存在該學生得有反饋
- 刪除學生信息,以學生學號為查詢條件,若不存在該學生得有反饋
- 修改學生信息,以學生學號為查詢條件,若不存在該學生得有反饋
- 統計學生總數
- 顯示文件中所有學生的全部記錄
一、理解
代碼如何實現呢?
思路和知識點如下:
- 文件存儲與關閉
- 函數的調用
- 文件操作
二、部分截圖展示
三、代碼
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點知識點就可以輕鬆應對