반응형
1. 학생을 무제한 입력받는다.
2. 학생 데이터 - 학생 이름, ios, Android, Web 과목의 성적을 학점으로 입력받는다.
3. 입력이 끝나면
3-1. 각 학생의 이름, 과목별 성적, 평균 평점을 계산하여 출력한다.
3-2. 전체 학생의 과목별 성적 평균을 계산하여 출력한다.
지난번 포스팅한 딕셔너리을 이용하여 문제를 풀어보겠습니다.
1. 딕셔너리를 만든다.
var student_scores:[String:[String:Double]] = [:]
2. 입력 값이 없을 때 까지 학생의 이름과 과목별 성적을 입력받는다.
while true{
print("학생 이름: ", terminator:"" )
var student_name = readLine()!
if student_name == ""{
print("프로그램을 종료합니다.")
break
}
print("ios 성적: ", terminator:"" )
var ios_score = Double(readLine()!)!
print("Android 성적: ", terminator:"" )
var android_score = Double(readLine()!)!
print("Web 성적: ", terminator:"" )
var web_score = Double(readLine()!)!
student_scores[student_name] = ["ios": ios_score,"android": android_score,"web": web_score]
}
3. 과목별 성적의 합을 선언 및 초기화한다.
var ios_total:Double = 0.0
var android_total:Double = 0.0
var web_total:Double = 0.0
4. 학생의 이름과 과목별 점수를 더한다.
for (name, scores) in student_scores{
var sub_total = scores["ios"]! + scores["android"]! + scores["web"]!
ios_total += scores["ios"]!
android_total += scores["android"]!
web_total += scores["web"]!
print(" \(name) 학생의 총점 \(sub_total) 평균 \(sub_total/3.0) 입니다.")
}
5. 입력된 학생의 수를 계산하여 과목별 평균을 계산한다.
var student_count = Double(student_scores.count)
print(" 과목별 평균 ios: \(ios_total/student_count), android: \(android_total/student_count), web: \(web_total/student_count)")
전체 코드는 다음과 같습니다.
import Foundation
var student_scores:[String:[String:Double]] = [:]
while true{
print("학생 이름: ", terminator:"" )
var student_name = readLine()!
if student_name == ""{
print("프로그램을 종료합니다.")
break
}
print("ios 성적: ", terminator:"" )
var ios_score = Double(readLine()!)!
print("Android 성적: ", terminator:"" )
var android_score = Double(readLine()!)!
print("Web 성적: ", terminator:"" )
var web_score = Double(readLine()!)!
student_scores[student_name] = ["ios": ios_score,"android": android_score,"web": web_score]
}
var ios_total:Double = 0.0
var android_total:Double = 0.0
var web_total:Double = 0.0
for (name, scores) in student_scores{
var sub_total = scores["ios"]! + scores["android"]! + scores["web"]!
ios_total += scores["ios"]!
android_total += scores["android"]!
web_total += scores["web"]!
print(" \(name) 학생의 총점 \(sub_total) 평균 \(sub_total/3.0) 입니다.")
}
var student_count = Double(student_scores.count)
print(" 과목별 평균 ios: \(ios_total/student_count), android: \(android_total/student_count), web: \(web_total/student_count) 입니다.")
입력
학생 이름: ppomelo
ios 성적: 4.5
Android 성적: 4.0
Web 성적: 4.5
학생 이름: apple
ios 성적: 4.5
Android 성적: 3.0
Web 성적: 3.5
학생 이름: kiwi
ios 성적: 2.5
Android 성적: 3.0
Web 성적: 4.0
학생 이름:
출력
프로그램을 종료합니다.
apple 학생의 총점 11.0 평균 3.6666666666666665 입니다.
kiwi 학생의 총점 9.5 평균 3.1666666666666665 입니다.
ppomelo 학생의 총점 13.0 평균 4.333333333333333 입니다.
과목별 평균 ios: 3.8333333333333335, android: 3.3333333333333335, web: 4.0 입니다.
반응형
'프로그래밍 언어 > Swift' 카테고리의 다른 글
[Swift] 로또 번호 추출기 random(), flag, contains, sorted() (1) | 2019.07.01 |
---|---|
[Swift] reduce()를 이용한 배열 값 더하기 (0) | 2019.06.30 |
[Swift] 딕셔너리 Dictionary (0) | 2019.06.29 |
[Swift] 정수를 무제한 입력받아서 해당 정수들의 합과 평균 구하기 (0) | 2019.06.29 |
[Swift] 배열 Array (0) | 2019.06.29 |