Python實(shí)現(xiàn)學(xué)生信息管理系統(tǒng)的示例代碼
前言
夏天是用來(lái)告別的季節(jié),因?yàn)楫厴I(yè)總在七月。那么七月之前的季節(jié)是用來(lái)干嘛的呢?
當(dāng)然是用來(lái)做畢業(yè)設(shè)計(jì)的啦
今天還是寫一些從簡(jiǎn)單到難的畢業(yè)設(shè)計(jì)或者課程作業(yè)項(xiàng)目源碼分享給大家吧~相信每個(gè)畢業(yè)生或者結(jié)課學(xué)生都是需要這么一份計(jì)算機(jī)Python項(xiàng)目滴哦~嗯哼,還是大眾化的項(xiàng)目,學(xué)生信息管理系統(tǒng)分為幾個(gè)版本分享給大家:
第一個(gè)版本就是新手小白的福利————零基礎(chǔ)也能上手的項(xiàng)目課——學(xué)生信息管理系統(tǒng)。
第二個(gè)版本就是GUI界面化————Tkinter的學(xué)生信息管理系統(tǒng)。
正文
又是一年畢業(yè)季,學(xué)生信息管理系統(tǒng)——計(jì)算機(jī)畢設(shè)作品基本上都可以使用必備課設(shè)(超級(jí)大
眾舒適的課設(shè)題目)今天小編給大家?guī)?lái)的兩個(gè)版本,大家一起來(lái)看看差距大嗎?
一、新手小白的福利——零基礎(chǔ)學(xué)生信息管理系統(tǒng)
1)運(yùn)行環(huán)境
小編使用的環(huán)境:Python3、Pycharm社區(qū)版。
第一款新手版本的學(xué)生信息管理系統(tǒng)是用:基本的數(shù)據(jù)類型與結(jié)構(gòu)- 基本的邏輯控制語(yǔ)句組成。
所以是補(bǔ)需要安裝什么第三方模塊的。安裝好Python環(huán)境跟Pycharm就可以直接開始敲代碼了。
2)代碼展示
"""
message = """
**************************************************
歡迎使用【學(xué)生信息管理系統(tǒng)】V1.0
請(qǐng)選擇你想要進(jìn)行的操作
1. 新建學(xué)生信息
2. 顯示全部信息
3. 查詢學(xué)生信息
4. 刪除學(xué)生信息
5. 修改學(xué)生信息
0. 退出系統(tǒng)
**************************************************
"""
students_list = [
{'name': '李四', 'chinese': '65', 'math': '65', 'english': '65', 'total': 195},
{'name': '王五', 'chinese': '65', 'math': '65', 'english': '65', 'total': 195},
{'name': '張三', 'chinese': '65', 'math': '65', 'english': '65', 'total': 195},
]
# 1. 啟動(dòng)之后顯示提示信息
# 進(jìn)入系統(tǒng)之前加載本地的文件數(shù)據(jù)
# 2. 進(jìn)入系統(tǒng)的操作頁(yè)面
while True:
print(message)
action = input('請(qǐng)選擇你想要進(jìn)行的操作:')
if action == '1':
print('# 2.1 新增數(shù)據(jù)')
# 新增數(shù)據(jù)需要錄入學(xué)員的信息
name = input('請(qǐng)輸入學(xué)員的姓名:')
math = input('請(qǐng)輸入學(xué)員的數(shù)學(xué)成績(jī):')
chinese = input('請(qǐng)輸入學(xué)員的語(yǔ)文成績(jī):')
english = input('請(qǐng)輸入學(xué)員的英語(yǔ)成績(jī):')
print(name, math, chinese, english)
student = {
'name': name,
'math': math,
'chinese': chinese,
'english': english,
}
students_list.append(student)
# # 一個(gè)人的數(shù)據(jù)用字典,多個(gè)人的數(shù)據(jù)用列表
# # 沒(méi)有好與不好,只有合不合適
# # student = [name, math, chinese, english]
# # print(student[1])
# print(student['math']) # 字典非常適合存儲(chǔ)個(gè)人的數(shù)據(jù)
# students = [student]
# # 可以什么記錄學(xué)生成績(jī)? 數(shù)據(jù)庫(kù)
# # 增刪改查 操作 txt ? csv 網(wǎng)頁(yè)
# print(students_list)
elif action == '2':
print('# 2.2 查詢所有學(xué)生成績(jī)')
# 顯示所有的學(xué)生信息
# 先聽思路,課后那錄播再?gòu)?fù)習(xí)一遍,有不懂的可以問(wèn)一下木子老師
# print(students_list)
print('姓名 語(yǔ)文 數(shù)學(xué) 英語(yǔ)')
for student in students_list:
print(f"{student['name']} {student['chinese']} {student['math']} {student['english']}")
elif action == '3':
print('# 2.3 查詢學(xué)生信息')
name = input('請(qǐng)輸入需要查詢的學(xué)生姓名:')
flag = False # 默認(rèn)的情況下沒(méi)有找到 記錄一下學(xué)員有沒(méi)有找到
# 去所有的學(xué)生列表里面去找到對(duì)應(yīng)名字的學(xué)生
for student in students_list: # 遍歷三個(gè)學(xué)員,三個(gè)學(xué)員都沒(méi)有找到,才是沒(méi)有找到
# 如果變量的學(xué)生名字與輸入的學(xué)生名字是一樣的,就是找到了
if student['name'] == name:
print('姓名 語(yǔ)文 數(shù)學(xué) 英語(yǔ)')
print(f"{student['name']} {student['chinese']} {student['math']} {student['english']}")
flag = True # 找到了之后改變前面的標(biāo)志位
# 不管怎么覆蓋都不能改查 false
# 如果沒(méi)有找到
if not flag:
print(f'{name} 學(xué)員不存在')
elif action == '4':
print('# 2.4 刪除學(xué)生信息')
# 先找到學(xué)員,然后再刪除學(xué)員
name = input('請(qǐng)輸入需要?jiǎng)h除的學(xué)生姓名:')
flag = False
for student in students_list:
if student['name'] == name:
# 找到之后需要?jiǎng)h除
students_list.remove(student)
flag = True
if not flag:
print(f'{name} 學(xué)員不存在, 無(wú)法刪除')
elif action == '5':
print('# 2.5 修改學(xué)生信息')
name = input('請(qǐng)輸入需要修改的學(xué)生姓名:')
flag = False
for student in students_list:
if student['name'] == name:
# 修改需要重新輸入信息
# name = input('請(qǐng)輸入學(xué)員的姓名:')
math = input('請(qǐng)輸入學(xué)員的數(shù)學(xué)成績(jī):')
chinese = input('請(qǐng)輸入學(xué)員的語(yǔ)文成績(jī):')
english = input('請(qǐng)輸入學(xué)員的英語(yǔ)成績(jī):')
# student['name'] = name
student['math'] = math
student['chinese'] = chinese
student['english'] = english
flag = True
if not flag:
print(f'{name} 學(xué)員不存在, 無(wú)法修改')
"""
編程思維,你的思維沒(méi)有轉(zhuǎn)化過(guò)來(lái)
怎么培養(yǎng)編程思維
1. 多看書、多看視頻、多寫案例
2. 從量變到質(zhì)變
不能只停留在基礎(chǔ)
"""
elif action == '0':
print('# 2.0 退出系統(tǒng)')
# 退出之前將數(shù)據(jù)保存到本地
break
else:
print('請(qǐng)選擇正確的操作')
# 3. 結(jié)束程序3)效果展示
新手版本運(yùn)行截圖——

?進(jìn)行新建學(xué)習(xí)信息操作截圖——

其他的內(nèi)容就不一一截圖了哈,大家可以自己拿代碼運(yùn)行進(jìn)行嘗試。
二、GUI界面化版本——Tkinter學(xué)生信息管理系統(tǒng)
1)運(yùn)行環(huán)境
本文用到的環(huán)境如下—— Python3、Pycharm社區(qū)版,第三方模塊:Tkinter。部分自帶的庫(kù)
只要安裝完 Python就可以直接使用了,需要安裝 的庫(kù)的話看教程下??
安裝模塊:
pip install +模塊名 鏡像源安裝:pip install -i https://pypi.douban.com/simple/+模塊名
(之前有說(shuō)過(guò)安裝報(bào)錯(cuò)的幾種方式跟解決方法,不會(huì)安裝的可以去看下,還有很多國(guó)內(nèi)鏡像源也有文章的)
2)代碼展示
登錄頁(yè)面:?
import tkinter as tk
import tkinter.messagebox
from MainPage import MainPage
"""
"""
# 一張畫紙
class LoginPage(object):
def __init__(self, master=None):
# master 畫板對(duì)象,往畫板上作畫
self.root = master # 定義內(nèi)部變量root
self.root.geometry('%dx%d' % (400, 280)) # 設(shè)置窗口大小
root.title('登陸頁(yè)面')
# 定義可以在頁(yè)面更新數(shù)據(jù)的變量 普通字符串改變之后無(wú)法及時(shí)在頁(yè)面中刷新
self.username = tk.StringVar()
self.password = tk.StringVar()
# 畫 內(nèi)容 需要畫在紙上面
# 創(chuàng)建新的 布局控件 找一張新的紙作畫
self.page = tk.Frame(self.root) # 創(chuàng)建Frame
# 將控件布局到 root 對(duì)象 (GUI 程序?qū)ο螅?
self.page.pack()
self.create_page()
def create_page(self):
"""
使用表格布局繪制內(nèi)容
"""
#
# tk.Label 文本框 顯示文字內(nèi)容
# stick 控件對(duì)象方向 tk.W 西方位
# pady padding y 上下的寬度
# row 行 表格布局
tk.Label(self.page).grid(row=0, stick=tk.W)
tk.Label(self.page, text='賬戶: ').grid(row=1, stick=tk.W, pady=10)
# tk.Label 輸入框 顯示輸入內(nèi)容
# 輸入框的文字等內(nèi)容需要更新
tk.Entry(self.page, textvariable=self.username).grid(row=1, column=1, stick=tk.E)
tk.Label(self.page, text='密碼: ').grid(row=2, stick=tk.W, pady=10)
tk.Entry(self.page, textvariable=self.password, show='*').grid(row=2, column=1, stick=tk.E)
tk.Button(self.page, text='登陸', command=self.login_check).grid(row=3, stick=tk.W, pady=10)
tk.Button(self.page, text='注冊(cè)', command=self.page.quit).grid(row=3, column=1, stick=tk.E)
def login_check(self):
"""登錄檢測(cè)"""
name = self.username.get()
secret = self.password.get()
if name == 'admin' and secret == '123456':
self.page.destroy()
MainPage(self.root)
else:
tkinter.messagebox.showinfo(title='錯(cuò)誤', message='賬號(hào)或密碼錯(cuò)誤!')
if __name__ == '__main__':
# root 對(duì)象 畫板
root = tk.Tk()
# LoginPage 畫紙
LoginPage(root)
root.mainloop()主程序:
import tkinter as tk
from view import * # 菜單欄對(duì)應(yīng)的各個(gè)子頁(yè)面
class MainPage(object):
def __init__(self, master=None):
self.root = master # 定義內(nèi)部變量root
self.root.geometry('%dx%d' % (600, 400)) # 設(shè)置窗口大小
self.create_page()
def create_page(self):
menubar = tk.Menu(self.root)
# menubar.add_command(label='錄入')
# menubar.add_command(label='查詢')
# menubar.add_command(label='刪除')
# menubar.add_command(label='修改')
# menubar.add_command(label='關(guān)于')
self.input_page = InputFrame(self.root) # 創(chuàng)建不同 Frame
self.query_page = QueryFrame(self.root)
self.delete_page = DeleteFrame(self.root)
self.change_page = ChangeFrame(self.root)
self.about_page = AboutFrame(self.root)
self.input_page.pack() # 默認(rèn)顯示數(shù)據(jù)錄入界面
# 控件只是顯示,如果需要實(shí)現(xiàn)切換的邏輯需要用代碼實(shí)現(xiàn)
menubar.add_command(label='錄入', command=self.input_data)
menubar.add_command(label='查詢', command=self.query_data)
menubar.add_command(label='刪除', command=self.delete_data)
menubar.add_command(label='修改', command=self.change_data)
menubar.add_command(label='關(guān)于', command=self.about_disc)
self.root['menu'] = menubar # 設(shè)置菜單欄
def input_data(self):
self.input_page.pack()
self.query_page.pack_forget()
self.delete_page.pack_forget()
self.change_page.pack_forget()
self.about_page.pack_forget()
def query_data(self):
self.input_page.pack_forget()
self.query_page.pack()
self.delete_page.pack_forget()
self.change_page.pack_forget()
self.about_page.pack_forget()
def delete_data(self):
self.input_page.pack_forget()
self.query_page.pack_forget()
self.delete_page.pack()
self.change_page.pack_forget()
self.about_page.pack_forget()
def change_data(self):
self.input_page.pack_forget()
self.query_page.pack_forget()
self.delete_page.pack_forget()
self.change_page.pack()
self.about_page.pack_forget()
def about_disc(self):
self.input_page.pack_forget()
self.query_page.pack_forget()
self.delete_page.pack_forget()
self.change_page.pack_forget()
self.about_page.pack()
def __del__(self):
db.save_data()
if __name__ == '__main__':
root = tk.Tk()
MainPage(root)
root.mainloop()3)效果展示
登陸頁(yè)面截圖——

?管理系統(tǒng)界面——

錄入信息查詢截圖——

以上就是Python實(shí)現(xiàn)學(xué)生信息管理系統(tǒng)的示例代碼的詳細(xì)內(nèi)容,更多關(guān)于Python學(xué)生信息管理系統(tǒng)的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
- 基于Python實(shí)現(xiàn)一個(gè)簡(jiǎn)單的學(xué)生管理系統(tǒng)
- 基于Python實(shí)現(xiàn)簡(jiǎn)易學(xué)生信息管理系統(tǒng)
- python實(shí)現(xiàn)簡(jiǎn)易的學(xué)生信息管理系統(tǒng)
- python代碼實(shí)現(xiàn)學(xué)生信息管理系統(tǒng)
- python超詳細(xì)實(shí)現(xiàn)完整學(xué)生成績(jī)管理系統(tǒng)
- Python實(shí)現(xiàn)簡(jiǎn)單的學(xué)生信息管理系統(tǒng)
- Python實(shí)現(xiàn)學(xué)生管理系統(tǒng)的示例代碼
相關(guān)文章
pytorch中關(guān)于distributedsampler函數(shù)的使用
這篇文章主要介紹了pytorch中關(guān)于distributedsampler函數(shù)的使用,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-02-02
python實(shí)現(xiàn)簡(jiǎn)易自習(xí)室座位預(yù)約系統(tǒng)
本文將結(jié)合實(shí)例代碼,介紹python實(shí)現(xiàn)簡(jiǎn)易自習(xí)室座位預(yù)約系統(tǒng),文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-06-06
理想高通濾波實(shí)現(xiàn)Python opencv示例
今天小編就為大家分享一篇關(guān)于理想高通濾波實(shí)現(xiàn)Python opencv示例,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2019-01-01
網(wǎng)紅編程語(yǔ)言Python將納入高考你怎么看?
12月編程語(yǔ)言排行榜出爐,在編程排行榜上,排名第四的是Python。而網(wǎng)絡(luò)上也瘋傳,編程語(yǔ)言Python將納入高考,Python不虧是網(wǎng)紅的編程語(yǔ)言2018-06-06
使用Mixin設(shè)計(jì)模式進(jìn)行Python編程的方法講解
Mixin模式也可以看作是一種組合模式,綜合多個(gè)類的功能來(lái)產(chǎn)生一個(gè)類而不通過(guò)繼承來(lái)實(shí)現(xiàn),下面就來(lái)整理一下使用Mixin設(shè)計(jì)模式進(jìn)行Python編程的方法講解:2016-06-06
Python socket處理client連接過(guò)程解析
這篇文章主要介紹了Python socket處理client連接過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-03-03
Keras搭建Mask?R-CNN實(shí)例分割平臺(tái)實(shí)現(xiàn)源碼
這篇文章主要為大家介紹了Keras搭建Mask?R-CNN實(shí)例分割平臺(tái)實(shí)現(xiàn)源碼,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-05-05
Python實(shí)現(xiàn)的讀取/更改/寫入xml文件操作示例
這篇文章主要介紹了Python實(shí)現(xiàn)的讀取/更改/寫入xml文件操作,涉及Python針對(duì)xml文件的讀取、節(jié)點(diǎn)操作、寫入等相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2018-08-08

