
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 33E
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: A Practical Introduction to Programming and Problem Solving
- Use Minitab and the GPA data (GPAData.xlsx) to answer the following. a) (15 points) Is there a mean difference in High School GPA and a person's GPA following their first year of college? State the relevant hypotheses and provide the p-value from the output. Include a decision and interpretation at a 10% level of significance. b) (5 points) Is the assumption of normality satisfied? Include any plots you make to check the normality assumption and comments on your observations.arrow_forwardA researcher wants to perform a hypothesis test to see if the mean salary of the faculty in private and public institutions are different. Random samples of 36 faculty from private and public institutions were selected. Salaries of the selected faculty from private and public institutions are provided to you in facultysalary.csv file. 1. Make side-by-side boxplots of the salaries for faculty in private and public institutions (In MINITAB, go to Graphs-- >Boxplot-->and explore the available options to see how to make a side-by-side boxplot of the data). 2. Comment on your observations from the side-by-side boxplot made in part 1. 3. Calculate the descriptive statistics: mean, standard deviation for the two samples and attach the MINITAB output. 4. When carrying out a hypothesis test to achieve the aforementioned goal, would you recommend using pooled variance approach or unpooled variance approach? Provide reasoning for your choice. 5. Regardless what you recommend in part 4, carry out…arrow_forwardDave Hughes owns a local restaurant. He wonders if a redesign of the menu will increase, on average, the amount customers spend when visiting his establishment. For the following scenario, pick a statistical method we discussed regarding comparing two groups that would be appropriate for analyzing the problem. a) Hughes records the mean sales the week before the change and the week after the change and then wonders whether the difference is statistically significant. [ Select ] b) Hughes randomly samples 100 people and shows both menus to each person, asking them to rate each menu from 0 (very poor) to 20 (excellent) and then wonders whether the difference is statistically significant. [ Select ] c) Hughes randomly samples 100 people and randomly separates them into two groups of 50. He asks those in group 1 to give a rating of ‘positive’ or ‘negative’ to the old menu and those in group 2 to give a rating of ‘positive’ or ‘negative’ to the new menu. He then computes the proportion of…arrow_forward
 - Search A random sample of n₁ =217 people who live in a city were selected and 107 identified as a "student". A random sample of n₂ =109 people who live in a rural area were selected and 66 identified as a "student". Find the 98% confidence interval for the difference in the proportion of people that live in a city who identify as a "student" and the proportion of people that live in a rural area who identify as a "student." a. The point estimate for difference in population proportions (City group minus Rural Area group) = Round answers to 3 decimal places. -0.112 b. Fill in the blanks of the following statement. Round answers to 3 decimal places. We are 98 0% confident that the difference in population proportion of people who identified as a "student" in city and rural area falls between -0.247 0.022 0.022 and c. Select the correct conclusion based on the above confidence interval. O Since the above confidence interval gives only negative values, we have 98% confident that the…arrow_forwardCould you please provide solutions to the follwoing questions.Thanksarrow_forwardsearch A random sample of ni A random sample of n₂ "student". 217 people who live in a city were selected and 107 identified as a "student". 109 people who live in a rural area were selected and 66 identified as a Find the 98% confidence interval for the difference in the proportion of people that live in a city who identify as a "student" and the proportion of people that live in a rural area who identify as a "student." a. The point estimate for difference in population proportions (City group minus Rural Area group) = Round answers to 3 decimal places. -0.112 b. Fill in the blanks of the following statement. Round answers to 3 decimal places. We are 98 0% confident that the difference in population proportion of people who identified as a "student" in city and rural area falls between -0.247 ✔and 0.022 0.022 c. Select the correct conclusion based on the above confidence interval. Since the above confidence interval gives only negative values, we have 98% confident that the…arrow_forward
 - Could you please help me answer parts b,d and e. Thanksarrow_forwardה The state of CT claims that the average time on death row is 15 years. A random survey of 75 death row inmates revealed that the average length of time on death row is 17.7 years with a standard deviation of 6.2 years. Conduct a hypothesis to test the state of CT's claim. What type of test should be run? t-test of a mean Oz-test of a proportion The alternative hypothesis indicates a two-tailed test O right-tailed test O left-tailed test Calculate the p-value. (Round properly to 4 decimal places) What is the decision? O We fail to reject the claim that the average time on death row is 15 years We reject the claim that the average time on death row is 15 years Submit Question F4 F3 F2 W E 14 POS UP T DELL F5 F6 F7 F8 F9 F10 F11 711 5 dos % $ 54 Οι 6 R T Y & 7arrow_forwardDon't answer without proper knowledge of this statistics and probability question.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





