Matlab, Fourth Edition: A Practical Introduction to Programming and Problem Solving
Matlab, Fourth Edition: A Practical Introduction to Programming and Problem Solving
4th Edition
ISBN: 9780128045251
Author: Stormy Attaway Ph.D. Boston University
Publisher: Elsevier Science
bartleby

Concept explainers

bartleby

Videos

Question
Book Icon
Chapter 9, Problem 31E
Expert Solution & Answer
Check Mark
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.

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 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, Fourth Edition: A Practical Introduction to Programming and Problem Solving, Chapter 9, Problem 31E , additional homework tip  1

Matlab, Fourth Edition: A Practical Introduction to Programming and Problem Solving, Chapter 9, Problem 31E , 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
m Proctor ments sources Dak is investigating how long their phone's battery lasts (in hours) for various brightness levels (on a scale of 0-100). A part of the regression analysis done on Ti Calculator and in Excel for their data are displayed below. Ti Calculator Click this button to reveal the Ti Calculator Output. Click again to collapse it. Ti Calculator y = ax+b B0 and p 0 t = -3.02431335 p = 0.0233 df - 6 a =-0.0380555845 b=5.88809202 s = 0.436054238 20.603868129 r = -0.777089524 Resources Excel Type here to search Click this button to reveal the Excel Output. Click again to collapse it. SUMMARY OUTPUT Multiple R 0.777089524 R Square 0.603868129 Adjusted R Square 0.537846150 Standard Error 0.436054238 Observations 8 ANOVA df SS MS F Significance F Regression 1 1.73914021 Residual 6 1.14085979 1.73914021 0.190143298 9.1465 0.0233 Total 7 2.88000000 Coefficients Standard Error Intercept Brightness 5.88809202 -0.0380555845 t Stat 7.62593816 -3.02431335 P-value 0.0003 0.0233 Use…
ce Problems x + canvas.pdx.edu/courses/106252/assignments/1102408?module_item_id=4856656 m Proctor ments THIS IS THE second question of exdin where you have to Snow compere work to get run points. If you use TI calculator functions, you may write your work along with functions and values you I used and answers on a paper or type on an empty Word document or Excel file. If you use Ti calculator app on your computer or phone, you may provide screen shots of those on a word document or Excel file. Clearly provide the function along with values for the work. If you use Excel, you may use the Excel calculator or Excel as a calculator on your computer to provide complete work and the final answer on it. Please provide all the answers to the following questions on the same Excel sheet. If you use formula, you may write all your steps with numbers on a paper and submit a photo of it. Otherwise, you may type all those steps on a Word document or an Excel file. Do NOT round in the middle steps…
Suppose the model for certain data is a parabola y = Bo+B1x+B2x² with observations (1, 2.2), (2, 6.9), (3, 16.1), (4, 28.7), (5, 46.1). Describe the design matrix, the observation vector, and the parameter vector. Using these write down the system of equations to be approximated Xẞ = y, the parts of the normal equations XTX and XTy and write down the normal equations. Solve and determine the residual vector €. You may use a calculator for the computations but show the steps as described above.
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