improve comments and readme
This commit is contained in:
17
README.md
17
README.md
@@ -10,3 +10,20 @@ Create a program (or programs) which show how the language you picked (Kotlin) w
|
||||
|
||||
## Report Card Generator
|
||||
|
||||
Accepts a file `sample.grades` where each line is an assignment in the format: `<course name>: <grade>`. The program iterates through the file and computes the average and letter grades for all courses listed in `sample.grades`.
|
||||
|
||||
Language structures used include:
|
||||
|
||||
* Iterable unpacking
|
||||
* Implicit type arguments
|
||||
* Null safety and propagation (as in `courses[course]!!.add(grade)`)
|
||||
* Iteration
|
||||
* Actions (as in `file.forEachLine`)
|
||||
* Pattern matching (simple example using `when` expression)
|
||||
|
||||
Kotlin library features used include:
|
||||
|
||||
* File I/O
|
||||
* Standard I/O
|
||||
* String conversions
|
||||
* Mutable maps and lists
|
||||
|
||||
@@ -16,8 +16,10 @@ fun main(args: Array<String>) {
|
||||
// This is very brittle, though, if improperly formatted
|
||||
val (rawCourse, rawGrade) = it.split(":")
|
||||
|
||||
// use `trim()` to strip whitespace from either side of the strings
|
||||
// string conversion is easy with helper methods like `toInt()` and `toIntOrNull()`
|
||||
val course = rawCourse.trim()
|
||||
val grade = rawGrade.trim().toInt() // string conversion is easy with helper methods like `toInt()` and `toIntOrNull()`
|
||||
val grade = rawGrade.trim().toInt()
|
||||
|
||||
// collection testing is easy with `in` and `!in` operators
|
||||
if (course !in courses)
|
||||
|
||||
Reference in New Issue
Block a user