实验4《系统实现》
一、实验目的
- 掌握:系统实现的有关技术及其相关工具。
二、实验内容
- 试对图3所示的课程管理对象类图,采用Java在Eclipse下编码实现,并用JUnit框架对某Java类进行测试。
??测试结果:
??结果分析:测试结果显示三个测试均成功通过,在用户登录时该模块能够对用户的输入进行正常判断,比如判空、账号密码核实。??5.2 利用unittest测试modules.py文件中的老师类Teacher
??teacher.py:??unittestTeacher.py:
??测试结果:
??结果分析:根据结果显示,其中测试中两个通过,一个失败,在用户创建老师类时能够成功创建,增加资产时以初始态0为基础,所以加上15等于15,测试通过,但是减少资产时依旧以0为基础,所以此处减少后为-5,而不等于10,测试未通过。六、实验结论
??本次实验测试是进行抽样测试,根据不同的测试方式进行不同测试,测试样例、结果和结果分析见第五点显示,通过该实例测试方式可对本程序其余模块进行测试,从而验证所以模块的正确性。
??根据本次测试结果,可知,对python进行不同方式的测试很有必要,因为测试是提高代码质量和可维护性的一种方式,也是成本最低的一种方式,尽早排除尽可能出现的bug,可以减少在后续阶段解决bug的成本(包括时间成本、人力成本等)。??项目源码展示如下:
??6.1 配置文件settings.py??6.2 公共模块modules.py
#!/usr/bin/env python# -*- coding:utf-8 -*-import randomimport timeimport picklefrom config import settingsimport osclass Teacher: """ 封装老师的相关信息 """ def __init__(self, name, age, admin):self.name = nameself.age = ageself.__assets = 0self.create_time = time.strftime('%Y-%m-%d %H:%M:%S')self.create_admin = admin def gain(self, cost):"""增加资产:param cost: 增加的数量:return:"""self.__assets += cost def decrease(self, cost):"""减少资产:param cost: 减少的数量:return:"""self.__assets -= cost class Course: """ 课程相关信息 """ def __init__(self, course_name, cost, teacher_obj, admin):self.course_name = course_nameself.cost = costself.teacher = teacher_objself.create_time = time.strftime('%Y-%m-%d %H:%M:%S')self.create_admin = admin def have_lesson(self):"""课程上课,自动给相关联的任课老师增加课时费:return: 课程内容返回给上课者"""self.teacher.gain(self.cost) content = random.randrange(10, 100)r = time.strftime('%Y-%m-%d %H:%M:%S')temp = "课程:%s;老师:%s;内容:%d;时间:%f" % (self.course_name, self.teacher, content, r)return temp def absence(self):"""教学事故:return:"""self.teacher.decrease(self.cost * 2) class Admin: def __init__(self):self.username = Noneself.password = None def login(self, user, pwd):"""管理员登陆:param user::param pwd::return:"""if self.username == user and self.password == pwd: return Trueelse: return False def register(self, user, pwd):"""管理员注册:param user::param pwd::return:"""self.username = userself.password = pwd path = os.path.join(settings.BASE_ADMIN_DIR, self.username) #管理员目录pickle.dump(self, open(path, 'xb')) #将管理员对象写入文件 class Student: """ 学生相关信息 """ def __init__(self):self.username = Noneself.password = None self.course_list = []self.study_dict = {} def select_course(self, course_obj):"""学生选课:param course_obj::return:"""self.course_list.append(course_obj) #将课程对象添加进课程列表 def study(self, course_obj):"""学生上课:param course_obj::return:"""class_result = course_obj.have_lesson() #获取学生上课信息 if course_obj in self
来源:渣渣的夏天 声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!