国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

基于python的簡(jiǎn)單學(xué)生信息管理系統(tǒng)

這篇具有很好參考價(jià)值的文章主要介紹了基于python的簡(jiǎn)單學(xué)生信息管理系統(tǒng)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

針對(duì)傳統(tǒng)的學(xué)生信息管理方式,效率低下,不易存儲(chǔ),和數(shù)字化等問(wèn)題,開(kāi)發(fā)基于 Python 的學(xué)生信息管理系統(tǒng),用于管理學(xué)生的個(gè)人信息和學(xué)習(xí)記錄。它可以幫助教師和管理員更有效地管理學(xué)生信息,如學(xué)生基本信息、成績(jī)、課程安排、考試記錄等。同時(shí),信息化、數(shù)字化的管理方法符合高校建設(shè)數(shù)字校園的宗旨,有利于促進(jìn)信息的保存和共享。而Python相對(duì)于其他語(yǔ)言具有簡(jiǎn)單易學(xué),易維護(hù)等特點(diǎn),在系統(tǒng)開(kāi)發(fā)領(lǐng)域應(yīng)用十分廣泛。本系統(tǒng)是由Python語(yǔ)言進(jìn)行開(kāi)發(fā)的一套簡(jiǎn)易學(xué)生信息管理系統(tǒng),功能齊全,操作簡(jiǎn)便,實(shí)用性高。

1系統(tǒng)方案設(shè)計(jì)

學(xué)生信息管理系統(tǒng)功能如下表所示。該系統(tǒng)包括學(xué)生信息輸入、信息查找、信息的刪除與修改、信息展示等一系列功能。最終使用Pyinstaller將程序打包為exe程序,方便在沒(méi)有部署python環(huán)境的計(jì)算機(jī)上正常使用我們的管理系統(tǒng)。

python學(xué)生信息管理系統(tǒng),python,Powered by 金山文檔

2功能設(shè)計(jì)

我們將每一個(gè)所有功能進(jìn)行拆分,將每一種功能單獨(dú)定義為一個(gè)函數(shù),然后將主函數(shù)main在系統(tǒng)中循環(huán)調(diào)用,以實(shí)現(xiàn)選擇功能的作用。

Menu函數(shù)主要用來(lái)輸出管理系統(tǒng)的可視化菜單頁(yè)面,配合main函數(shù)來(lái)完成功能的選擇。

Insert函數(shù)用來(lái)實(shí)現(xiàn)輸入學(xué)生信息的功能。依次輸入學(xué)號(hào)姓名和語(yǔ)數(shù)英成績(jī),并且在輸入成績(jī)時(shí),因?yàn)槭莍nt型,所以使用了try和except,以保證正確輸入不會(huì)出錯(cuò)。將輸入的信息儲(chǔ)存為一個(gè)字典,并最終保存在一個(gè)名為student.txt的文件中。為了方便使用,在函數(shù)的末尾加上了循環(huán)使用的功能,可以連續(xù)輸入多名學(xué)生信息。

Search函數(shù)主要用來(lái)查找學(xué)生信息。該函數(shù)首先會(huì)查找是否存在學(xué)生信息文件“student.txt” 如果存在會(huì)以學(xué)號(hào)為索引,查找文件中所儲(chǔ)存的信息,并調(diào)雍show_student函數(shù)將其以特定格式輸出。刪除函數(shù)delete、修改函數(shù)edit基本也是這個(gè)邏輯。

3編程實(shí)現(xiàn)與調(diào)試

import os.path

filename = 'student.txt'


def menu():
    print('======學(xué)生信息管理系統(tǒng)======')
    print('1.輸入學(xué)生信息')
    print('2.查找信息')
    print('3.刪除信息')
    print('4.修改信息')
    print('5.顯示出所有信息')
    print('0.退出系統(tǒng)')
    print('=========================')


def main():
    while True:
        menu()
        selection = int(input('請(qǐng)選擇'))
        if selection in [0, 1, 2, 3, 4, 5]:
            if selection == 0:
                ans = input('是否要退出?y/n')
                if ans == 'y' or ans == 'Y':
                    print('感謝使用!!')
                    break
                else:
                    continue
            elif selection == 1:
                insert()
            elif selection == 2:
                search()
            elif selection == 3:
                delete()
            elif selection == 4:
                edit()
            elif selection == 5:
                display()
        else:
            print('選擇錯(cuò)誤')


# noinspection PyBroadException
def insert():
    student_list = []
    while True:
        stu_id = input('請(qǐng)輸入學(xué)號(hào):')
        if not stu_id:
            break
        name = input('請(qǐng)輸入姓名:')
        if not name:
            break
        try:
            english = int(input('請(qǐng)輸入英語(yǔ)成績(jī)'))
            chinese = int(input('請(qǐng)輸入語(yǔ)文成績(jī)'))
            math = int(input('請(qǐng)輸入數(shù)學(xué)成績(jī)'))
        except:
            print('錯(cuò)誤的成績(jī)(不是整數(shù))')
            continue
        student = {'stu_id': stu_id, 'name': name, 'english': english, 'chinese': chinese, 'math': math}
        student_list.append(student)
        ans = input('是否繼續(xù)添加y/n\n')
        if ans == 'y' or ans == 'Y':
            continue
        else:
            break
    save(student_list)
    print('輸入完畢!')


# noinspection PyBroadException
def save(lst):
    try:
        stu_txt = open(filename, 'a', encoding='utf-8')
    except:
        stu_txt = open(filename, 'w', encoding='utf-8')
    for item in lst:
        stu_txt.write(str(item) + '\n')
    stu_txt.close()


def search():
    stu_query = []
    while True:
        stu_id = ''
        if os.path.exists(filename):
            id = input('請(qǐng)輸入學(xué)生學(xué)號(hào):')
            with open(filename, 'r', encoding='utf-8') as rfile:
                student = rfile.readlines()
                for item in student:
                    d = dict(eval(item))
                    if id != '':
                        if d['stu_id'] == id:
                            stu_query.append(d)
            show_student(stu_query)
            stu_query.clear()
            ans = input('是否繼續(xù)查詢?y/n')
            if ans == 'y':
                continue
            else:
                break
        else:
            print('暫無(wú)學(xué)生信息')
            return


def show_student(lst):
    if len(lst) == 0:
        print('沒(méi)有查詢到數(shù)據(jù)!')
        return
    format_title = '{:^6}\t{:^12}\t{:^8}\t{:^9}\t{:^5}\t{:^2}\t'
    print(format_title.format('ID', '姓名', '英語(yǔ)成績(jī)', '語(yǔ)文成績(jī)', '數(shù)學(xué)成績(jī)', '總成績(jī)'))
    format_data = '{:^6}\t{:^12}\t{:^8}\t{:^10}\t{:^15}\t{:^6}\t'
    for item in lst:
        print(format_data.format(item.get('stu_id'),
                                 item.get('name'),
                                 item.get('english'),
                                 item.get('chinese'),
                                 item.get('math'),
                                 int(item.get('english')) + int(item.get('chinese')) + int(item.get('math'))))


def delete():
    while True:
        stu_id = input('請(qǐng)輸入要?jiǎng)h除的學(xué)號(hào):')
        if stu_id != '':
            if os.path.exists(filename):
                with open(filename, 'r', encoding='utf-8') as file:
                    stu_old = file.readlines()
            else:
                stu_old = []
            flag = False
            if stu_old:
                with open(filename, 'w', encoding='utf-8') as wfile:
                    d = {}
                    for item in stu_old:
                        d = dict(eval(item))
                        if d['stu_id'] != stu_id:
                            wfile.write(str(d) + '\n')
                        else:
                            flag = True
                    if flag:
                        print(f'id為{stu_id}的學(xué)生信息已經(jīng)被刪除')
                    else:
                        print(f'沒(méi)有找到{stu_id}的學(xué)生信息')
            else:
                print('無(wú)學(xué)生信息')
                break
            display()
            ans = input('是否繼續(xù)刪除?y/n\n')
            if ans == 'y' or ans == 'Y':
                continue
            else:
                break


def edit():
    display()
    if os.path.exists(filename):
        with open(filename, 'r', encoding='utf-8') as rfile:
            student_old = rfile.readlines()
    else:
        return
    student_id = input('請(qǐng)輸入要修改的學(xué)生學(xué)號(hào):')
    with open(filename, 'w', encoding='utf-8') as wfile:
        for item in student_old:
            d = dict(eval(item))
            if d['stu_id'] == student_id:
                print('已經(jīng)找到學(xué)生信息,請(qǐng)修改:')
                while True:
                    try:
                        d['name'] = input('請(qǐng)輸入姓名')
                        d['english'] = input('請(qǐng)輸入英語(yǔ)成績(jī)')
                        d['chinese'] = input('請(qǐng)輸入語(yǔ)文成績(jī)')
                        d['math'] = input('請(qǐng)輸入數(shù)學(xué)成績(jī)')
                    except:
                        print('輸入有誤,重新輸入')
                    else:
                        break
                wfile.write(str(d) + '\n')
                print('修改成功')
            else:
                wfile.write(str(d) + '\n')
        ans = input('是否繼續(xù)修改?y/n')
        if ans == 'y':
            edit()


def display():
    student_list=[]
    if os.path.exists(filename):
        with open(filename,'r',encoding='utf-8') as rfile:
            students=rfile.readlines()
            for item in students:
                student_list.append(eval(item))
            if student_list:
                show_student(student_list)
    else:
        print('沒(méi)有學(xué)生信息')


if 1 == 1:
    main()

4結(jié)果分析

1打開(kāi)程序

python學(xué)生信息管理系統(tǒng),python,Powered by 金山文檔

2選擇輸入學(xué)生信息功能

依次輸入學(xué)生信息完畢之后返回主菜單再次進(jìn)行功能選擇。

python學(xué)生信息管理系統(tǒng),python,Powered by 金山文檔

3查找信息

python學(xué)生信息管理系統(tǒng),python,Powered by 金山文檔

4刪除信息

python學(xué)生信息管理系統(tǒng),python,Powered by 金山文檔

5顯示出所有信息

python學(xué)生信息管理系統(tǒng),python,Powered by 金山文檔

6最終會(huì)在同目錄生成一個(gè)student.txt文件儲(chǔ)存信息

python學(xué)生信息管理系統(tǒng),python,Powered by 金山文檔

經(jīng)過(guò)以上的測(cè)試結(jié)果表明,本系統(tǒng)運(yùn)行情況比較良好,設(shè)計(jì)功能都能實(shí)現(xiàn),系統(tǒng)反應(yīng)速度較快,用戶使用也相對(duì)簡(jiǎn)便,達(dá)到了程序設(shè)計(jì)前所設(shè)定的要求。總體而言,是一款比較成功的系統(tǒng)程序。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-754642.html

到了這里,關(guān)于基于python的簡(jiǎn)單學(xué)生信息管理系統(tǒng)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 【Python畢業(yè)設(shè)計(jì)】基于Python+Flask+MySQL的學(xué)生信息管理系統(tǒng)(附完整源碼)

    【Python畢業(yè)設(shè)計(jì)】基于Python+Flask+MySQL的學(xué)生信息管理系統(tǒng)(附完整源碼)

    1、項(xiàng)目說(shuō)明 基于python+Flask+mysql的學(xué)生信息管理系統(tǒng)項(xiàng)目實(shí)戰(zhàn) 項(xiàng)目需要安裝pycharm專業(yè)版,mysql數(shù)據(jù)庫(kù)以及項(xiàng)目所需的所有模塊 創(chuàng)建數(shù)據(jù)庫(kù)名稱db_online_notes,然后執(zhí)行sql文件生成數(shù)據(jù)表和數(shù)據(jù) 項(xiàng)目需要安裝 flask,pymysql以及其他的一些模塊 安裝命令如下: pip install -i https://pypi

    2023年04月18日
    瀏覽(25)
  • Java—學(xué)生信息管理系統(tǒng)(簡(jiǎn)單、詳細(xì))

    Java—學(xué)生信息管理系統(tǒng)(簡(jiǎn)單、詳細(xì))

    ?? 前言 :本案例在實(shí)現(xiàn)時(shí)使用了Java語(yǔ)言中的ArrayList集合來(lái)儲(chǔ)存數(shù)據(jù)。我把整個(gè)項(xiàng)目分成了Student .Java、StudentManger.Java 兩個(gè)部分,實(shí)現(xiàn)了簡(jiǎn)單的學(xué)生信息管理系統(tǒng)。文章先分部講解代碼,最后附上完整的項(xiàng)目代碼。 ?我們首先創(chuàng)建學(xué)生類和構(gòu)造方法: 成員變量:學(xué)號(hào)(si

    2024年02月07日
    瀏覽(21)
  • Java基礎(chǔ)——學(xué)生成績(jī)信息管理系統(tǒng)(簡(jiǎn)單實(shí)現(xiàn))

    1、 定義一個(gè)學(xué)生類 Student,包含姓名、成績(jī)信息; 2、使用 ArrayList集合存儲(chǔ)學(xué)生對(duì)象; 3、 對(duì)集合中的元素進(jìn)行增刪查改的操作。 學(xué)生類可以包含姓名、成績(jī)、學(xué)號(hào)、年齡等等,這里只包含了前兩項(xiàng)學(xué)生類屬性。 在該類中定義了簡(jiǎn)單的增、刪、查、改的方法。 其中,遍歷集

    2024年02月11日
    瀏覽(21)
  • 基于JavaWeb的學(xué)生信息管理系統(tǒng)

    基于JavaWeb的學(xué)生信息管理系統(tǒng)

    1.系統(tǒng)分析 1.1引言 隨著我國(guó)社會(huì)主義市場(chǎng)經(jīng)濟(jì)的發(fā)展和改革開(kāi)放的不斷深入,計(jì)算機(jī)的應(yīng)用已遍及國(guó)民經(jīng)濟(jì)的各個(gè)領(lǐng)域,計(jì)算機(jī)來(lái)到我們的工作和生活中,改變著我們和周圍的一切。 隨著學(xué)校的規(guī)模不斷過(guò)大,學(xué)生數(shù)量急劇増加,有關(guān)學(xué)生的各種信息量也成倍増加。面對(duì)龐

    2024年02月04日
    瀏覽(22)
  • 基于Android的學(xué)生信息管理系統(tǒng)

    基于Android的學(xué)生信息管理系統(tǒng)

    項(xiàng)目名稱:學(xué)生信息管理系統(tǒng) 主要技術(shù):java、android 開(kāi)發(fā)工具:Eclipse(ADT) 運(yùn)行工具:只能使用Eclipse 數(shù) 據(jù) 庫(kù):SQLlite 項(xiàng)目簡(jiǎn)介:本系統(tǒng)主要有對(duì)學(xué)生信息、學(xué)生成績(jī)的增刪改查操作功能 項(xiàng)目?jī)?nèi)容 注冊(cè)界面 登錄界面 主界面 添加學(xué)生 維護(hù)學(xué)生信息 學(xué)生信息查詢 添加學(xué)生成績(jī)

    2024年02月11日
    瀏覽(20)
  • 基于JAVA的學(xué)生信息管理系統(tǒng)

    基于JAVA的學(xué)生信息管理系統(tǒng)

    目錄 前言 一、需求分析 二、開(kāi)發(fā)環(huán)境、工具 1.開(kāi)發(fā)語(yǔ)言 2.開(kāi)發(fā)模式 三、系統(tǒng)需求分析 3.1系統(tǒng)的背景 3.2系統(tǒng)的功能需求 四、系統(tǒng)設(shè)計(jì)概要 4.1系統(tǒng)體系結(jié)構(gòu)設(shè)計(jì) 4.2功能模塊結(jié)構(gòu)設(shè)計(jì) 五、數(shù)據(jù)庫(kù)設(shè)計(jì) 1.學(xué)生信息數(shù)據(jù)表 2.班級(jí)信息數(shù)據(jù)表 3.用戶信息數(shù)據(jù)表 六、管理系統(tǒng)詳細(xì)設(shè)

    2023年04月23日
    瀏覽(31)
  • 基于C++實(shí)現(xiàn)的學(xué)生信息管理系統(tǒng)

    基于C++實(shí)現(xiàn)的學(xué)生信息管理系統(tǒng)

    點(diǎn)擊獲取(源碼+課程設(shè)計(jì)報(bào)告文檔+截圖) 學(xué)生信息管理系統(tǒng)是針對(duì)學(xué)校人事處的大量業(yè)務(wù)處理工作而開(kāi)發(fā)的管理軟件,主要用于學(xué)校學(xué)生信息管理,總體任務(wù)是實(shí)現(xiàn)學(xué)生信息關(guān)系的系統(tǒng)化、科學(xué)化、規(guī)范化和自動(dòng)化,其主要任務(wù)是用計(jì)算機(jī)對(duì)學(xué)生各種信息進(jìn)行日常管理,如

    2024年02月04日
    瀏覽(18)
  • 基于SSM架構(gòu)實(shí)現(xiàn)學(xué)生信息管理系統(tǒng)

    基于SSM架構(gòu)實(shí)現(xiàn)學(xué)生信息管理系統(tǒng)

    本項(xiàng)目是一個(gè)基于SSM(Spring+SpringMVC+MyBatis)框架搭建的學(xué)生信息管理系統(tǒng),實(shí)現(xiàn)了對(duì)學(xué)生、用戶等信息的增刪改查功能,以及登錄、分頁(yè)等功能。本項(xiàng)目采用了三層架構(gòu),分為entity層、service層、dao層和controller層,使用了Maven進(jìn)行項(xiàng)目管理,使用了MySQL作為數(shù)據(jù)庫(kù)。 本項(xiàng)目主要

    2024年02月03日
    瀏覽(23)
  • python_學(xué)生信息管理系統(tǒng)

    python_學(xué)生信息管理系統(tǒng)

    學(xué)習(xí)python時(shí)自己做的小東西,供大家學(xué)習(xí)參考。源碼放到最后。 運(yùn)行《學(xué)生信息管理系統(tǒng)》即可進(jìn)入如圖1所示的系統(tǒng)主界面。在該界面中可以選擇要使用功能對(duì)應(yīng)的菜單進(jìn)行不同的操作。在選擇功能菜單時(shí),有兩種方法,一種是輸入1,另一種是按下鍵盤上的↑或↓方向鍵進(jìn)

    2024年02月03日
    瀏覽(23)
  • 學(xué)生信息管理系統(tǒng)(Python實(shí)現(xiàn))

    目錄 1.功能介紹 2.代碼模塊 3.全局代碼 摘?jiǎng)Γ。。?采用列表+類的組合來(lái)實(shí)現(xiàn)對(duì)信息的增刪改查,整體代碼比較簡(jiǎn)單,只用了100余行 1)添加學(xué)生信息 2)查詢學(xué)生信息 3)刪除學(xué)生信息 4)修改學(xué)生信息 5)遍歷學(xué)生信息 1)學(xué)生類 2)菜單menu 3)添加insert ?4)查詢search 5)刪

    2024年02月13日
    瀏覽(18)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包