51,407
社区成员
发帖
与我相关
我的任务
分享你可以使用Java编写一个简单的社区志愿者管理系统,实现上述功能。以下是一个示例代码,展示如何创建这样一个系统:
import java.util.Scanner;
public class VolunteerManagementSystem {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("欢迎使用社区志愿者管理系统");
System.out.print("请输入志愿者姓名: ");
String name = scanner.nextLine();
System.out.print("请输入服务时长(小时): ");
double serviceHours = scanner.nextDouble();
System.out.print("请输入服务类型(1-4): ");
int serviceType = scanner.nextInt();
// 计算基准分
double baseScore = serviceHours * 10;
// 根据服务类型调整基准分
double multiplier = 1.0;
switch (serviceType) {
case 1:
multiplier = 1.0;
break;
case 2:
multiplier = 1.2;
break;
case 3:
multiplier = 1.5;
break;
case 4:
multiplier = 2.0;
break;
default:
System.out.println("无效的服务类型");
return;
}
double finalScore = baseScore * multiplier;
// 判断评级
String rating;
if (finalScore >= 80) {
rating = "优秀志愿者";
} else if (finalScore >= 60) {
rating = "合格志愿者";
} else {
rating = "待提升志愿者";
}
// 输出志愿者信息
System.out.println("志愿者姓名: " + name);
System.out.println("服务时长: " + serviceHours + " 小时");
System.out.println("服务类型: " + serviceType);
System.out.println("基准分: " + baseScore);
System.out.println("加成倍数: " + multiplier);
System.out.println("综合评分: " + finalScore);
System.out.println("评级: " + rating);
scanner.close();
}
}
这是一个基本的示例代码,其中用户可以输入志愿者的信息,然后计算评分和评级。你可以根据你的需求进一步扩展和改进这个系统,包括更复杂的评级标准、更多志愿者信息的收集等等。这个示例演示了使用Scanner类获取用户输入,以及如何进行基本的计算和条件判断。
这个是符合你要求的java程序,已经运行测试过了
package org.example;
import java.util.Scanner;
public class CommunityVolunteerSystem {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
// 获取志愿者姓名
System.out.print("请输入志愿者姓名:");
String name = scanner.nextLine();
// 获取志愿者服务时长
System.out.print("请输入志愿者服务时长(小时):");
int serviceHours = scanner.nextInt();
// 获取志愿者服务类型
System.out.print("请输入志愿者服务类型(1-4):");
int serviceType = scanner.nextInt();
// 计算基准分
int baseScore = calculateBaseScore(serviceHours);
// 根据服务类型调整基准分
int adjustedScore = adjustScore(baseScore, serviceType);
// 判断并输出评级
String rating = evaluateRating(adjustedScore);
System.out.println("志愿者的综合评分是:" + adjustedScore);
System.out.println("志愿者的评级是:" + rating);
}
// 计算基准分的方法
public static int calculateBaseScore(int serviceHours) {
return serviceHours * 10;
}
// 根据服务类型调整基准分的方法
public static int adjustScore(int baseScore, int serviceType) {
switch (serviceType) {
case 1: return baseScore; // 服务类型1,系数为1,不调整基准分
case 2: return (int) (baseScore * 1.2); // 服务类型2,系数为1.2,将基准分乘以1.2
case 3: return (int) (baseScore * 1.5); // 服务类型3,系数为1.5,将基准分乘以1.5
case 4: return baseScore * 2; // 服务类型4,系数为2,将基准分乘以2
default: return baseScore; // 如果服务类型不在1-4之间,则返回不调整的基准分
}
}
// 判断并输出评级的方法
public static String evaluateRating(int comprehensiveScore) {
if (comprehensiveScore >= 80) {
return "优秀志愿者"; // 如果综合评分大于等于80,被评为优秀志愿者
} else if (comprehensiveScore >= 60) {
return "合格志愿者"; // 如果综合评分大于等于60且小于80,被评为合格志愿者
} else {
return "待提升志愿者"; // 如果综合评分小于60,被评为待提升志愿者
}
}
}
在Java中,可以创建一个类以表示社区志愿者和他们的评分。在该类中,我们可以定义方法来执行所描述的特定任务。
java
import java.util.Scanner;
public class Volunteer {
private String name; // 姓名
private int serviceHours; // 服务时长
private int serviceType; // 服务类型
// 构造函数
public Volunteer(String name, int serviceHours, int serviceType) {
this.name = name;
this.serviceHours = serviceHours;
this.serviceType = serviceType;
}
// 计算基准分
public double baseScore() {
return serviceHours * 10; // 每小时服务基准分为10分
}
// 根据服务类型调整分数
public double adjustedScore() {
double adjustmentFactor;
switch (serviceType) {
case 1:
adjustmentFactor = 1;
break;
case 2:
adjustmentFactor = 1.2;
break;
case 3:
adjustmentFactor = 1.5;
break;
case 4:
adjustmentFactor = 2.0;
break;
default:
adjustmentFactor = 1;
}
return this.baseScore() * adjustmentFactor;
}
// 定义评级
public String rank() {
double score = this.adjustedScore();
if (score >= 200) {
return "优秀志愿者";
} else if (score >= 100) {
return "合格志愿者";
} else {
return "待提升志愿者";
}
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入志愿者姓名: ");
String name = scanner.nextLine();
System.out.print("请输入志愿者服务时长: ");
int serviceHours = scanner.nextInt();
System.out.print("请输入志愿者服务类型: ");
int serviceType = scanner.nextInt();
Volunteer v = new Volunteer(name, serviceHours, serviceType);
System.out.println("志愿者 " + v.name + " 的综合评分为:" + v.adjustedScore());
System.out.println("志愿者 " + v.name + " 的评级为:" + v.rank());
}
}
以上Java程序符合了你需求。为了定义和调用方法,我已经在志愿者类中定义了多个方法以计算和返回志愿者的基准分,调整分和评级。
但是这只是一个简单的示例,因此我没有进行错误检查等一些必要的验证。在真实环境中,您可能需要检查用户输入的有效性,例如服务类型只能为1,2,3或4,服务时间不能为负值等。