欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python實(shí)現(xiàn)學(xué)生信息管理系統(tǒng)的示例代碼

 更新時間:2023年02月15日 08:55:38   作者:木木子學(xué)python  
夏天是用來告別的季節(jié),因?yàn)楫厴I(yè)總在七月。那么七月之前的季節(jié)是用來干嘛的呢?當(dāng)然是用來做畢業(yè)設(shè)計的啦!本文為大家準(zhǔ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)文章

最新評論