समस्या
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) का समर्थन
- ग्राफिकल परिणाम प्रदर्शन
- पासवर्ड-संरक्षित व्यवस्थापक मोड