From 43277544f1e0e98decb4e78d46ec68bdfcac5b05 Mon Sep 17 00:00:00 2001 From: snowy-summer Date: Tue, 5 Sep 2023 10:40:05 +0900 Subject: [PATCH] test code --- .DS_Store | Bin 0 -> 6148 bytes .../project.pbxproj | 289 ++++++++++++++++++ .../contents.xcworkspacedata | 7 + .../xcshareddata/IDEWorkspaceChecks.plist | 8 + .../UserInterfaceState.xcuserstate | Bin 0 -> 26397 bytes .../xcdebugger/Breakpoints_v2.xcbkptlist | 6 + .../xcschemes/xcschememanagement.plist | 14 + MyCreditManager_2_chsb1221/main.swift | 195 ++++++++++++ 8 files changed, 519 insertions(+) create mode 100644 .DS_Store create mode 100644 MyCreditManager_2_chsb1221.xcodeproj/project.pbxproj create mode 100644 MyCreditManager_2_chsb1221.xcodeproj/project.xcworkspace/contents.xcworkspacedata create mode 100644 MyCreditManager_2_chsb1221.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 MyCreditManager_2_chsb1221.xcodeproj/project.xcworkspace/xcuserdata/choiseungbeom.xcuserdatad/UserInterfaceState.xcuserstate create mode 100644 MyCreditManager_2_chsb1221.xcodeproj/xcuserdata/choiseungbeom.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist create mode 100644 MyCreditManager_2_chsb1221.xcodeproj/xcuserdata/choiseungbeom.xcuserdatad/xcschemes/xcschememanagement.plist create mode 100644 MyCreditManager_2_chsb1221/main.swift diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..80a5c0cdc0347acd62f84b0c39b8da47fc26d3f1 GIT binary patch literal 6148 zcmeHKy-EW?5dKyJMr|TCA_!Ml2a?w267K{H8&iv#Tu79}3sF(Kdj#Lar|>;|6a8j) z5RYghi3FK}nQ#AQC;M%7=N5o#-)9Y=2B1n6tZdMHBhoKABP-gnMs$9TJ~CY44kx&r z8Ep;5fHAOa49MBt<#~O=A*T3xes6e&2W*+*98GEuL)@Z^25U_;jz@W~JIcHCm&@aY zT7UP#60rZ9IZ?+W+yUv&ozwmBvG!a2M=dk z+v#g-zVl}boqsa?%FUZlw2o7xXd&S~r`)$Ovhq%`ul$b?FOy|rfH_;Fx*5={F<=ZB z1D_1Y{SZ+FW5pt%zdC6A6M$G@vlo`-b3l9|#aOWj$R3IduEgN#^oikuJKG~27b_M4 zgFBo)KAc8&`a*F&I_Ho4aJV?2S!2K$C^N7csx`^~>Cf-~vXj+}0b}4_G2kjmCuws@ znp + + + + diff --git a/MyCreditManager_2_chsb1221.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/MyCreditManager_2_chsb1221.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/MyCreditManager_2_chsb1221.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/MyCreditManager_2_chsb1221.xcodeproj/project.xcworkspace/xcuserdata/choiseungbeom.xcuserdatad/UserInterfaceState.xcuserstate b/MyCreditManager_2_chsb1221.xcodeproj/project.xcworkspace/xcuserdata/choiseungbeom.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100644 index 0000000000000000000000000000000000000000..fa3761b8cc432df27212ad009ce72794f418586e GIT binary patch literal 26397 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 ZH?C>CP70eTI5h%Bs literal 0 HcmV?d00001 diff --git a/MyCreditManager_2_chsb1221.xcodeproj/xcuserdata/choiseungbeom.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist b/MyCreditManager_2_chsb1221.xcodeproj/xcuserdata/choiseungbeom.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist new file mode 100644 index 0000000..c146e84 --- /dev/null +++ b/MyCreditManager_2_chsb1221.xcodeproj/xcuserdata/choiseungbeom.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist @@ -0,0 +1,6 @@ + + + diff --git a/MyCreditManager_2_chsb1221.xcodeproj/xcuserdata/choiseungbeom.xcuserdatad/xcschemes/xcschememanagement.plist b/MyCreditManager_2_chsb1221.xcodeproj/xcuserdata/choiseungbeom.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100644 index 0000000..6468d67 --- /dev/null +++ b/MyCreditManager_2_chsb1221.xcodeproj/xcuserdata/choiseungbeom.xcuserdatad/xcschemes/xcschememanagement.plist @@ -0,0 +1,14 @@ + + + + + SchemeUserState + + MyCreditManager_2_chsb1221.xcscheme_^#shared#^_ + + orderHint + 0 + + + + diff --git a/MyCreditManager_2_chsb1221/main.swift b/MyCreditManager_2_chsb1221/main.swift new file mode 100644 index 0000000..5c3893a --- /dev/null +++ b/MyCreditManager_2_chsb1221/main.swift @@ -0,0 +1,195 @@ +// +// main.swift +// MyCreditManager_2_chsb1221 +// +// Created by 최승범 on 2023/08/14. +// + +import Foundation + +var studentNames: Set = [] +var studentScores: [String: String] = [:] +let gradeScore: [String: Double] = ["A+": 4.5, "A0": 4.0, "B+": 3.5, "B0": 3.0,"C+": 2.5, "C0": 2.0, "D+": 1.5, "D0": 1.0, "F": 0.0] +var programRun = true + + +func loadSavedData() -> (names: Set, scores: [String: String])? { + let defaults = UserDefaults.standard + + if let savedNames = defaults.array(forKey: "StudentNames") as? [String], + let savedScores = defaults.dictionary(forKey: "StudentScores") as? [String: String] { + return (Set(savedNames), savedScores) + } + + return nil +} + + +func saveData(names: Set, scores: [String: String]) { + let defaults = UserDefaults.standard + + let savedNames = Array(names) + defaults.set(savedNames, forKey: "StudentNames") + defaults.set(scores, forKey: "StudentScores") +} + +func appendName() { + print("추가할 학생의 이름을 입력해주세요.") + let input = readLine()! + if input.trimmingCharacters(in: .whitespacesAndNewlines).isEmpty { + print("입력이 잘못되었습니다. 다시 확인해주세요\n") + } + else if studentNames.contains(input) == true { + print("\(input)은 이미 존재하는 학생입니다. 추가하지 않습니다.\n") + } + else { + studentNames.insert(input) + print("\(input) 학생을 추가했습니다.") + } +} + +func deleteName() { + print("삭제할 학생의 이름을 입력해주세요.") + let input = readLine()! + if input.trimmingCharacters(in: .whitespacesAndNewlines).isEmpty { + print("입력이 잘못되었습니다. 다시 확인해주세요\n") + } + else if studentNames.contains(input) == true { + studentNames.remove(input) + print("\(input) 학생을 삭제했습니다.\n") + } + else { + print("\(input) 학생을 찾지못했습니다.") + } +} + +func appendScore() { + print("성적을 추가할 학생의 이름, 과목 이름, 성적( A+, A0, F 등)을 띄어쓰기로 구분하여 차례로 작성해주세요.") + print("입력 예) Beom Swift A+") + print("만약에 학생의 성적 중 해당 과목이 존재하면 기존 점수가 갱신됩니다. ") + let input = readLine()! + let components = input.components(separatedBy: " ") + let score = components.contains("A+") || components.contains("A0") || components.contains("B+") || components.contains("B0") || components.contains("C+") || components.contains("C0") || components.contains("D+") || components.contains("D0") || components.contains("F") + + if studentNames.contains(components.first!) { + + if components.count >= 2 && score { + let key = components.dropLast().joined(separator: " ") + let value = components.last + studentScores[key] = value + } + else { + print("입력이 잘못되었습니다. 다시 확인해주세요.") + } + } + else { + print("학생 명단에 없는 학생입니다.") + } + +} + +func deleteScore() { + print("성적을 삭제할 이름, 과목 이름을 띄어쓰기로 구분하여 차례로 작성해주세요.") + print("입력 예) Beom Swift") + + let input = readLine()! + let components = input.components(separatedBy: " ") + + if studentScores.keys.contains(input) { + studentScores.removeValue(forKey: input) + print("\(components[0])의 \(components[1])과목의 성적이 삭제되었습니다.") + } + else if studentNames.contains(components.first!) == false { + print("\(components.first!) 학생을 찾지 못했습니다.") + } + else { + print("\(components[1]) 과목을 찾지 못했습니다.") + } + +} + +func averageScore() { + print("평점을 알고싶은 학생의 이름을 입력해주세요") + var sum = 0.0 + var count = 0.0 + var aver = 0.0 + let input = readLine()! + if input.trimmingCharacters(in: .whitespacesAndNewlines).isEmpty { + print("입력이 잘못되었습니다. 다시 확인해주세요\n") + } + else if studentNames.contains(input) == false { + print("\(input) 학생을 찾지 못했습니다.") + } + else { + for (key,value) in studentScores { + if key.contains(input) { + print("\(key.components(separatedBy: " ")[1]) : \(value)") + count += 1.0 + sum += gradeScore[value] ?? 0.0 + } + + } + aver = sum / count + print("평점: \(aver)") + } + +} +if let savedData = loadSavedData() { + studentNames = savedData.names + studentScores = savedData.scores + + while programRun { + + print("원하는 기능을 입력해주세요\n") + print("1: 학생추가, 2: 학생삭제, 3: 성적추가(변경), 4:성적삭제, 5: 평점보기, X: 종료\n") + + let input = readLine() + switch input { + case "1": + appendName() + case "2": + deleteName() + case "3": + appendScore() + case "4": + deleteScore() + case "5": + averageScore() + case "x","X": + programRun = false + default: + print("뭔가 입력이 잘못되었습니다. 1 ~ 5 사이의 숫자 혹은 X를 입력해주세요\n") + + + } + } + +} +else { + + while programRun { + + print("원하는 기능을 입력해주세요\n") + print("1: 학생추가, 2: 학생삭제, 3: 성적추가(변경), 4:성적삭제, 5: 평점보기, X: 종료\n") + + let input = readLine() + switch input { + case "1": + appendName() + case "2": + deleteName() + case "3": + appendScore() + case "4": + deleteScore() + case "5": + averageScore() + case "x","X": + programRun = false + default: + print("뭔가 입력이 잘못되었습니다. 1 ~ 5 사이의 숫자 혹은 X를 입력해주세요\n") + } + } + saveData(names: studentNames, scores: studentScores) + +}