一.前言

學生信息管理系統,相信大家或多或少都有做過

最近看很多學生作業都是制作一個學生信息管理系統

於是,今天帶大家做一個簡單的學生信息管理系統

二.開發環境:

我用到的開發環境

  • Python 3.8
  • Pycharm 2021.2

三.涉及知識點

  • Python基礎語法
  • 基本的數據類型與結構
  • 基本的邏輯控制語句
  • 實戰小項目

四.接下來我們開始敲代碼

我們一步步來完成學生信息管理系統

第一步:制作學生信息管理系統的界面

  1. 程序啟動,顯示信息管理系統歡迎界面,並顯示功能菜單 (print)
  2. 用戶用數字選擇不同的功能 (input)
  3. 根據功能選擇,執行不同的功能 (if 判斷 多分支選擇)
  4. 需要記錄學生的 姓名、語文成績、數學成績、英語成績 、總分 (input, 數據容器存儲輸入的學生信息)
  5. 如果查詢到指定的學生信息,用戶可以選擇 修改 或者 删除 信息 (多分支選擇裏面的邏輯)
  6. 進入或退出時加載或保存數據 (文件操作)
"""
str_info = """**************************************************
歡迎使用【學生信息管理系統】V1.0
請選擇你想要進行的操作
1. 新建學生信息
2. 顯示全部信息
3. 查詢學生信息
4. 删除學生信息
5. 修改學生信息 0. 退出系統
**************************************************""" while True:
# 1. 程序啟動,顯示信息管理系統歡迎界面,並顯示功能菜單 (print)
print(str_info)
# 2.用戶用數字選擇不同的功能(input)
action = input('請選擇你要進行的操作(輸入數字):')
if action == '1':
print('1. 新建學生信息')
elif action == '2':
print('2. 顯示全部信息')
elif action == '3':
print('3. 查詢學生信息')
elif action == '4':
print('4. 删除學生信息')
elif action == '5':
print('5. 修改學生信息')
elif action == '0':
print('0. 退出系統')
break
else:
print('請輸入正確的選項!')

效果:

**************************************************
歡迎使用【學生信息管理系統】V1.0
請選擇你想要進行的操作
1. 新建學生信息
2. 顯示全部信息
3. 查詢學生信息
4. 删除學生信息
5. 修改學生信息 0. 退出系統
**************************************************

第二步:新建學生信息

需要記錄學生的 姓名、語文成績、數學成績、英語成績 、總分 (input, 數據容器存儲輸入的學生信息)

name = input('請輸入學生的姓名:')
chinese = int(input('請輸入學生的語文成績:'))
math = int(input('請輸入學生的數學成績:'))
english = int(input('請輸入學生的英語成績:')) total = chinese + math + english # 用什麼數據容器接受比較好? 存儲信息, 取值 采用字典
students = [
{'name': name, 'chinese': chinese, 'math': math, 'english': english, 'total': total}
] print(students)

第三步:顯示全部學生信息

students = [
{'name': '正心', 'chinese': 59, 'math': 59, 'english': 59, 'total': 177},
{'name': '張三', 'chinese': 59, 'math': 59, 'english': 59, 'total': 177},
{'name': '李四', 'chinese': 59, 'math': 59, 'english': 59, 'total': 177},
{'name': '王五', 'chinese': 59, 'math': 59, 'english': 59, 'total': 177},
] print('姓名\t語文\t數學\t英語\t總分') for stu in students:
# print(stu)
print(f'{stu["name"]}\t{stu["chinese"]}\t\t{stu["math"]}\t\t{stu["english"]}\t\t{stu["total"]}')

第四步:查詢學生信息

students = [
{'name': '正心', 'chinese': 59, 'math': 59, 'english': 59, 'total': 177},
{'name': '張三', 'chinese': 59, 'math': 59, 'english': 59, 'total': 177},
{'name': '李四', 'chinese': 59, 'math': 59, 'english': 59, 'total': 177},
{'name': '王五', 'chinese': 59, 'math': 59, 'english': 59, 'total': 177},
] # 5. 如果查詢到指定的學生信息,用戶可以選擇 修改 或者 删除 信息 (多分支選擇裏面的邏輯) name = input('請輸入你要查詢學生的姓名:') # 先遍曆所有學生
for stu in students:
# 如果滿足條件, 就是查詢到了
if name == stu['name']:
print('姓名\t語文\t數學\t英語\t總分')
print(f'{stu["name"]}\t{stu["chinese"]}\t\t{stu["math"]}\t\t{stu["english"]}\t\t{stu["total"]}')
# 一旦查詢到了就停止查詢
break else:
# 沒找到
print('該學生不存在, 請檢查名字是否輸入正確!')

第五步:修改學生信息

import pprint
students = [
{'name': '正心', 'chinese': 59, 'math': 59, 'english': 59, 'total': 177},
{'name': '張三', 'chinese': 59, 'math': 59, 'english': 59, 'total': 177},
{'name': '李四', 'chinese': 59, 'math': 59, 'english': 59, 'total': 177},
{'name': '王五', 'chinese': 59, 'math': 59, 'english': 59, 'total': 177},
] # 5. 如果查詢到指定的學生信息,用戶可以選擇 修改 或者 删除 信息 (多分支選擇裏面的邏輯) name = input('請輸入你要修改學生的姓名:') # 先遍曆所有學生
for stu in students:
# 如果滿足條件, 就是查詢到了, 找到了這個學生
# 找到了需要修改的學生
if name == stu['name']:
# 不想修改, 直接回車
print('(如果不想修改,直接回車!)')
name = input('請重新輸入學生的姓名:')
chinese = input('請重新輸入學生的語文成績:')
math = input('請重新輸入學生的數學成績:')
english = input('請重新輸入學生的英語成績:')
# total = chinese + math + english # 用戶輸入了數據才修改
if name:
stu['name'] = name
if chinese:
stu['chinese'] = int(chinese)
if math:
stu['math'] = int(math)
if english:
stu['english'] = int(english) stu['total'] = stu['chinese'] + stu['math'] + stu['english'] break else:
# 沒找到
print('該學生不存在, 請檢查名字是否輸入正確!') pprint.pprint(students)

第六步: 删除學生信息

import pprint
students = [
{'name': '正心', 'chinese': 59, 'math': 59, 'english': 59, 'total': 177},
{'name': '張三', 'chinese': 59, 'math': 59, 'english': 59, 'total': 177},
{'name': '李四', 'chinese': 59, 'math': 59, 'english': 59, 'total': 177},
{'name': '王五', 'chinese': 59, 'math': 59, 'english': 59, 'total': 177},
] # 5. 如果查詢到指定的學生信息,用戶可以選擇 修改 或者 删除 信息 (多分支選擇裏面的邏輯) name = input('請輸入你要删除學生的姓名:') # 先遍曆所有學生
for stu in students:
# 找到學生
if name == stu['name']:
# 删除學生
students.remove(stu)
break else:
# 沒找到
print('該學生不存在, 請檢查名字是否輸入正確!') pprint.pprint(students)

然後把他們拼接起來,就完成了我們簡單的一個學生管理系統!

五、最後代碼

import json
str_info = """**************************************************
歡迎使用【學生信息管理系統】V1.0
請選擇你想要進行的操作
1. 新建學生信息
2. 顯示全部信息
3. 查詢學生信息
4. 删除學生信息
5. 修改學生信息 0. 退出系統
**************************************************""" # 讀取文件
with open('students.json', mode='r', encoding='utf-8') as f:
students_str = f.read() students = json.loads(students_str) while True:
# 1. 程序啟動,顯示信息管理系統歡迎界面,並顯示功能菜單 (print)
print(str_info)
# 2.用戶用數字選擇不同的功能(input)
action = input('請選擇你要進行的操作(輸入數字):')
if action == '1':
print('1. 新建學生信息')
name = input('請輸入學生的姓名:')
chinese = int(input('請輸入學生的語文成績:'))
math = int(input('請輸入學生的數學成績:'))
english = int(input('請輸入學生的英語成績:')) total = chinese + math + english
# 新的學生
stu = {'name': name, 'chinese': chinese, 'math': math, 'english': english, 'total': total}
students.append(stu) elif action == '2':
print('2. 顯示全部信息')
print('姓名\t語文\t數學\t英語\t總分') for stu in students:
print(f'{stu["name"]}\t{stu["chinese"]}\t\t{stu["math"]}\t\t{stu["english"]}\t\t{stu["total"]}') elif action == '3':
print('3. 查詢學生信息')
name = input('請輸入你要查詢學生的姓名:') # 先遍曆所有學生
for stu in students:
# 如果滿足條件, 就是查詢到了
if name == stu['name']:
print('姓名\t語文\t數學\t英語\t總分')
print(f'{stu["name"]}\t{stu["chinese"]}\t\t{stu["math"]}\t\t{stu["english"]}\t\t{stu["total"]}')
# 一旦查詢到了就停止查詢
break else:
# 沒找到
print('該學生不存在, 請檢查名字是否輸入正確!') elif action == '4':
print('4. 删除學生信息')
name = input('請輸入你要删除學生的姓名:') # 先遍曆所有學生
for stu in students:
# 找到學生
if name == stu['name']:
# 删除學生
students.remove(stu)
break else:
# 沒找到
print('該學生不存在, 請檢查名字是否輸入正確!')
elif action == '5':
print('5. 修改學生信息')
name = input('請輸入你要修改學生的姓名:') # 先遍曆所有學生
for stu in students:
# 如果滿足條件, 就是查詢到了, 找到了這個學生
# 找到了需要修改的學生
if name == stu['name']:
# 不想修改, 直接回車
print('(如果不想修改,直接回車!)')
name = input('請重新輸入學生的姓名:')
chinese = input('請重新輸入學生的語文成績:')
math = input('請重新輸入學生的數學成績:')
english = input('請重新輸入學生的英語成績:')
# total = chinese + math + english # 用戶輸入了數據才修改
if name:
stu['name'] = name
if chinese:
stu['chinese'] = int(chinese)
if math:
stu['math'] = int(math)
if english:
stu['english'] = int(english) stu['total'] = stu['chinese'] + stu['math'] + stu['english']
break
else:
# 沒找到
print('該學生不存在, 請檢查名字是否輸入正確!')
elif action == '0':
print('0. 退出系統')
with open('students.json', mode='w', encoding='utf-8') as f:
# 把列錶對象轉化成字符串 ascii 編碼
students_str = json.dumps(students, ensure_ascii=False)
f.write(students_str)
print(students_str)
break
else:
print('請輸入正確的選項!')

是不是很簡單!歡迎留言討論!

喜歡記得點贊哦!

最後要是代碼看不懂,還有視頻教程

學生管理系統視頻教程地址:←點擊左邊藍色文字就可以跳轉觀看了

Python基礎入門教程推薦:←點擊左邊藍色文字就可以跳轉觀看了

Python基礎案例練習:制作學生信息管理系統的更多相關文章

  1. 基於Spring MVC + Spring + MyBatis的【學生信息管理系統】

    資源下載:https://download.csdn.net/download/weixin_44893902/45603211 練習點設計: 模糊查詢.删除.新增 一.語言和環境 實現語言:JAVA ...

  2. Android(java)學習筆記195:學生信息管理系統案例(SQLite + ListView)

    1.首先說明一個知識點,通常我們顯示布局文件xml都是如下: setContentView(R.layout.activity_main): 其實每一個xml布局文件就好像一個氣球,我們可以使用Vie ...

  3. Py學生信息管理系統 案例(優化版)

    # 第一題:設計一個全局變量,來保存很多個學生信息:學生(學號, 姓名,年齡):思考要用怎樣的結構來保存:# 第二題:在第一題基礎上,完成:讓用戶輸入一個新的學生信息(學號,姓名,年齡):你將其保存在 ...

  4. Python學生信息管理系統的開發

    # 第一題:設計一個全局變量,來保存很多個學生信息:學生(學號, 姓名,年齡):思考要用怎樣的結構來保存:# 第二題:在第一題基礎上,完成:讓用戶輸入一個新的學生信息(學號,姓名,年齡):你將其保存在 ...

  5. Android(java)學習筆記188:學生信息管理系統案例(SQLite + ListView)

    1.首先說明一個知識點,通常我們顯示布局文件xml都是如下: setContentView(R.layout.activity_main): 其實每一個xml布局文件就好像一個氣球,我們可以使用Vie ...

  6. 面向對象案例-學生信息管理系統V0.6

    更新版本 面向對象案例 - 學生信息管理系統V1.0 項目要求: 實體類: 學生類: id, 姓名,年齡,性別,成績 需要使用數組保存學生信息 Student[] allStu 需要完成的方法 1. ...

  7. python 04 學生信息管理系統

    今天任務不多,做了學生信息管理系統1.0,使用字典存儲學生個體信息,列錶存儲學生字典.注意dict定義要在循環體內,若定義成全局變量或循環體外,則舊數據會被新數據覆蓋.dict屬於可變類型數據,內容改 ...

  8. PHP實現簡單的學生信息管理系統(web版)

    (∩_∩) 1.概述 學了php的一些基礎,包括HTML,php,pdo,mysql操作等,一直都沒有將它們有機結合.最近寫了一個簡單的網頁版學生信息管理系統,前臺用HTML,脚本用到了JavaScr ...

  9. 【Python3.6+Django2.0+Xadmin2.0系列教程之二】學生信息管理系統(入門篇)

    上一篇我們已經創建好了一個Xadmin的基礎項目,現在我們將在此基礎上構建一個同樣很基礎的學生信息管理系統. 一.創建模型 模型是錶示我們的數據庫錶或集合類,並且其中所述類的每個屬性是錶或集合的字段, ...

  10. c#簡易學生信息管理系統

    在近期的學習中,我們學習了泛型及泛型集合的概念和使用,泛型是c#中的一個重要概念,為了鞏固我們學習的成果,我們可以使用一個實例來進行練習 題目及要求 要求使用Windows窗體應用程序,制作出如上圖的 ...

隨機推薦

  1. quartz集群分布式(並發)部署解决方案-Spring

    項目中使用分布式並發部署定時任務,多臺跨JVM,按照常理邏輯每個JVM的定時任務會各自運行,這樣就會存在問題,多臺分布式JVM機器的應用服務同時幹活,一個是加重服務負擔,另外一個是存在嚴重的邏輯問題, ...

  2. 《JavaScript高級程序設計》筆記整理

    歡迎各比特指導與討論 : ) -------------------------待續------------------------------- 本文為筆者在學習時整理的筆記,如有錯漏,懇請各比特指出, ...

  3. gulp監聽文件變化,並拷貝到指定目錄

    暫時不支持目錄修改.創建.删除var gulp = require('gulp'); var fs = require('fs'); var path = require('path'); var l ...

  4. jpa findOne()用法

    findOne(Interger id) 如果實體類沒有id這個屬性的話是會報錯的 改別人的代碼神煩...

  5. spring的beans.xml的配置

    <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.sp ...

  6. Qt之開機自啟動及擁有管理員權限

    源地址:http://blog.sina.cn/dpool/blog/s/blog_a6fb6cc90101feia.html Windows開機自啟動的程序很多,包括系統軟件.殺毒軟件.一些其他安裝 ...

  7. bootstrap模態框手動關閉遮蓋層不消失

    模態框中 加載了一個子頁面 子頁面中調教錶單之後想根據執行結果手動關閉模態框,最初嘗試了以下幾種方案: 1.$("#myModal").modal('hide');//模態框關閉 ...

  8. TensorFlow函數:tf.reduce_sum

    tf.reduce_sum 函數 reduce_sum ( input_tensor , axis = None , keep_dims = False , name = None , reducti ...

  9. 數據結構(java版)學習筆記(四)——線性錶之循環鏈錶

    單向循環鏈錶 PS:有陰影的結點是頭結點 概念: 最後一個結點的鏈域值不為NULL,而是指向頭結點 特點: 從錶中的任意結點出發,都可以找到錶中其他結點 循環條件 p==h 雙向鏈錶 概念 鏈錶中的每 ...

  10. wcf消息契約

    1.最多一個參數和一個返回值,返回值和參數的類型都是消息類型. 下面的代碼為定義一個消息契約的實例 [MessageContract]    public class MyMessage    {   ...