【求助帖】【大佬请进】社区志愿者管理系统

skcooo 2023-10-20 19:47:29

要求如上, 求大佬解答!!(给提供思路也可)谢谢!!

 

...全文
426 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
杨利杰YJlio 2023-10-28
  • 打赏
  • 举报
回复

你可以使用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类获取用户输入,以及如何进行基本的计算和条件判断。

skcooo 2023-11-27
  • 举报
回复
@杨利杰YJlio 谢谢
  • 打赏
  • 举报
回复

这个是符合你要求的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,被评为待提升志愿者
        }
    }
}
skcooo 2023-11-27
  • 举报
回复
@大家都爱学java 谢谢
码农耕地人~go 2023-10-23
  • 打赏
  • 举报
回复

在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,服务时间不能为负值等。

skcooo 2023-11-27
  • 举报
回复
@码农耕地人~go 谢谢

51,407

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧