C program that simulates a token system for visiting a temple updated version of the program with additional features and functionality
Here's an updated version of the program with additional features and functionality:
Temple Token System
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <string.h>
// Define structure for tokens
typedef struct {
int tokenNumber;
time_t dateTime;
char visitorName[50];
char visitorContact[50];
} Token;
// Define structure for temple management
typedef struct {
int maxTokens;
int tokenCount;
Token tokens[100];
} TempleManagement;
// Function to create a new token
Token createToken(int tokenNumber, char *visitorName, char *visitorContact) {
Token token;
token.tokenNumber = tokenNumber;
token.dateTime = time(NULL);
strcpy(token.visitorName, visitorName);
strcpy(token.visitorContact, visitorContact);
return token;
}
// Function to display token details
void displayToken(Token token) {
printf("Token Number: %d\n", token.tokenNumber);
printf("Date and Time: %s", ctime(&token.dateTime));
printf("Visitor Name: %s\n", token.visitorName);
printf("Visitor Contact: %s\n", token.visitorContact);
}
// Function to generate tokens
void generateTokens(TempleManagement *templeManagement, char *visitorName, char *visitorContact) {
if (templeManagement->tokenCount < templeManagement->maxTokens) {
Token token = createToken(templeManagement->tokenCount + 1, visitorName, visitorContact);
templeManagement->tokens[templeManagement->tokenCount] = token;
templeManagement->tokenCount++;
printf("\nToken generated successfully!\n");
displayToken(token);
} else {
printf("\nSorry, maximum tokens reached!\n");
}
}
// Function to cancel tokens
void cancelTokens(TempleManagement *templeManagement, int tokenNumber) {
for (int i = 0; i < templeManagement->tokenCount; i++) {
if (templeManagement->tokens[i].tokenNumber == tokenNumber) {
templeManagement->tokenCount--;
for (int j = i; j < templeManagement->tokenCount; j++) {
templeManagement->tokens[j] = templeManagement->tokens[j + 1];
}
printf("\nToken cancelled successfully!\n");
return;
}
}
printf("\nSorry, token not found!\n");
}
// Function to display temple management details
void displayTempleManagement(TempleManagement templeManagement) {
printf("\nTemple Management Details:\n");
printf("Maximum Tokens: %d\n", templeManagement.maxTokens);
printf("Token Count: %d\n", templeManagement.tokenCount);
printf("\nTokens:\n");
for (int i = 0; i < templeManagement.tokenCount; i++) {
printf("\nToken %d:\n", templeManagement.tokens[i].tokenNumber);
displayToken(templeManagement.tokens[i]);
}
}
int main() {
TempleManagement templeManagement;
templeManagement.maxTokens = 100;
templeManagement.tokenCount = 0;
while (1) {
printf("\nTemple Token System\n");
printf("1. Generate Token\n");
printf("2. Cancel Token\n");
printf("3. Display Temple Management Details\n");
printf("4. Exit\n");
printf("Enter your choice: ");
int choice;
scanf("%d", &choice);
switch (choice) {
case 1: {
char visitorName[50];
char visitorContact[50];
printf("Enter visitor name: ");
scanf("%s", visitorName);
printf("Enter visitor contact: ");
scanf("%s", visitorContact);
generateTokens(&templeManagement, visitorName, visitorContact);
break;
}
case 2: {
int tokenNumber;
printf("Enter token number to cancel: ");
scanf("%d", &tokenNumber);
cancelTokens(&templeManagement, tokenNumber);
break;
}
case 3:
displayTempleManagement(templeManagement);
break;
case 4:
printf("Exiting...\n");
return 0;
default:
printf("Invalid choice! Please choose again.\n");
}
}
return 0;
}
```
This updated program includes the following additional features:
1. *Temple management structure*: A structure to represent temple management details, including maximum tokens and token count.
2. *Token cancellation*: A function to cancel tokens based on token number.
3. *Temple management details display*: A function to display temple management details, including maximum tokens, token count, and tokens.
4. *Menu-driven interface*: A menu-driven interface to interact with the program and perform various operations.
Note that this program is still a simplified example and does not cover real-world complexities like:
- User authentication and authorization
- Token validation and verification
- Integration with temple management systems
- Handling of special cases, such as token cancellations or rescheduling
To make this program more robust and realistic, you would need to consider these factors and add additional features and functionality.
Some possible future enhancements:
1. *User authentication*: Add user authentication to ensure only authorized personnel can generate or cancel tokens.
2. *Token validation*: Implement token validation to prevent fraudulent or duplicate tokens.
3. *Integration with temple management systems*: Integrate the token system with existing temple management systems for seamless operation.
4. *Handling special cases*: Develop strategies to handle special cases, such as token cancellations or rescheduling, to ensure smooth operation.
5. *Scalability and performance*: Optimize the program for scalability and performance to handle a large volume of tokens and users.
By addressing these aspects and adding more features, you can create a comprehensive and efficient token system for the temple.
No comments:
Post a Comment