實現(xiàn)一個python選課系統(tǒng)實例

  下面介紹一下自己寫的python程序,主要是的知識點為sys、os、json、pickle的模塊應用,python程序包的的使用,以及關于類的使用。

  下面是我的程序目錄:

          實現(xiàn)一個python選課系統(tǒng)實例

bin是存放一些執(zhí)行文件course.py下面是這個文件的內(nèi)容:

import?sys,os    #程序主目錄  BASE_DIR?=?os.path.dirname(os.path.dirname(os.path.abspath(__file__)))  print(BASE_DIR)    #添加環(huán)境變量  sys.path.append(BASE_DIR)    from?core?import?main    if?__name__?==?'__main__':  ????a?=main.Run()  ????a.interactive()

這個文件是對os,sys模塊的應用;

立即學習Python免費學習筆記(深入)”;

BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))

  這里的os.path.abspath(__file__)是查看當前文件的所在位置。例如:

  D:python項目選課系統(tǒng)course_systembincourse.py

  這里的os.path.abspath是上一級目錄例如:print(BASE_DIR)

  D:python項目選課系統(tǒng)course_system

sys.path.append(BASE_DIR)?括號里面是模塊引用的地址,我們可以理解把這個模塊得知設置成環(huán)境變量。  from?core?import?main??導入core包中的main文件    這里是core包中udi.py文件
import?hashlib  import?time    def?create_md():  ????m?=?hashlib.md5()  ????m.update(bytes(str(time.time()),encoding="utf-8"))  ????return?m.hexdigest()

在python中hashlib提供了常見的摘要算法,如MD5,SHA1等等。它通過一個函數(shù),把任意長度的數(shù)據(jù)轉(zhuǎn)換為一個長度固定的數(shù)據(jù)串(通常用16進制的字符串表示)。為了給學生生成一個隨機不重復的uid。

?

這里是core包中main.py文件內(nèi)容

import?sys,os???????    import?json      #這里說一下json這個模塊,java之中也有應用,所以一些數(shù)據(jù)也可以給java去用。  import?pickle         from?bin?import?course  from?core?import?uid    #數(shù)據(jù)庫文件路徑  db_DIR?=?course.BASE_DIR?+?r"db"  db_school?=?db_DIR?+?r"school"  db_teacher?=?db_DIR?+?r"teacher"  db_student?=?db_DIR?+?r"student"  db_classes?=?db_DIR?+?r"classes"  db_course?=?db_DIR?+?r"course"  db_admin?=?db_DIR?+?r"admin"  db_class_record?=?db_DIR?+?r"class_record"  db_class_grade?=?db_DIR?+?r"class_grade"    #基礎類,主要包括文件的讀寫操作  class?Baseclass(object):??#在python3中全部是新式類,但是建議還是這樣寫。在python2中存在經(jīng)典類和新式類;例如:class?Baseclass:?這種在python中是經(jīng)典類,而class?Baseclass(object):這樣是新式類。有關它們的區(qū)別,我會在下一篇博客中具體說明。  ????def?__init__(self):  ????????pass  ????def?save(self,type,dict):  ????????filename?=?uid.create_md()  ????????dict['uid']?=?filename  ????????file_path?=?"%s%s"?%(db_DIR,type)  ????????ab_file?=?"%s%s"?%(file_path,filename)  ????????if?os.path.isdir(file_path):  ????????????with?open(ab_file,"wb")?as?f:  ????????????????f.write(pickle.dumps(dict))  ????????????????if?True:  ????????????????????print(  ????????????????????"-------",type,"創(chuàng)建成功","-------")  ????????????????????for?key?in?dict:  ????????????????????????print(key,":t",dict[key])  ????def?seek_list(self,type,list):  ????????filename?=?uid.create_md()  ????????file_path?=?"%s%s"?%(db_DIR,type)  ????????ab_file?=?"%s%s"?%(file_path,filename)  ????????if?os.path.isdir(file_path):  ????????????with?open(ab_file,"wb")?as?f:  ????????????????f.write(pickle.dumps(list))  ????????????????if?True:  ????????????????????print(  ????????????????????"-------",type,"創(chuàng)建成功","-------")  ????????????????????for?i?in?list:  ????????????????????????for?key?in?i:  ????????????????????????????print(key,i[key])  ????????????????????????print("n")  ????????return?True    ????def?open(self,type):  ????????all_data?=?[]  ????????db_path?=?"%s%s"?%(db_DIR,type)  ????????for?i?in?os.listdir(db_path):  ????????????if?os.path.isfile(os.path.join(db_path,i)):  ????????????????db_file?=?os.path.join(db_path,i)  ????????????????with?open(db_file,"rb")?as?f:  ????????????????????file_dict?=?pickle.load(f)  ????????????????????all_data.append(file_dict)  ????????return?all_data    #admin類  class?Admin(Baseclass):  ????def?__init__(self):  ????????Baseclass.__init__(self)  ????def?create_school(self):  ????????school_dict?=?{}  ????????school_name?=?input("校名:")  ????????school_address?=?input("地址:")  ????????s1?=?School(school_name,?school_address)  ????????school_dict["校名"]?=?s1.school_name  ????????school_dict["地址"]?=?s1.school_address  ????????Baseclass.save(self,?"school",?school_dict)  ????def?create_teacher(self):  ????????teacher_dict?=?{}  ????????teacher_name?=?input("講師姓名:")  ????????teacher_salary?=?input("講師工資:")  ????????teacher_school?=?input("所屬學校:")  ????????t1?=?Teacher(teacher_name,?teacher_salary,?teacher_school)  ????????teacher_dict["姓名"]?=?t1.teacher_name  ????????teacher_dict["工資"]?=?t1.teacher_salary  ????????teacher_dict["所屬學校"]?=?t1.teacher_school  ????????print(teacher_dict)  ????????Baseclass.save(self,?"teacher",?teacher_dict)  ????def?create_student(self):  ????????student_dict?=?{}  ????????student_name?=?input("學員姓名:")  ????????student_sex?=?input("學員性別:")  ????????student_school?=?input("所屬學校:")  ????????student_classes?=?input("學員班級:")  ????????st1?=?Student(student_name,?student_sex,?student_school,?student_classes)  ????????student_dict["姓名"]?=?st1.student_name  ????????student_dict["性別"]?=?st1.student_sex  ????????student_dict["學校"]?=?st1.student_school  ????????student_dict["班級"]?=?st1.student_classes  ????????Baseclass.save(self,?"student",?student_dict)  ????def?create_course(self):  ????????course_dict?=?{}  ????????course_name?=?input("課程名:")  ????????course_period?=?input("周期:")  ????????course_prices?=?input("價格:")  ????????c1?=?Course(course_name,?course_period,?course_prices)  ????????course_dict["課程名"]?=?c1.course_name  ????????course_dict["周期"]?=?c1.course_period  ????????course_dict["價格"]?=?course_prices  ????????Baseclass.save(self,?"course",?course_dict)  ????def?create_classes(self):  ????????classes_dict?=?{}  ????????classes_name?=?input("班級名:")  ????????classes_teachter?=?input("負責講師:")  ????????classes_course?=?input("所學課程:")  ????????cs1?=?Classes(classes_name,?classes_teachter,?classes_course)  ????????classes_dict["班級名"]?=?cs1.classes_name  ????????classes_dict["負責講師"]?=?cs1.classes_teacher  ????????classes_dict["課程"]?=?cs1.classes_course  ????????Baseclass.save(self,?"classes",?classes_dict)    #School類  class?School(Baseclass):  ????def?__init__(self,school_name,school_address):  ????????Baseclass.__init__(self)  ????????self.school_name?=?school_name  ????????self.school_address?=?school_address    #teacher類  class?Teacher(Baseclass):  ????def?__init__(self,teacher_name,teacher_salary,teacher_school):  ????????Baseclass.__init__(self)  ????????self.teacher_name?=?teacher_name  ????????self.teacher_salary?=?teacher_salary  ????????self.teacher_school?=?teacher_school  ????def?create_class_record(self):  ????????class_record?=?[]  ????????student_school?=?input("選擇學校:")  ????????student_classes?=?input("選擇班級:")  ????????student_times?=?input("課次:")  ????????student_list?=?Baseclass.open(self,"student")  ????????for?i?in?student_list:  ????????????if?i["學校"]?==?student_school?and?i["班級"]?==?student_classes:  ????????????????student_name?=?i["姓名"]  ????????????????student_status?=?input("%s?上課情況:"?%?student_name)  ????????????????i["上課情況"]?=?student_status  ????????????????i["課次"]?=?student_times  ????????????????class_record.append(i)  ????????Baseclass.seek_list(self,"class_record",class_record)  ????def?create_class_grade(self):  ????????class_grade?=?[]  ????????student_school?=?input("選擇學校:")  ????????student_classes?=?input("選擇班級:")  ????????student_times?=?input("課次:")  ????????student_list?=?Baseclass.open(self,"student")  ????????for?i?in?student_list:  ????????????if?i["學校"]?==?student_school?and?i["班級"]?==?student_classes:  ????????????????student_name?=?i["姓名"]  ????????????????student_grade?=?input("%s?成績:"?%?student_name)  ????????????????i["成績"]?=?student_grade  ????????????????i["課次"]?=?student_times  ????????????????class_grade.append(i)  ????????Baseclass.seek_list(self,"class_grade",class_grade)  ????def?teacher_view_grade(self):  ????????grade_list?=?[]  ????????student_school?=?input("校名:")  ????????student_class?=?input("班級:")  ????????student_times?=?input("課次:")  ????????class_grade_list?=?Baseclass.open(self,?"class_grade")  ????????for?i?in?class_grade_list:  ????????????for?j?in?i:  ????????????????if?j["學校"]?==?student_school?and?j["班級"]?==?student_class?and?j["課次"]?==?student_times:  ????????????????????grade_list.append(j)  ????????for?i?in?grade_list:  ????????????for?key?in?i:  ????????????????print(key,i[key])  ????????????print("n")    ????def?tacher_view_record(self):  ????????record_list?=?[]  ????????student_school?=?input("校名:")  ????????student_class?=?input("班級:")  ????????student_times?=?input("課次:")  ????????class_record_list?=?Baseclass.open(self,?"class_record")  ????????for?i?in?class_record_list:  ????????????for?j?in?i:  ????????????????if?j["學校"]?==?student_school?and?j["班級"]?==?student_class?and?j["課次"]?==?student_times:  ????????????????????record_list.append(j)  ????????for?i?in?record_list:  ????????????for?key?in?i:  ????????????????print(key,i[key])  ????????????print("n")    #classes類  class?Course(Baseclass):  ????def?__init__(self,course_name,course_period,course_prices):  ????????Baseclass.__init__(self)  ????????self.course_name?=?course_name  ????????self.course_period?=?course_period  ????????self.course_prices?=?course_prices    #student類  class?Student(Baseclass):    ????def?__init__(self,student_name,student_sex,student_school,student_classes):  ????????Baseclass.__init__(self)  ????????self.student_name?=?student_name  ????????self.student_sex?=?student_sex  ????????self.student_school?=?student_school  ????????self.student_classes?=?student_classes  ????def?student_registered(self):  ????????student_dict?=?{}  ????????print("歡迎進入學生注冊系統(tǒng)")  ????????student_name?=?input("注冊姓名:")  ????????student_sex?=?input("性別:")  ????????student_school?=?input("學校:")  ????????student_class?=?input("班級:")  ????????st1?=?Student(student_name,student_sex,student_school,student_class)  ????????student_dict["姓名"]?=?st1.student_name  ????????student_dict["性別"]?=?st1.student_sex  ????????student_dict["學校"]?=?st1.student_school  ????????student_dict["班級"]?=?st1.student_classes  ????????Baseclass.save(self,?"student",?student_dict)  ????def?student_pay_fees(self):  ????????pass  ????def?student_view_grade(self):  ????????student_school?=?input("校名:")  ????????student_class?=?input("班級:")  ????????student_times?=?input("課次:")  ????????student_name?=?input("姓名:")  ????????class_grade_list?=?Baseclass.open(self,"class_grade")  ????????for?i?in?class_grade_list:  ????????????for?j?in?i:  ????????????????if?j["學校"]?==?student_school?and?j["班級"]?==?student_class?and?j["課次"]?==?student_times?  ????????????????????and?j["姓名"]?==?student_name:  ????????????????????for?key?in?j:  ????????????????????????print(key,j[key])  ????????????????????print("n")  ????def?student_view_record(self):  ????????student_school?=?input("校名:")  ????????student_class?=?input("班級:")  ????????student_times?=?input("課次:")  ????????student_name?=?input("姓名:")  ????????class_record_list?=?Baseclass.open(self,"class_record")  ????????for?i?in?class_record_list:  ????????????for?j?in?i:  ????????????????if?j["學校"]?==?student_school?and?j["班級"]?==?student_class?and?j["課次"]?==?student_times?  ????????????????????and?j["姓名"]?==?student_name:  ????????????????????for?key?in?j:  ????????????????????????print(key,j[key])  ????????????????????print("n")    #課程類  class?Classes(Baseclass):  ????def?__init__(self,classes_name,classes_teachter,classes_course):  ????????Baseclass.__init__(self)  ????????self.classes_name?=?classes_name  ????????self.classes_teacher?=?classes_teachter  ????????self.classes_course?=?classes_course    #管理員視圖,繼承Admin類  class?Admin_view(Admin):  ????def?__init__(self):  ????????Admin.__init__(self)  ????def?auth(self,username,password):  ????????admin_file?=?"%s/%s.json"?%(db_admin,username)  ????????if?os.path.isfile(admin_file):  ????????????with?open(admin_file,?'r')?as?f:  ????????????????admin_data?=?json.load(f)  ????????????if?admin_data["name"]?==?username?and?admin_data["password"]?==?password:  ????????????????return?True  ????????????else:  ????????????????print("用戶名或密碼錯誤")  ????def?login(self):  ????????menu?=?u'''  ????????-------?歡迎進入管理視圖?---------  ????????????

精品多毛少妇人妻AV免费久久|
久久精品草草草|
精品熟女少妇aⅴ免费久久|
国产午夜久久影院|
91精品国产色综合久久|
国产精品免费久久久久久久久|
久久久艹|
久久精品国产69国产精品亚洲|
久久精品国产一区|
亚洲婷婷国产精品电影人久久|
久久精品亚洲日本波多野结衣
|
久久久久国产一级毛片高清板
|
精品综合久久久久久97|
99国产欧美精品久久久蜜芽|
久久久久久久综合综合狠狠|
久久综合给久久狠狠97色|
精品久久国产一区二区三区香蕉
|
精品国际久久久久999波多野|
久久99精品久久久久久噜噜|
少妇久久久久久被弄高潮|
精品久久久久久无码中文字幕|
亚洲av成人无码久久精品|
久久国产免费直播|
2022年国产精品久久久久|
久久丫忘忧草产品|
久久99精品国产99久久6|
99国产精品久久|
久久99亚洲网美利坚合众国|
亚洲欧美一级久久精品|
久久久WWW成人免费毛片|
久久99精品综合国产首页|
亚洲乱码中文字幕久久孕妇黑人|
久久综合九色欧美综合狠狠|
久久精品中文字幕第23页|
99久久人人爽亚洲精品美女|
91久久精一区二区三区大全|
久久久久久人妻无码|
久久久久久亚洲Av无码精品专口|
日韩精品久久无码中文字幕|
精品国产VA久久久久久久冰|
久久久久国产精品熟女影院|