




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
《IOS高级应用开发技术》实验报告二详尽答案《IOS高级应用开发技术》实验报告二详尽答案/《IOS高级应用开发技术》实验报告二详尽答案.专业.专注.实验编号:2四川师大《IOS应用开发技术》实验报告2017年9月23日计算机科学学院2015级班实验名称:Swift类和子类姓名学号:指导老师:________实验成绩:_____实验_二__Swift类和子类一.实验目的及要求用Swift语言编写类和子类,掌握类和子类的定义及使用二.实验内容实现Person类:a)要求拥有firstName,lastName,age,gender等储存属性,fullName计算属性;此中gender是列举种类(male,female);b)拥有指定结构函数和便利结构函数;两个Person实例对象能够用==和!=进行比较;d)Person实例能够直接用print输出;Person增添run方法(方法里面直接print输出PersonXXXisrunning;从Person分别派生Teacher类和Student类:a)Teacher类增添属性title,实例能够直接用print输出;b)Student类增添属性stuNo,实例能够直接用print输出;Teacher和Student重载run方法(方法里面直接print输出TeacherXXXisrunning和StudentXXXisrunning)分别结构多个Person、Teacher和Student对象,并将这些对象存入同一个数组.word可编写..专业.专注.中;新建一个协议SchoolProtocol,协议包含一个department属性(Enum,自己实现enum的定义)和lendBook方法(随意写点内容,能区隔即可);(5)改正Teacher和Student,让这两个类实现该协议;对数组履行以下要求:a)分别统计Person、Teacher和Student对象的个数并放入一词典中,统计完后输出词典内容;b)对数组按以下要求排序并输出:age、fullName、gender+age;c)对数组进行穷举,调用每个对象的run方法,同时调用知足协议SchoolProtocol对象的lendBook方法;3、主要仪器设施及药品:iMac(MacOS、XCode)三.实验结果的剖析与评论(该部分如不够填写,请另加附页)(1)找出从1-10000的全部质数,将找出的质数存入可变数组,对数组进行正反排序并输出结果(采纳5种以上的方法实现);代码:funcsearchPrimNum( )->[Int]{varchangeArray=[2,3]//定义可变数组varrecordIsPrim=0//用于记录判断质数.word可编写..专业.专注.forxin4...10000{foryin2..<x{ifx%y==0{recordIsPrim+=1break}}ifrecordIsPrim==0{changeArray.append(x)}recordIsPrim=0}returnchangeArray}varprimNum=searchPrimNum( )primNum.sort( )//升序排序.word可编写..专业.专注.print("数组升序摆列为:")print(primNum)/***************使其降序摆列*******************/第一种实现数组降序摆列方法funccompare(m:Int,n:Int)->Bool{returnm>n}primNum.sort(by:compare)print("第一种数组降序摆列为:")print(primNum).word可编写..专业.专注./////////////////第二种//////////////primNum.sort(by:{(m:Int,n:Int)->Boolinreturnm>n})print("第二种数组降序摆列为:")print(primNum)//////////////////第三种//////////////primNum.sort{(m,n)->Boolinreturnm>n}print("第三种数组降序摆列为:")print(primNum)//////////////第四种///////////////////.word可编写..专业.专注.primNum.sort{(m,n)inreturnm>n}print("第四种数组降序摆列为:")print(primNum)//////////////////第五种///////////////primNum.sort(by:>)print("第五种数组降序摆列为:")print(primNum)///////////////第六种/////////////////primNum.sort{$0>$1}print("第六种数组降序摆列为:")print(primNum)运转结果:.word可编写..专业.专注.2)代码:性别列举enumGender:Int{casemalecasefemalestaticfunc>(lhs:Gender,rhs:Gender)->Bool{returnlhs.rawValue<rhs.rawValue.word可编写..专业.专注.}}//department列举enumDepartment:String{caseteachercasestudent}协议protocolSchoolProtocol{funclendbook( )vardepartment:Department{getset}}人类classPerson:CustomStringConvertible{varfisrtName:String.word可编写..专业.专注.varlastName:Stringletage:Intvargender:Gendervarfullname:String{get{returnfisrtName+lastName}}结构函数init(fisrtName:String,lastName:String,age:Int,gender:Gender){self.fisrtName=fisrtNameself.lastName=lastNameself.age=ageself.gender=gender}便利结构函数.word可编写..专业.专注.convenienceinit(fisrtName:String,lastName:String){self.init(fisrtName:fisrtName,lastName:lastName,age:0,gender:Gender.male)}此两个函数用于使两个Person实例对象能够用==和!=进行比较;staticfunc==(lhs:Person,rhs:Person)->Bool{returnlhs.fullname==rhs.fullname}staticfunc!=(lhs:Person,rhs:Person)->Bool{return!(lhs==rhs)}funcrun( ){print("Person\(self.fullname)isrunning")}.word可编写..专业.专注.使其直接用print输出vardescription:String{return"全名:\(fullname)年纪:\(age)性别:\(gender)"}}老师类classTeacher:Person,SchoolProtocol{vartitle:Stringvardepartment:Departmentinit(title:String,fisrtName:String,lastName:String,age:Int,gender:Gender){self.department=Department.teacherself.title=title.word可编写..专业.专注.super.init(fisrtName:fisrtName,lastName:lastName,age:age,gender:gender)}convenienceinit(fisrtName:String,lastName:String){self.init(title:"hello,everyone",fisrtName:fisrtName,lastName:lastName,age:18,gender:.male)}overridevardescription:String{return"标题:\(title)\(super.description)"}overridefuncrun( ){print("Teacher\(self.fullname)isrunning")}funclendbook( ){print("Teacher\(self.fullname)lendonebookfromlibrary")}}.word可编写..专业.专注.学生类classStudent:Person,SchoolProtocol{varstuNo:Intvardepartment:Departmentinit(stuNo:Int,fisrtName:String,lastName:String,age:Int,gender:Gender){self.stuNo=stuNoself.department=Department.studentsuper.init(fisrtName:fisrtName,lastName:lastName,age:age,gender:gender)}convenienceinit(fisrtName:String,lastName:String){self.init(stuNo:100110,fisrtName:fisrtName,lastName:lastName,age:18,gender:Gender.female)}.word可编写..专业.专注.overridevardescription:String{return"\(super.description)学号:\(stuNo)"}重写overridefuncrun( ){print("Student\(self.fullname)isrunning")}funclendbook( ){print("Student\(self.fullname)borrowonebookfromlibrary")}}vart=Teacher(fisrtName:"希",lastName:"有")vars=Student(fisrtName:"珍",lastName:"琪琪")print(t)t.run( )t.lendbook( ).word可编写..专业.专注.print("")print(s)s.run( )s.lendbook( )varp1=Person(fisrtName:"贾",lastName:"丽",age:19,gender:Gender.female)varp2=Person(fisrtName:"李",lastName:"好",age:21,gender:Gender.male)//varp2=Person(fisrtName:"wa")print("")print(p2)print(p1)p2.run( )p1.run( )print(p1!=p2)print(p1==p2)varrecordArray=[Person]( )//结构多个Person、Teacher和Student对象.word可编写..专业.专注.foriin1...2{lettemporaryArrayPerson=Person(fisrtName:"\(i)",lastName:"连",age:i+30,gender:Gender.male)recordArray.append(temporaryArrayPerson)}//分别统计Person、Teacher和Student对象的个数并放入一词典中foriin1...3{lettemporaryArrayTeacher=Teacher(title:"你好",fisrtName:"\(i)",lastName:"团",age:i+18,gender:.male)recordArray.append(temporaryArrayTeacher)}foriin1...4{lettemporaryArrayStudent=Student(stuNo:10000+i,fisrtName:"\(i)",lastName:"排",age:i+12,gender:.female)recordArray.append(temporaryArrayStudent)}.word可编写..专业.专注.vardictionary=["Person":0,"Teacher":0,"Student":0]print(dictionary)print(recordArray)fortraverseArrayinrecordArray{iftraverseArrayisStudent{dictionary["Student"]!+=1}elseiftraverseArrayisTeacher{dic
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 工业自动化技术及装备升级
- 工业遗产旅游的开发与运营模式研究
- 工业设计原理与实践操作指南
- 工业节能的先进技术与策略
- 工业风家居设计探索
- 工作场所的效能提升技巧
- 工作与生活平衡的策略与心理健康的关联
- 工作流程优化与工作效率提升
- 工厂安全生产与职业病防护
- 工程教育与实践培训方法
- 智能安防监控系统升级实施方案
- 考后心理健康教育课件
- 运输行业保密知识培训
- 《治疗痤疮药》课件
- 住院精神疾病患者自杀风险护理(2023版团标)
- 研究污水处理中的微生物群落结构
- 中等职业学校教职员工绩效考核实施方案
- 国开电大《管理英语1》参考答案
- 簪花仕女图赏析课件
- 音乐治疗学基础理论
- 铁总物资〔2015〕63号:中国铁路总公司物资采购管理办法
评论
0/150
提交评论