
Concept explainers
To Write:
A menu-driven program that will read in an employee data base for a company from a file and do specified operations on the data. The file stores the following information for each employee:
• Name
• Department
• Birth Date
• Date Hired
• Annual Salary
• Office Phone Extension
You are to decide exactly how this information is to be stored in the file. Design the layout of the file, and then create a sample data file in this format to use when testing your program. The format of the file is up to you. However, space is critical. Do not use any more characters in your file than you have to! Your program is to read the information from the file into a data structure, and then display a menu of options for operations to be done on the data. You may not assume in your program that you know the length of the data file. The menu options are:
1. Print all of the information in an easy-to-read format to a new file.
2. Print the information for a particular department.
3. Calculate the total payroll for the company (the sum of the salaries).
4. Find out how many employees have been with the company for N years (N might be 10, for example).
5. Exit the program.
Answer to Problem 31E
Solution:
The script is saved and executed as follows.
Explanation of Solution
MATLAB Code:
%MATLAB code to create only considers years.
%
function nyears(emps)
%Define the function to create only considers years.
hiredyears = zeros(1, length(emps));
for i = 1:length(emps)
hiredyears(i) = str2num(emps(i).hired(5:6)) + 1900;
end
current_year = 2013;
N = 20;
fy = find(current_year-hiredyears >= N);
fprintf('%d employees have worked at least %d years.\n\n', length(fy), N)
end
%end of function
%The script file should be placed in the same folder.
%MATLAB code to prints the menu of options and error-checks.
%Function file
function choice_selection = options
%Define the function to prints the menu of options and error-checks.
%until the user pushes one of the buttons
choice_selection = menu('Choose an option', 'Print all', 'Print dept', 'Payroll', 'N years', 'Exit Program');
%Define the statemnet to check the condition if the user closes the menu box rather than
%pushing one of the buttons, choice will be 0.
while choice_selection == 0
disp('Error-please choose one of the options.')
choice_selection = menu('Choose an option', 'Print all', 'Print dept', 'Payroll', 'N years', 'Exit Program');
end
end
%end of function
%The script file should be placed in the same folder.
%MATLAB code to calculate the employee payroll.
%Function file
function payroll(salaries)
fprintf('The total of the salaries is $%.2f.\n\n', ...
sum(salaries))
end
%end of function
%The script file should be placed in the same folder.
%MATLAB code to write to screen; could change to write to file.
%Function file
function printall(emp)
%Define the function to write to screen; could change to write to file.
fprintf('%-15s%-8s%11s%11s %-10s %5s\n\n', 'Name', 'Dept', ...
'Birth Date', 'Hire Date', 'salary', 'Phone')
for i = 1:length(emp)
fprintf('%-15s%-8s', emp(i).name, emp(i).dept)
b = emp(i).birth;
birthdate = sprintf('%s-%s-19%s', b(1:2), b(3:4), b(5:6));
h = emp(i).hired;
hiredate = sprintf('%s-%s-19%s', h(1:2), h(3:4), h(5:6));
fprintf('%11s%11s', birthdate, hiredate)
fprintf('$%9.2f x%s\n', emp(i).salary, emp(i).phone)
end
end
%end of function
%The script file should be placed in the same folder.
%MATLAB code to check the condition if the user closes the menu box rather than pushing one of the buttons, choice will be 0.
%Function file
function printdept(emp)
choice_selection = menu('Choose Dept', 'sales','service', 'Trucking');
%Define the instruction to check the condition if the user closes the menu box rather than
%pushing one of the buttons, choice will be 0.
while choice_selection == 0
disp('Error-please choose one of the options.')
choice_selection = menu('Choose Dept', 'sales', 'service', 'Trucking');
end
ca = {'sales','service','Trucking'};
chosen = ca{choice_selection};
fprintf('%-15s%-8s%11s%11s %-10s %5s\n\n', 'Name', 'Dept','Birth Date', 'Hire Date', 'salary', 'Phone')
for i = 1:length(emp)
if strcmp(emp(i).dept, chosen)
fprintf('%-15s%-8s', emp(i).name, emp(i).dept)
b = emp(i).birth;
birthdate = sprintf('%s-%s-19%s', b(1:2), b(3:4), b(5:6));
h = emp(i).hired;
hiredate = sprintf('%s-%s-19%s', h(1:2), h(3:4), h(5:6));
fprintf('%11s%11s', birthdate, hiredate)
fprintf('$%9.2f x%s\n', emp(i).salary, emp(i).phone)
end
end
end
%end of function
%The script file should be placed in the same folder.
%MATLAB code to read the employees.
%Function file
function emp = reademployees
%Define the function to read the employees.
emp(2).name = 'Akhilesh, Abhishek';
emp(2).dept = 'service';
emp(2).birth = '072267';
emp(2).hired = '121298';
emp(2).salary = 87333;
emp(2).phone = '5388';
emp(1).name = 'Mohit, Roy';
emp(1).dept = 'sales';
emp(1).birth = '072267';
emp(1).hired = '121288';
emp(1).salary = 77333;
emp(1).phone = '5389';
%Define the instruction to create the employee name, departemnt,
%birth date, hired department, salary and phone number.
end
%end of function
%The script file should be placed in the same folder.
%....................Start of the script file.............................
employees = reademployees;
%Define the instrcution to creates an employee data base for a company and
%performs some operations on the data.
Choice_Selection = options;
%Define the instruction to read the info from a file.
while Choice_Selection ~= 5
switch Choice_Selection
%Define the instruction to call a function to display a menu and get choice
case 1
printall(employees)
%Define the instruction to prints all of the info to a file.
case 2
printdept(employees)
%Define the instruction to prints info for one department.
case 3
payroll([employees.salary])
%Define the instruction to prints total payroll.
case 4
nyears(employees)
%Define the instruction to prints employees >= N years.
end
Choice_Selection = options;
%Define the instruction to display menu again and get user's choice.
end
Save the MATLAB script with name, chapter_9_54793_9_33E.m in the current folder. Execute the script by typing the string name at the command window to write A menu-driven program that will read in an employee data base for a company from a file and do specified operations on the data. The file stores the following information for each employee:
• Name
• Department
• Birth Date
• Date Hired
• Annual Salary
• Office Phone Extension
You are to decide exactly how this information is to be stored in the file. Design the layout of the file, and then create a sample data file in this format to use when testing your program. The format of the file is up to you. However, space is critical. Do not use any more characters in your file than you have to! Your program is to read the information from the file into a data structure, and then display a menu of options for operations to be done on the data. You may not assume in your program that you know the length of the data file. The menu options are:
1. Print all of the information in an easy-to-read format to a new file.
2. Print the information for a particular department.
3. Calculate the total payroll for the company (the sum of the salaries).
4. Find out how many employees have been with the company for N years (N might be 10, for example).
Result:


Therefore, the script is saved and executed.
Want to see more full solutions like this?
Chapter 9 Solutions
Matlab, Fourth Edition: A Practical Introduction to Programming and Problem Solving
- A factory produces light bulbs, 95% of which pass quality control, while 5% are defective. If 10 bulbs are randomly selected, what is the probability that exactly 2 of them are defective? Use the binomial distribution.arrow_forwardA company claims that their new product will increase the average sales by 20%. A sample of 50 stores was taken, and the average increase in sales was found to be 18%. The standard deviation of sales increase is 5%. Test the claim at a 5% significance level.arrow_forwardWhat is the difference between descriptive and inferential statistics?arrow_forward
- A factory claims that at least 90% of its bulbs last more than 1000 hours. From a random sample of 120 bulbs, 102 bulbs lasted more than 1000 hours. Test the claim at the 5% significance level.arrow_forwardHow to do that in the Ti Calculatorarrow_forwardWhat is the probability till vowels come together in the word :dont answerarrow_forward
- What is the probability till vowels come together in the word :arrow_forwardWhat is the probability till vowels come together in the word :arrow_forward1. Write down the null and the alternative hypotheses for testing whether or not the mean price per night for a NYC private room depends on the neighborhood. Clearly define any parameters you might use. 2. The missing DF for neighborhood is 3. The missing Error DF is 4. The missing Total DF is 5. The missing Error Sums of Squares (i.e. AdjSS for Error) is 6. The missing Mean Squares for neighborhood (i.e. neighborhood Adj MS) is 7. The missing Mean Squares for Error (i.e. Error Adj MS) is 8. The missing F-value is 9. Using the ANOVA table for Airbnb problem, test hypothesis you formulated in part 1 (use 5% significance level). Write down the conclusion in the context of the problem. 10.arrow_forward
- A balanced die is rolled 900 times. An outcome of Point 1 or Point 2 is considered a failure; other outcomes are successes. Let x be the number of successes in rolling 900 times. (a) Find the mean and standard deviation of x. (b) What is the probability at least 605 successes will be obtained in rolling 900 times? (Hint: Use the normal approximation to the binomial distribution to solve this problem.)arrow_forwardBelow provided dataset include some information of a random sample 100 Titanic passengers. Information include; Age, Class traveled: 1st, 2nd or 3rd class, Gender (M/F) and survival status (Yes/No) TitanicData.xlsx We want to see if the average age of the passengers are different across the traveled class (1st, 2nd and 3rd class). Write down the null and alternative hypothesis that answers this research question. Check any assumptions relevant for the above suggested test. Ignore the validity of the assumptions. From the methods we discuss in this class, carryout an appropriate test at 5% significance level (include any MINITAB outputs). What is your conclusion at 5% significance level? Depending on your decision in part 4, what further information can you incur about the age and the class they traveled? (Include any relevant MINITAB outputs)arrow_forwardor The following three independent random samples are obtained from three normally distributed populations. The (dependent) numerical variable being compared is starting hourly wage, and the groups are the types of position (internship, co-op, work study). Group 1: Internship 11.5 Group 2: Co-op 14.5 Group 3: Work Study 12.75 16 12 9 12.25 16.5 13 13.5 14.25 15 12.5 12 15.75 9 15 12.5 es Click Download CSV to download csv file of data or copy/paste the data into Excel. After downloading the file, you may want to save it as an Excel Workbook. Use Excel to conduct a one-way ANOVA to determine if the group means are equal using a = 0.05. Create a side-by-side boxplot in Excel for these data. Use that and the numerical summary of sample data to answer the following questions. ere to search a. Which group has the highest average? O Group1 O Group 2 O Group 3 b. Which group has the highest variation? O Group1 O Group 2 O Group 3 c. Compute the HighestS tan dardDeviation SmallestS tan dard…arrow_forward
Glencoe Algebra 1, Student Edition, 9780079039897...AlgebraISBN:9780079039897Author:CarterPublisher:McGraw Hill
Holt Mcdougal Larson Pre-algebra: Student Edition...AlgebraISBN:9780547587776Author:HOLT MCDOUGALPublisher:HOLT MCDOUGAL
Big Ideas Math A Bridge To Success Algebra 1: Stu...AlgebraISBN:9781680331141Author:HOUGHTON MIFFLIN HARCOURTPublisher:Houghton Mifflin Harcourt
Elementary Geometry For College Students, 7eGeometryISBN:9781337614085Author:Alexander, Daniel C.; Koeberlein, Geralyn M.Publisher:Cengage,
Functions and Change: A Modeling Approach to Coll...AlgebraISBN:9781337111348Author:Bruce Crauder, Benny Evans, Alan NoellPublisher:Cengage Learning
College Algebra (MindTap Course List)AlgebraISBN:9781305652231Author:R. David Gustafson, Jeff HughesPublisher:Cengage Learning





