




已阅读5页,还剩14页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验编号:2四川师大IOS应用开发技术实验报告2017年9月23 日计算机科学学院2015级 班 实验名称:Swift类和子类 姓名 学号: 指导老师:_ 实验成绩:_实验_二_ Swift类和子类一 实验目的及要求 用 Swift语言编写类和子类,掌握类和子类的定义及使用二 实验内容(1) 实现Person类:a) 要求具有firstName, lastName,age,gender等存储属性,fullName计算属性;其中gender是枚举类型(male,female);b) 具有指定构造函数和便利构造函数;c) 两个Person实例对象可以用=和!=进行比较;d) Person实例可以直接用print输出;e) Person增加run方法(方法里面直接print输出Person XXX is running;(2) 从Person分别派生Teacher类和Student类:a) Teacher类增加属性title,实例可以直接用print输出;b) Student类增加属性stuNo,实例可以直接用print输出;c) Teacher和Student重载run方法(方法里面直接print输出Teacher XXX is running和Student XXX is running)(3) 分别构造多个Person、Teacher和Student对象,并将这些对象存入同一个数组中;(4) 新建一个协议SchoolProtocol,协议包括一个department属性(Enum,自己实现enum的定义)和lendBook方法(随便写点内容,能区隔即可);(5) 修改Teacher和Student,让这两个类实现该协议;(6) 对数组执行以下要求:a) 分别统计Person、Teacher和Student对象的个数并放入一字典中,统计完后输出字典内容;b) 对数组按以下要求排序并输出:age、fullName、gender+age;c) 对数组进行穷举,调用每个对象的run方法,同时调用满足协议SchoolProtocol对象的lendBook方法; 3、主要仪器设备及药品:iMac(Mac OS、XCode)三 实验结果的分析与评价(该部分如不够填写,请另加附页)(1) 找出从 1-10000 的所有质数,将找出的质数存入可变数组,对数组进行正反排序并输出结果(采用 5 种以上的方法实现); 代码: func searchPrimNum() - Intvar changeArray = 2,3 /定义可变数组var recordIsPrim = 0 /用于记录判断质数for x in 4.10000 for y in 2. Bool return mnprimNum.sort(by: compare)print(第一种数组降序排列为:)print(primNum)/第二种/primNum.sort(by: (m:Int,n:Int) - Bool inreturn mn)print(第二种数组降序排列为:)print(primNum)/第三种/primNum.sort(m,n) -Bool inreturn mnprint(第三种数组降序排列为:)print(primNum)/第四种/primNum.sort (m,n) inreturn mnprint(第四种数组降序排列为:)print(primNum)/第五种/primNum.sort(by:)print(第五种数组降序排列为:)print(primNum)/第六种/primNum.sort$0$1print(第六种数组降序排列为:)print(primNum)运行结果:(2) 代码:/性别枚举enum Gender:Intcase malecase femalestatic func (lhs: Gender,rhs: Gender) - Bool return lhs.rawValue Bool return lhs.fullname = rhs.fullnamestatic func !=(lhs:Person,rhs:Person) - Bool return !(lhs = rhs)func run()print(Person (self.fullname) is running)/使其直接用print输出var description:Stringreturn 全名:(fullname) 年龄:(age) 性别:(gender)/老师类class Teacher:Person,SchoolProtocolvar title: Stringvar department:Departmentinit(title:String,fisrtName:String,lastName:String,age:Int,gender:Gender)self.department = Department.teacherself.title = titlesuper.init(fisrtName:fisrtName,lastName:lastName,age:age,gender:gender)convenience init(fisrtName:String,lastName:String) self.init(title:hello,everyone,fisrtName:fisrtName,lastName:lastName,age:18,gender:.male)override var description:String return 标题:(title) (super.description)override func run()print(Teacher (self.fullname) is running )func lendbook()print(Teacher (self.fullname) lend one book from library)/学生类class Student:Person,SchoolProtocolvar stuNo: Intvar department: 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)convenience init(fisrtName:String,lastName:String) self.init(stuNo:100110,fisrtName:fisrtName,lastName:lastName,age:18,gender:Gender.female)override var description:String return (super.description) 学号:(stuNo)/重写override func run()print(Student (self.fullname) is running )func lendbook()print(Student (self.fullname) borrow one book from library)var t = Teacher(fisrtName:希,lastName:有)var s = Student(fisrtName:珍,lastName:琪琪)print(t)t.run()t.lendbook()print(.)print(s)s.run()s.lendbook()var p1 = Person(fisrtName:贾,lastName:丽,age:19,gender:Gender.female)var p2 = Person(fisrtName:李,lastName:好,age:21,gender:Gender.male)/ var p2 = Person(fisrtName:wa)print(.)/ print(p2)/ print(p1)/ p2.run()/ p1.run()/ print(p1 != p2)/ print(p1 = p2)var recordArray = Person()/构造多个 Person、Teacher 和 Student 对象for i in 1.2 let temporaryArrayPerson = Person(fisrtName:(i),lastName:连,age:i+30,gender:Gender.male)recordArray.append(temporaryArrayPerson)/分别统计 Person、Teacher 和 Student 对象的个数并放入一字典中for i in 1.3 let temporaryArrayTeacher = Teacher(title:你好,fisrtName:(i),lastName:团,age:i+18,gender:.male)recordArray.append(temporaryArrayTeacher)for i in 1.4 let temporaryArrayStudent = Student(stuNo:10000+i,fisrtName:(i),lastName:排,age:i+12,gender:.female)recordArray.append(temporaryArrayStudent) var dictionary = Person:0,Teacher:0,Student:0/ print(dictionary)/ print(recordArray)for traverseArray in recordArrayif traverseArray is Student dictionaryStudent! += 1else if traverseArray is Teacher dictionaryTeacher! += 1elsedictionaryPerson! += 1/输出字典内容print(输出字典内容:)for(key,value) in dictionaryprint(key) : (value) 个)/按照age排序:print(.age.)recordArray.sort(by:return $0.age $1.age)for traverseArray in
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025安徽蚌埠市怀远县教育局所属事业单位紧缺专业人才引进(校园招聘)15人模拟试卷及答案详解(典优)
- 2025黑龙江双鸭山市饶河县竞聘农场社区工作者80人模拟试卷附答案详解(完整版)
- 2025广东广州市中山大学孙逸仙纪念医院耳鼻喉科医技岗位招聘1人考前自测高频考点模拟试题及答案详解(必刷)
- 2025内蒙古自治区阿尔山市属国有企业外部董事拟进入人员模拟试卷及答案详解(典优)
- 2025湖南澄迈县农业技术推广中心招聘见习生7人模拟试卷及答案详解(各地真题)
- 2025广西南宁市江南区翠湖路小学春季学期临聘教师招聘1人模拟试卷带答案详解
- 2025甘肃陇南市成县消防救援大队招聘政府专职消防员12人模拟试卷含答案详解
- 2025江西南昌经济技术开发区社医服务工作人员招聘9人模拟试卷及1套完整答案详解
- 2025年芜湖宜居投资(集团)有限公司专业技术招聘2人考前自测高频考点模拟试题带答案详解
- 班组安全知识培训通讯稿课件
- 隧道施工应急预案方案
- 植物鉴赏课件
- 安徽省华师联盟2026届高三上学期9月开学质量检测物理试卷(含答案)
- 航海船舶航线选择指南
- 2025年中小学校长岗位竞聘面试题库及答案
- 2025年中国心血管病报告
- 肿瘤热疗中国专家共识
- 效益工资发放审批表
- 土壤的环境背景值与容量
- GB/T 26399-2011电力系统安全稳定控制技术导则
- 电动葫芦检查安装检查验收使用表格
评论
0/150
提交评论