0% found this document useful (0 votes)
80 views

Problem 1

The document describes a C programming problem to manage employee data. It involves storing employee codes, names, salaries, and allowances in arrays. The program must allow the user to add, find, remove, and print employees in descending order of salary plus allowance. The analysis outlines the data structures, operations for each requirement, and provides an example sort function to order the list.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
80 views

Problem 1

The document describes a C programming problem to manage employee data. It involves storing employee codes, names, salaries, and allowances in arrays. The program must allow the user to add, find, remove, and print employees in descending order of salary plus allowance. The analysis outlines the data structures, operations for each requirement, and provides an example sort function to order the list.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 4

Programming Fundamentals using C

Problem 1

• Data about an employee: Code(char 8), name


(char 20), salary(double), allowance(double)
• Develop a C-program that allows user:
– Adding a new employee
– Find data about employees using a name
inputted.
– Remove an employee based on a code inputted
– Print the list in descending order based on salary
+ allowance.

Practices
Programming Fundamentals using C

Problem 1… Analysis

• Data:
– Constant: MAXN = 50
– 4 arrays for the employee list: char
codes[MAXN][9], names[MAXN][21], double
salaries[MAXN], double allowances[MAXN].
– int n=0; /* current number of employees */
– char code[9]; /* inputted code */
– char name[21]; /* name inputted */
– int choice; /* user choice */

Practices
Programming Fundamentals using C

Problem 1… Analysis
• Operations:
/* Getting a user choice */
int menu()
/* Add a new employee, inputted data are local variables */
void add (char codes[][9],char names[][21], double salaries[], double allowances[], int*pn)
/* Print out data about employees bases on a known name */
void printBasedName( char name[], char codes[][9],char names[][21], double salaries[],
double allowances[], int n)
/* Find the position of a known code */
int findCode (char code[], char codes[][9], int n)
/* Remove the employee at the position pos */
void removePos (int pos, char codes[][9],char names[][21], double salaries[], double
allowances[], int *pn)
/* Sort the list based on salary+allowance*/
void sort(char codes[][9],char names[][21], double salaries[], double allowances[], int n)
/* Print all the list to the monitor */
void print(char codes[][9],char names[][21], double salaries[], double allowances[], int n)

Practices
Programming Fundamentals using C

Problem 1… Analysis
/* Sort the list based on salary + allowance*/
void sort(char codes[][9], char names[][21], double salaries[],
double allowances[], int n)
{ for (i=0; i<n-1; i++)
for (j=n-1; j>i; j-- )
if ( salaries[j] + allowances[j] < salaries[j-1] + allowances[j-1] )
{ swap codes[j], codes[j-1];
swap names[j], names[j-1];
swap salaries[j], salaries[j-1];
swap allowances[j], allowances[j-1];
}
}
}

Practices

You might also like