C Program For Employee Menu Driven
C Program For Employee Menu Driven
Here is a sample C program that demonstrates how to create a menu-driven application that prompts the user to enter the details of five employees and stores them in an array list. The program will keep looping until the user enters “quit”. The program uses a while loop to implement this functionality.
#include <stdio.h>
#include <string.h>
#define MAX_EMPLOYEES 5
// Define a struct to represent an employee
typedef struct {
char name[100];
int age;
float salary;
} Employee;
int main(void) {
// Create an array to hold the employee records
Employee employees[MAX_EMPLOYEES] = { 0 }; // Initialize the array to all zeros to ensure it is properly initialized
// Loop until the user enters "quit"
char input[100] = { 0 }; // Initialize the input string to all zeros to ensure it is zero-terminated
int num_employees = 0;
while (num_employees < MAX_EMPLOYEES) {
printf("Enter the name of employee %d (or 'quit' to exit): ", num_employees + 1);
if (scanf_s("%99s", input, sizeof(input)) != 1) { // Use scanf_s to read the input string and check the return value to ensure that it was successful
printf("Error reading input\n");
return 1;
}
if (strcmp(input, "quit") == 0) {
break;
}
// Store the employee's name
strcpy_s(employees[num_employees].name, sizeof(employees[num_employees].name), input); // Use strcpy_s to copy the input string to the employees array
// Prompt for and store the employee's age
printf("Enter the age of employee %d: ", num_employees + 1);
if (scanf_s("%d", &employees[num_employees].age) != 1) { // Use scanf_s to read the age and check the return value to ensure that it was successful
printf("Error reading input\n");
continue; // If the age input was invalid, skip the rest of the current iteration and move on to the next one
}
// Prompt for and store the employee's salary
printf("Enter the salary of employee %d: ", num_employees + 1);
if (scanf_s("%f", &employees[num_employees].salary) != 1) { // Use scanf_s to read the salary and check the return value to ensure that it was successful
printf("Error reading input\n");
continue; // If the salary input was invalid, skip the rest of the current iteration and move on to the next one
}
num_employees++;
}
// Print the employee records
printf("\nEmployee records:\n");
for (int i = 0; i < num_employees; i++) {
printf("Name: %s\n", employees[i].name);
printf("Age: %d\n", employees[i].age);
printf("Salary: %.2f\n", employees[i].salary);
}
return 0;
}
Here is a more detailed explanation of the code:
- The program starts by defining a struct called
Employee
to represent an employee record. The struct has three fields:name
,age
, andsalary
. These fields will store the employee’s name, age, and salary, respectively. - Next, the program defines a constant called
MAX_EMPLOYEES
that specifies the maximum number of employees that can be stored in the array. - In the
main
function, the program creates an array ofEmployee
structs calledemployees
. It initializes the array to all zeros using an initializer list to ensure that it is properly initialized. - The program then declares a string called
input
and initializes it to all zeros to ensure that it is zero-terminated. It also declares a variable callednum_employees
and initializes it to zero. - The program enters a
while
loop that continues untilnum_employees
is equal toMAX_EMPLOYEES
. Inside the loop, it prompts the user to enter the name of the next employee (or “quit” to exit). It usesscanf_s
to read the input string and checks the return value to ensure that the input was read successfully. - If the user entered “quit”, the program breaks out of the loop using the
break
statement. Otherwise, it copies the input string to thename
field of theemployees
array usingstrcpy_s
. - The program then prompts the user to enter the age of the employee and uses
scanf_s
to read the input. If the input is invalid (i.e.,scanf_s
returns a value other than 1), it prints an error message and continues to the next iteration of the loop using thecontinue
statement. - Similarly, the program prompts the user to enter the salary of the employee and uses
scanf_s
to read the input. If the input is invalid, it prints an error message and continues to the next iteration of the loop. - If the input for the employee’s name, age, and salary is valid, the program increments
num_employees
by 1 and moves on to the next iteration of the loop. - Once the loop has finished, the program prints the employee records by iterating through the
employees
array and printing the values of each field.
VISUAL STUDIO 2022 OUTPUT
Enter the name of employee 1 (or 'quit' to exit): e
Enter the age of employee 1: 3
Enter the salary of employee 1: 44
Enter the name of employee 2 (or 'quit' to exit): we
Enter the age of employee 2: 4
Enter the salary of employee 2: 555555
Enter the name of employee 3 (or 'quit' to exit): quit
Employee records:
Name: e
Age: 3
Salary: 44.00
Name: we
Age: 4
Salary: 555555.00
D:\MauriceMuteti\C Programming\C Program For Employee Menu Driven\C Program For Employee Menu Driven\x64\Debug\C Program For Employee Menu Driven.exe (process 26272) exited with code 0.
To automatically close the console when debugging stops, enable Tools->Options->Debugging->Automatically close the console when debugging stops.
Press any key to close this window . . .
You can Clone The Code From This Github Repository Link – https://github.com/mauricemuteti/C-Program-For-Employee-Menu-Driven