【scala】阶段性练习
创始人
2024-02-07 18:23:33
0

快速学习scala语法和数据结构,完成以下作业内容。

作业内容:

以下数据包含了某大学某专业学生的成绩,数据格式如下所示:
Tom,DataBase,80
Tom,Algorithm,50
Tom,DataStructure,60
Jim,DataBase,90
Jim,Algorithm,60
Jim,DataStructure,80
Jack,DataBase,92
Jack,Algorithm,62
Jack,DataStructure,82


问题描述

请根据以上给定的实验数据,在scala中通过编程来计算以下内容:
(1)该系总共有多少学生;
(2)该系共开设了多少门课程;
(3)Tom同学的总成绩平均分是多少;
(4)求每名同学的选修的课程门数;
(5)该系DataBase课程共有多少人选修;
(6)各门课程的平均分是多少;


参考代码:

import scala.collection.mutableobject Homework {def main(args: Array[String]): Unit = {val map = Map(("Tom", "DataBase") -> 80,("Tom", "Algorithm") -> 50,("Tom", "DataStructure") -> 60,("Jim", "DataBase") -> 90,("Jim", "Algorithm") -> 60,("Jim", "DataStructure") -> 80,("Jack", "DataBase") -> 92,("Jack", "Algorithm") -> 62,("Jack", "DataStructure") -> 82)// 该系总共有多少学生;printf("该系总共有%d名学生\n", calculate_department_length(map))// 该系共开设了多少门课程;printf("该系共开设了%d门课程\n", calculate_course_length(map))//Tom同学的总成绩平均分是多少;printf("Tom同学的总成绩平均分是%.2f\n", calculate_student_average_grade(map, "Tom"))//求每名同学的选修的课程门数;val set_student = mutable.Set[String]()val set_course = mutable.Set[String]()map.keys.foreach(tuple => {set_student += tuple._1set_course += tuple._2})for (student <- set_student) {printf("%s同学的选修的课程门数是%d\n", student, calculate_student_course_num(map, student))}// 该系DataBase课程共有多少人选修printf("该系DataBase课程共有%d人选修\n", calculate_course_num(map, "DataBase"))// 各门课程的平均分是多少;for (course <- set_course) {printf("%s课程的平均分是%.2f\n", course, calculate_course_average_grade(map, course))}}def calculate_department_length(map: Map[(String, String), Int]): Int = {// 定义一个可变set// 使用return 这样看起来比较舒服,和python3.10语法很像val set = mutable.Set[String]()for (student <- map.keys) {set += student._1}return set.size}def calculate_course_length(map: Map[(String, String), Int]): Int = {val set = mutable.Set[String]()for (student <- map.keys) {set += student._2}return set.size}def calculate_student_average_grade(map: Map[(String, String), Int], student_name: String): Double = {var grade: Double = 0val set = mutable.Set[String]()for (student <- map.seq) {if (student._1._1 == student_name) {set += student._1._2 //计算这名学生的课程数量grade += student._2 //计算学生总成绩}}return grade / set.size}def calculate_student_course_num(map: Map[(String, String), Int], student_name: String): Int = {val set = mutable.Set[String]()for (student <- map.seq) {if (student._1._1 == student_name) {set += student._1._2 //计算这名学生的课程数量}}return set.size}def calculate_course_num(map: Map[(String, String), Int], course_name: String): Int = {var length: Int = 0for (student <- map.seq) {if (student._1._2 == course_name) {length += 1 //该系课程共有多少人选修;}}return length}def calculate_course_average_grade(map: Map[(String, String), Int], course_name: String): Double = {var grade: Double = 0var length: Int = 0for (student <- map.seq) {if (student._1._2 == course_name) {length += 1 //该系课程共有多少人选修;grade += student._2 // 计算总成绩}}return grade / length}
}

在这里插入图片描述

相关内容

热门资讯

自强不息的名言名句 自强不息的名言名句  自强不息的名言名句【经典篇】  1、生活的目标,是唯一值得寻找的财富。——史蒂...
教师人生格言大全   教师人生格言大全    1、 教师如果对学生没有热情,决不能成为好教师。但是教师对于学生的爱是一...
简短的人生格言 简短的人生格言集锦55句  人假使没有自尊心,那就会一无价值。——[俄国]屠格涅夫以下是小编为大家推...
谦虚的名言 谦虚的名言  谦虚的名言  在日常学习、工作或生活中,说到名言,大家肯定都不陌生吧,名言可以带来警醒...
珍爱生命的名人名言 珍爱生命的名人名言(精选55句)  关于生命的名人名言有哪些?生命,值得我们尊重,你知道哪些关于生命...
关于知音的名言名句  导语:关于知音或者是友谊的古诗词, 名人名言,这里全都有,关于知音的名言名句。  君子之交淡若水,...
清正廉洁格言 清正廉洁格言最短的人生格言1、执政以廉为本,为官以勤为先。2、做人一身正气,为官一尘不染。3、名位利...
罗素名言 罗素名言69句  1、伟大的事业是根源于坚韧不断的工作,以全付精神去从事,不避艰苦。——罗素  2、...
朋友的名人名言 有关朋友的名人名言汇总  在学习、工作、生活中,大家都不可避免地会接触并使用名言吧,名言可以用来鞭策...
乔布斯名言经典摘抄 乔布斯名言经典摘抄  乔布斯出生于美国加利福尼亚州旧金山,美国发明家、企业家、美国苹果公司联合创办人...
夺眶而出的名言名句 关于夺眶而出的名言名句  这里是郁郁葱葱的山神之森,一定,要有一段时间无法再盼望夏天了,心如刀绞,泪...
信仰名言 精选关于信仰名言  关于信仰名言  1、没有信仰的人如同盲人(弥顿)  2、有信仰未必能成大事,而没...
告诉自己珍惜时间的名言名句 志士惜年,贤人惜日,圣人惜时,告诉自己珍惜时间的名言名句。圣人都珍惜时间,我们凡人更要珍惜时间。下面...
工匠精神的名人名言 关于工匠精神的名人名言  1、最佳的创新定义是“不限大小,不限部门”。 最有效的创新都简单得惊人,其...
青春奋斗的名言警句 关于青春奋斗的名言警句1、青春是美妙的,挥霍青春就是犯罪,关于青春奋斗的名言警句。——萧伯纳  2、...
理想的阶梯 理想的阶梯理想的阶梯[教学目标]1.通过学习本文,使学生懂得“奋斗,是实现理想的阶梯”这一道理,并能...
激励的名言警句 激励的名言警句50句  大家都听过哪些激励的话呢?还记得吗?下面,小编为大家分享激励的名言警句,希望...
清明节家风家训的名言 清明节家风家训的名言  家风不仅是民风社风的组成要素,也是中华民族传统价值观的重要组成部分,各位,我...
英文爱情电影名言 英文爱情电影名言1) i love you not because of who you are, ...
霸气青春励志名言英语短句 霸气青春励志名言英语短句  青春是美好的时光,也是很重要的时光,下面unjs小编整理了霸气青春励志名...