题目要求:
需求:在电商网站上,会展示每个店铺的描述相符,服务态度,物流服务得分,分值为0~5分,如小张店铺三项得分分别为4.2,4.8,4.6。
现在考虑到新店开张时一个差评就会严重影响得分,需要对新店进行扶持,避免得分过低,影响店铺成长。对平均分低于4.0的新店,将平均分拉高到4.0。请写个函数,对原始得分进行处理得到修正后的得分
import java.math.RoundingMode;
import java.text.DecimalFormat;
import java.util.ArrayList;
import java.util.DoubleSummaryStatistics;
import java.util.List;
import java.util.Random;
import java.util.stream.Collectors;
public class Stores {
//需求:在电商网站上,会展示每个店铺的描述相符,服务态度,物流服务得分,
//分值为0~5分,如小张店铺三项得分分别为4.2,4.8,4.6。
//现在考虑到新店开张时一个差评就会严重影响得分,需要对新店进行扶持,避免得分过低,影响店铺成长。
//对平均分低于4.0的新店,将平均分拉高到4.0。
//1. 请写个函数,对原始得分进行处理得到修正后的得分。
private Long id;
private List<Double> Matching_DescriptionList = new ArrayList<>();
private List<Double> Logistics_AttitudeList = new ArrayList<>();
private List<Double> Logistics_ServicesList = new ArrayList<>();
;
public static void main(String[] args) {
Stores xiaozhang = new Stores();
Rating(4.2, 4.8, 4.6, xiaozhang);
System.out.println("现在的平均分为:" + CalAvgScore(xiaozhang));
Rating(1.2, 2.8, 2.6, xiaozhang);
Rating(1.2, 2.8, 2.6, xiaozhang);
Rating(1.2, 2.8, 3.6, xiaozhang);
System.out.println("差评后的平均分为:" + CalAvgScore(xiaozhang));
SupportNewStore(xiaozhang);
System.out.println("支持后的平均分为:" + CalAvgScore(xiaozhang));
System.out.println("描述相符各项分数为:");
PrintList(xiaozhang.Matching_DescriptionList);
System.out.println("服务态度各项分数为:");
PrintList(xiaozhang.Logistics_AttitudeList);
System.out.println("物流服务各项分数为:");
PrintList(xiaozhang.Logistics_ServicesList);
}
private static void PrintList(List<Double> list) {
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i).doubleValue());
}
}
public static void Rating(double Matching_Description,
double Logistics_Attitude,
double Logistics_Services, Stores store) {
store.Matching_DescriptionList.add(Matching_Description);
store.Logistics_AttitudeList.add(Logistics_Attitude);
store.Logistics_ServicesList.add(Logistics_Services);
}
private static double CalAvgItem(List<Double> list) {
double sum = 0;
for (int i = 0; i < list.size(); i++) {
sum += list.get(i).doubleValue();
}
return sum / list.size();
}
private static double CalAvgScore(Stores store) {
double avgMatching_Description = CalAvgItem(store.Matching_DescriptionList);
double avgLogistics_Attitude = CalAvgItem(store.Logistics_AttitudeList);
double avgLogistics_Services = CalAvgItem(store.Logistics_ServicesList);
double avgScore = (avgMatching_Description +
avgLogistics_Attitude +
avgLogistics_Services) / 3;
DecimalFormat df = new DecimalFormat("0.00");
df.setRoundingMode(RoundingMode.HALF_UP);
avgScore = Double.parseDouble(df.format(avgScore));
return avgScore;
}
private static double GenerateItem() {
Random r = new Random();
double item = r.nextDouble() + 4;
DecimalFormat df = new DecimalFormat("0.00");
df.setRoundingMode(RoundingMode.HALF_UP);
item = Double.parseDouble(df.format(item));
//System.out.println("生成:" + item);
return item;
}
private static void SupportNewStore(Stores store) {
double avgScore = CalAvgScore(store);
if (avgScore < 4.0) {
while (CalAvgScore(store) < 4) {
store.Matching_DescriptionList.add(GenerateItem());
store.Logistics_AttitudeList.add(GenerateItem());
store.Logistics_ServicesList.add(GenerateItem());
}
}
}
}
运行结果:



被折叠的 条评论
为什么被折叠?



