day12-作業(yè)(學(xué)生系統(tǒng)完善1)

import json


def login_interface():
    """
    登錄界面
    :return: 無
    """
    while True:
        print("登錄注冊:")
        print('='.center(40, '='))
        print("1.登錄\n2.注冊\n3.任意鍵退出")
        select1 = input("請輸入:")
        print('='.center(40, '='))
        if select1 == '1':
            login()
        if select1 == '2':
            register()
        if not (select1 == '1' or select1 == '2'):
            break


def login():
    """
    登錄入口
    :return: 無
    """
    while True:
        print('='.center(40, '='))
        name_str = input("輸入賬號:")
        password_str = input("輸入密碼:")
        try:
            with open("users.json", 'r', encoding='utf-8') as f:
                content = f.read()
                try:
                    users_list = json.loads(content)
                except json.decoder.JSONDecodeError:
                    users_list = []
                users_count = len(users_list)
                count = 0
                for user_dict1 in users_list[:]:
                    if name_str == user_dict1['賬號'] and password_str == user_dict1['密碼']:
                        print("登錄成功!")
                        stu_sys()
                        return
                    if count == users_count - 1:
                        print("登錄失斶制摺恰起!")
                        break
                    count += 1
                if len(users_list) == 0:
                    print("登錄失敗!")
        except FileNotFoundError:
            print("登錄失敗!")
        print('='.center(40, '='))
        print("1.繼續(xù)\n2.返回")
        select1 = input("請選擇:")
        while True:
            if select1 == '1':
                break
            if select1 == '2':
                return
            print("輸入錯誤!")
            print("1.繼續(xù)\n2.返回")
            select1 = input("請選擇:")


def register():
    """
    注冊入口
    :return: 無
    """
    while True:
        print('='.center(40, '='))
        user_dict = {}
        name_str = input("輸入賬號:")
        password_str = input("輸入密碼:")
        try:
            with open("users.json", 'r', encoding='utf-8') as f:
                content = f.read()
                try:
                    users_list = json.loads(content)
                except json.decoder.JSONDecodeError:
                    users_list = []
                users_count = len(users_list)
                count = 0
                for user_dict1 in users_list[:]:
                    if name_str == user_dict1['賬號']:
                        print("注冊失斚ㄊ亍!")
                        break
                    if count == users_count - 1:
                        user_dict['賬號'] = name_str
                        user_dict['密碼'] = password_str
                        users_list.append(user_dict)
                        print("注冊成功!")
                        break
                    count += 1
                if len(users_list) == 0:
                    user_dict['賬號'] = name_str
                    user_dict['密碼'] = password_str
                    users_list.append(user_dict)
                    print("注冊成功而柑!")
        except FileNotFoundError:
            users_list = []
            user_dict['賬號'] = name_str
            user_dict['密碼'] = password_str
            users_list.append(user_dict)
            print("注冊成功移国!")
        with open("users.json", 'w', encoding='utf-8') as f:
            f.write(json.dumps(users_list))
        print('='.center(40, '='))
        print("1.繼續(xù)\n2.返回")
        select1 = input("請選擇:")
        while True:
            if select1 == '1':
                break
            if select1 == '2':
                return
            print("輸入錯誤吱瘩!")
            print("1.繼續(xù)\n2.返回")
            select1 = input("請選擇:")


def interface():
    """
    歡迎界面
    :return: 無
    """
    print('='.center(40, '='))
    print("歡迎ZH:")
    print(' '*15 + "1. 添加學(xué)生")
    print(' '*15 + "2. 查看學(xué)生")
    print(' '*15 + "3. 修改學(xué)生信息")
    print(' '*15 + "4. 刪除學(xué)生")
    print(' '*15 + "5. 返回")
    print('='.center(40, '='))


def add_stu():
    """
    添加學(xué)生信息
    :return: 無
    """
    stu_file = open("D:\\學(xué)生.txt", 'a+')
    while True:
        print('='.center(40, '='))
        stu_name = input("請輸入學(xué)生姓名:")
        stu_age = int(input("請輸入學(xué)生的年齡:"))
        stu_tel = input("請輸入學(xué)生的電話:")
        stu_file.write('姓名:' + stu_name + ' 年齡:%d' % stu_age + ' 電話:' + stu_tel + '\n')
        print("添加成功!")
        print('='.center(40, '='))
        while True:
            print("1.繼續(xù)\n2.返回")
            n = input("請輸入選擇(1-2):")
            if n == '1':
                break
            if n == '2':
                stu_file.close()
                return
            print("輸入錯誤!")


def view_stu():
    """
    查看學(xué)生信息
    :return: 無
    """
    stu_file = open("D:\\學(xué)生.txt")
    while True:
        print('='.center(40, '='))
        stu_name = input("請輸入查看學(xué)生的姓名:")
        flag = 0
        for stu_str in stu_file.readlines():
            name_str = ''
            for ch in stu_str[3:]:
                if ch == ' ':
                    break
                name_str += ch
            if name_str == stu_name:
                print(stu_str[:-2])
                flag = 1
                break
        if flag == 0:
            print("很遺憾迹缀,未找到該學(xué)生信息使碾!")
        print('='.center(40, '='))
        while True:
            print("1.繼續(xù)\n2.返回")
            n = input("請輸入選擇(1-2):")
            if n == '1':
                stu_file.seek(0)
                break
            if n == '2':
                stu_file.close()
                return
            print("輸入錯誤!")


def modify_stu():
    """
    修改學(xué)生信息
    :return: 無
    """
    while True:
        print('='.center(40, '='))
        stu_name = input("請輸入修改學(xué)生的姓名:")
        flag = 0
        file_data = ""
        with open("D:\\學(xué)生.txt", 'r') as stu_file:
            for stu_str in stu_file.readlines():
                name_str = ''
                for ch in stu_str[3:]:
                    if ch == ' ':
                        break
                    name_str += ch
                if name_str == stu_name:
                    stu_age = int(input("請輸入修改學(xué)生的年齡:"))
                    stu_tel = input("請輸入修改學(xué)生的電話:")
                    stu_str = '姓名:' + stu_name + ' 年齡:%d' % stu_age + ' 電話:' + stu_tel + '\n'
                    flag = 1
                file_data += stu_str
        with open("D:\\學(xué)生.txt", 'w') as stu_file:
            stu_file.write(file_data)
        if flag == 0:
            print("很遺憾祝懂,未找到該學(xué)生信息票摇!")
        if flag == 1:
            print("修改成功!")
        print('='.center(40, '='))
        while True:
            print("1.繼續(xù)\n2.返回")
            n = input("請輸入選擇(1-2):")
            if n == '1':
                break
            if n == '2':
                return
            print("輸入錯誤砚蓬!")


def remove_stu():
    """
    刪除學(xué)生信息
    :return: 無
    """
    while True:
        print('='.center(40, '='))
        stu_name = input("請輸入刪除學(xué)生的姓名:")
        flag = 0
        file_data = ""
        with open("D:\\學(xué)生.txt", 'r') as stu_file:
            for stu_str in stu_file.readlines():
                name_str = ''
                for ch in stu_str[3:]:
                    if ch == ' ':
                        break
                    name_str += ch
                if name_str == stu_name:
                    flag = 1
                    continue
                file_data += stu_str
        with open("D:\\學(xué)生.txt", 'w') as stu_file:
            stu_file.write(file_data)
        if flag == 0:
            print("很遺憾矢门,未找到該學(xué)生信息!")
        if flag == 1:
            print("刪除成功灰蛙!")
        print('='.center(40, '='))
        while True:
            print("1.繼續(xù)\n2.返回")
            n = input("請輸入選擇(1-2):")
            if n == '1':
                break
            if n == '2':
                return
            print("輸入錯誤祟剔!")


def stu_sys():
    """
    學(xué)生系統(tǒng)
    :return: 無
    """
    while True:
        interface()
        n = input("請輸入選擇(1-5):")
        while True:
            if n == '1':
                add_stu()
            if n == '2':
                view_stu()
            if n == '3':
                modify_stu()
            if n == '4':
                remove_stu()
            if n == '5':
                return
            if not (1 <= int(n) <= 5):
                print("輸入錯誤!")
                n = input("請輸入選擇(1-5):")
                continue
            interface()
            n = input("請輸入選擇(1-5):")


login_interface()
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末摩梧,一起剝皮案震驚了整個濱河市峡扩,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌障本,老刑警劉巖教届,帶你破解...
    沈念sama閱讀 221,406評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異驾霜,居然都是意外死亡案训,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,395評論 3 398
  • 文/潘曉璐 我一進店門粪糙,熙熙樓的掌柜王于貴愁眉苦臉地迎上來强霎,“玉大人,你說我怎么就攤上這事蓉冈〕俏瑁” “怎么了轩触?”我有些...
    開封第一講書人閱讀 167,815評論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長家夺。 經(jīng)常有香客問我脱柱,道長,這世上最難降的妖魔是什么拉馋? 我笑而不...
    開封第一講書人閱讀 59,537評論 1 296
  • 正文 為了忘掉前任榨为,我火速辦了婚禮,結(jié)果婚禮上煌茴,老公的妹妹穿的比我還像新娘随闺。我一直安慰自己,他們只是感情好蔓腐,可當(dāng)我...
    茶點故事閱讀 68,536評論 6 397
  • 文/花漫 我一把揭開白布矩乐。 她就那樣靜靜地躺著,像睡著了一般回论。 火紅的嫁衣襯著肌膚如雪散罕。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,184評論 1 308
  • 那天透葛,我揣著相機與錄音,去河邊找鬼卿樱。 笑死僚害,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的繁调。 我是一名探鬼主播萨蚕,決...
    沈念sama閱讀 40,776評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼蹄胰!你這毒婦竟也來了岳遥?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,668評論 0 276
  • 序言:老撾萬榮一對情侶失蹤裕寨,失蹤者是張志新(化名)和其女友劉穎浩蓉,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體宾袜,經(jīng)...
    沈念sama閱讀 46,212評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡捻艳,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,299評論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了庆猫。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片认轨。...
    茶點故事閱讀 40,438評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖月培,靈堂內(nèi)的尸體忽然破棺而出嘁字,到底是詐尸還是另有隱情恩急,我是刑警寧澤,帶...
    沈念sama閱讀 36,128評論 5 349
  • 正文 年R本政府宣布纪蜒,位于F島的核電站衷恭,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏霍掺。R本人自食惡果不足惜匾荆,卻給世界環(huán)境...
    茶點故事閱讀 41,807評論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望杆烁。 院中可真熱鬧牙丽,春花似錦、人聲如沸兔魂。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,279評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽析校。三九已至构罗,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間智玻,已是汗流浹背遂唧。 一陣腳步聲響...
    開封第一講書人閱讀 33,395評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留吊奢,地道東北人盖彭。 一個月前我還...
    沈念sama閱讀 48,827評論 3 376
  • 正文 我出身青樓,卻偏偏與公主長得像页滚,于是被迫代替她去往敵國和親召边。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,446評論 2 359

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