سورس برنامه تشخیص بیماری کرونا + جاوا

سورس برنامه تشخیص بیماری کرونا
سورس برنامه تشخیص بیماری کرونا

سورس برنامه تشخیص بیماری کرونا

این روزها که در دوران قرنطینه خانگی به سر می بریم با آموزش ها و محتوای کاربردی و مرتبط در خدمت شما هستیم.

در این نوشته یک برنامه ی ساده تشخیص بیماری کرونا از روی علائم به صورت اختصاصی برای شما آماده کرده ایم.

با ما همراه باشید.

 

محتوای کرونایی دیگر که در سایت منتشر شده اند:

 

برنامه تشخیص بیماری کرونا

این برنامه ی ساده که به زبان برنامه نویسی جاوا آماده شده است کاربرد تشخیص احتمالی بیماری کرونا را دارد.

در این برنامه شما علائم و جزئیات مورد نظر برنامه را به آن می دهید و به صورت احتمالی درصد وجود بیماری کرونا در فرد را به شما اعلام می کند.

ورودی های برنامه که به عنوان علائم فردی در اختیار برنامه تشخیص بیماری کرونا قرار می دهید:
  • تب یا Fever (در حالت نرمال مقدار درجه تب یک فرد باید کمتر از 37.5 باشد)
  • سرفه کردن یا Cough
  • خستگی یا Fatigue
  • سرفه خلط دار Coughing up sputum
  • تنگی نفس یا shortness Of Breath
  • استخوان یا درد مفاصل یا bone Or Joint Pain
  • سردرد یا headache
  • گلودرد یا sore Throat
  • لرز یا chills
  • حالت تهوع(استفراغ) یا nausea Or Vomiting
  • گرفتگی بینی یا stuffy Nose
  • اسهال یا diarrhea
  • بیماری های خاص یا special Diseases ( مثل : بیماری قلبی عروقی ، دیابت ، بیماری مزمن تنفسی ، فشار خون بالا ، سرطان ، HIV )
  • سن یا Age (سن بیشتر از 50سال در بیماری مهم تر است.)
  • جنسیت یا Gender (با توجه به آمارها بیماری در آقایان درصد بالایی داشته است.)
  • ملیت یا nationality (کشورهای پرخطر درصد بالاتری احتمال دارند)

علائم بالا از روی داده های سایت ourworldindata برداشته شده است.

 

اما روش کار برنامه بعد از دریافت ورودی به چه شکل است ؟!

بعد از دریافت ورودی ها به وجود یا عدم وجود هر علامت یک امتیاز خاص با توجه به درصد بیماران گذشته که در سایت های منبع موجود است داده می شود؛

در آخر این امتیازها جمع خواهد شد و نسبت به امتیاز کل از آن درصد گرفته می شود.

فهرست امتیازات هر علائم ورودی در برنامه تشخیص بیماری کرونا به شرح زیر می باشد:
  • تب: 83 امتیاز
  • سرفه کردن: 76 امتیاز
  • خستگی: 38 امتیاز
  • سرفه خلط دار: 33 امتیاز
  • تنگی نفس: 19 امتیاز
  • استخوان یا درد مفاصل: 15 امتیاز
  • سردرد: 14 امتیاز
  • گلودرد: 11 امتیاز
  • لرز: 11 امتیاز
  • حالت تهوع(استفراغ): 5 امتیاز
  • گرفتگی بینی: 5 امتیاز
  • اسهال: 5 امتیاز
  • بیماری های خاص: 10 امتیاز
  • سن : 1 امتیاز
  • جنسیت: 4 امتیاز
  • ملیت: 20 امتیاز

نکته : منظور از امتیاز درجه ی اهمیت آن مورد در ارتباط با وجود بیماری کرونا در فرد است.

 

کد+ سورس برنامه تشخیص بیماری کرونا (جاوا)

کلاس Main.java :
public class Main {

    /*
     * Author 	: A.shokri
     * Email 	: amirsh.nll@gmail.com
     * Date 	: 2020/03/21
     */

    public static void main(String[] args) {

        Person person = new Person();

        person.setFirstName("Amir");
        person.setLastName("Shokri");
        person.setAge(24);
        person.setGender(1);
        person.setNationality(Country.countryList.Iran);

        person.setFeverDegree(37);
        person.setCough(false);
        person.setFetigue(false);
        person.setCoughingUpSputum(false);
        person.setShortnessOfBreath(false);
        person.setBoneOrJointPain(false);
        person.setHeadache(false);
        person.setSoreThroat(false);
        person.setChills(false);
        person.setNauseaOrVomiting(false);
        person.setStuffyNose(false);
        person.setSpecialDiseases(false);
        person.setDiarrhea(false);

        Detect detect = new Detect();
        String result = detect.detectCorona(person);

        System.out.println("Coronavirus Test For " + person.getFirstName() + " " + person.getLastName() + " : ");
        System.out.println(result);

    }
}

کاربرد این کلاس شروع برنامه و ارسال ورودی ها و دریافت خروجی مطلوب و نمایش آن می باشد.

خروجی مثال بالا:

Coronavirus Test For Amir Shokri : 24.0 of 353.0 : (7% probability positive)

 

کلاس Person.java :
public class Person {

    /*
     * Author 	: A.shokri
     * Email 	: amirsh.nll@gmail.com
     * Date 	: 2020/03/21
     */

    private String firstName;
    private String lastName;
    private int age;
    private int gender;
    private Country.countryList nationality;

    private float feverDegree;
    private boolean cough;
    private boolean fetigue;
    private boolean coughingUpSputum;
    private boolean shortnessOfBreath;
    private boolean boneOrJointPain;
    private boolean headache;
    private boolean soreThroat;
    private boolean chills;
    private boolean nauseaOrVomiting;
    private boolean stuffyNose;
    private boolean specialDiseases;
    private boolean diarrhea;

    public Person() {
        setFirstName("");
        setLastName("");
        setAge(0);
        setGender(0);
        setNationality(Country.countryList.Iran);

        setFeverDegree(37);
        setCough(false);
        setFetigue(false);
        setCoughingUpSputum(false);
        setShortnessOfBreath(false);
        setBoneOrJointPain(false);
        setHeadache(false);
        setSoreThroat(false);
        setChills(false);
        setNauseaOrVomiting(false);
        setStuffyNose(false);
        setSpecialDiseases(false);
        setDiarrhea(false);
    }

    public Person(String firstName, String lastName, int age, int gender, Country.countryList nationality) {
        setFirstName(firstName);
        setLastName(lastName);
        setAge(age);
        setGender(gender);
        setNationality(nationality);
    }

    public Person(String firstName, String lastName, int age, int gender, Country.countryList nationality, float feverDegree, boolean cough, boolean fetigue, boolean coughingUpSputum, boolean shortnessOfBreath, boolean boneOrJointPain, boolean headache, boolean soreThroat, boolean chills, boolean nauseaOrVomiting, boolean stuffyNose, boolean specialDiseases, boolean diarrhea) {
        setFirstName(firstName);
        setLastName(lastName);
        setAge(age);
        setGender(gender);
        setNationality(nationality);

        setFeverDegree(feverDegree);
        setCough(cough);
        setFetigue(fetigue);
        setCoughingUpSputum(coughingUpSputum);
        setShortnessOfBreath(shortnessOfBreath);
        setBoneOrJointPain(boneOrJointPain);
        setHeadache(headache);
        setSoreThroat(soreThroat);
        setChills(chills);
        setNauseaOrVomiting(nauseaOrVomiting);
        setStuffyNose(stuffyNose);
        setSpecialDiseases(specialDiseases);
        setDiarrhea(diarrhea);
    }

    public String getFirstName() {
        return firstName;
    }

    @Override
    public String toString() {
        return super.toString();
    }

    @Override
    public int hashCode() {
        return super.hashCode();
    }

    @Override
    public boolean equals(Object obj) {
        return super.equals(obj);
    }

    public void setFirstName(String firstName) {
        this.firstName = firstName;
    }

    public String getLastName() {
        return lastName;
    }

    public void setLastName(String lastName) {
        this.lastName = lastName;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int Age) {
        age = Age;
    }

    public float getFeverDegree() {
        return feverDegree;
    }

    public void setFeverDegree(float feverDegree) {
        this.feverDegree = feverDegree;
    }

    public void setGender(int Gender) {
        gender = Gender;
    }

    public int getGender() {
        return gender;
    }

    public void setCough(boolean cough) {
        this.cough = cough;
    }

    public boolean isCough() {
        return cough;
    }

    public void setCoughingUpSputum(boolean coughingUpSputum) {
        this.coughingUpSputum = coughingUpSputum;
    }

    public boolean isCoughingUpSputum() {
        return coughingUpSputum;
    }

    public boolean isFetigue() {
        return fetigue;
    }

    public void setFetigue(boolean fetigue) {
        this.fetigue = fetigue;
    }

    public boolean isShortnessOfBreath() {
        return shortnessOfBreath;
    }

    public void setShortnessOfBreath(boolean shortnessOfBreath) {
        this.shortnessOfBreath = shortnessOfBreath;
    }

    public boolean isBoneOrJointPain() {
        return boneOrJointPain;
    }

    public void setBoneOrJointPain(boolean boneOrJointPain) {
        this.boneOrJointPain = boneOrJointPain;
    }

    public boolean isHeadache() {
        return headache;
    }

    public void setHeadache(boolean headache) {
        this.headache = headache;
    }

    public boolean isSoreThroat() {
        return soreThroat;
    }

    public void setSoreThroat(boolean soreThroat) {
        this.soreThroat = soreThroat;
    }

    public boolean isChills() {
        return chills;
    }

    public void setChills(boolean chills) {
        this.chills = chills;
    }

    public boolean isNauseaOrVomiting() {
        return nauseaOrVomiting;
    }

    public void setNauseaOrVomiting(boolean nauseaOrVomiting) {
        this.nauseaOrVomiting = nauseaOrVomiting;
    }

    public boolean isStuffyNose() {
        return stuffyNose;
    }

    public void setStuffyNose(boolean stuffyNose) {
        this.stuffyNose = stuffyNose;
    }

    public boolean isSpecialDiseases() {
        return specialDiseases;
    }

    public void setSpecialDiseases(boolean specialDiseases) {
        this.specialDiseases = specialDiseases;
    }

    public boolean isDiarrhea() {
        return diarrhea;
    }

    public void setDiarrhea(boolean diarrhea) {
        this.diarrhea = diarrhea;
    }

    public void setNationality(Country.countryList nationality) {
        this.nationality = nationality;
    }

    public Country.countryList getNationality() {
        return nationality;
    }
}

کاربرد این ذخیره اطلاعات فردی و علائم فرد و تعریف یک انسان می باشد.

 

کلاس Country.java :
public class Country {

    /*
     * Author 	: A.shokri
     * Email 	: amirsh.nll@gmail.com
     * Date 	: 2020/03/21
     */

    // Country Name List In Enumeration

    @Override
    public boolean equals(Object obj) {
        return super.equals(obj);
    }

    @Override
    public int hashCode() {
        return super.hashCode();
    }

    @Override
    public String toString() {
        return super.toString();
    }

    public enum countryList {
        Afghanistan,
        Albania,
        Algeria,
        American_Samoa,
        Andorra,
        Angola,
        Anguilla,
        Antarctica,
        Antigua_and_Barbuda,
        Argentina,
        Armenia,
        Aruba,
        Australia,
        Austria,
        Azerbaijan,
        Bahamas,
        Bahrain,
        Bangladesh,
        Barbados,
        Belarus,
        Belgium,
        Belize,
        Benin,
        Bermuda,
        Bhutan,
        Bolivia,
        Bosnia_and_Herzegovina,
        Botswana,
        Bouvet_Island,
        Brazil,
        British_Indian_Ocean_Territory,
        Brunei_Darussalam,
        Bulgaria,
        Burkina_Faso,
        Burundi,
        Cambodia,
        Cameroon,
        Canada,
        Cape_Verde,
        Cayman_Islands,
        Central_African_Republic,
        Chad,
        Chile,
        China,
        Christmas_Island,
        Cocos_Islands,
        Colombia,
        Comoros,
        Democratic_Republic_of_the_Congo,
        Republic_of_Congo,
        Cook_Islands,
        Costa_Rica,
        Croatia,
        Cuba,
        Cyprus,
        Czech_Republic,
        Denmark,
        Djibouti,
        Dominica,
        Dominican_Republic,
        East_Timor,
        Ecuador,
        Egypt,
        El_Salvador,
        Equatorial_Guinea,
        Eritrea,
        Estonia,
        Ethiopia,
        Falkland_Islands,
        Faroe_Islands,
        Fiji,
        Finland,
        France,
        France_Metropolitan,
        French_Guiana,
        French_Polynesia,
        French_Southern_Territories,
        Gabon,
        Gambia,
        Georgia,
        Germany,
        Ghana,
        Gibraltar,
        Guernsey,
        Greece,
        Greenland,
        Grenada,
        Guadeloupe,
        Guam,
        Guatemala,
        Guinea,
        Guinea_Bissau,
        Guyana,
        Haiti,
        Heard_and_Mc_Donald_Islands,
        Honduras,
        Hong_Kong,
        Hungary,
        Iceland,
        India,
        Isle_of_Man,
        Indonesia,
        Iran,
        Iraq,
        Ireland,
        Israel,
        Italy,
        Ivory_Coast,
        Jersey,
        Jamaica,
        Japan,
        Jordan,
        Kazakhstan,
        Kenya,
        Kiribati,
        Korea_Democratic,
        Korea_Republic,
        Kosovo,
        Kuwait,
        Kyrgyzstan,
        Lao_Democratic_Republic,
        Latvia,
        Lebanon,
        Lesotho,
        Liberia,
        Libyan_Arab_Jamahiriya,
        Liechtenstein,
        Lithuania,
        Luxembourg,
        Macau,
        North_Macedonia,
        Madagascar,
        Malawi,
        Malaysia,
        Maldives,
        Mali,
        Malta,
        Marshall_Islands,
        Martinique,
        Mauritania,
        Mauritius,
        Mayotte,
        Mexico,
        Micronesia,
        Moldova,
        Monaco,
        Mongolia,
        Montenegro,
        Montserrat,
        Morocco,
        Mozambique,
        Myanmar,
        Namibia,
        Nauru,
        Nepal,
        Netherlands,
        Netherlands_Antilles,
        New_Caledonia,
        New_Zealand,
        Nicaragua,
        Niger,
        Nigeria,
        Niue,
        Norfolk_Island,
        Northern_Mariana_Islands,
        Norway,
        Oman,
        Pakistan,
        Palau,
        Palestine,
        Panama,
        Papua_New_Guinea,
        Paraguay,
        Peru,
        Philippines,
        Pitcairn,
        Poland,
        Portugal,
        Puerto_Rico,
        Qatar,
        Reunion,
        Romania,
        Russian_Federation,
        Rwanda,
        Saint_Kitts_and_Nevis,
        Saint_Lucia,
        Saint_Vincent,
        Samoa,
        San_Marino,
        Sao_Tome_and_Principe,
        Saudi_Arabia,
        Senegal,
        Serbia,
        Seychelles,
        Sierra_Leone,
        Singapore,
        Slovakia,
        Slovenia,
        Solomon_Islands,
        Somalia,
        South_Africa,
        South_Georgia_South_Sandwich_Islands,
        South_Sudan,
        Spain,
        Sri_Lanka,
        St_Helena,
        St_Pierre_and_Miquelon,
        Sudan,
        Suriname,
        Svalbard_and_Jan_Mayen_Islands,
        Swaziland,
        Sweden,
        Switzerland,
        Syrian_Arab_Republic,
        Taiwan,
        Tajikistan,
        Tanzania,
        Thailand,
        Togo,
        Tokelau,
        Tonga,
        Trinidad_and_Tobago,
        Tunisia,
        Turkey,
        Turkmenistan,
        Turks_and_Caicos_Islands,
        Tuvalu,
        Uganda,
        Ukraine,
        United_Arab_Emirates,
        United_Kingdom,
        United_States,
        United_States_minor_outlying_islands,
        Uruguay,
        Uzbekistan,
        Vanuatu,
        Vatican,
        Venezuela,
        Vietnam,
        Virgin,
        Wallis,
        Western_Sahara,
        Yemen,
        Zambia,
        Zimbabwe
    };
}

کاربرد این کلاس ساخت لیستی از کشورهای مختلف دنیا می باشد.

 

کلاس Corona.java :
public class Corona {

    /*
     * Author 	: A.shokri
     * Email 	: amirsh.nll@gmail.com
     * Date 	: 2020/03/21
     */

    // Impact Factor Number = https://ourworldindata.org/coronavirus
    private static final float ageImpactPercentage = 1;
    private static final float genderImpactPercentage = 4;
    private static final float nationalityImpactPercentage = 20;

    private static final float feverDegreeImpactPercentage = 83;
    private static final float coughImpactPercentage = 76;
    private static final float fetigueImpactPercentage = 38;
    private static final float coughingUpSputumImpactPercentage = 33;
    private static final float shortnessOfBreathImpactPercentage = 19;
    private static final float boneOrJointPainImpactPercentage = 15;
    private static final float headacheImpactPercentage = 14;
    private static final float soreThroatImpactPercentage = 14;
    private static final float chillsImpactPercentage = 11;
    private static final float nauseaOrVomitingImpactPercentage = 5;
    private static final float stuffyNoseImpactPercentage = 5;
    private static final float diarrheaImpactPercentage = 5;
    private static final float specialDiseasesImpactPercentage = 10;

    private static final float sumImpactPercentage = 353;

    private static final Country.countryList[] dangerCountry = {
       Country.countryList.Iran,
       Country.countryList.China,
       Country.countryList.Italy,
       Country.countryList.Germany,
       Country.countryList.United_States,
    };

    public static float getAgeImpactPercentage() {
        return ageImpactPercentage;
    }

    public static float getBoneOrJointPainImpactPercentage() {
        return boneOrJointPainImpactPercentage;
    }

    public static float getChillsImpactPercentage() {
        return chillsImpactPercentage;
    }

    public static float getCoughImpactPercentage() {
        return coughImpactPercentage;
    }

    public static float getCoughingUpSputumImpactPercentage() {
        return coughingUpSputumImpactPercentage;
    }

    public static float getDiarrheaImpactPercentage() {
        return diarrheaImpactPercentage;
    }

    public static float getFetigueImpactPercentage() {
        return fetigueImpactPercentage;
    }

    public static float getFeverDegreeImpactPercentage() {
        return feverDegreeImpactPercentage;
    }

    public static float getGenderImpactPercentage() {
        return genderImpactPercentage;
    }

    public static float getHeadacheImpactPercentage() {
        return headacheImpactPercentage;
    }

    public static float getNationalityImpactPercentage() {
        return nationalityImpactPercentage;
    }

    public static float getNauseaOrVomitingImpactPercentage() {
        return nauseaOrVomitingImpactPercentage;
    }

    public static float getShortnessOfBreathImpactPercentage() {
        return shortnessOfBreathImpactPercentage;
    }

    public static float getSpecialDiseasesImpactPercentage() {
        return specialDiseasesImpactPercentage;
    }

    public static float getSoreThroatImpactPercentage() {
        return soreThroatImpactPercentage;
    }

    public static float getStuffyNoseImpactPercentage() {
        return stuffyNoseImpactPercentage;
    }

    public static Country.countryList[] getDangerCountry() {
        return dangerCountry;
    }

    public static float getSumImpactPercentage() {
        return sumImpactPercentage;
    }
}

کاربرد این کلاس مشخص کردن امتیازها و علائم بیماری کرونا می باشد.

 

کلاس Detect.java :
public class Detect {

    /*
     * Author 	: A.shokri
     * Email 	: amirsh.nll@gmail.com
     * Date 	: 2020/03/21
     */

    @Override
    public boolean equals(Object obj) {
        return super.equals(obj);
    }

    @Override
    public int hashCode() {
        return super.hashCode();
    }

    @Override
    public String toString() {
        return super.toString();
    }

    public String detectCorona(Person person) {

        float sum = 0;

        if(person.getAge() > 50)
            sum += Corona.getAgeImpactPercentage() * person.getAge() - (person.getAge() - 1);

        if(person.getGender() == 1) // male
            sum += Corona.getGenderImpactPercentage();
        else if(person.getGender() == 2) //female
            sum += Corona.getGenderImpactPercentage() / 2;

        for (Country.countryList dng : Corona.getDangerCountry()) {
            if(person.getNationality().equals(dng))
            {
                sum += Corona.getNationalityImpactPercentage();
                break;
            }
        }

        if(person.getFeverDegree() > 37.5)
            sum += Corona.getFeverDegreeImpactPercentage();

        if(person.isCough() == true)
            sum += Corona.getCoughImpactPercentage();

        if(person.isFetigue() == true)
            sum += Corona.getFetigueImpactPercentage();

        if(person.isCoughingUpSputum() == true)
            sum += Corona.getCoughingUpSputumImpactPercentage();

        if(person.isShortnessOfBreath() == true)
            sum += Corona.getShortnessOfBreathImpactPercentage();

        if(person.isBoneOrJointPain() == true)
            sum += Corona.getBoneOrJointPainImpactPercentage();

        if(person.isHeadache() == true)
            sum += Corona.getHeadacheImpactPercentage();

        if(person.isSoreThroat() == true)
            sum += Corona.getSoreThroatImpactPercentage();

        if(person.isChills() == true)
            sum += Corona.getChillsImpactPercentage();

        if(person.isNauseaOrVomiting() == true)
            sum += Corona.getNauseaOrVomitingImpactPercentage();

        if(person.isStuffyNose() == true)
            sum += Corona.getStuffyNoseImpactPercentage();

        if(person.isSpecialDiseases() == true)
            sum += Corona.getDiarrheaImpactPercentage();

        if(person.isDiarrhea() == true)
            sum += Corona.getSpecialDiseasesImpactPercentage();

        String result = "";
        result += String.valueOf(sum);
        result += " of ";
        result += String.valueOf(Corona.getSumImpactPercentage());
        result += " : (";
        result += Math.round(sum / Corona.getSumImpactPercentage() * 100);
        result += "% probability positive)";

        return result;
    }


}

کاربرد این کلاس محاسبه و تشخیص درصد احتمال وجود بیماری کرونا در فرد می باشد.

 

در صورتی که قصد انجام تغییرات یا بهتر کردن برنامه ی بالا را دارید در بخش نظرات به ما اطلاع دهید تا با نام خودتان به این نوشته اضافه کنیم.

این الگوریتم قطعی نیست و بیشتر جنبه ی آموزشی دارد و هدف انجام آن انجام یک تمرین کاربردی برنامه نویسی به زبان جاوا می باشد.

سورس این برنامه به صورت اختصاصی نوشته شده است لطفا در صورت انتشار آن کپی رایت و منبع را حتما ذکر کنید. (لینک این برنامه در گیت هاب)

نظرات خود را در ارتباط با این برنامه بنویسید.

سلامت باشید.

برای امتیاز به این نوشته کلیک کنید!
[کل: 0 میانگین: 0]