Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> सी प्रोग्रामिंग

C प्रोग्राम: स्विच केस और फ़ंक्शन का उपयोग करके चुनाव मतदान प्रणाली

समस्या

C भाषा का उपयोग करके चुनाव में उम्मीदवारों के लिए वोट डालना, गिनना और प्रदर्शित करना कैसे करें?

समाधान

मान लीजिए तीन उम्मीदवार चुनाव में भाग ले रहे हैं। हमें निम्नलिखित कार्यों के लिए कोड लिखना होगा:

  • वोट डालना (Cast Vote): विकल्प चुनकर उम्मीदवार को वोट देना
  • वोट गिनना (Find Vote Count): प्रत्येक उम्मीदवार को मिले कुल वोट ढूंढना और विजेता घोषित करना

सभी ऑपरेशन फ़ंक्शन को कॉल करके स्विच केस के माध्यम से किए जाते हैं।

प्रोग्राम

#include <stdio.h>

#define CANDIDATE_COUNT 3
#define CANDIDATE1 "ABC"
#define CANDIDATE2 "XYZ"
#define CANDIDATE3 "PQR"

int votesCount1 = 0, votesCount2 = 0, votesCount3 = 0;

void castVote() {
    int choice;
    printf("\n\n ### कृपया अपना उम्मीदवार चुनें ####\n\n");
    printf("1. %s\n", CANDIDATE1);
    printf("2. %s\n", CANDIDATE2);
    printf("3. %s\n", CANDIDATE3);
    printf("4. इनमें से कोई नहीं (NOTA)\n");
    printf("अपना विकल्प दर्ज करें (1-4): ");
    scanf("%d", &choice);
    
    switch (choice) {
        case 1: votesCount1++; break;
        case 2: votesCount2++; break;
        case 3: votesCount3++; break;
        default: 
            printf("\n त्रुटि: गलत विकल्प! कृपया पुनः प्रयास करें\n");
            getchar(); // बफर साफ़ करें
    }
    printf("\n वोट देने के लिए धन्यवाद!\n");
}

void votesCount() {
    printf("\n\n ##### मतदान सांख्यिकी ####\n");
    printf("%s - %d\n", CANDIDATE1, votesCount1);
    printf("%s - %d\n", CANDIDATE2, votesCount2);
    printf("%s - %d\n", CANDIDATE3, votesCount3);
    
    // विजेता निर्धारित करें
    int max = votesCount1;
    char *winner = CANDIDATE1;
    if (votesCount2 > max) { max = votesCount2; winner = CANDIDATE2; }
    if (votesCount3 > max) { max = votesCount3; winner = CANDIDATE3; }
    
    if (max > 0)
        printf("\nवर्तमान अग्रणी: %s (%d वोट)\n", winner, max);
    else
        printf("\nअभी तक कोई वोट नहीं।\n");
}

int main() {
    int choice;
    
    do {
        printf("\n\n ###### चुनाव/मतदान 2024 #####\n");
        printf("1. वोट डालें\n");
        printf("2. वोट गिनती देखें\n");
        printf("0. बाहर निकलें\n");
        printf("कृपया अपना विकल्प दर्ज करें: ");
        scanf("%d", &choice);
        
        switch (choice) {
            case 1: castVote(); break;
            case 2: votesCount(); break;
            case 0: printf("मतदान समाप्त। धन्यवाद!\n"); break;
            default: printf("\n त्रुटि: अमान्य विकल्प\n");
        }
    } while (choice != 0);
    
    getchar();
    return 0;
}

आउटपुट उदाहरण


###### चुनाव/मतदान 2024 #####
1. वोट डालें
2. वोट गिनती देखें
0. बाहर निकलें
कृपया अपना विकल्प दर्ज करें: 1

### कृपया अपना उम्मीदवार चुनें ####
1. ABC
2. XYZ
3. PQR
4. इनमें से कोई नहीं
अपना विकल्प दर्ज करें (1-4): 1
वोट देने के लिए धन्यवाद!

###### चुनाव/मतदान 2024 #####
1. वोट डालें
2. वोट गिनती देखें
0. बाहर निकलें
कृपया अपना विकल्प दर्ज करें: 2

##### मतदान सांख्यिकी ####
ABC - 2
XYZ - 0
PQR - 0
वर्तमान अग्रणी: ABC (2 वोट)

मुख्य विशेषताएं

  • मॉड्यूलर डिज़ाइन: अलग-अलग फ़ंक्शन (castVote, votesCount) कोड को साफ रखते हैं
  • ग्लोबल काउंटर: वोट काउंटर ग्लोबल हैं ताकि फ़ंक्शन के बीच मान बने रहें
  • मेनू-चालित: do-while लूप मेनू को तब तक दिखाता है जब तक उपयोगकर्ता बाहर न निकले
  • इनपुट सत्यापन: अमान्य विकल्पों के लिए त्रुटि संदेश
  • विजेता पहचान: वोट गिनती में स्वचालित रूप से अग्रणी उम्मीदवार दिखाता है

संभावित सुधार

  • मतदाता आईडी सत्यापन (डुप्लिकेट वोट रोकने के लिए)
  • फ़ाइल में परिणाम सहेजना
  • एक से अधिक निर्वाचन क्षेत्र (constituencies) का समर्थन
  • ग्राफिकल परिणाम प्रदर्शन
  • पासवर्ड-संरक्षित व्यवस्थापक मोड
  1. - स्विच केस का उपयोग करके ज्यामितीय आकृतियों के क्षेत्रफल ज्ञात करने के लिए C प्रोग्राम

    समस्यास्विच केस स्टेटमेंट का उपयोग करके आयत, वर्ग, त्रिभुज, वृत्त के क्षेत्रफल ज्ञात करें। उपयोगकर्ता को रनटाइम पर आधार, ऊंचाई, भुजा, त्रिज्या, चौड़ाई और लंबाई दर्ज करने की आवश्यकता होती है ताकि सभी ज्यामितीय आकृतियों के क्षेत्रफल की गणना की जा सके।समाधानस्विच केस स्टेटमेंट का उपयोग करके आयत, वर्ग,

  1. - फॉर लूप का उपयोग करके नाम को हार्ट पैटर्न में प्रिंट करने का C प्रोग्राम

    समस्या फॉर लूप का उपयोग करके केंद्र में नाम के साथ हार्ट आकार का पैटर्न प्रिंट करने के लिए एक प्रोग्राम लिखें। समाधान उपयोगकर्ता को वह नाम दर्ज करना होगा जिसे केंद्र में प्रिंट किया जाना चाहिए साथ ही पंक्तियों की संख्या जो स्टार्स को प्रिंट करनी है। एल्गोरिथम फॉर लूप का उपयोग करके नाम को हार्ट पैट

  1. बिटवाइज़ ऑपरेशन्स का उपयोग करके 2 से जोड़ और गुणा करने का C प्रोग्राम बिटवाइज़ ऑपरेशन्स का उपयोग करके 2 से जोड़ और गुणा करने का C प्रोग्राम

    बिटवाइज़ ऑपरेटर्स बिट्स पर ऑपरेट करते हैं (यानी ऑपरेंड के बाइनरी मानों पर)। ऑपरेटर विवरण & बिटवाइज़ AND | बिटवाइज़ OR ^ बिटवाइज़ XOR << लेफ्ट शिफ्ट >> राइट शिफ्ट ~ वन्स कॉम्प्लीमेंट उदाहरण बिटवाइज़ ऑपरेटर्स की मदद से 2 से जोड़ और गुणा करने का C प्रोग्राम: #inclu