Up till now, we provide 9999 solutions for all subjects which include Mathematics, Finance, Accounting, Management, Engineering, Computer Science, Natural Sciences, Medicine Science, etc.

Please DO NOT respond to this question by copy/pasting the code provided elsewhere on the site, none of those work. Thanks. Virtual Memory Lab This lab project addresses the implementation of page-replacement algorithms in a demand-paging system. Each process in a demand-paging system has a page table that contains a list of entries. For each logical page of the process, there is an entry in the table that indicates if the page is in memory. If the page is in memory, the memory frame number that page is resident in is indicated. Also, for each page, the time at which the page has arrived in memory, the time at which it has been last referenced, and the number of times the page has been referenced since the page arrived in memory are maintained. The page table data structure is a simple array of page-table entries (PTEs). Each PTE contains five fields as defined below: struct PTE { int is_valid; int frame_number; int arrival_timestamp; int last_access_timestamp; int reference_count; } Each process in the system has a page table that is simply an array of PTEs. Each process also has a pool of frames that is allocated. The frame pool for a process is represented as an array of integers, where each Integer represents the frame number of a frame that is free and is available for use by the process. Note that in order to get the frame number in the pool, you first need to access the integer in the array. This lab project aims to exercise the various policies for page replacement. In particular, we study the following three page-replacement policies: First-In-First-Out (FIFO) Least-Recently-Used (LRU) Least-Frequently-Used (LFU) In order to implement the above policies, we need to develop corresponding functions that process page accesses for a process. That is, for each process, given its page table, a logical page number being referenced and the free frame pool of the process, the functions should determine the memory frame number for the logical page. Also, the functions should modify the page table and the free frame pool appropriately. The details of the functions with respect to the different policies are described below. You need to develop code for these functions that implement the specifications. Place the code in a file called virtual.c. You should include the oslabs.h file.

1 Solutions

See Answer
Using LC-3 Programming Exercise 1 Use .BLKW to set up a remote array of 10 values, starting at memory location x4000, as in lab 3. Now programmatically populate the array with the numbers 0 through 9 (note - NOT the characters '0' through '9'!) – i.e. hard-code just the first value (0), then calculate the rest one at a time, storing them in the array as you go. Remember the proper way of setting a register to 0! After you've stored them all, grab the seventh value (i.e. 6) and store it in R2. Clearly, you can't access this location via a label, so you'll need its actual address. How will you obtain that? And how will you use that address to get the value stored there? As always, step through your program and examine the values as they are stored in the array, and examine the final value stored in R2, to make sure your program works as expected. Exercise 2 You'll notice that Exercise 1 didn't ask you to output to console the array you built. Why not? Because as you know by now, numbers are not characters! So now copy your exercise 1 code into lab4_ex2.asm, and add an output loop, making it output the characters corresponding to the numbers stored in your array. Exercise 3 Let's try another modification of our well-used array program from Exercise 1: This time, instead of calculating and storing the numbers from 0 to 9 in the array, calculate and store the first ten powers of 2, starting with 20 = 1 in array index 0. Finally, grab the seventh value (26) from the array, and store it in R2. In order to do this, you will have to figure out how to calculate powers of 2. Some hints: Mathematically speaking: How do I obtain 2n+1 if I know 2n? What LC-3 operation could I use to multiply a number by 2? As always, place a breakpoint in your program, and step through it, examining the values as they are being stored in the array, and examine the final value stored in R2,  to make sure your program works as expected. Pay attention to both the decimal and hex representations of the values being stored. You already understand that you can't simply output the values in the array to the console “as is”, so we have to manipulate them somehow to turn them into characters. But this time all but the first four are multi-digit numbers when represented as decimal values, so our trick from the last exercise won't work – it can only convert the numbers from 0 to 9 into the single-digit ascii characters '0' through '9'.  Exercise 4 For now, we will instead observe what happens if we attempt to do what we just said can't be done - output the contents of the array "as is", i.e. as if they were ascii codes (which they are not!). Copy your exercise 3 code into your lab4_ex4.asm file, and add a second loop that loads the content of each element of the array into R0 and outputs it to the console using OUT. Now place a breakpoint at the start of your display loop and step through it: You will need to keep an eye on the Console to understand what is going on!! Please add comments!!!

1 Solutions

See Answer
Part VI: Compare algorithms, and try to speed things up! In this last part of the project, you will write code to facilitate the comparison of the different state-space search algorithms, and you will also attempt to speed things up so that your code can more easily solve puzzles that require many moves. Your tasks In eight_puzzle.py, write a function named process_file(filename, algorithm, param). It should take the following three inputs: a string filename specifying the name of a text file in which each line is a digit string for an eight puzzle. For example, here is a sample file containing 10 digit strings, each of which represents an eight puzzle that can be solved in 10 moves: 10_moves.txt a string algorithm that specifies which state-space search algorithm should be used to solve the puzzles ('random', 'BFS', 'DFS', 'Greedy', or 'A*') a third input param that allows you to specify a parameter for the searcher – either a depth limit (for the uninformed search algorithms) or a choice of heuristic function (for the informed search algorithms). Your function should open the file with the specified filename for reading, and it should use a loop to process the file one line at a time. We discussed line-by-line file processing earlier in the semester. For each line of the file, the function should: obtain the digit string on that line (stripping off the newline at the end of the line) take the steps needed to solve the eight puzzle for that digit string using the algorithm and parameter specified by the second and third inputs to the function report the number of moves in the solution, and the number of states tested during the search for a solution In addition, the function should perform the cumulative computations needed to report the following summary statistics after processing the entire file: number of puzzles solved average number of moves in the solutions average number of states tested For example: >>> process_file('10_moves.txt', 'BFS', -1) 125637084: 10 moves, 661 states tested 432601785: 10 moves, 1172 states tested 025318467: 10 moves, 534 states tested 134602785: 10 moves, 728 states tested 341762085: 10 moves, 578 states tested 125608437: 10 moves, 827 states tested 540132678: 10 moves, 822 states tested 174382650: 10 moves, 692 states tested 154328067: 10 moves, 801 states tested 245108367: 10 moves, 659 states tested solved 10 puzzles averages: 10.0 moves, 747.4 states tested (In this case, because BFS finds optimal solutions, every solution has the same number of moves, but for other algorithms this won’t necessarily be the case.) Notes/hints: You can model your code for solving a given puzzle on the code that we’ve given you in the eight_puzzle driver function. In particular, you can emulate the way that this function: creates Board and State objects for the initial state calls the create_searcher helper function to create the necessary type of searcher object, and handles the possible return value of None from that function Important: Make sure to create a new searcher object for each puzzle (i.e., for each line of the file). Otherwise, the searcher will still have information inside it from previous searches when it starts to solve a new puzzle. When calling the searcher object’s find_solution method, you should do so as follows: soln = None try: soln = searcher.find_solution(s) except KeyboardInterrupt: print('search terminated, ', end='') Making the call to find_solution() in this way will allow you to terminate a search that goes on too long by using Ctrl-C. In such cases, soln will end up with a value of None (meaning that no solution was found), and you should make sure to properly handle such cases. You should not use a timer in this function. This function should not return a value. Testing your function: If you haven’t already done so, download the 10_moves.txt file, putting it in the same folder as the rest of your files for the project. Try to reproduce the results for BFS shown above. Try applying Greedy Search to the same file. You may find that it takes Greedy a very long time to solve some of the puzzles, at least when using h1 (the num-misplaced-tiles heuristic). If this happens, use Ctrl-C as needed to terminate the problematic searches. When we processed 10_moves.txt using our implementation of Greedy, we ended up using Ctrl-C to terminate two of the searches: >>> process_file('10_moves.txt', 'Greedy', h1) 125637084: 204 moves, 658 states tested 432601785: 12 moves, 13 states tested 025318467: search terminated, no solution 134602785: 78 moves, 221 states tested 341762085: 26 moves, 339 states tested 125608437: 162 moves, 560 states tested 540132678: 68 moves, 749 states tested 174382650: search terminated, no solution 154328067: 10 moves, 16 states tested 245108367: 48 moves, 49 states tested solved 8 puzzles averages: 76.0 moves, 325.625 states tested It’s also possible for none of the puzzles to have a solution, and you should handle that situation appropriately. For example, this can happen if you impose a depth limit that is too small: >>> process_file('10_moves.txt', 'DFS', 5) # depth limit of 5 125637084: no solution 432601785: no solution 025318467: no solution 134602785: no solution 341762085: no solution 125608437: no solution 540132678: no solution 174382650: no solution 154328067: no solution 245108367: no solution solved 0 puzzles Note that you can’t compute any averages in this case, so you shouldn’t print the averages line in the results. Create a plain-text file named results.txt, and put your name and email (and those of your partner, if any) at the top of the file. Conduct an initial set of experiments in which you try all of the algorithms on the puzzles in the following files: 5_moves.txt - puzzles that can be solved in 5 moves 10_moves.txt - puzzles that can be solved in 10 moves 15_moves.txt - puzzles that can be solved in 15 moves More specifically, you should run the following algorithms on each file: random BFS DFS with a depth limit of 20 DFS with a depth limit of 50 Greedy (using h1 – the num-misplaced-tiles heuristic) A* (using the same heuristic) Note that it may be necessary to use Ctrl-C to terminate searches that take too much time. You might want to pick a given amount of time (e.g., 30 seconds or 1 minute), and use Ctrl-C to terminate any search that doesn’t complete in that time. In your results.txt file, create three tables that summarize the results of these initial experiments. Use a separate table for each file’s results. For example, the results for 5_moves.txt should be put into a table that looks like this: puzzles with 5-move optimal solutions ------------------------------------- algorithm num. solved avg. moves avg. states tested ------------------------------------------------------------------------ random BFS DFS (depth limit 20) DFS (depth limit 50) Greedy Search (using h1) A* (using h1) Below these tables, write a short reflection (one or two paragraphs) in which you summarize the key points that are illustrated by the results. For example, you might discuss whether the algorithms produce reliably optimal results, and how much work they do in finding a solution. There’s no one correct reflection; we just want to see that you have reflected intelligently on the results and drawn some conclusions. Even informed search algorithms like Greedy Search and A* can be slow on problems that require a large number of moves. This is especially true if the heuristic function used by the algorithm doesn’t do a good enough job of estimating the remaining cost to the goal. Our h1 heuristic function–which uses the number of misplaced tiles as the estimate of the remaining cost–is one example of a less than ideal heuristic. For example, consider the following two puzzles: Both of them have 4 misplaced tiles (the ones displayed in red), but the puzzle on the left can be solved in 4 moves, whereas the puzzle on the right requires 24 moves! Clearly, it would be better if our heuristic could do a better job of distinguishing between these two puzzles. Come up with at least one alternate heuristic, and implement it as part of your classes for informed searchers (GreedySearcher and AStarSearcher). To do so, you should take the following steps: As needed, add one or more methods to the Board class that will be used by your new heuristic function. (Adding a new method to the Board class is not required, but it can be helpful to add one so that the heuristic function can obtain the information needed for its estimate.) Add your new heuristic function(s) to searcher.py, and follow these guidelines: Continue the numbering scheme that we established for the earlier heuristic functions. Call your first alternate heuristic function h2, your next heuristic function (if any) h3, etc. Make sure that each heuristic function is a regular function, not a method. In addition, make sure that it takes a single State object and returns an integer. When conducting tests using a new heuristic function, use its name in the same ways that you would use h0 or h1. For example: >>> g = GreedySearcher(h2) >>> eight_puzzle('142358607', 'Greedy', h2) >>> process_file('15_moves.txt', 'A*', h2) You are welcome to design more than one new heuristic function, although only one is required. When testing and refining your heuristic(s), you can use the files that we provided above, as well as the following files: 18_moves.txt - puzzles that can be solved in 18 moves 21_moves.txt - puzzles that can be solved in 21 moves 24_moves.txt - puzzles that can be solved in 24 moves 27_moves.txt - puzzles that can be solved in 27 moves. Compare the performance of Greedy and A* using the h1 heuristic to their performance using your new heuristic(s). Keep revising your heuristic(s) as needed until you are satisfied. Ideally, you should see the following when using your new heuristic(s): Both Greedy and A* are able to solve puzzles more quickly – testing fewer states on average and requiring fewer searches to be terminated. Greedy Search is able to find solutions requiring fewer moves. A* continues to find optimal solutions. (If it starts finding solutions with more than the optimal number of moves, that probably means that your heuristic is overestimating the remaining cost for at least some states.) Although you are welcome to keep more than one new heuristic function, we will ultimately test only one of them. Please adjust your code as needed so that the heuristic function that you want us to test is named h2. Also, please make sure that we will still be able to test the num-misplaced-tiles heuristic if we specify h1 for the heuristic. In your results.txt file, briefly describe how your best new heuristic works: heuristic h2 ------------ This heuristic ... If your code includes other alternate heuristics, you are welcome to describe them as well, although doing so is not required. Conduct a second set of experiments in which you try both your new heuristic function(s) and the h1heuristic function on the puzzles in the four new files provided above (the ones that require 18, 21, 24, and 27 moves). In your results.txt file, create four tables that summarize the results of these experiments. Use a separate table for each file’s results. For example, the results for 18_moves.txt should be put into a table that looks like this: puzzles with 18-move optimal solutions -------------------------------------- algorithm num. solved avg. moves avg. states tested ---------------------------------------------------------------------- Greedy (heuristic h1) Greedy (heuristic h2) # Greedy with any other heuristics A* (heuristic h1) A* (heuristic h2) # Greedy with any other heuristics Below these tables, write a short reflection (one or two paragraphs) in which you summarize the key points that are illustrated by the results. Here again, there is no one correct reflection; we just want to see that you have reflected intelligently on the results and drawn some conclusions.

1 Solutions

See Answer
help 1. Value Iteration for Markov Decision Process ద Bookmark this page Homework due Aug 17, 2022 14:59 +03 Consider the following problem through the lens of a Markov Decision Process (MDP), and answer questions 1 - 3 accordingly. Damilola is a soccer player for the ML United under-15s who is debating whether to sign for the NLP Albion youth team or the Computer Vision Wanderers youth team. After three years, signing for NLP Albion has two possibilities: He will still be in the youth team, earning 10,000 (60\% chance), or he will make the senior team and earn 70,000 (40\% chance). Lastly, he is assured of making the Computer Vision Wanderers senior team after three years, with a salary of 37,000. Q2 1 point possible (graded) Let us now assume that Damilola cares about the utility derived from the salary as opposed to the salary $S$ itself. And his utility function, which baffles economists, is given by Utility, $U=\Psi S^{2}+\zeta$ where $\Psi, \zeta>0$, and $\Psi$ \& are constants. In this scenario, the optimal policy $\pi^{*}$ (ML United under-15s) would be to sign for NLP Albion. True False Submit You have used 0 of 1 attempt Save Q3 1 point possible (graded) There are 3 unique states defined in total in this setting. True False b 3 points possible (graded) If we initialize the value function with 0 , enter the value of state $B$ after: one value iteration, $V_{B 1}^{*}$ two value iterations, $V_{B 2}^{*}$ infinite value iterations, $V_{B}^{*}$ Submit You have used 0 of 3 attempts Save C 1 point possible (graded) Select all that are true In an MDP, the optimal policy for a given state $s$ is unique The problem of determining the value of a state is solved recursively by value iteration algorithm For a given MDP, the value function $V^{*}(s)$ of each state is known a priori $V^{*}(s)=\sum_{s^{\prime}} T\left(s, a, s^{\prime}\right)\left[R\left(s, a, s^{\prime}\right)+\gamma V^{*}\left(s^{\prime}\right)\right]$ $Q^{*}(s, a)=\sum_{s^{\prime}} T\left(s, a, s^{\prime}\right)\left[R\left(s, a, s^{\prime}\right)+\gamma V^{*}\left(s^{\prime}\right)\right]$

1 Solutions

See Answer
facilitates a catalog of books for its faculty and students. Several books are available for the students and faculty members. Catalog has a pool of books of different authors. The faculty members and students can access books depending on the availability. Each book has a unique code.   You should provide methods to support the following operations:   The book administrator can add new books and its information. The book administrator can remove and update the information of the faculty or student who borrowed the books. The faculty and students can inquire about the specific books including the author information. The faculty and students can request for a new book. The faculty and the students can raise a complain about the non-availability of the books or any other. The book administrator can generate the reports of the book based on: Book title Book Author Book ISBN The system should be able to handle other kinds of reports to be generated in the future.     You may create three classes, one for Book, the second for Administrator and the third for Users. Use the linked list and the files for database.[reference from class exercise]   Project Output Screen: When I run the project, it should look like the following: Please select the user: Administrator User After selecting administrator, the following menu should be displayed: Add new books and its information in the beginning, at the end and as per the position required. Add the information of the user who borrowed the book Delete a particular book and its information as per its “Book ISBN” Inquire about the specific books including the author information. Check the number of books available. Generate the reports of the book based on: Book title Book Author Book ISBN Note: Add the book information in files After selecting user, the following menu should be displayed:   Inquire about the specific books including the author information. Request for a new book (This is not a linked list operation) Complain if any (This is not a linked list operation)   Now, after I see the above menu, I will make a selection. Based on my selection, your program should call some methods to carry out the operation needed for that selected task. After that operation is performed, you should show me the above mentioned selection menu again. This should continue in an infinite loop until I want to exit the program. facilitates a catalog of books for its faculty and students. Several books are available for the students and faculty members. Catalog has a pool of books of different authors. The faculty members and students can access books depending on the availability. Each book has a unique code.   You should provide methods to support the following operations:   The book administrator can add new books and its information. The book administrator can remove and update the information of the faculty or student who borrowed the books. The faculty and students can inquire about the specific books including the author information. The faculty and students can request for a new book. The faculty and the students can raise a complain about the non-availability of the books or any other. The book administrator can generate the reports of the book based on: Book title Book Author Book ISBN The system should be able to handle other kinds of reports to be generated in the future.     You may create three classes, one for Book, the second for Administrator and the third for Users. Use the linked list and the files for database.[reference from class exercise]   Project Output Screen: When I run the project, it should look like the following: Please select the user: Administrator User After selecting administrator, the following menu should be displayed: Add new books and its information in the beginning, at the end and as per the position required. Add the information of the user who borrowed the book Delete a particular book and its information as per its “Book ISBN” Inquire about the specific books including the author information. Check the number of books available. Generate the reports of the book based on: Book title Book Author Book ISBN Note: Add the book information in files After selecting user, the following menu should be displayed:   Inquire about the specific books including the author information. Request for a new book (This is not a linked list operation) Complain if any (This is not a linked list operation)   Now, after I see the above menu, I will make a selection. Based on my selection, your program should call some methods to carry out the operation needed for that selected task. After that operation is performed, you should show me the above mentioned selection menu again. This should continue in an infinite loop until I want to exit the program.

1 Solutions

See Answer
IN JAVA PLEASE. In this project we are going to create a class Sedan. A sedan is a four wheeled automobile with 4 doors. Each sedan can have a different gas tank that has a fixed capacity, and it can contain certain number of gallons of fuel. We will assume that each sedan can get a different fixed constant miles per gallon, and there is an EPA standard miles per gallon for all sedans that gets updates every year. The sedan also has a mileage. Right out of the factory, the sedan has a full tank of gas and zero mileage. CLASS Sedan: Create the following variables in the class, and determine the type, if static, if final number of wheels number of doors epa mpg – make this private tank capacity current fuel level – make this private mpg mileage – make this private Create a non default c’tor for sedan public Sedan(double ptankCapacity, double mpg) full tank zero mileage print warning to if it does not meet the current EPA requirements Create a default c’tor for sedan that calls the non default c’tor with the folloing tank = 10 mpg = EPA mpg Define a toString method that prints basic stats of the sedan in the example below public String toString() Define a drive method public double drive(double miles) Drive either the specified miles or what the fuel allows Deduct fuel according to miles driven Return actual miles driven Define a pump fuel method public double pumpFuel(double gallons) Pump with the specified gallons of what the fueld tank allows Return actual fuel pumped Overload a pump fuel method public double pumpFuel() Fill up tank Return actual fuel pumped setEPA public static boolean setEPA(double newEPAmpg) Sets the new EPA mpg Return true if new EPA mpg is > 0; else do not set and return false getEPA get the current EPA mpg getMileage get the current mileage note we cannot set the mileage directly because this is illegal! getFuel get the current fuel equals determine if two sedans are equal – justify your answer CLASS SedanTest: Create a single global variable static Scanner sc = new Scanner(System.in); Define an utility method to read a non-negative number from the Scanner sc static double readNNegDouble(String s) Print the prompt s Read a double from Scanner sc Return if the double is > 0 Print error if no good and loop Define a printMenu method Define a main method Set EPA mpg to 25 Create scanner Create default sedan s1 Print it Read in tank capacity and mpg for sedan 2 – using the utility method readNNegDouble Create and print sedan s2 Do loop that operates on s2 printMenu get input string create switch statement to handle drive print actual miles driven pump fuel print actual gallons pumped pump up print actual gallons pumped change epa sedan stats quit print program terminated Sample Output: Sedan 1 Sedan 1 created. Sedan with 4 wheels and 4 doors, with 10.0 gallon fuel tank and 10.0 gallons fuel, with 0.0 mileage, and with 25.0 mpg meeting the EPA mpg of 25.0. Sedan 2 Enter tank capacity: -1 ERROR - input a non-negative number Enter tank capacity: 10 Enter MPG: -5 ERROR - input a non-negative number Enter MPG: 25 Sedan with 4 wheels and 4 doors, with 10.0 gallon fuel tank and 10.0 gallons fuel, with 0.0 mileage, and with 25.0 mpg meeting the EPA mpg of 25.0. Sedan 2 created. ------------- Menu ------------- (D)rive (P)ump fuel Pump (U)p Change (E)PA Sedan (S)tats (Q)uit ------------- d Enter miles: 100 100.0 actual miles driven. ------------- Menu ------------- (D)rive (P)ump fuel Pump (U)p Change (E)PA Sedan (S)tats (Q)uit ------------- p Enter gallons: 50 4.0 actual gallons pumped. ------------- Menu ------------- (D)rive (P)ump fuel Pump (U)p Change (E)PA Sedan (S)tats (Q)uit ------------- d Enter miles: 1000 250.0 actual miles driven. ------------- Menu ------------- (D)rive (P)ump fuel Pump (U)p Change (E)PA Sedan (S)tats (Q)uit ------------- u 10.0 actual gallons pumped. ------------- Menu ------------- (D)rive (P)ump fuel Pump (U)p Change (E)PA Sedan (S)tats (Q)uit ------------- d Enter miles: 200 200.0 actual miles driven. ------------- Menu ------------- (D)rive (P)ump fuel Pump (U)p Change (E)PA Sedan (S)tats (Q)uit ------------- s Sedan with 4 wheels and 4 doors, with 10.0 gallon fuel tank and 2.0 gallons fuel, with 550.0 mileage, and with 25.0 mpg meeting the EPA mpg of 25.0. ------------- Menu ------------- (D)rive (P)ump fuel Pump (U)p Change (E)PA Sedan (S)tats (Q)uit ------------- e Enter EPA mpg: 30 EPA mpg updated. ------------- Menu ------------- (D)rive (P)ump fuel Pump (U)p Change (E)PA Sedan (S)tats (Q)uit ------------- s Sedan with 4 wheels and 4 doors, with 10.0 gallon fuel tank and 2.0 gallons fuel, with 550.0 mileage, and with 25.0 mpg not meeting the EPA mpg of 30.0. ------------- Menu ------------- (D)rive (P)ump fuel Pump (U)p Change (E)PA Sedan (S)tats (Q)uit ------------- q Program Terminated.

1 Solutions

See Answer

1 Solutions

See Answer
PMU facilitates a catalog of books for its faculty and students. Several books are available for the students and faculty members. • Catalog has a pool of books of different authors. • The faculty members and students can access books depending on the availability. • Each book has a unique code. You should provide functions to support the following operations: 1. The book administrator can add new books and its information. 2. The book administrator can remove and update the information the books. 3. The faculty and students can inquire about the specific books including the author information. 4. The faculty and students can request for a new book. 5. The book administrator can update the requests or new requirements from the faculty or the students. 6. The faculty and the students can raise a complain about the non-availability of the books or any other. 7. The book administrator can generate the reports of the book based on: a. Book title b. Book Author c. Book ISBN 8. The system should be able to handle other kinds of reports to be generated in the future. You should create three classes, one for Book, the second for Administrator and the third for Users. Use the linked list and the files for database. NO arraylist. Must use linkedlist and Java FileWriter Project Output Screen: When I run the project, it should look like the following: Please select the user: 1. Administrator 2. User After selecting administrator, the following menu should be displayed: • Add new books and its information. • Delete the information of the books. • Update the requests or new requirements from the faculty or the students. • Generate the reports of the book based on: a. Book title b. Book Author c. Book ISBN After selecting user, the following menu should be displayed: • Inquire about the specific books including the author information. • Request for a new book • Complain if any Now, after I see the above menu, I will make a selection. Based on my selection, your program should call some function to carry out the operation needed for that selected task. After that operation is performed, you should show me the above mentioned selection menu again. This should continue in an infinite loop until I want to exit the program.

1 Solutions

See Answer
****IN C PLEASE NOT C++**** ======================== 17.12 LAB*: Program: Playlist Instructor note: Function Prototypes void CreatePlaylistNode(PlaylistNode* thisNode, char[], char[], char[], int, PlaylistNode* nextNode); void InsertPlaylistNodeAfter(PlaylistNode* thisNode, PlaylistNode* newNode); void SetNextPlaylistNode(PlaylistNode* thisNode, PlaylistNode* newNode); PlaylistNode* GetNextPlaylistNode(PlaylistNode* thisNode); void PrintPlaylistNode(PlaylistNode* thisNode); You will be building a linked list. Make sure to keep track of both the head and tail nodes. (1) Create three files to submit. PlaylistNode.h - Struct definition and related function declarations PlaylistNode.c - Related function definitions main.c - main() function Build the PlaylistNode class per the following specifications. Note: Some functions can initially be function stubs (empty functions), to be completed in later steps. Private data members char uniqueID[50] char songName[50] char artistName[50] int songLength PlaylistNode* nextNodePtr Related functions CreatePlaylistNode() (1 pt) InsertPlaylistNodeAfter() (1 pt) Insert a new node after node SetNextPlaylistNode() (1 pt) Set a new node to come after node GetNextPlaylistNode() Return location pointed by nextNodePtr PrintPlaylistNode() Ex. of PrintPlaylistNode output: Unique ID: S123 Song Name: Peg Artist Name: Steely Dan Song Length (in seconds): 237 (2) In main(), prompt the user for the title of the playlist. (1 pt) Ex: Enter playlist's title: JAMZ (3) Implement the PrintMenu() function. PrintMenu() takes the playlist title as a parameter and outputs a menu of options to manipulate the playlist. (1 pt) Ex: JAMZ PLAYLIST MENU a - Add song r - Remove song c - Change position of song s - Output songs by specific artist t - Output total time of playlist (in seconds) o - Output full playlist q - Quit (4) Implement the ExecuteMenu() function that takes 3 parameters: a character representing the user's choice, a playlist title, and the pointer to the head node of a playlist. ExecuteMenu() performs the menu options (described below) according to the user's choice, and returns the pointer to the head node of the playlist.(1 pt) (5) In main(), call PrintMenu() and prompt for the user's choice of menu options. Each option is represented by a single character. If an invalid character is entered, continue to prompt for a valid choice. When a valid option is entered, execute the option by calling ExecuteMenu() and overwrite the pointer to the head node of the playlist with the returned pointer. Then, print the menu, and prompt for a new option. Continue until the user enters 'q'. Hint: Implement Quit before implementing other options. (1 pt) Ex: JAMZ PLAYLIST MENU a - Add song r - Remove song c - Change position of song s - Output songs by specific artist t - Output total time of playlist (in seconds) o - Output full playlist q - Quit Choose an option: (6) Implement "Output full playlist" menu option in ExecuteMenu(). If the list is empty, output: Playlist is empty (3 pts) Ex: JAMZ - OUTPUT FULL PLAYLIST 1. Unique ID: SD123 Song Name: Peg Artist Name: Steely Dan Song Length (in seconds): 237 2. Unique ID: JJ234 Song Name: All For You Artist Name: Janet Jackson Song Length (in seconds): 391 3. Unique ID: J345 Song Name: Canned Heat Artist Name: Jamiroquai Song Length (in seconds): 330 4. Unique ID: JJ456 Song Name: Black Eagle Artist Name: Janet Jackson Song Length (in seconds): 197 5. Unique ID: SD567 Song Name: I Got The News Artist Name: Steely Dan Song Length (in seconds): 306 (7) Implement the "Add song" menu option in ExecuteMenu(). New additions are added to the end of the list. (2 pts) Ex: ADD SONG Enter song's unique ID: SD123 Enter song's name: Peg Enter artist's name: Steely Dan Enter song's length (in seconds): 237 (8) Implement the "Remove song" menu option in ExecuteMenu(). Prompt the user for the unique ID of the song to be removed.(4 pts) Ex: REMOVE SONG Enter song's unique ID: JJ234 "All For You" removed. (9) Implement the "Change position of song" menu option in ExecuteMenu(). Prompt the user for the current position of the song and the desired new position. Valid new positions are 1 - n (the number of nodes). If the user enters a new position that is less than 1, move the node to the position 1 (the head). If the user enters a new position greater than n, move the node to position n (the tail). 6 cases will be tested: Moving the head node (1 pt) Moving the tail node (1 pt) Moving a node to the head (1 pt) Moving a node to the tail (1 pt) Moving a node up the list (1 pt) Moving a node down the list (1 pt) Ex: CHANGE POSITION OF SONG Enter song's current position: 3 Enter new position for song: 2 "Canned Heat" moved to position 2 (10) Implement the "Output songs by specific artist" menu option in ExecuteMenu(). Prompt the user for the artist's name, and output the node's information, starting with the node's current position. (2 pt) Ex: OUTPUT SONGS BY SPECIFIC ARTIST Enter artist's name: Janet Jackson 2. Unique ID: JJ234 Song Name: All For You Artist Name: Janet Jackson Song Length (in seconds): 391 4. Unique ID: JJ456 Song Name: Black Eagle Artist Name: Janet Jackson Song Length (in seconds): 197 (11) Implement the "Output total time of playlist" menu option in ExecuteMenu(). Output the sum of the time of the playlist's songs (in seconds). (2 pts) Ex: OUTPUT TOTAL TIME OF PLAYLIST (IN SECONDS) Total time: 1461 seconds

1 Solutions

See Answer
(Test perfect binary tree) A perfect binary tree is a complete binary tree with all levelsfully filled. Define a new class named BSTWithTestPerfect thatextends BST with the following methods: (Hint: The number of nodesin a perfect binary tree is 2^(height+1) - 1.) /** Returns true if the tree is a perfect binary tree */ publicboolean isPerfectBST() Use the code below to test the code. Please only answer with theportions that go between // BEGIN REVEL SUBMISSION and // END REVELSUBMISSION Class Name: Exercise25_03 /* You have to use the following template to submit to Revel. Note: To test the code using the CheckExerciseTool, you will submit entire code. To submit your code to Revel, you must only submit the code enclosed between // BEGIN REVEL SUBMISSION // END REVEL SUBMISSION*/ import java.util.*;public class Exercise25_03 { public static void main(String[] args) { BSTWithTestPerfect tree = new BSTWithTestPerfect(); System.out.print("Is an empty tree prefect? " + tree.isPerfectBST()); tree.insert("Green"); System.out.print("\nIs a one-node tree prefect? " + tree.isPerfectBST()); tree.insert("Red"); System.out.print("\nIs a two-node tree prefect? " + tree.isPerfectBST()); Scanner input = new Scanner(System.in); System.out.print("\nEnter a string: "); String s = input.next(); tree.insert(s.trim()); System.out.print("Is this tree perfect? " + tree.isPerfectBST()); BSTWithTestPerfect tree1 = new BSTWithTestPerfect(new String[] {"Tom", "George", "Jean", "Jane", "Kevin", "Peter", "Susan", "Jen", "Kim", "Michael", "Michelle"}); System.out.print("\nIs tree1 perfect? " + tree1.isPerfectBST()); BSTWithTestPerfect tree2 = new BSTWithTestPerfect(new Integer[]{50, 45, 75, 18, 49, 51, 98}); System.out.print("\nIs tree2 perfect? " + tree2.isPerfectBST()); }}interface Tree extends java.util.Collection { /** Return true if the element is in the tree */ public boolean search(E e); /** Insert element o into the binary tree * Return true if the element is inserted successfully */ public boolean insert(E e); /** Delete the specified element from the tree * Return true if the element is deleted successfully */ public boolean delete(E e); /** Get the number of nodes in the tree */ public int getSize(); /** Inorder traversal from the root*/ public default void inorder() { } /** Postorder traversal from the root */ public default void postorder() { } /** Preorder traversal from the root */ public default void preorder() { } @Override /** Return true if the tree is empty */ public default boolean isEmpty() { return size() == 0; }; @Override public default boolean contains(Object e) { return search((E)e); } @Override public default boolean add(E e) { return insert(e); } @Override public default boolean remove(Object e) { return delete((E)e); } @Override public default int size() { return getSize(); } @Override public default boolean containsAll(Collection c) { // Left as an exercise return false; } @Override public default boolean addAll(Collection c) { // Left as an exercise return false; } @Override public default boolean removeAll(Collection c) { // Left as an exercise return false; } @Override public default boolean retainAll(Collection c) { // Left as an exercise return false; } @Override public default Object[] toArray() { // Left as an exercise return null; } @Override public default T[] toArray(T[] array) { // Left as an exercise return null; }}class BST implements Tree { protected TreeNode root; protected int size = 0; protected java.util.Comparator c; /** Create a default BST with a natural order comparator */ public BST() { this.c = new Comparator() { public int compare(E e1, E e2) { return ((Comparable)e1).compareTo(e2); } }; } /** Create a BST with a specified comparator */ public BST(java.util.Comparator c) { this.c = c; } /** Create a binary tree from an array of objects */ public BST(E[] objects) { this(); for (int i = 0; i < objects.length; i++) add(objects[i]); } @Override /** Returns true if the element is in the tree */ public boolean search(E e) { TreeNode current = root; // Start from the root while (current != null) { if (c.compare(e, current.element) < 0) { current = current.left; } else if (c.compare(e, current.element) > 0) { current = current.right; } else // element matches current.element return true; // Element is found } return false; } @Override /** Insert element e into the binary tree * Return true if the element is inserted successfully */ public boolean insert(E e) { if (root == null) root = createNewNode(e); // Create a new root else { // Locate the parent node TreeNode parent = null; TreeNode current = root; while (current != null) if (c.compare(e, current.element) < 0) { parent = current; current = current.left; } else if (c.compare(e, current.element) > 0) { parent = current; current = current.right; } else return false; // Duplicate node not inserted // Create the new node and attach it to the parent node if (c.compare(e, parent.element) < 0) parent.left = createNewNode(e); else parent.right = createNewNode(e); } size++; return true; // Element inserted successfully } protected TreeNode createNewNode(E e) { return new TreeNode(e); } @Override /** Inorder traversal from the root */ public void inorder() { inorder(root); } /** Inorder traversal from a subtree */ protected void inorder(TreeNode root) { if (root == null) return; inorder(root.left); System.out.print(root.element + " "); inorder(root.right); } @Override /** Postorder traversal from the root */ public void postorder() { postorder(root); } /** Postorder traversal from a subtree */ protected void postorder(TreeNode root) { if (root == null) return; postorder(root.left); postorder(root.right); System.out.print(root.element + " "); } @Override /** Preorder traversal from the root */ public void preorder() { preorder(root); } /** Preorder traversal from a subtree */ protected void preorder(TreeNode root) { if (root == null) return; System.out.print(root.element + " "); preorder(root.left); preorder(root.right); } /** This inner class is static, because it does not access any instance members defined in its outer class */ public static class TreeNode { protected E element; protected TreeNode left; protected TreeNode right; public TreeNode(E e) { element = e; } } @Override /** Get the number of nodes in the tree */ public int getSize() { return size; } /** Returns the root of the tree */ public TreeNode getRoot() { return root; } /** Returns a path from the root leading to the specified element */ public java.util.ArrayList> path(E e) { java.util.ArrayList> list = new java.util.ArrayList(); TreeNode current = root; // Start from the root while (current != null) { list.add(current); // Add the node to the list if (c.compare(e, current.element) < 0) { current = current.left; } else if (c.compare(e, current.element) > 0) { current = current.right; } else break; } return list; // Return an array list of nodes } @Override /** Delete an element from the binary tree. * Return true if the element is deleted successfully * Return false if the element is not in the tree */ public boolean delete(E e) { // Locate the node to be deleted and also locate its parent node TreeNode parent = null; TreeNode current = root; while (current != null) { if (c.compare(e, current.element) < 0) { parent = current; current = current.left; } else if (c.compare(e, current.element) > 0) { parent = current; current = current.right; } else break; // Element is in the tree pointed at by current } if (current == null) return false; // Element is not in the tree // Case 1: current has no left child if (current.left == null) { // Connect the parent with the right child of the current node if (parent == null) { root = current.right; } else { if (c.compare(e, parent.element) < 0) parent.left = current.right; else parent.right = current.right; } } else { // Case 2: The current node has a left child // Locate the rightmost node in the left subtree of // the current node and also its parent TreeNode parentOfRightMost = current; TreeNode rightMost = current.left; while (rightMost.right != null) { parentOfRightMost = rightMost; rightMost = rightMost.right; // Keep going to the right } // Replace the element in current by the element in rightMost current.element = rightMost.element; // Eliminate rightmost node if (parentOfRightMost.right == rightMost) parentOfRightMost.right = rightMost.left; else // Special case: parentOfRightMost == current parentOfRightMost.left = rightMost.left; } size--; // Reduce the size of the tree return true; // Element deleted successfully } @Override /** Obtain an iterator. Use inorder. */ public java.util.Iterator iterator() { return new InorderIterator(); } // Inner class InorderIterator private class InorderIterator implements java.util.Iterator { // Store the elements in a list private java.util.ArrayList list = new java.util.ArrayList(); private int current = 0; // Point to the current element in list public InorderIterator() { inorder(); // Traverse binary tree and store elements in list } /** Inorder traversal from the root*/ private void inorder() { inorder(root); } /** Inorder traversal from a subtree */ private void inorder(TreeNode root) { if (root == null) return; inorder(root.left); list.add(root.element); inorder(root.right); } @Override /** More elements for traversing? */ public boolean hasNext() { if (current < list.size()) return true; return false; } @Override /** Get the current element and move to the next */ public E next() { return list.get(current++); } @Override // Remove the element returned by the last next() public void remove() { if (current == 0) // next() has not been called yet throw new IllegalStateException(); delete(list.get(--current)); list.clear(); // Clear the list inorder(); // Rebuild the list } } @Override /** Remove all elements from the tree */ public void clear() { root = null; size = 0; }}// BEGIN REVEL SUBMISSIONclass BSTWithTestPerfect extends BST { /** Create a default BST with a natural order comparator */ public BSTWithTestPerfect() { super(); } /** Create a BST with a specified comparator */ public BSTWithTestPerfect(java.util.Comparator c) { super(c); } /** Create a binary tree from an array of objects */ public BSTWithTestPerfect(E[] objects) { super(objects); } /** * Returns the height of this binary tree. */ public int height() { return height(root); } private int height(TreeNode root) { // WRITE YOUR CODE HERE } /** Returns true if the tree is a perfect binary tree */ public boolean isPerfectBST() { // WRITE YOUR CODE HERE }}// END REVEL SUBMISSION

1 Solutions

See Answer
Java program help please! The volleyball coach at Verde Valley High School would like some help managing her team. She would like a program to help her identify the best players. She has team rosters stored in text files that contain the names of her players (first name, then last name separated by a space), and their stats as attacks per set (a double) followed by blocks per set (a double). Higher stat scores are better. Each data field is separated by a space. For example, one line in a roster file would look like: Gabrielle Reece 4.57 1.79 The coach would like the program to do the following: Present a menu with the following options: 1. Open a roster file 2. List all players 3. List top attackers 4. List top blockers 5. Add a player 6. Change a player's stats 7. Count players 8. Quit program When the user chooses 1 to open a roster file, then the program will ask for the filename of a roster file, then open and read the data from that file into an ArrayList. When the user chooses 2 to list all players, then the program will list the names and stats of all player players. When the user chooses 3 to list top attackers, then the program will determine and list the names and stats of the players with the top 2 attack stats. When the user chooses 4 to list top blockers, then the program will determine and list the names and stats of the players with the top 2 stats for blocks. When the user chooses 5 to add a player, then the program will prompt the user to enter the new player's name (first and last), attack stat (double), and block stat (double). The program should collect this information from the user, and then instantiate a new Player object with the given name and stats, and add that Player to the roster. When the user chooses 6 to change a player's stats, then the program will prompt the user to enter the player's name (first and last). If there is a player on the roster with the given name, then the program will collect the new attack stat score (double), and block stat score (double), and will update the stat values for this player. When the user chooses 7 to count players, then the program will display the number of players on the current roster. When the user chooses 8 the program will end. The Main class has already been designed and written for this program. Carefully review the code in the Main.java file and be sure that you understand how it works. Your task is to implement the Player and Roster classes. The Player class will allow us to instantiate Player objects that will store the important information (name, attack stat, block stat) for a player. The Roster class will allow us to create and manage a roster of players - we will use an ArrayList<Player> to store the Player objects. Part 1 - Implement the Player Class In a file named Player.java, implement the class described below. The Player class must have the following private instance variables: a variable named name that will store a String a variable named attackScore that will store a double a variable named blockScore that will store a double The Player class must have the following public constructor method: an overloaded constructor that takes three arguments. The first argument will be a String (player's name). The second (attack score) and third (block score) arguments will be type double. The Player class must have the following public methods: a method named getName. This accessor method will take no arguments. This method will return a String. a method named getAttackScore. This accessor method will take no arguments. This method will return a double. a method named setAttackScore. This mutator method will take one double argument. This method will not return anything. a method named getBlockScore. This accessor method will take no arguments. This method will return a double. a method named setBlockScore. This mutator method will take one double argument. This method will not return anything. a method named printInfo. This method will take no arguments. This method will not return anything. Other Details The overloaded constructor should initialize the object's name, attackScore and blockScore variables with the values passed in to the parameter variables. The getName accessor method should simply return the value stored in the object's name variable. The getAttackScore accessor method should simply return the value currently stored in the object's attackScore variable. The setAttackScore mutator method should store the value passed in as an argument in the object's attackScore variable. The getBlockScore accessor method should simply return the value currently stored in the object's blockScore variable. The setBlockScore mutator method should store the value passed in as an argument in the object's blockScore variable. The printInfo method should print out to the console, the name and stats for this player object. The printout should look like this: Rachael Adams (attack = 3.36, block = 1.93) Part 2 - Implement the Roster Class In a file named Roster.java, implement the class described below. The Roster class must have the following private instance variables: a variable named playerList that will store a reference to an ArrayList<Player> The Roster class must have the following public constructor methods: a default constructor an overloaded constructor that takes one argument. This argument will be a String. The Roster class must have the following public methods: a method named addPlayer. This method will take three arguments. The first argument will be a String (player's name). The second (attack score) and third (block sscore) arguments will be double. a method named getPlayerCount. This method will take no arguments. This method will return an int. a method named getPlayerByName. This method will take one String argument. This method will return a Player reference. a method named printTopAttackers. This method will take no arguments. This method will not return anything. a method named printTopBlockers. This method will take no arguments. This method will not return anything. a method named printAllPlayers. This method will take no arguments. This method will not return anything. Other Details The default constructor should instantiate a new ArrayList object, and store a reference to this object in the Roster's playerList instance variable. The overloaded constructor should instantiate a new ArrayList object, and store a reference to this object in the Roster's playerList instance variable. It should then open the roster file named in the parameter variable. It should then read in the data from this roster file and, for each line in the file, it should create (instantiate) a new Player object with the player name and block and attack scores on that line, and add this Player to the ArrayList playerList. The addPlayer method should instantiate a new Player object with the name and block and attack scores provided in the argument values, and then add this Player to the roster's ArrayList<Player> object. The getPlayerCount method should return the number of players currently stored in the roster's ArrayList<Player> object. The getPlayerByName method should iterate through the roster's ArrayList<Player> object and search for a player with a name that is equal to the argument value. If such a Player is found, then this method should return a reference to that Player object, otherwise this method should return null. The printTopBlockers method should determine the two Player objects with the best block scores (in descending order). It should then call the printInfo method on these Player objects. The printTopAttackers method should determine the two Player objects with the best attack stats (in descending order). It should then call the printInfo method on these Player objects. The printAllPlayers method should iterate through the roster's ArrayList<Player> object and call the printInfo method on each of these Player objects.

1 Solutions

See Answer
Exp19_Access_Ch05_CapAssessment - Paterson Credit Union 1.2 Description: You work as a database administrator at the Paterson Credit Union. You are modifying a database to add validation, lookup fields, and an input mask. You will also modify queries to take advantage of advanced functions and features.   Steps to Perform: Step Instructions Points Possible 1 Start Access. Open the file named Exp19_Access_Ch05_CapAssessment_Paterson_Credit_Union.accdb. Grader has automatically added your last name to the beginning of the filename. 0 2 You want to make sure that the customer account types are documented and stored correctly. To do this you will create a table that will list each account type. Use Design view to create a new table. Add AccountType as the first field name, with data type Short Text and field size 10. Ensure AccountType is set as the primary key. Save the table and name it AccountTypes. Add three records: Platinum, Silver, and Gold. Save and close the table. 4 3 Now, you wish to ensure that, when customers are added to your database, the phone number and account type must be entered. To do this you will set the PhoneNumber and AccountType fields as required fields. Open the Customers table in Design view. Set the PhoneNumber and AccountType fields to Required. Save and close the table. 6 4 Paterson Credit Union only offers loans with interest rates between 2.0% and 10.25%. To ensure that no loans are offered outside of those constraints you will add a validation rule that will not allow loans outside of that range to the InterestRate field in the Loans table. Open the Loans table in Design view. Establish a validation rule for the InterestRate field that requires the value to be greater than or equal to 2.0 but less than or equal to 10.25. Create validation text for the InterestRate: Value must be between 2 and 10.25 (no period). Save the table and switch to Datasheet view. Change the InterestRate in the first record to 1.9. The validation text appears. Press ESC to restore the original value. Close the Loans table. 8 5 You’ve made the PhoneNumber field required in the Customers table, but now you want to ensure that phone numbers are entered in a specific format. To do this you will add an input mask to the PhoneNumber field in the Customers table. Open the Customers table in Design view. Add a phone number input mask for the PhoneNumber field, storing the symbols with the data. 16 6 You would like to easily add the account type for each customer without typing anything on your keyboard. To do this you will turn the AccountType field into a Lookup Wizard using the AccountTypes table, that you recently created, as the source. Change the Data Type of the AccountType field to Lookup Wizard. Use the AccountTypes table for the values in the lookup field, select the AccountType field from the table, accept the default sort, accept default column widths, and then accept the default name AccountType. Save the table. Switch to Datasheet view. 8 7 Change the account type to Platinum in the first record. Close the table. 2 8 For ease of use, you would like for users to be able to indicate the minimum loan amount on which they would like to pull loan information. You will do this by adding a parameter criterion to the LoanAmount field in the Customer Loans Parameter query. Open the Customer Loans Parameter query in Design view. Add criteria for the Amount field. The user should be prompted to Enter Minimum Loan Amount (no period). The query should display all records that have a loan Amount that is greater than or equal to the value entered as the parameter. Run the query. Enter 250000 when prompted to Enter Minimum Loan Amount. You should have five results. Ensure that the query results display a total at the bottom of the Date column, and an average at the bottom of the Amount column. Save and close the query. 16 9 You have noticed that a few of your customers are missing address information. You would like to address this by creating a query that returns only the customers that are missing addresses so that you can update that information. You will complete this by adding a field that indicates whether an address is missing then adding criteria to that field so that only customers with missing addresses are returned. Open the Missing Addresses query in Design view. Add a new column to determine if a customer does not have an address on file. If the customer’s Address is null, it should display Missing. If not, it should display nothing. Name the column AddressPresent. Add criteria of Missing to the column you just created, so only the customers missing an address display. Move the AddressPresent field so it appears between PhoneNumber and Address. Run the query. Ensure only customers with null Address fields display. Save and close the query. 10 10 For simplicity, you are now interested in rounding the interest rates for each loan to the nearest whole number. To do so, you will utilize the Round function in the Loans by Interest Rate query. Open the Loans By Interest Rate query in Design view. Create a new column to round the InterestRate of each Loan to the nearest whole number. Name the field RoundedRate. Run the query and verify the RoundedRate column displays whole numbers. Save and close the query. 10 11 Seeing what the total and average payments month over month are is important to your operation. To display this information, you will use the DatePart function to extract the month from the PaymentDate field then ensure that the query is grouped by month. Open the Payment By Month query in Design view. Change the first column so that instead of grouping by the payment date, you group by the month. Use the DatePart function to extract the month from the date. Name the column MonthNumber. Group by the MonthNumber field and display the Sum of the first Total field and the Average of the Average field. Run the query. The first line should read 2 (as the month, representing February), with a total of $5,246.51 as the total payments received and $1,311.63 as the average payment amount. Ensure that the query results display a total at the bottom of the Total column, and an average at the bottom of the Average column. Save and close the query. 10 12 Finally, you would like to classify the various loans as either high or low priority for the Credit Union. To do this you will add a column that determines whether the interest rate for a loan is greater than or equal to 7.9%, as that is what is considered high priority. Open the Refinance Candidates query in Design view. This query displays all adjustable loans in the database. Create a new column to display High Priority for all loans that have an InterestRate of 7.9% or more, and Low Priority otherwise. Name the field Priority. Run the query. Notice customers with the highest interest rate values show a higher priority. Save and close the query. 10 13 Save the database. Close the database, and then exit Access. Submit the database as directed. 0

1 Solutions

See Answer