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
|
## 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
|
// This is very brittle, though, if improperly formatted
|
||||||
val (rawCourse, rawGrade) = it.split(":")
|
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 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
|
// collection testing is easy with `in` and `!in` operators
|
||||||
if (course !in courses)
|
if (course !in courses)
|
||||||
|
|||||||
Reference in New Issue
Block a user