版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
4.7项目开发1.系统功能l增加学生信息:输入学生的基本信息并保存。l查询学生信息:根据学号或姓名查询学生信息。l删除学生信息:根据学号删除学生信息。l修改学生信息:根据学号修改学生信息。l显示所有学生信息:显示系统中所有学生的信息。l退出系统:退出程序。2.系统设计系统类的设计如图4-4所示。3.系统实现1importos2importre3classStudent:#定义类4stuID=""#类属性5name=""6sex="M"7classID="NULL"89#定义每一个属性的get方法和set方法用于获得/设置属性10defsetStuID(self,stuID):11self.stuID=stuID12defsetName(self,name):13=name14defsetSex(self,sex):15self.sex=sex16defsetClassID(self,classID):17self.classID=classID18defgetStuId(self):19returnself.stuID20defgetName(self):21return22defgetSex(self):23returnself.sex24defgetClassID(self):25returnself.classID2627classStudentManagementSystem:28def__init__(self,file_path="students.db"):29self.file_path=file_path30self.students=self.load_students()3132defload_students(self):33students=[]34ifos.path.exists(self.file_path):35withopen(self.file_path,"r")asfile:36forlineinfile:37stu_id,name,sex,class_id=line.strip().split("\t")38students.append(Student(stu_id,name,sex,class_id))39returnstudents4041defsave_students(self):42withopen(self.file_path,"w")asfile:43forstudentinself.students:44filefile.write(f"{student.stu_id}\t{}\t{student.sex}\t{student.class_id}\n")4546defadd_student(self):47stu_id=input("EnterstudentID(001-999):")48ifnotre.match("^[0-9]{3}$",stu_id)orstu_id=="000"orany(s.stu_id==stu_idforsinself.students):49print("InvalidIDorIDalreadyexists.")50return51name=input("Enterstudentname(1-5characters):")52ifnotre.match("^[a-zA-Z]{1,5}$",name):53print("Invalidname.")54return55sex=input("Entersex(M/F):").upper()56ifsexnotin["M","F"]:57print("Invalidsex.")58return59class_id=input("EnterclassID(01-99):")60ifnotre.match("^[0-9]{2}$",class_id)orclass_id=="00":61print("InvalidclassID.")62return63self.students.append(Student(stu_id,name,sex,class_id))64self.save_students()65print("Studentaddedsuccessfully.")6667defquery_student(self):68query_by=input("Queryby(ID/Name):").lower()69ifquery_by=="id":70stu_id=input("EnterstudentID:")71student=next((sforsinself.studentsifs.stu_id==stu_id),None)72elifquery_by=="name":73name=input("Enterstudentname:")74student=next((sforsinself.studentsif.lower()==name.lower()),None)75else:76print("Invalidqueryoption.")77return78ifstudent:79print(student)80else:81print("Studentnotfound.")83defdelete_student(self):84stu_id=input("EnterstudentIDtodelete:")85student=next((sforsinself.studentsifs.stu_id==stu_id),None)86ifstudent:8787self.students.remove(student)88self.save_students()89print("Studentdeletedsuccessfully.")90else:91print("Studentnotfound.")9293defmodify_student(self):94stu_id=input("EnterstudentIDtomodify:")95student=next((sforsinself.studentsifs.stu_id==stu_id),None)96ifstudent:97=input("Enternewname:")98student.sex=input("Enternewsex(M/F):").upper()99student.class_id=input("EnternewclassID:")100self.save_students()101print("Studentmodifiedsuccessfully.")102else:103print("Studentnotfound.")105defdisplay_all_students(self):106ifself.students:107forstudentinself.students:108print(student)109else:110print("Nostudentsfound.")112defrun(self):113whileTrue:114print("\nStudentManagementSystem")115print("1.AddStudent")116print("2.QueryStudent")117print("3.DeleteStudent")118print("4.ModifyStudent")119print("5.DisplayAllStudents")120print("0.Exit")121choice=input("Enteryourchoice:")122ifchoice=="1":123self.add_student()124elifchoice=="2":125self.query_student()126elifchoice=="3":127self.delete_student()128elifchoice=="4":129self.modify_student()130elifchoice=="5":131self.display_all_students()132132elifchoice=="0":133print("Exitingthesystem.")134break135else:136print("Invalidchoice.Pleasetryagain.")程序运行结果为:1.增加学生信息2.查询学生信息3.删除学生信息0.退出请选择:说明:(1)该程序使用文件保存学生信息,关于文件的操作请参阅相关章节。(2)实现该系统的方法有多种,用户可以修改并完善该系统。1.项目需求l支持变压器/断路器/隔离开关等设备信息管理(添加、删除、查询)。设备属性包括:名称、ID、型号、安装位置、运行日期。l设备状态实时监控(正常/警告/故障)。l维护管理:维护记录管理(时间、人员、维护内容维护周期提醒;故障记录及处理跟踪。l用户权限:分级权限管理(管理员/操作员操作日志记录;统计报表;设备状态统计;维护记录查询;故障率分析。2.项目设计系统类的设计如图4-5所示。3.项目实现11classDevice:2"""设备基类""" 3definit(self,id,name,location):4self.id=id5=name6self.location=location7self.status="normal"#normal/warning/fault8self.install_date=datetime.now()910defcheck_status(self):11"""检查设备状态"""12pass14classTransformer(Device):15"""变压器类"""16definit(self,id,name,location,capacity):17super().init(id,name,location)18self.capacity=capacity#容量(kVA)19self.temperature=45.02021defcheck_status(self):22ifself.temperature>85:23self.status="fault"24elifself.temperature>65:25self.status="warning"26else:27self.status="normal"2829classCircuitBreaker(Device):30"""断路器类"""31definit(self,id,name,location,rated_current):32super().init(id,name,location)33self.rated_current=rated_current#额定电流34self.current_load=0.03536defcheck_status(self):37ifself.current_load>self.rated_current*1.2:38self.status="fault"39elifself.current_load>self.rated_current:40self.status="warning"41else:42self.status="normal"4344classMaintenanceRecord:45"""维护记录类"""46definit(self,device_id,maintainer,content):47self.time=datetime.now()48self.device_id=device_id4949self.maintainer=maintainer50self.content=content5152classDeviceManager:53"""设备管理类"""54definit(self):55self.devices={}#ID到设备的映射56self.maintenance_records=[]5758defadd_device(self,device):59ifdevice.idinself.devices:60raiseValueError("设备ID已存在")61self.devices[device.id]=device6263deffind_device(self,device_id):64returnself.devices.get(device_id)6566defrecord_maintenance(self,device_id,maintainer,content):67record=MaintenanceRecord(device_id,maintainer,content)68self.maintenance_records.append(record)6970defget_device_status(self,device_id):71device=self.find_device(device_id)72ifdevice:73device.check_status()74returndevice.status75returnNone7677classUser:78"""用户基类"""79definit(self,username,role):80self.username=username81self.role=role#admin/operator83defcan_manage_devices(self):84returnself.role=="admin"86classStationSystem:87"""变电站管理系统"""88definit(self):89self.device_manager=DeviceManager()90self.users={}91self.current_user=None9293deflogin(self,username,password):94#简化登录验证95user=self.users.get(username)96ifuseranduser.password==password:97self.current_user=user98
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 化工吸附工班组安全水平考核试卷含答案
- 烟叶调制员安全培训效果考核试卷含答案
- 物业客服年终总结
- 2026中国工程机械状态监测传感器振动分析与寿命预测研究
- 2026中国语音交互行业市场现状供需分析及投资评估规划分析研究报告
- 钨绞丝加热子制造工成果考核试卷含答案
- 醋酸乙烯装置操作工岗前操作评估考核试卷含答案
- 牧草栽培工道德强化考核试卷含答案
- 2026农业科技行业市场现状竞争分析及成长评估规划研究报告
- 初中学历模拟测试题及参考答案
- 中国融通资源开发集团有限公司面向退役军人专项招聘100人笔试备考题库及答案详解
- 2026中国兽药行业市场现状分析及投资前景与发展规划报告
- 2026年混凝土结构工程施工质量验收规范试题附答案
- 2026学年四川省攀枝花市二年级数学期末模考重点试题(附答案)详细答案和解析
- 2026年云南省政府采购评审专家题及答案(必刷)
- 成都市2026年初中语文学业水平考试卷附答案解析
- 2026年福建省中考语文试卷(含答案及解析)
- 交管12123学法减分考试题库及答案
- 城镇供水能力提升和保障工程项目建议书
- 2026年江苏苏州相城区村(社区)工作者招聘考试面试试题-含参考答案
- 电力设施保护措施培训课件
评论
0/150
提交评论