Day10-學(xué)生管理系統(tǒng)

student_main.py

'''__author__==fubo'''

'''
'''
import doc_method as doc
import student_method as met
import student_doc as stu

if __name__ == '__main__':
    # 管理系統(tǒng)
    while True:
        flage = False
        mul=met.manage_boundary()
        mul2=met.choose_login(mul,'./files/manages.json')
       #學(xué)生模塊
        while mul2=='4':
            mul3=met.student_boundary()
            # address=input('請輸入地址:')
            while mul3:
                if mul3=='1':
                    mul3=stu.add_student('./files/students.json')
                    print(type(mul3))
                    continue
                if mul3 == '2':
                    mul3 = stu.find_student('./files/students.json')
                    continue
                if mul3 == '3':
                    mul3 = stu.del_student('./files/students.json')
                    continue
                if mul3 == '4':
                    mul3 = stu.updata_student('./files/students.json')
                    continue
                if mul3 == '5':
                    print('結(jié)束')
                    break
                else:
                    flage=True
                    break
            if flage:
                break
        #退出
        if mul=='3':
            print('退出管理系統(tǒng)')
            break

doc_method.py

#判斷方法'./files/manages.json'
'''
import json
def get_r_doc(address):
    '''
    判斷address對應(yīng)的文件是否存在或者文件是否為空
    :param address: 文件地址
    :return: 返回1文檔存在且不為空和2文檔不存在,3文檔存在但為空
    '''
    try:
        with open(address, 'r', encoding='utf-8') as f:
            dict = json.load(f)
            dict=get_python_data(dict)
            return dict
    except FileNotFoundError:
        # print('系統(tǒng)中沒有該文檔')
        return 2
    except json.decoder.JSONDecodeError:
        # print('文檔為空')
        return 3
def set_doc(*data):
    """
    創(chuàng)建一個.json文檔
    :param address: 地址
    :param type: 寫的類型
    :param data:
    :return:
    """

    with open(data[0], 'w', encoding='utf-8') as f:
        if len(data)==2:
            write_doc=json.dump(get_json_data(data[1]),f)
            return write_doc
        else:
            return

def get_json_data(data):
    '''
    將python數(shù)據(jù)轉(zhuǎn)換成json數(shù)據(jù)
    :param data: 數(shù)據(jù)
    :return: 返回json數(shù)據(jù)
    '''
    json_data=json.dumps(data)
    return json_data
def get_python_data(data):
    '''
    將json數(shù)據(jù)轉(zhuǎn)換成python數(shù)據(jù)
    :param data: json數(shù)據(jù)
    :return: 返回python數(shù)據(jù)
    '''
    python_data=json.loads(data)
    return python_data

if __name__ == '__main__':
    # if not get_r_judge('./files/text.json'):
    #     print('你是第一個分組')
    # if  get_r_doc('./files/manages.json'):
        set_doc('./files/manages.json','name')
        print(get_r_doc('./files/manages.json'))

student_doc

from student_method import add_dict
import doc_method as doc
def add_student(address):
    dict = doc.get_r_doc(address)
    if dict == 2 or dict == 3:
        print('首次添加')
        name = input('請輸入姓名:')
        age = input('年齡:')
        tel=input('電話')
        num1=1
        id = 'py1805' + str(num1).rjust(3, '0')
        dict = {}  # 最外層字典
        list1 = []
        list2 = ['name','age','tel', 'id']
        list3 = [name, age,tel,id]
        dict1 = add_dict(list2, list3)
        list1.append(dict1)
        # dict = doc.get_json_data(dict)
        dict['all_student'] = list1
        doc.set_doc(address, doc.get_json_data(dict))
        print('添加成功')
        print('1.繼續(xù)添加')
        print('2.返回首頁')
        mul5 = input('>>>')
        return mul5
    else:
        print('添加學(xué)生')
        name = input('請輸入姓名:')
        age = input('年齡:')
        tel = input('電話')
        dict = doc.get_python_data(dict)
        num1=0
        for item in dict['all_student']:
            print(item['id'])
            if str(num1)<item['id']:
                num=item['id']
        mul2=int(num[-1])
        mul3 = int(num[-2])
        mul4 = int(num[-3])
        if mul2+1>9:
            mul2=0
            if (mul3+1)>9:
                mul3=0
                mul4=mul4+1
            else:
                mul3=mul3+1
        else:
            mul2=mul2+1
        id = 'py1805' + str(mul4)+str(mul3)+str(mul2)
        list2 = ['name', 'age', 'tel', 'id']
        list3 = [name, age, tel, id]
        dict1 = add_dict(list2, list3)
        dict['all_student'].append(dict1)
        doc.set_doc(address, doc.get_json_data(dict))
        print('1.繼續(xù)添加')
        print('5.返回首頁')
        mul5 = input('>>>')
        return mul5
def find_student(address):
    dict = doc.get_r_doc(address)
    dict=doc.get_python_data(dict)
    if dict == 2 or dict == 3 or not dict['all_student']:
        print('系統(tǒng)中還未錄入信息')
        mul1=input('1.添加乏苦,5.返回首頁,其他退出系統(tǒng)')
        if mul1=="1" or mul1=='5':
            return mul1
        else:
            return
    else:
        print('1.查看所有的學(xué)生信息')
        print('2.根據(jù)學(xué)生姓名查看學(xué)生信息')
        print('3.根據(jù)學(xué)生學(xué)號查看學(xué)生信息')
        print('4.返回上一層')
        mul2=input(">>>")
        if mul2=='1':
            for student in dict['all_student']:
                print('姓名:%s当娱,年齡:%s友鼻,電話:%s叛本,學(xué)號:%s' % \
                  (student['name'], student['age'], student['tel'], \
                   student['id']))
            return '5'
        if mul2 == '2':
            find_name(dict)
            return '5'
        if mul2=='3':
            find_id = input("請輸入你想查看的學(xué)生學(xué)號:")
            for student in dict['all_student']:
                if find_id==student['id']:
                    print('姓名:%s颠毙,年齡:%s副瀑,電話:%s舱污,學(xué)號:%s' % \
                          (student['name'], student['age'], student['tel'], \
                           student['id']))
            return '5'
        if mul2=='4':
            return '5'
        else:
            return

def del_student(address):
    dict = doc.get_r_doc(address)
    dict=doc.get_python_data(dict)
    if dict == 2 or dict == 3:
        print('系統(tǒng)中還未錄入信息')
        mul1 = input('1.添加想幻,5.返回首頁,其他退出系統(tǒng)')
        if mul1 == "1" or mul1 == '5':
            return mul1
        else:
            return
    else:
        print('1.按姓名刪除學(xué)生')
        print('2.按學(xué)號刪除學(xué)生')
        print('3.返回')
        mul2=input('>>>')
        if mul2=='1':
            list1=find_name(dict)
            mul3=int(input('>>>'))
            dict['all_student'].remove(list1[mul3])
            dict=doc.get_json_data(dict)
            doc.set_doc(address,dict)
            return '5'
        if mul2=='2':
            find_id = input("請輸入你想查看的學(xué)生學(xué)號:")
            for student in dict['all_student']:
                if find_id == student['id']:
                    dict['all_student'].remove(student)
                    dict = doc.get_json_data(dict)
                    doc.set_doc(address, dict)
            return '5'
        if mul2=='3':
            return "5"

def updata_student(address):
    dict = doc.get_r_doc(address)
    dict=doc.get_python_data(dict)
    if dict == 2 or dict == 3:
        print('系統(tǒng)中還未錄入信息')
        mul1 = input('1.添加粱栖,5.返回首頁,其他退出系統(tǒng)')
        if mul1 == "1" or mul1 == '5':
            return mul1
        else:
            return
    else:
        print('1.按姓名修改學(xué)生')
        print('2.按學(xué)號修改學(xué)生')
        print('3.返回')
        mul2=input('>>>')
        if mul2=='1':
            list=find_name(dict)
            if list:
                mul3 = int(input('>>>'))
                while True:
                    str2=input('修改項:')
                    str3 = input('修改內(nèi)容:')
                    # if str2 not in list[mul3]:
                    print('該修改項不存在')
                    # dict=doc.get_python_data(dict)
                    # else:
                    dict['all_student'][mul3][str2] = str3
                    if not str2 and not str3:
                        break
                dict = doc.get_json_data(dict)
                doc.set_doc(address, dict)
                return '5'
            else:
                print('沒有該學(xué)生')
                return '5'
        if mul2=='2':
            find_id = input("請輸入你想修改的學(xué)生學(xué)號:")
            for student in dict['all_student']:
                if find_id == student['id']:
                    while True:
                        str2 = input('修改項:')
                        str3 = input('修改內(nèi)容:')
                        # if str2 not in student:
                        # print('該修改項不存在')
                        # dict=doc.get_python_data(dict)
                        # else:
                        student[str2]=str3
                        if not str2 and not str3:
                            break
            dict = doc.get_json_data(dict)
            doc.set_doc(address, dict)
        if mul2=='3':
            return "5"
def find_name(dict)  :
    find_name = input('請輸入學(xué)生的姓名:')
    list1 = []
    for student in dict['all_student']:
        if find_name == student['name']:
            list1.append(student)
    for item in range(len(list1)):
        print(item, '姓名:%s,年齡:%s脏毯,電話:%s闹究,學(xué)號:%s' % \
              (list1[item]['name'], list1[item]['age'], list1[item]['tel'], \
               list1[item]['id']))
    if list1:
        return list1
    else:
        return

if __name__ == '__main__':
    # add_student( './files/students.json')
    # find_student('./files/students.json')
    # del_student('./files/students.json')
    updata_student('./files/students.json')

student_method.py

import doc_method as doc
def student_boundary():
    print('==========================')
    print('歡迎進入XXX學(xué)生管理系統(tǒng)')
    print('1.添加學(xué)生\n2.查看學(xué)生\n3.刪除學(xué)生\n4.修改學(xué)生信息\n0.退出')
    print('==========================')
    mul1=input_value = input('請輸入:')
    return mul1
def manage_boundary():
    print('***********************************')
    print('1.登錄')
    print('2.注冊')
    print('3.退出')
    print('***********************************')
    # 模塊1 manage管理 列表 字典
    num1 = input('請選擇操作:')
    return num1
def add_dict(list1,list2):
    dict1=dict.fromkeys(list1)
    num=0
    for item in dict1:
        dict1[item]=list2[num]
        num+=1
    return dict1
def choose_login(num,address):
    while True:
        dict = doc.get_r_doc(address)
        if num=='1':
            print('請登錄')
            user_name = input('請輸入姓名:')
            password = input('請輸入密碼:')
            if dict==2:
                print('系統(tǒng)中沒有該文檔')
                doc.set_doc(address,'')
                num=input('注冊請輸入2,退出請輸入5:')
                if num==5:
                    num=0
                continue
            elif dict==3:
                print('系統(tǒng)中還未錄入任何信息')
                num = input('注冊請輸入2抄沮,退出請輸入5:')
                if num == 5:
                    num = 0
                continue
            else:
                num2 = 0
                dict=doc.get_python_data(dict)
                for item in dict['all_manage']:
                    # print(item['manage_name'],item['password'])
                    if item['manage_name'] == user_name and item['password'] == password:
                        print('登錄成功')
                        num2 = 0.1
                        return '4'
                    if item['manage_name'] != user_name :
                        num2 += 1
                if num2 == len(dict['all_manage']) :
                    print('系統(tǒng)沒有該用戶跋核,請注冊')
                    num = input('>>>')
                    continue
                elif num2 == 0:
                    print('登錄有誤,請重新登錄')
                    num = '1'
                    continue
        if num=='2':
            num=add_people(dict,address)
            if num:
                return num
            else:
                continue
def add_people(dict,address):
    if dict == 2 or dict == 3:
        print('恭喜你叛买,你是第一個登錄本系統(tǒng)')
        name = input('請輸入姓名:')
        password = input('請輸入密碼:')
        dict = {}  # 最外層字典
        list1 = []
        list2 = ['manage_name', 'password']
        list3 = [name, password]
        dict1 = add_dict(list2, list3)
        list1.append(dict1)
        # dict = doc.get_json_data(dict)
        dict['all_manage'] = list1
        doc.set_doc(address, doc.get_json_data(dict))
        num = input('請選擇其他功能:')
        if num == '2':
            print('您已經(jīng)注冊砂代,系統(tǒng)將讓你返回登錄界面')
            return
        elif num=='3':
            return num
        else:
            return

    else:
        print('歡迎您來注冊')
        name = input('請輸入姓名:')
        password = input('請輸入密碼:')
        list2 = ['manage_name', 'password']
        list3 = [name, password]
        dict1 = add_dict(list2, list3)
        dict = doc.get_python_data(dict)
        dict['all_manage'].append(dict1)
        doc.set_doc(address, doc.get_json_data(dict))
        num = input('請選擇其他功能:')
        if num == '2':
            print('您已經(jīng)注冊,系統(tǒng)將讓你返回登錄界面')
        elif num=='3':
            return num
        else:
            return

if __name__ == '__main__':
    choose_login('1','./files/manages.json')
    # print(add_dict([1,2], [3,4]))

結(jié)果:

D:\Python項目\Day10-管理系統(tǒng)\code\venv\Scripts\python.exe D:/Python項目/Day10-管理系統(tǒng)/code/student_main.py
***********************************
1.登錄
2.注冊
3.退出
***********************************
請選擇操作:1
請登錄
請輸入姓名:we
請輸入密碼:123
登錄成功
==========================
歡迎進入XXX學(xué)生管理系統(tǒng)
1.添加學(xué)生
2.查看學(xué)生
3.刪除學(xué)生
4.修改學(xué)生信息
0.退出
==========================
請輸入:1
添加學(xué)生
請輸入姓名:we
年齡:234
電話2151
py1805003
py1805005
py1805007
1.繼續(xù)添加
5.返回首頁
>>>5
<class 'str'>
結(jié)束
==========================
歡迎進入XXX學(xué)生管理系統(tǒng)
1.添加學(xué)生
2.查看學(xué)生
3.刪除學(xué)生
4.修改學(xué)生信息
0.退出
==========================
請輸入:2
1.查看所有的學(xué)生信息
2.根據(jù)學(xué)生姓名查看學(xué)生信息
3.根據(jù)學(xué)生學(xué)號查看學(xué)生信息
4.返回上一層
>>>1
姓名:tr率挣,年齡:235刻伊,電話:35,學(xué)號:py1805003
姓名:we,年齡:24捶箱,電話:2352智什,學(xué)號:py1805005
姓名:we,年齡:12415丁屎,電話:536荠锭,學(xué)號:py1805007
姓名:we,年齡:234晨川,電話:2151证九,學(xué)號:py1805008
結(jié)束
==========================
歡迎進入XXX學(xué)生管理系統(tǒng)
1.添加學(xué)生
2.查看學(xué)生
3.刪除學(xué)生
4.修改學(xué)生信息
0.退出
==========================
請輸入:3
1.按姓名刪除學(xué)生
2.按學(xué)號刪除學(xué)生
3.返回
>>>1
請輸入學(xué)生的姓名:we
0 姓名:we,年齡:24共虑,電話:2352愧怜,學(xué)號:py1805005
1 姓名:we,年齡:12415妈拌,電話:536拥坛,學(xué)號:py1805007
2 姓名:we,年齡:234尘分,電話:2151猜惋,學(xué)號:py1805008
>>>0
結(jié)束
==========================
歡迎進入XXX學(xué)生管理系統(tǒng)
1.添加學(xué)生
2.查看學(xué)生
3.刪除學(xué)生
4.修改學(xué)生信息
0.退出
==========================
請輸入:2
1.查看所有的學(xué)生信息
2.根據(jù)學(xué)生姓名查看學(xué)生信息
3.根據(jù)學(xué)生學(xué)號查看學(xué)生信息
4.返回上一層
>>>1
姓名:tr,年齡:235音诫,電話:35惨奕,學(xué)號:py1805003
姓名:we,年齡:12415竭钝,電話:536梨撞,學(xué)號:py1805007
姓名:we,年齡:234香罐,電話:2151卧波,學(xué)號:py1805008
結(jié)束
==========================
歡迎進入XXX學(xué)生管理系統(tǒng)
1.添加學(xué)生
2.查看學(xué)生
3.刪除學(xué)生
4.修改學(xué)生信息
0.退出
==========================
請輸入:4
1.按姓名修改學(xué)生
2.按學(xué)號修改學(xué)生
3.返回
>>>1
請輸入學(xué)生的姓名:we
0 姓名:we,年齡:12415庇茫,電話:536港粱,學(xué)號:py1805007
1 姓名:we,年齡:234旦签,電話:2151查坪,學(xué)號:py1805008
>>>0
修改項:age
修改內(nèi)容:12
修改項:
修改內(nèi)容:
結(jié)束
==========================
歡迎進入XXX學(xué)生管理系統(tǒng)
1.添加學(xué)生
2.查看學(xué)生
3.刪除學(xué)生
4.修改學(xué)生信息
0.退出
==========================
請輸入:2
1.查看所有的學(xué)生信息
2.根據(jù)學(xué)生姓名查看學(xué)生信息
3.根據(jù)學(xué)生學(xué)號查看學(xué)生信息
4.返回上一層
>>>1
姓名:tr,年齡:12宁炫,電話:35偿曙,學(xué)號:py1805003
姓名:we,年齡:12415羔巢,電話:536望忆,學(xué)號:py1805007
姓名:we罩阵,年齡:234,電話:2151启摄,學(xué)號:py1805008
結(jié)束
==========================
歡迎進入XXX學(xué)生管理系統(tǒng)
1.添加學(xué)生
2.查看學(xué)生
3.刪除學(xué)生
4.修改學(xué)生信息
0.退出
==========================
請輸入:5
結(jié)束
==========================
歡迎進入XXX學(xué)生管理系統(tǒng)
1.添加學(xué)生
2.查看學(xué)生
3.刪除學(xué)生
4.修改學(xué)生信息
0.退出
==========================
請輸入:0
***********************************
1.登錄
2.注冊
3.退出
***********************************
請選擇操作:3
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末稿壁,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子歉备,更是在濱河造成了極大的恐慌傅是,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,888評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件威创,死亡現(xiàn)場離奇詭異落午,居然都是意外死亡,警方通過查閱死者的電腦和手機肚豺,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,677評論 3 399
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來界拦,“玉大人吸申,你說我怎么就攤上這事∠淼椋” “怎么了截碴?”我有些...
    開封第一講書人閱讀 168,386評論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長蛉威。 經(jīng)常有香客問我日丹,道長,這世上最難降的妖魔是什么蚯嫌? 我笑而不...
    開封第一講書人閱讀 59,726評論 1 297
  • 正文 為了忘掉前任哲虾,我火速辦了婚禮,結(jié)果婚禮上择示,老公的妹妹穿的比我還像新娘束凑。我一直安慰自己,他們只是感情好栅盲,可當我...
    茶點故事閱讀 68,729評論 6 397
  • 文/花漫 我一把揭開白布汪诉。 她就那樣靜靜地躺著,像睡著了一般谈秫。 火紅的嫁衣襯著肌膚如雪扒寄。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,337評論 1 310
  • 那天拟烫,我揣著相機與錄音该编,去河邊找鬼。 笑死构灸,一個胖子當著我的面吹牛上渴,可吹牛的內(nèi)容都是我干的岸梨。 我是一名探鬼主播,決...
    沈念sama閱讀 40,902評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼稠氮,長吁一口氣:“原來是場噩夢啊……” “哼曹阔!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起隔披,我...
    開封第一講書人閱讀 39,807評論 0 276
  • 序言:老撾萬榮一對情侶失蹤赃份,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后奢米,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體抓韩,經(jīng)...
    沈念sama閱讀 46,349評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,439評論 3 340
  • 正文 我和宋清朗相戀三年鬓长,在試婚紗的時候發(fā)現(xiàn)自己被綠了谒拴。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,567評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡涉波,死狀恐怖英上,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情啤覆,我是刑警寧澤苍日,帶...
    沈念sama閱讀 36,242評論 5 350
  • 正文 年R本政府宣布,位于F島的核電站窗声,受9級特大地震影響相恃,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜笨觅,卻給世界環(huán)境...
    茶點故事閱讀 41,933評論 3 334
  • 文/蒙蒙 一拦耐、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧屋摇,春花似錦揩魂、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,420評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至柒啤,卻和暖如春倦挂,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背担巩。 一陣腳步聲響...
    開封第一講書人閱讀 33,531評論 1 272
  • 我被黑心中介騙來泰國打工方援, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人涛癌。 一個月前我還...
    沈念sama閱讀 48,995評論 3 377
  • 正文 我出身青樓犯戏,卻偏偏與公主長得像送火,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子先匪,可洞房花燭夜當晚...
    茶點故事閱讀 45,585評論 2 359

推薦閱讀更多精彩內(nèi)容

  • 結(jié)果: D:\Python項目\Day5-練習(xí)和列表\code\venv\Scripts\python.exe D...
    曉曉的忍兒閱讀 985評論 0 8
  • 結(jié)果: D:\Python項目\Day5-練習(xí)和列表\code\venv\Scripts\python.exe D...
    曉曉的忍兒閱讀 294評論 0 6
  • 1.寫一個程序a.用一個變量來保存一個班級的學(xué)生信息种吸,學(xué)生信息包括:姓名、學(xué)號呀非、成績(英語坚俗、體育、美術(shù)岸裙、數(shù)學(xué))猖败、年...
    曉曉的忍兒閱讀 234評論 0 4
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法,類相關(guān)的語法降允,內(nèi)部類的語法恩闻,繼承相關(guān)的語法,異常的語法拟糕,線程的語...
    子非魚_t_閱讀 31,664評論 18 399
  • 我叫馮·海森伯格·霸天 我是一個富二代 每天判呕,我從幾百平的床上起來都覺得很空虛,早餐桌上的幾百道美食都味同嚼蠟送滞,只...
    歌德愛科技閱讀 270評論 1 1