Term Project1

Design of Portable Multimedia Devices (448460)
– iOS CampusLife AR Application –
Fall 2016
Kyoung Shin Park
October 4, 2016

 

Term Project

Term Project 1 – 조별 학교생활 AR 어플 제안서

Term Project 2 – 조별 학교생활 AR 어플에 대한 측정요소

Term Project 3 – 조별 학교생활 AR 어플 진행보고서

Term Project 4 – 조별 학교생활 AR 어플 최종보고서

TemperatureConverter

// ConverterType
enum ConverterType : Int, CustomStringConvertible {
case FA_TO_CE = 1
case CE_TO_FA = 2
init(_ name: String) {
switch name {
case “FA_TO_CE”, “1”: self = .FA_TO_CE
case “CE_TO_FA”, “2”: self = .CE_TO_FA
default: self = .CE_TO_FA
}
}
var description: String {
switch self {
case .FA_TO_CE: return “FA_TO_CE”
case .CE_TO_FA: return “CE_TO_FA”
}
}
static func enumerate() -> AnyGenerator {
var nextIndex = FA_TO_CE.rawValue
return anyGenerator { ConverterType(rawVale: nextIndex++) }

}
}

// Converter
protocol Converter : CustomStringConvertible {
var description : String { get }
var type : ConverterType { get }
var fahrenheit : Double { get }
var celsius : Double { get }
}

// FahrenheitToCelsius
class FahrenheitToCelsius : Converter {
var temperature = 0.0

convenience init() {
self.init(temperature: 0.0)
}

init(temperature: Double) {
self.temperature = temperature
}

var description : String {
return “Converter=\(type.description) F=\(fahrenheit) => C=\(celsius)”
}
var type : ConverterType {
return ConverterType.FA_TO_CE
}

var fahrenheit : Double {
return self.temperature
}

var celsius : Double {
return (temperature – 32.0) * (5.0 / 9.0)
}
}

// CelsiusToFahrenheit
class CelsiusToFahrenheit : Converter {
var temperature = 0.0

convenience init() {
self.init(temperature: 0.0)
}

init(temperature: Double) {
self.temperature = temperature
}

var description : String {
return “Converter=\(type.description) C=\(celsius) => F=\(fahrenheit)”
}
var type : ConverterType {
return ConverterType.CE_TO_FA
}

var fahrenheit : Double {
return ((9.0/5.0) * temperature + 32.0)
}

var celsius : Double {
return self.temperature
}
}

// TemperatureConverter
class TemperatureConverter {

func getUserInputDouble() -> Double {
var value : Double
while true {
if let inputSeting = readLine() {
if let inputNumber = Double(inputString) {
value = inputNumber
return value
}
else {
print(“Error! Please re-enter Double value”)
}
}
}
}

func convert(mode: ConverterType) {
if (mode == ConverterType.FA_TO_CE) {
print(“Please enter temperature (F) : “)
let converter = FahrenheitToCelsius(temperature: getUserInputDouble())
print(converter.description)
}
else if (mode == ConverterType.CE_TO_FA) {
print(“Please enter temperature (C) : “)
let converter = CelsiusToFahrenheit(temperature: getUserInputDouble())
print(converter.description)
}
}

func getUserInputConverterType() -> ConverterType {
var i = 0
let g = ConvertType.FA_TO_CE
repeat {
print(“Please select converter type (1 or 2):”)
if let inputString = readLine() {
if let inputNumber = Int(inputString) {
i = inputNumber
if let c = ConverterType(rawValue: i) {
return c
}
}
}
} while i < 1 || i > 2
return g
}

func calculateAll() {
for i in 1…2 {
convert(ConverterType(rawValue: i)!)
}

for c in ConverterType.enumerate() {
convert(c)
}

var convertList = [Converter]()
convertList.append(FahrenheitToCelsius(temperature: 75.5))
convertList.append(CelsiusToFahrenheit(temperature: 25.5))
for c in convertList {
print(c.description)
}

convert(getUserInputConverterType())
}
}