Python實(shí)現(xiàn)學(xué)生信息管理系統(tǒng)的示例代碼
前言
夏天是用來告別的季節(jié),因?yàn)楫厴I(yè)總在七月。那么七月之前的季節(jié)是用來干嘛的呢?
當(dāng)然是用來做畢業(yè)設(shè)計的啦
今天還是寫一些從簡單到難的畢業(yè)設(shè)計或者課程作業(yè)項(xiàng)目源碼分享給大家吧~相信每個畢業(yè)生或者結(jié)課學(xué)生都是需要這么一份計算機(jī)Python項(xiàng)目滴哦~嗯哼,還是大眾化的項(xiàng)目,學(xué)生信息管理系統(tǒng)分為幾個版本分享給大家:
第一個版本就是新手小白的福利————零基礎(chǔ)也能上手的項(xiàng)目課——學(xué)生信息管理系統(tǒng)。
第二個版本就是GUI界面化————Tkinter的學(xué)生信息管理系統(tǒng)。
正文
又是一年畢業(yè)季,學(xué)生信息管理系統(tǒng)——計算機(jī)畢設(shè)作品基本上都可以使用必備課設(shè)(超級大
眾舒適的課設(shè)題目)今天小編給大家?guī)淼膬蓚€版本,大家一起來看看差距大嗎?
一、新手小白的福利——零基礎(chǔ)學(xué)生信息管理系統(tǒng)
1)運(yùn)行環(huán)境
小編使用的環(huán)境:Python3、Pycharm社區(qū)版。
第一款新手版本的學(xué)生信息管理系統(tǒng)是用:基本的數(shù)據(jù)類型與結(jié)構(gòu)- 基本的邏輯控制語句組成。
所以是補(bǔ)需要安裝什么第三方模塊的。安裝好Python環(huán)境跟Pycharm就可以直接開始敲代碼了。
2)代碼展示
""" message = """ ************************************************** 歡迎使用【學(xué)生信息管理系統(tǒng)】V1.0 請選擇你想要進(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. 啟動之后顯示提示信息 # 進(jìn)入系統(tǒng)之前加載本地的文件數(shù)據(jù) # 2. 進(jìn)入系統(tǒng)的操作頁面 while True: print(message) action = input('請選擇你想要進(jìn)行的操作:') if action == '1': print('# 2.1 新增數(shù)據(jù)') # 新增數(shù)據(jù)需要錄入學(xué)員的信息 name = input('請輸入學(xué)員的姓名:') math = input('請輸入學(xué)員的數(shù)學(xué)成績:') chinese = input('請輸入學(xué)員的語文成績:') english = input('請輸入學(xué)員的英語成績:') print(name, math, chinese, english) student = { 'name': name, 'math': math, 'chinese': chinese, 'english': english, } students_list.append(student) # # 一個人的數(shù)據(jù)用字典,多個人的數(shù)據(jù)用列表 # # 沒有好與不好,只有合不合適 # # student = [name, math, chinese, english] # # print(student[1]) # print(student['math']) # 字典非常適合存儲個人的數(shù)據(jù) # students = [student] # # 可以什么記錄學(xué)生成績? 數(shù)據(jù)庫 # # 增刪改查 操作 txt ? csv 網(wǎng)頁 # print(students_list) elif action == '2': print('# 2.2 查詢所有學(xué)生成績') # 顯示所有的學(xué)生信息 # 先聽思路,課后那錄播再復(fù)習(xí)一遍,有不懂的可以問一下木子老師 # print(students_list) print('姓名 語文 數(shù)學(xué) 英語') for student in students_list: print(f"{student['name']} {student['chinese']} {student['math']} {student['english']}") elif action == '3': print('# 2.3 查詢學(xué)生信息') name = input('請輸入需要查詢的學(xué)生姓名:') flag = False # 默認(rèn)的情況下沒有找到 記錄一下學(xué)員有沒有找到 # 去所有的學(xué)生列表里面去找到對應(yīng)名字的學(xué)生 for student in students_list: # 遍歷三個學(xué)員,三個學(xué)員都沒有找到,才是沒有找到 # 如果變量的學(xué)生名字與輸入的學(xué)生名字是一樣的,就是找到了 if student['name'] == name: print('姓名 語文 數(shù)學(xué) 英語') print(f"{student['name']} {student['chinese']} {student['math']} {student['english']}") flag = True # 找到了之后改變前面的標(biāo)志位 # 不管怎么覆蓋都不能改查 false # 如果沒有找到 if not flag: print(f'{name} 學(xué)員不存在') elif action == '4': print('# 2.4 刪除學(xué)生信息') # 先找到學(xué)員,然后再刪除學(xué)員 name = input('請輸入需要刪除的學(xué)生姓名:') flag = False for student in students_list: if student['name'] == name: # 找到之后需要刪除 students_list.remove(student) flag = True if not flag: print(f'{name} 學(xué)員不存在, 無法刪除') elif action == '5': print('# 2.5 修改學(xué)生信息') name = input('請輸入需要修改的學(xué)生姓名:') flag = False for student in students_list: if student['name'] == name: # 修改需要重新輸入信息 # name = input('請輸入學(xué)員的姓名:') math = input('請輸入學(xué)員的數(shù)學(xué)成績:') chinese = input('請輸入學(xué)員的語文成績:') english = input('請輸入學(xué)員的英語成績:') # student['name'] = name student['math'] = math student['chinese'] = chinese student['english'] = english flag = True if not flag: print(f'{name} 學(xué)員不存在, 無法修改') """ 編程思維,你的思維沒有轉(zhuǎn)化過來 怎么培養(yǎng)編程思維 1. 多看書、多看視頻、多寫案例 2. 從量變到質(zhì)變 不能只停留在基礎(chǔ) """ elif action == '0': print('# 2.0 退出系統(tǒng)') # 退出之前將數(shù)據(jù)保存到本地 break else: print('請選擇正確的操作') # 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。部分自帶的庫
只要安裝完 Python就可以直接使用了,需要安裝 的庫的話看教程下??
安裝模塊:
pip install +模塊名 鏡像源安裝:pip install -i https://pypi.douban.com/simple/+模塊名
(之前有說過安裝報錯的幾種方式跟解決方法,不會安裝的可以去看下,還有很多國內(nèi)鏡像源也有文章的)
2)代碼展示
登錄頁面:?
import tkinter as tk import tkinter.messagebox from MainPage import MainPage """ """ # 一張畫紙 class LoginPage(object): def __init__(self, master=None): # master 畫板對象,往畫板上作畫 self.root = master # 定義內(nèi)部變量root self.root.geometry('%dx%d' % (400, 280)) # 設(shè)置窗口大小 root.title('登陸頁面') # 定義可以在頁面更新數(shù)據(jù)的變量 普通字符串改變之后無法及時在頁面中刷新 self.username = tk.StringVar() self.password = tk.StringVar() # 畫 內(nèi)容 需要畫在紙上面 # 創(chuàng)建新的 布局控件 找一張新的紙作畫 self.page = tk.Frame(self.root) # 創(chuàng)建Frame # 將控件布局到 root 對象 (GUI 程序?qū)ο螅? self.page.pack() self.create_page() def create_page(self): """ 使用表格布局繪制內(nèi)容 """ # # tk.Label 文本框 顯示文字內(nèi)容 # stick 控件對象方向 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='注冊', command=self.page.quit).grid(row=3, column=1, stick=tk.E) def login_check(self): """登錄檢測""" 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='錯誤', message='賬號或密碼錯誤!') if __name__ == '__main__': # root 對象 畫板 root = tk.Tk() # LoginPage 畫紙 LoginPage(root) root.mainloop()
主程序:
import tkinter as tk from view import * # 菜單欄對應(yīng)的各個子頁面 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)效果展示
登陸頁面截圖——
?管理系統(tǒng)界面——
錄入信息查詢截圖——
以上就是Python實(shí)現(xiàn)學(xué)生信息管理系統(tǒng)的示例代碼的詳細(xì)內(nèi)容,更多關(guān)于Python學(xué)生信息管理系統(tǒng)的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
pytorch中關(guān)于distributedsampler函數(shù)的使用
這篇文章主要介紹了pytorch中關(guān)于distributedsampler函數(shù)的使用,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-02-02python實(shí)現(xiàn)簡易自習(xí)室座位預(yù)約系統(tǒng)
本文將結(jié)合實(shí)例代碼,介紹python實(shí)現(xiàn)簡易自習(xí)室座位預(yù)約系統(tǒng),文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-06-06理想高通濾波實(shí)現(xiàn)Python opencv示例
今天小編就為大家分享一篇關(guān)于理想高通濾波實(shí)現(xiàn)Python opencv示例,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2019-01-01使用Mixin設(shè)計模式進(jìn)行Python編程的方法講解
Mixin模式也可以看作是一種組合模式,綜合多個類的功能來產(chǎn)生一個類而不通過繼承來實(shí)現(xiàn),下面就來整理一下使用Mixin設(shè)計模式進(jìn)行Python編程的方法講解:2016-06-06Keras搭建Mask?R-CNN實(shí)例分割平臺實(shí)現(xiàn)源碼
這篇文章主要為大家介紹了Keras搭建Mask?R-CNN實(shí)例分割平臺實(shí)現(xiàn)源碼,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-05-05Python實(shí)現(xiàn)的讀取/更改/寫入xml文件操作示例
這篇文章主要介紹了Python實(shí)現(xiàn)的讀取/更改/寫入xml文件操作,涉及Python針對xml文件的讀取、節(jié)點(diǎn)操作、寫入等相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2018-08-08