Python之旅的第30天(过程记录,选课系统的基本实现)
Posted 崆峒山肖大侠
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python之旅的第30天(过程记录,选课系统的基本实现)相关的知识,希望对你有一定的参考价值。
感觉按照我目前的状态和速度,要想明天做出来,简直是痴人说梦,目前紧缺的知识是文件处理和哈希加密那部分,可以针对性补习一下。
其实主要是在最后一节课里面说,这个搞不懂没法开始网络编程,所以就还是努力做出来,果然自学还是存在练习不足的问题。
下面我来简单介绍一下自己今天做了啥?
目前做的结构:
bin.py文件内容:
import os,sys,pickle BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) sys.path.append(BASE_DIR) from src.services import teacher from src.services import student from src.services import admin if __name__ == \'__main__\': msg = \'1.管理员登录\\n\'\\ \'2.学生登录\\n\'\\ \'3.教师登录\\n\' print(msg) choice_dict = { \'1\': admin.login , \'2\': student.login , \'3\': teacher.login } while True: choice = input(\'>>>请选择进入界面\') if len(choice) == 0 or choice not in choice_dict: continue else: break res = choice_dict[choice]() print(res)
此时我惊讶的发现,自己搞了这么久就弄了个学校类出来,哈哈哈哈~
果然前面很多白学了,忘光了
class School: \'用于创建学校,包含地址,应该需要被课程所继承,同时可以用来关联课程\' def __init__(self, name, addr): self.name = name self.addr =addr def show_school(self): # 用于查看学校信息 print(\'学校名称:%s\'%self.name) print(\'学校地址:%s\'%self.addr) def creat_course(self,course_name,time,price): # 用于学校开设课程 self.__dict__[course_name] = {\'课程周期\':time , \'课程价格\':price} res = \'已完成%s %s的 %s课程的开设\'%(self.name,self.addr,course_name) + \'\\n课程周期:%s 课程价格: %s\'%(time,price) return res def show_course(self): for k , v in self.__dict__.items(): # print(\'zhixing\') # print(type(v)) if type(v) is dict: print(\'课程名称:%s\'%k) print(\'课程周期: \',v[\'课程周期\']) print(\'课程价格: \',v[\'课程价格\']) def get_price(self): # show_course(self) # 貌似这么调用还不行 # 看来在获取价格之前得自己调取输出课程内容 # 但是这里应该会有别的办法,暂时先空着,应该会有从其他地方调用来减少操作的方法, # 或者在获得费用之前直接展示,相关内容写在学生逻辑中 course_name = input(\'请输入你想查看的课程:>>>\') # 用于获取课程价格,便于后期学生缴费使用 return self.__dict__[course_name][\'课程价格\'] def delete_course(self,course_name): if course_name in self.__dict__: del self.__dict__[course_name] print(\'%s 课程已成功删除\'%course_name) else: print(\'所选课程不存在!!!\') def creat_school(): name = \'\' addr = \'\' while True: xuexiao_name = input(\'>>>学校名称\').strip() print(\'学校名称>>>%s\'%xuexiao_name) is_ok = input(\'>>>请确认学校名称(Y/N)\').strip() if is_ok.upper() == \'Y\': name = xuexiao_name break else: continue while True: xuexiao_addr = input(\'>>>学校地址\').strip() print(\'学校地址>>>%s\'%xuexiao_addr) is_ok = input(\'>>>请确认学校地址(Y/N)\').strip() if is_ok.upper() == \'Y\': addr = xuexiao_addr break else: continue return School(name,addr) def admin_creat_course(School): course_name = \'\' time = \'\' price = 0 while True: kecheng_name = input(\'>>>课程名称\').strip() print(\'课程名称>>>%s\'%kecheng_name) is_ok = input(\'>>>请确认课程名称(Y/N)\').strip() if is_ok.upper() == \'Y\': course_name = kecheng_name break else: continue while True: kecheng_time = input(\'>>>课程周期\').strip() print(\'课程周期>>>%s\'%kecheng_time) is_ok = input(\'>>>请确认课程名称(Y/N)\').strip() if is_ok.upper() == \'Y\': time = kecheng_time break else: continue while True: kecheng_price = input(\'>>>课程价格\').strip() print(\'课程价格>>>%s\'%kecheng_price) is_ok = input(\'>>>请确认课程名称(Y/N)\').strip() if is_ok.upper() == \'Y\': price = kecheng_price break else: continue return School.creat_course(course_name,time,price) if __name__ == \'__main__\': # s1 = School(\'清华\',\'北京校区\') # py = s1.creat_course(\'python\',\'one month\',2000) # print(py) # print(s1.__dict__) # s1.show_course() # print(s1.get_price()) s1 = creat_school() s1.show_school() admin_creat_course(s1) print(s1.__dict__) s1.show_course()
感觉就算只写了这个,也是感觉不满意,应该有很多可以进行优化啊,哎。。。。
晚安了,最近有点恢复加班狗的趋势,在我学习大业未成之前,大吼一声“不~~~要~~~啊~~~”
以上是关于Python之旅的第30天(过程记录,选课系统的基本实现)的主要内容,如果未能解决你的问题,请参考以下文章
Python之旅的第2^4天(shelvexml模块和re模块部分)