MATLAB: A Practical Introduction to Programming and Problem Solving
MATLAB: A Practical Introduction to Programming and Problem Solving
5th Edition
ISBN: 9780128163450
Author: ATTAWAY
Publisher: ELSEVIER
bartleby

Concept explainers

bartleby

Videos

Question
Book Icon
Chapter 9, Problem 33E
To determine

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.

Expert Solution & Answer
Check Mark

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 file

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:

MATLAB: A Practical Introduction to Programming and Problem Solving, Chapter 9, Problem 33E , additional homework tip  1

MATLAB: A Practical Introduction to Programming and Problem Solving, Chapter 9, Problem 33E , additional homework tip  2

Therefore, the script is saved and executed.

Want to see more full solutions like this?

Subscribe now to access step-by-step solutions to millions of textbook problems written by subject matter experts!
Students have asked these similar questions
Microsoft Excel snapshot for random sampling: Also note the formula used for the last column 02 x✓ fx =INDEX(5852:58551, RANK(C2, $C$2:$C$51)) A B 1 No. States 2 1 ALABAMA Rand No. 0.925957526 3 2 ALASKA 0.372999976 4 3 ARIZONA 0.941323044 5 4 ARKANSAS 0.071266381 Random Sample CALIFORNIA NORTH CAROLINA ARKANSAS WASHINGTON G7 Microsoft Excel snapshot for systematic sampling: xfx INDEX(SD52:50551, F7) A B E F G 1 No. States Rand No. Random Sample population 50 2 1 ALABAMA 0.5296685 NEW HAMPSHIRE sample 10 3 2 ALASKA 0.4493186 OKLAHOMA k 5 4 3 ARIZONA 0.707914 KANSAS 5 4 ARKANSAS 0.4831379 NORTH DAKOTA 6 5 CALIFORNIA 0.7277162 INDIANA Random Sample Sample Name 7 6 COLORADO 0.5865002 MISSISSIPPI 8 7:ONNECTICU 0.7640596 ILLINOIS 9 8 DELAWARE 0.5783029 MISSOURI 525 10 15 INDIANA MARYLAND COLORADO
Suppose the Internal Revenue Service reported that the mean tax refund for the year 2022 was $3401. Assume the standard deviation is $82.5 and that the amounts refunded follow a normal probability distribution. Solve the following three parts? (For the answer to question 14, 15, and 16, start with making a bell curve. Identify on the bell curve where is mean, X, and area(s) to be determined. 1.What percent of the refunds are more than $3,500? 2. What percent of the refunds are more than $3500 but less than $3579? 3. What percent of the refunds are more than $3325 but less than $3579?
A normal distribution has a mean of 50 and a standard deviation of 4. Solve the following three parts? 1. Compute the probability of a value between 44.0 and 55.0. (The question requires finding probability value between 44 and 55. Solve it in 3 steps. In the first step, use the above formula and x = 44, calculate probability value. In the second step repeat the first step with the only difference that x=55. In the third step, subtract the answer of the first part from the answer of the second part.) 2. Compute the probability of a value greater than 55.0. Use the same formula, x=55 and subtract the answer from 1. 3. Compute the probability of a value between 52.0 and 55.0. (The question requires finding probability value between 52 and 55. Solve it in 3 steps. In the first step, use the above formula and x = 52, calculate probability value. In the second step repeat the first step with the only difference that x=55. In the third step, subtract the answer of the first part from the…
Knowledge Booster
Background pattern image
Statistics
Learn more about
Need a deep-dive on the concept behind this application? Look no further. Learn more about this topic, statistics and related others by exploring similar questions and additional content below.
Similar questions
SEE MORE QUESTIONS
Recommended textbooks for you
Text book image
Glencoe Algebra 1, Student Edition, 9780079039897...
Algebra
ISBN:9780079039897
Author:Carter
Publisher:McGraw Hill
Text book image
Holt Mcdougal Larson Pre-algebra: Student Edition...
Algebra
ISBN:9780547587776
Author:HOLT MCDOUGAL
Publisher:HOLT MCDOUGAL
Text book image
Big Ideas Math A Bridge To Success Algebra 1: Stu...
Algebra
ISBN:9781680331141
Author:HOUGHTON MIFFLIN HARCOURT
Publisher:Houghton Mifflin Harcourt
Text book image
Elementary Geometry For College Students, 7e
Geometry
ISBN:9781337614085
Author:Alexander, Daniel C.; Koeberlein, Geralyn M.
Publisher:Cengage,
Text book image
Functions and Change: A Modeling Approach to Coll...
Algebra
ISBN:9781337111348
Author:Bruce Crauder, Benny Evans, Alan Noell
Publisher:Cengage Learning
Text book image
College Algebra (MindTap Course List)
Algebra
ISBN:9781305652231
Author:R. David Gustafson, Jeff Hughes
Publisher:Cengage Learning
Sampling Methods and Bias with Surveys: Crash Course Statistics #10; Author: CrashCourse;https://www.youtube.com/watch?v=Rf-fIpB4D50;License: Standard YouTube License, CC-BY
Statistics: Sampling Methods; Author: Mathispower4u;https://www.youtube.com/watch?v=s6ApdTvgvOs;License: Standard YouTube License, CC-BY