CS计算机代考程序代写 python database algorithm Assessment Type

Assessment Type
Individual assignment (no group work).
Submit online via Canvas/Assignments/Assignment 1.
Marks are awarded per rubric (please see the rubric on Canvas). Clarifications/updates may be made via announcements.
Questions can be raised via the lectorial, practical sessions or Canvas discussion forum. Note the Canvas discussion forum is preferable.
Due Date
End of Week 6 (exact time is shown in Canvas/Assignments/Assignment 1) Deadline will not be advanced, but they may be extended. Please check Canvas/Assignments/Assignment 1 for the most up to date information regarding the assignment.
As this is a major assignment, a university standard late penalty of 10% per each day applies for up to 5 days late, unless special consideration has been granted.
1. Overview
2. Assessment Criteria
RMIT Classification: Trusted
Programming Fundamentals (COSC2531) Assignment 1
Weighting 20 marks out of 100
The objective of this assignment is to develop your programming and problem-solving skills in a step-by-step manner. The different stages of this assignment are designed to gradually introduce different basic programming concepts.
You should develop this assignment in an iterative fashion (as opposed to completing it in one sitting). You can and should get started now (when this assignment specification is posted on Canvas) as there are concepts from previous lessons that you can employ to do this assignment.
If there are questions, you can ask via the lectorial, practical sessions or the Canvas discussion forum (Canvas/Discussions/Discussion on Assessment 1). Note that the Canvas discussion forum is preferable as it allows other students to see your questions as well. Also, you should ask questions in a general manner, for example, you should replicate your problem in a different context in isolation before posting, and you must not post your code on the Canvas discussion forum.
This assignment will determine your ability to:
i. Follow coding, convention and behavioural requirements provided in this document and in the course lessons;
ii. Independently solve a problem by using programming concepts taught over the first several weeks of the course;
iii. Write and debug Python code independently;
Page 1 of 10

3. Learning Outcomes
4. Assessment Details
agency which delivers bus services from Melbourne to other destinations in Australia. The agents from the travel agency are the ones that use this system to book trips for customers. You are required to implement the program following the below requirements.
Problem Overview: In this assignment, you are developing a bus booking system for a travel
RMIT Classification: Trusted
iv. Document code;
v. Provide references where due;
vi. Meet deadlines;
vii. Seek clarification from your “supervisor” (instructor) when needed via the Canvas discussion
forums; and
viii. Create a program by recalling concepts taught in class, understand and apply concepts
relevant to solution, analyse components of the problem, evaluate different approaches.
This assignment is relevant to the following Learning Outcomes:
1. Analyse simple computing problems.
2. Devise suitable algorithmic solutions and code these algorithmic solutions in a computer
programming language.
3. Develop maintainable and reusable solutions.
Specifically, upon the completion of this assignment, you will be able to:
• Demonstrate knowledge of basic concepts, syntax and control structures in programming
• Devise solutions for simple computing problems under specific requirements
• Encode the devised solutions into computer programs and test the programs on a computer
• Demonstrate understanding of standard coding conventions and ethical considerations in
programming
Please ensure that you have read Sections 1-3 of this document before going further.
Requirements: Your code must meet the following functionalities, code and documentation requirements. Your submission will be graded based on the rubric published on Canvas. Please ensure you read all the requirements and the rubric carefully before working on your assignment.
A – Functionalities Requirements:
There are 3 parts, please ensure you only attempt one part after completing the previous part.
—————————————————- PART 1 ——————————————————-
In this part, your program can perform some simple interactions with users (i.e. the travel agents):
1. Display a message asking the user to enter the name of the customer.
2. Display a message asking the user to enter the destination the customer chooses. You can
assume the destination to be entered is always a valid destination.
3. Display a message asking the number of tickets the customer books for the destination that
was entered earlier. You can assume the quantity to be entered is always a positive integer, e.g. 1, 2, 3 …
Page 2 of 10

RMIT Classification: Trusted
4. Calculate the total cost for the customer including the discount (see No. 5 below).
5. For customers with membership, 5% discount will apply. No discount for customers without
membership.
6. The total cost will be displayed as a formatted message to the user, e.g.
books tickets to . gets a discount of %. Unit price: (AUD)
Total price: (AUD)
7. In the program, you should have some lists (or dictionaries or other data types) to store the names of all customers, the names of customers with membership, the available destinations, the prices corresponding to those destinations. You can assume the customer names and the destinations are all unique and case sensitive.
8. When a new customer books a trip, add the customer name to the customer list. Also, when any customer books a trip, check if they have a membership; if they currently don’t have a membership, display a message asking if they want to have a membership. If yes, then add the customer name to the customers with membership list. The discount is applied immediately after the customer is added to the customers with membership list. You can assume the answer entered is always either y or n (meaning yes or no, respectively).
9. Note: in the requirements No. 7 & 8, we use the term ‘list’ when describing the customer list, customer with membership list, etc. But you can use other data types to store this information such as dictionaries and other data types. Make sure you think and analyse the requirements in detail so that you can choose the most appropriate/suitable data types.
————— PART 2 (Please do not attempt this part before completing PART 1) —————-
In this part, your program can: (a) perform some additional requirements compared to PART 1, and (b) be operated using a menu.
First, compared to the requirements in PART 1, now your program can:
1. Display an error message if the destination entered by the user does not exist in the destination list. When this error occurs, the user will be given another chance, until a valid destination is entered.
2. Display an error message if the ticket quantity is 0, negative or not an integer. When this error occurs, the user will be given another chance, until a valid positive integer quantity is entered.
3. Display an error message if the answer by the user is not y or n when asking if the customer wants a membership. When this error occurs, the user will be given another chance, until a valid answer (i.e. y, n) is entered.
Second, your program will be operated using a menu. A menu-driven program is a computer program in which options are offered to the users via the menu. Your program will have the following options: book a new trip, add a new destination, display all existing customers, display all customers with membership, display all valid destinations with their prices, exit the program. Below are the specifications of the options:
1. Book a new trip: this option includes all the requirements from 1 to 8 in PART 1 and the requirements 1 to 3 in the first part of PART 2.
2. Add a new destination: this option displays a message asking user to add a new destination, and another message asking user to enter the price of the added destination. User can add multiple destinations (and their prices) in a sequential manner. That is, after adding one new
Page 3 of 10

Unit price:
Extra service price: Total price: (AUD) (AUD) (AUD)
RMIT Classification: Trusted
destination and its price, the user will be asked if they want to add another destination. Besides, if the destination already exists in the current destination list, the user will be given another chance, until a new destination is entered. You can assume the price entered is always a valid number. If the price is negative or 0, then display a message asking user to enter again until the price is positive.
3. Display all existing customers: this option displays the names of all existing customers on screen.
4. Display all customers with membership: this option displays the names of all customers with membership on screen.
5. Display all valid destinations: this option displays all the destinations on screen, with their prices.
6. Exit the program: this option allows users to exit the program.
Note that in your program, when a task (option) is accomplished, the menu will appear again for the
next task.
—————- PART 3 (Please do not attempt this part before completing PART 2) —————-
In this part, your menu program is equipped with some advanced features. Note, some features maybe challenging.
1. In the Book a new trip option: now the program will also display a message asking if customer wants to order extra service (apart from the bus tickets). If yes, display a message asking which extra service customer wants to order. The available extra services are internet, snack, drink. Their corresponding prices are 0, 10, 5 respectively. Customer can only order one extra service. Note that:
a. The total price is the tickets price and the extra service price.
b. The 5% discount is only applied to the tickets price.
c. Only customers with membership can order free extra service (i.e. services with price
of 0).
d. Display an error message if the answer by the user is not y or n when asking if
customer wants to order extra service. When this error occurs, the user will be given
another chance, until a valid answer (i.e. y, n) is entered.
e. Modify the cost formatted message (in PART 1) to be as follows.
books tickets to . gets a discount of %.
2. The menu now has an option to reveal the most valuable customer. That is the customer with maximum total money spent to date. If there are multiple customers with the same maximum money spent, you just need to display one customer.
3. The menu also has an option to display the customer order history. The option will display a message asking user to enter the name of the customer, and the program will display all the previous orders of that customer, including the destinations they book and the corresponding number of tickets. For example, if a customer named James booked 10 tickets to Sydney, 1 ticket to Adelaide, 4 tickets to Sydney, 5 tickets to Canberra previously, then the program will display the formatted message as follows.
This is the order history of James. Destination Number of tickets
Page 4 of 10

RMIT Classification: Trusted
Sydney: 10 Adelaide: 1 Sydney: 4 Brisbane: 5
Note that for this option, if the user enters non-existing customer, then your program needs to give the user another chance, until an existing customer is entered.
B – Code Requirements:
The program must be entirely in one Python file named ProgFunA1_.py. For example, if your student ID is s1234567, then the Python file must be named as ProgFunA1_s1234567.py. Other names will not be accepted.
Your code needs to be formatted consistently. You must not include any unused/irrelevant code (even inside the comments). What you submitted must be considered as the final product.
You should use appropriate data types and handle user inputs properly. You must not have any redundant parts in your code.
You must demonstrate your ability to program in Python by yourself, i.e. you should not attempt to use external special Python packages/libraries/classes that can do most of the coding for you. The only external Python library allowed in this assignment is the sys module.
Note that in places where this specification may not tell you how exactly you should implement a certain feature, you need to use your judgment to choose and apply the most appropriate concepts from our course materials. You should follow answers given by your “client” (or “supervisor” or the teaching team) under Canvas/Discussions/Discussion on Assessment 1.
C – Documentation Requirements:
You are required to write comments (documentation) as a part of your code. Writing documentation is a good habit in professional programming. It is particularly useful if the documentation is next to the code segment that it refers to. NOTE that you don’t need to write an essay, i.e. you should keep the documentation succinct.
Your comments (documentation) should be in the same Python file, before the code blocks (e.g. functions/methods, loops, if, etc.) and important variable declarations that the comments refer to. Please DO NOT write a separate file for comments (documentation).
The comments (documentation) in this assignment should serve the following purposes:
• Explain your code in a precise but succinct manner. It should include a brief analysis of your approaches instead of simply translating the Python code to English. For example, you can comment on why you introduce a particular function/method, why you choose to use a while loop instead of other loops, why you choose a particular data type to store the data information.
• Document any problems of your code and requirements that you have not met, e.g. the situations that might cause the program to crash or behave abnormally, the requirements your program do not satisfy. Note that you do not need to handle or address errors that are not covered in the course material yet.
Page 5 of 10

5. Example Program
RMIT Classification: Trusted
• Document some analysis/discussion/reflection as a part of your code, e.g. how your code could be improved if you have more time, which part you find most challenging, etc.
D – Rubric:
Overall:
Part
Part 1
Part 2
Part 3
Others (code quality, modularity, comments)
Points
6 6 5 3
More details of the rubric of this assignment can be found on
look at the rubric to understand how the assignment will be graded.
We demonstrate a sample program that satisfies the requirements specified in Section 4. Note that this is just an example, so it is okay if your program looks slightly different, but you need to make sure that your program satisfies the requirements listed in Section 4.
5.1. PART 1
As an example, this is how the output screen of our sample program looks like for PART 1. In this example, the customer has the name Huong, destination Sydney, number of tickets 2, no existing membership and then choose y (yes) for the membership registration option. Note that in this sample program, we use the values Huong, Adelaide, Brisbane, Sydney, 1, 2, 3, etc as examples only. In your program, you can, and you should use different values.
5.2. PART 2
As an example, this is how the output screen of our sample program looks like for a menu with all the options described in PART 2.
Canvas (here). Students are required to
Page 6 of 10

RMIT Classification: Trusted
When the user (an agent at the travel agency) enters an option, the corresponding functionality will appear. For example, if the user chooses option 1, which is to book a new trip, then the output screen of our sample program is as follows.
Other requirements in PART 2 (add a new destination, modify the price of a destination, etc.) can also be displayed in a similar manner.
5.2. Part 3
As an example, this is how the output screen of our sample program looks like for a menu with all the options described in PART 3.
Page 7 of 10

4. Submission
RMIT Classification: Trusted
And this is an example showing the output screen of our sample program when we select option 7, which is to display a customer order history. Other options can also be displayed in a similar manner.
As mentioned in the Code Requirements, you must submit only one file named ProgFunA1_.py via Canvas/Assignments/Assignment 1. It is your responsibility to correctly submit your file. Please verify that your submission is correctly submitted by downloading what you have submitted to see if the file includes the correct contents. The final .py file submitted is the one that will be marked.
Late Submission
All assignments will be marked as if submitted on time. Late submissions of assignments without special consideration or extension will be automatically penalised at a rate of 10% of the total marks available per day (or part of a day) late. For example, if an assignment is worth 20 marks and it is submitted 1 day late, a penalty of 10% or 2 marks will apply. This will be deducted from the assessed mark. Assignments will not be accepted if more than five days late, unless special consideration or an extension of time has been approved.
Page 8 of 10

5. Referencing Guidelines
6. Academic Integrity and Plagiarism (Standard Warning)
7. Assessment Declaration:
RMIT Classification: Trusted
Special Consideration
If you are applying for extensions for your assessment within five working days after the original assessment date or due date has passed, or if you are seeking extension for more than seven days, you will have to apply for Special Consideration, unless there are special instructions on your Equitable Learning Plan.
In most cases you can apply for special consideration online here. For more information on special consideration, visit the university website on special consideration here.
What: This is an individual assignment, and all submitted contents must be your own. If you have used sources of information other than the contents directly under Canvas/Modules, you must give acknowledgement of the sources, and give references using the IEEE referencing format.
Where: You can add a code comment near the work (e.g. code block) to be referenced and include the detailed reference in the IEEE style.
How: To generate a valid IEEE style reference, please use the citethisforme tool if you’re unfamiliar with this style.
Academic integrity is about honest presentation of your academic work. It means acknowledging the work of others whilst developing your own insights, knowledge and ideas. You should take extreme care that you have:
• Acknowledged words, data, diagrams, models, frameworks and/or ideas of others you have quoted (i.e. directly copied), summarized, paraphrased, discussed or mentioned in your assessment through the appropriate referencing methods.
• Provided a reference list of the publication details so your readers can locate the source if necessary. This includes material taken from the internet sites.
If you do not acknowledge the sources of your material, you may be accused of plagiarism because you have passed off the work and ideas of another person without appropriate referencing, as if they were your own.
RMIT University treats plagiarism as a very serious offence constituting misconduct. Plagiarism covers a variety of inappropriate behaviors, including:
• Failure to properly document a source
• Copyright material from the internet of databases
• Collusion between students
For further information on our policies and procedures, please refer to the University website (link).
When you submit work electronically, you agree to the assessment declaration:
Page 9 of 10

RMIT Classification: Trusted
https://www.rmit.edu.au/students/student-essentials/assessment-and-results/how-to-submit-your- assessments
Page 10 of 10