Pythonを使って簡単な学生情報管理システムを実現するように教えます。(ソースを含む)


一、プロジェクト分析
1、まず基礎学生の情報リストを定義する。
フォーマット:list={学号:氏名、年齢:num、成績:num}

student1 = [\
            {1:"jam",'age':17,'socer':99},
            {2:'kol','age':18,'socer':89},
            {3:'avlir','age':19,'socer':100}]
2、まずフレームを構築する(メイン関数main()

if __name__ == '__main__':
    while True:
        menu()
        key = input("         /     :")
        if key == '1':
            lookup() #        
        elif key == '2':
            append() #        
        elif key == '3':
            delete() #        
        elif key == '4':
            allinformation() #      
        elif key == '5':
            revise() #        
        elif key == '6':
            save() #    
        elif key == '0':
            print("    ?")
            exit = input("  yes  :")
            if exit == 'yes':
                break
            else:
                print("    ,   ")

3、フレームを作ったら、メニュー画面が必要です。

#  
def menu():
    print('-'*30)
    print("          ")
    print("1.        ")
    print("2.      ")
    print("3.      ")
    print("4.        ")
    print("5.      ")
    print("6.           ")
    print("0.    ")
    print("-"*30)
4、次は指定学生情報を検索します。
リストの下に0が表示されますので、ここで学号の入力の後に「-1」が追加されます。 

#    
def lookup():
    sid = int(input("      :"))-1 #  
    if sid > len(student1)-1:
        print("    ,    ")
    else:
        print(student1[sid]) #    
    input("      ")
5、次は学生情報の追加です。
リスト要素は辞書で保存されているので、辞書の追加要素を使用します。

#    
def append():
    newsid = eval(input('       ( 4  ):'))
    newname = eval(input('       :'))
    newage = eval(input('       :'))
    newsocer = eval(input('       :'))
    newstudent1 = {}
    newstudent1[newsid] = newname #     、  
    newstudent1['age'] = newage #    
    newstudent1['socer'] = newsocer #    
    student1.append(newstudent1) #    
    input("      ")
6、追加できても削除できます(delete()

#    
def delete():
    did = int(input("              :"))-1
    del student1[did] #      
    input("      ")
7、そしてすべての情報を出力します。
ここで出力リスト要素を巡回する場合、書式設定文字列の関数tr.format()が使用されます。

##        
def allinformation():
    print("      :")
    i = 1
    for show in student1:
        print("{}".format(show)) #      
        i += 1
    input("      ")
8、今はまだ情報の修正が足りません。
辞書の修正にも有効です。キーで対応値を変更します。

##    
def revise():
    resid = int(input("          :"))-1    
    r = input("      (1.  ;2.  ;  ,   ):")
    if r == '1':
        newage = input("      ")
        student1[resid]['age'] = newage
    elif r == '2':
        newsocer = input("      ")
        student1[resid]['socer'] = newsocer
    else:
        newage = input("      ")
        newsocer = input("      ")
        student1[resid]['socer'] = newsocer
        student1[resid]['age'] = newage
    input("      ")
9、忘れそうになったらメッセージを保存してください。
コードと同じファイルに保存します。student.txtファイルにパスを導入するには絶対パスが必要です。

##      
def save():
    f = open('student.txt','w') #    
    f.write(str(student1)) #    
    f.close() #    
    input("          ")
そして、完全コードは以下の通りです。

'''
Created on 2021 6 13 
      
        ,    ――         
@author:   
'''
 
student1 = [\
            {1:"jam",'age':17,'socer':99},
            {2:'kol','age':18,'socer':89},
            {3:'avlir','age':19,'socer':100}]
#  
def menu():
    print('-'*30)
    print("          ")
    print("1.        ")
    print("2.      ")
    print("3.      ")
    print("4.        ")
    print("5.      ")
    print("6.           ")
    print("0.    ")
    print("-"*30)
#    
def lookup():
    sid = int(input("      :"))-1 #  
    if sid > len(student1)-1:
        print("    ,    ")
    else:
        print(student1[sid]) #    
    input("      ")
#    
def append():
    newsid = eval(input('       ( 4  ):'))
    newname = eval(input('       :'))
    newage = eval(input('       :'))
    newsocer = eval(input('       :'))
    newstudent1 = {}
    newstudent1[newsid] = newname #     、  
    newstudent1['age'] = newage #    
    newstudent1['socer'] = newsocer #    
    student1.append(newstudent1) #    
    input("      ")
 
#    
def delete():
    did = int(input("              :"))-1
    del student1[did] #      
    input("      ")
 
##        
def allinformation():
    print("      :")
    i = 1
    for show in student1:
        print("{}".format(show)) #      
        i += 1
    input("      ")
 
##    
def revise():
    resid = int(input("          :"))-1    
    r = input("      (1.  ;2.  ;  ,   ):")
    if r == '1':
        newage = input("      ")
        student1[resid]['age'] = newage
    elif r == '2':
        newsocer = input("      ")
        student1[resid]['socer'] = newsocer
    else:
        newage = input("      ")
        newsocer = input("      ")
        student1[resid]['socer'] = newsocer
        student1[resid]['age'] = newage
    input("      ")
    
##      
def save():
    f = open('student.txt','w') #    
    f.write(str(student1)) #    
    f.close() #    
    input("          ")
    
if __name__ == '__main__':
    while True:
        menu()
        key = input("         /     :")
        if key == '1':
            lookup() #        
        elif key == '2':
            append() #        
        elif key == '3':
            delete() #        
        elif key == '4':
            allinformation() #      
        elif key == '5':
            revise() #        
        elif key == '6':
            save() #    
        elif key == '0':
            print("    ?")
            exit = input("  yes  :")
            if exit == 'yes':
                break
            else:
                print("    ,   ")

出力例:
------------------
学生管理システムにようこそ。
1.学号を入力して成績を調べます。
2.学生情報の追加
3.学生情報の削除
4.すべての学生情報を印刷する
5.学生情報の修正
6.学生情報を指定ファイルに保存する
0.システムを終了する
------------------
入力オプションのデジタルクエリ/入力情報:2
新しい学友の学号を入力します(4から始まります):4
新しいクラスメートの名前を入力してください。
新しい同級生の年齢を入力します。17
新しいクラスメートの成績を入力します。78
リターンボタンを押して続けます
------------------
学生管理システムにようこそ。
1.学号を入力して成績を調べます。
2.学生情報の追加
3.学生情報の削除
4.すべての学生情報を印刷する
5.学生情報の修正
6.学生情報を指定ファイルに保存する
0.システムを終了する
------------------
入力オプションのデジタルクエリ/入力情報:6
リターンボタンを押して続けます
------------------
学生管理システムにようこそ。
1.学号を入力して成績を調べます。
2.学生情報の追加
3.学生情報の削除
4.すべての学生情報を印刷する
5.学生情報の修正
6.学生情報を指定ファイルに保存する
0.システムを終了する
------------------
入力オプションのデジタルクエリ/入力情報:4
すべての情報は以下の通りです。
{1:''jam'、'age':17,socer':99}
{2:'kol','age':18,'socer':89}
{3:'avlir'、'age':19、'socer':100}
{4:'dfg'、'age':17,'socer':78}
リターンボタンを押して続けます
------------------
学生管理システムにようこそ。
1.学号を入力して成績を調べます。
2.学生情報の追加
3.学生情報の削除
4.すべての学生情報を印刷する
5.学生情報の修正
6.学生情報を指定ファイルに保存する
0.システムを終了する
------------------
入力オプションのデジタルクエリ/入力情報:3
削除したい成績に対応する学籍番号を入力してください。
リターンボタンを押して続けます
------------------
学生管理システムにようこそ。
1.学号を入力して成績を調べます。
2.学生情報の追加
3.学生情報の削除
4.すべての学生情報を印刷する
5.学生情報の修正
6.学生情報を指定ファイルに保存する
0.システムを終了する
------------------
入力オプションのデジタルクエリ/入力情報:6
リターンボタンを押して続けます
------------------
学生管理システムにようこそ。
1.学号を入力して成績を調べます。
2.学生情報の追加
3.学生情報の削除
4.すべての学生情報を印刷する
5.学生情報の修正
6.学生情報を指定ファイルに保存する
0.システムを終了する
------------------
入力オプションのデジタルクエリ/入力情報:0
終了を確定しますか?
イエスを入力して終了:yes
ここでは、Pythonを使って簡易版の学生情報管理システム(ソースコードを含む)を実現することについての記事を紹介します。Pythonの学生情報管理システムの内容については、以前の文章を検索したり、下記の関連記事を見たりしてください。これからもよろしくお願いします。