CS计算机代考程序代写 gui CIS 425 Assignment 2
CIS 425 Assignment 2
Ordering food from a Kiosk
Due Monday March 15 at midnight.
I’ll post instructions for submitting the homework soon.
For this assignment you will create a tool for ordering food. As the customer makes decisions, the food will be placed on a plate. You will be building a GUI interface.
I DO NOT want you looking up how to write code for a GUI. I want you to develop it yourself, using the tools we have.
There will be two windows: one the place order window (GUI) and the other a show food window showing the food on the plate.
The place order window will have radio buttons for various main courses of your choice. At the beginning, no main course is selected. The radio buttons should behave like radio buttons, be circles, filled in with a disc when selected. Once a choice has been made, exactly one radio button can be selected at any time, and when you click on one, the previous one’s circle goes blank. (Hint: for clicking the radio button, count any click in the surrounding square OR check the distance from the center of the circle.)
The place order window will have checkboxes for optional items: again, you choose which ones to offer. When a checkbox is checked, that item will be added to the plate.
The checkboxes should behave like checkboxes – when clicked an X should appear in the box, and the item should appear on the plate. When clicked again, the X should disappear and the item should be removed from the plate.
All clicks in the GUI should be done with the left mouse button.
The show food window should display the selected food items. As choices in the GUI window change, what we see in the show food window should change.
Clicking (anywhere) in the show food window and dragging the mouse should move the main course left or right on the plate. (Hmm – make sure it doesn’t fall off the plate!) It should stay put once the mouse is released. A popup menu (right mouse button activated) over the show food window will have submenus to: select a shape for the plate, rotate the plate and all the food on it around its center, change the size of the main course, …
You might want an option to slice off a piece of the pickle or carrot or apple, using a clipping pane. A slider in the control window could be used to control the size of the plate, or….
You should have keyboard commands that do the same things as clicking on the place order window. For example, clicking C for corned beef. It should make the disc inside the circle appear and the corned beef sandwich appear on the plate, just as clicking the circle would. It should also deselect whatever was previously selected and remove that food from the plate. I recommend you get the keyboard versions working early, in case you have problems with the place order window.
What you need to have:
• Two windows: a place order window and a show food window.
• Check boxes with the options to be displayed. They must behave like checkboxes.
• Labels for the check boxes
• Radio buttons for the main dishes. They must behave like radio buttons.
• Labels for the radio buttons
• A plate with appropriate food displayed in the show food window.
• Dragging the mouse should move the main course.
• A menu in the show food window with submenues that change the shape of the plate, rotate the plate, change the size of the main course. (Use rotation, translation and scaling.)
• Some of the items on the plate should be 3D glut primitives, rendered in wire mode.
• Thought should be given as to which items are on top of which. There must be some depth testing using the depth buffer.
• Keyboard commands that do the same things as your GUIs.
Some other things you might try: You may make your items more or less complex. You might use clipping planes to display a wedge of apple. You may decide no one should get mustard with peanut butter, so mustard will be greyed out and unselectable when the peanut butter is selected. You may want to have a slider in the place order window that gradually changes the size of the plate. A good challenge is to have the GUI buttons still work properly after the place order window is resized. Lots of opportunities to play.