Pythonオブジェクト版学習者向け管理システム
9240 ワード
ターゲットオブジェクト開発プロセスにおけるクラス内部機能の解析方法 を理解する.一般的なシステム機能の理解 追加 削除 修正 クエリー
一.システム要件
対象向けプログラミング思想を用いて学習者管理システムの開発を完成し、具体的には以下の通りである.システム要件:学習者データがファイルに格納される システム機能:学習者の追加、学習者の削除、学習者情報の変更、学習者情報の照会、すべての学習者情報の表示、学習者情報の保存、システムの終了などの機能.
二.プログラムファイルの準備
2.1分析ロール分析 学習者 管理システム
仕事上の注意コードのメンテナンスを容易にするために、一般的に1つのロールのプログラムファイルです. プロジェクトにはメインプログラムの入り口があり、習慣は である.
2.2プログラムファイルの作成
プロジェクトディレクトリの作成(
プログラムファイルは次のとおりです.プログラムエントリファイル:main.py 学習者ファイル:student.py 管理システムファイル:managerSystem.py
三.ライティングプログラム
3.1 student.py
必要:学生情報には、名前、性別、携帯電話番号が含まれています. を簡単に表示できます.
3.1.2プログラムコード
3.2 managerSystem.py
必要:データを格納する場所:ファイル(student.data) ファイルデータをロード データを修正してファイル に保存する.
格納データの形式:リスト格納学習者オブジェクト システム機能 学習者を追加 学習者 を削除修正学習者 学習者情報の照会 すべての学習者情報を表示 学習者情報を保存 システム を終了する
3.2.1クラスの定義
3.2.2システムフレームワークの管理
需要:システム機能の循環使用、ユーザーは異なる機能番号を入力して異なる機能を実行します.ステップ プログラムエントリ関数の定義 ロードデータ 表示機能メニュー ユーザ入力機能番号 は、ユーザが入力機能番号に応じて異なる機能 を実行する.
システム機能関数を定義し、学習者などの を追加、削除する.
3.3 main.py
3.4システム機能関数の定義
3.4.1機能の追加需要:ユーザーは学生の名前、性別、携帯電話番号を入力し、学生をシステムに追加します. ステップ ユーザ入力氏名、性別、携帯電話番号 学習者オブジェクトを作成する 学習者オブジェクトをリスト に追加
コード
3.4.2学習者の削除需要:ユーザーは対象の学習者の名前を入力し、学習者が存在する場合は削除します. ステップ ユーザー入力対象学習者名 学習者データリストを巡回し、ユーザーが入力した学習者の名前が存在する場合は削除します.そうでない場合は、学習者が存在しないことを示します.
コード
3.4.3学習者情報の修正需要:ユーザーは対象の学習者の名前を入力し、学習者が存在する場合は学習者の情報を変更します. ステップ ユーザーは目標学習者の名前を入力します. 学習者データのリストを巡回し、ユーザーが入力した学習者の名前が存在する場合、学習者の名前、性別、携帯電話番号のデータを変更します.そうしないと、学習者が存在しないことを示します.
コード
3.4.5学習者情報の照会需要:ユーザーは目標学習者の名前を入力し、学習者が存在する場合はその学習者情報 を印刷する.ステップ ユーザー入力対象学習者名 学習者データリストを巡回し、ユーザーが入力した学習者の名前が存在する場合は学習者情報を印刷します.そうしないと、学習者が存在しないことを示します.
コード
3.4.6すべての学習者情報を表示するすべての学習者情報を印刷 ステップ 学習者データリストを巡回し、すべての学習者情報 を印刷する.
コード
3.4.7学習者情報の保存要件:変更後の学習者データをデータを格納するファイルに保存します. ステップ ファイルを開く ファイル書き込みデータ ファイル を閉じる
考えるファイルに書き込まれたデータは学習者オブジェクトのメモリアドレスですか? ファイル内のデータ要求のデータ型は何ですか? 開拓
Pythonでコード
3.4.8学習者情報のロード需要:システムに入るたびに、修正されたデータはファイルの中のデータ である.ステップ 学習者データファイルを ファイルを開く.ファイルが存在する場合はデータを読み出して格納する データ を読み出す.データ型をリストに変換するリスト内の辞書をオブジェクトに変換する .学習者データを学習者リスト に格納する.
ファイル を閉じる
コード
四.まとめ関数 定義および呼び出し パラメータの使用 オブジェクト向け 定義クラス オブジェクト を作成するインスタンス属性 を定義および呼び出す.インスタンスメソッド を定義および呼び出す
データ型 リスト 削除データ を追加リスト導出式 辞書 文字列 ファイルアクション ファイルを開く 読み書き ファイル を閉じる
一.システム要件
対象向けプログラミング思想を用いて学習者管理システムの開発を完成し、具体的には以下の通りである.
二.プログラムファイルの準備
2.1分析
仕事上の注意
main.py
2.2プログラムファイルの作成
プロジェクトディレクトリの作成(
StudentManagerSystem
など)プログラムファイルは次のとおりです.
三.ライティングプログラム
3.1 student.py
必要:
__str__
魔法方法を追加し、学習者のオブジェクト情報3.1.2プログラムコード
class Student(object):
def __init__(self, name, gender, tel):
self.name = name
self.gender = gender
self.tel = tel
def __str__(self):
return f'{self.name}, {self.gender}, {self.tel}'
3.2 managerSystem.py
必要:
3.2.1クラスの定義
class StudentManager(object):
def __init__(self):
#
self.student_list = []
3.2.2システムフレームワークの管理
需要:システム機能の循環使用、ユーザーは異なる機能番号を入力して異なる機能を実行します.
class StudentManager(object):
def __init__(self):
#
self.student_list = []
# . ,
def run(self):
# 1.
self.load_student()
while True:
# 2.
self.show_menu()
# 3.
menu_num = int(input(' :'))
# 4
if menu_num == 1:
#
self.add_student()
elif menu_num == 2:
#
self.del_student()
elif menu_num == 3:
#
self.modify_student()
elif menu_num == 4:
#
self.search_student()
elif menu_num == 5:
#
self.show_student()
elif menu_num == 6:
#
self.save_student()
elif menu_num == 7:
#
break
# .
# 2.1
@staticmethod
def show_menu():
print(' -----------------')
print('1: ')
print('2: ')
print('3: ')
print('4: ')
print('5: ')
print('6: ')
print('7: ')
# 2.2
def add_student(self):
pass
# 2.3
def del_student(self):
pass
# 2.4
def modify_student(self):
pass
# 2.5
def search_student(self):
pass
# 2.6
def show_student(self):
pass
# 2.7
def save_student(self):
pass
# 2.8
def load_student(self):
pass
3.3 main.py
# 1. managerSystem
from managerSystem import *
# 2.
if __name__ == '__main__':
student_manager = StudentManager()
student_manager.run()
3.4システム機能関数の定義
3.4.1機能の追加
from student import *
class StudentManager(object):
......
# 2.2
def add_student(self):
# 1. 、 、
name = input(' :')
gender = input(' :')
tel = input(' :')
# 2. : ,
student = Student(name, gender, tel)
# 3.
self.student_list.append(student)
#
print(self.student_list)
print(student)
3.4.2学習者の削除
# 2.3 :
def del_student(self):
# 1.
del_name = input(' :')
# 2. ,
for i in self.student_list:
if i.name == del_name:
self.student_list.remove(i)
break
else:
print(' !')
# ,
print(self.student_list)
3.4.3学習者情報の修正
# 2.4
def modify_student(self):
# 1.
modify_name = input(' :')
# 2. 、 、 ,
for i in self.student_list:
if i.name == modify_name:
i.name = input(' :')
i.gender = input(' :')
i.tel = input(' :')
print(f' , {i.name}, {i.gender}, {i.tel}')
break
else:
print(' !')
3.4.5学習者情報の照会
# 2.5
def search_student(self):
# 1.
search_name = input(' :')
# 2. , ,
for i in self.student_list:
if i.name == search_name:
print(f' {i.name}, {i.gender}, {i.tel}')
break
else:
print(' !')
3.4.6すべての学習者情報を表示する
# 2.6
def show_student(self):
print(' \t \t ')
for i in self.student_list:
print(f'{i.name}\t{i.gender}\t{i.tel}')
3.4.7学習者情報の保存
考える
__dict__
class A(object):
a = 0
def __init__(self):
self.b = 1
aa = A()
#
print(A.__dict__)
#
print(aa.__dict__)
Pythonで
# 2.7
def save_student(self):
# 1.
f = open('student.data', 'w')
# 2.
# 1: ,
new_list = [i.__dict__ for i in self.student_list]
# [{'name': 'aa', 'gender': 'nv', 'tel': '111'}]
print(new_list)
# 2: ,
f.write(str(new_list))
# 3.
f.close()
3.4.8学習者情報のロード
"r"
モードで開くことを試み、ファイルが存在しない場合は"w"
モードで # 2.8
def load_student(self):
# "r" , ; ( )
try:
f = open('student.data', 'r')
except:
f = open('student.data', 'w')
else:
# 1.
data = f.read()
# 2. ,
new_list = eval(data)
self.student_list = [Student(i['name'], i['gender'], i['tel']) for i in new_list]
finally:
# 3.
f.close()
四.まとめ