data编程代写、代做Python程序语言
Program Design in Python Final Project
Last Updated: Jan 2025
Version: 1.0
Abstract:
This document provides an overview of the final project, including its objectives, scope, and key deliverables. Students are required to demonstrates their
understanding of the project requirements and their ability to apply their knowledge and skills in Python programming to solve a real-world Administration of
Customer Service problem.
Program Design in Python Final Project
1. Key Information
2. Context Information
3. lmplementation Instructions
3.1 The Investor Application
3.2. Extracting Property Information
3.3. Currency Exchange
3.4. Suburb Property Summary
3.5. Average Land Size
3.6. Property Value Distribution
3.7. Sales Trend
3.8. Identifying a Property of a Specific Price in a Suburb
4. Important Notes
5. Submission Requirements
6. Marking Guide
Contact Information:
Email: chiliu@cityu.edu.mo (DO NOT sumbit assignments to this email address)
1. Key Information
Mode Description
Purpose
This assignment will develop your skills in designing, constructing, and documenting a small Python program according to specific
programming standards. This assessment is related to (part of) the following learning outcomes: Investigate useful Python
packages for scientific computing and data analysis; Experiment with data manipulation, analysis, and visualisation techniques to
formulate business insight.
Your task
This assignment is an individual task where you will write Python code for a simple application whereby you will be developing a
property investment management system as per the specification.
Value 50% of your total marks for the unit.
Due Date Sunday, 19 Jan 2025, 23:59
Submission Via TronClass System.
Administration of Customer ServiceMode Description
Assessment
Criteria
The following aspects will be assessed: 1. Program functionality in accordance to the requirements; 2. Code Architecture and
Adherence to Python coding standards; 3. The comprehensiveness of documented code and test strategy
Submission Via TronClass System.
Late Penalties Submissions after the due date will receive a mark of ZERO (0) without any argument acceptable.
2. Context Information
You are working as a developer in a property investment company located in Melbourne, Australia. Your company is providing services for customers from
all over the world to invest in properties in Melbourne. As your company grows, the management team has discovered that some of the administrative
tasks are time-consuming and repetitive. Therefore, as the only developer in this company, your task here is to automate some of these administrative
tasks. To test your implemented functionalities, you are provided a CSV file which contains information about the properties sold in some suburbs from
2010 to 2023.
3. lmplementation Instructions
Your implementation must include a text interface (a text interface is the least requirement) with functionalities detailed below. Your program will be
evaluated based on its clarity, including the provision of clear information and error messages. Your program should handle exceptions properly and handle
unexpected cases wherever necessary. The validation of data types and values should be done within each functionality.
To ensure that your code can be properly evaluated by the teaching team:
1. Please ensure that your implemented methods use the same names and method signatures (i.e., number and type of input arguments and the type of
the return value) as required.
2. Please ensure that your code is properly formatted, such as proper variable naming conventions, consistent indentations, proper line length, etc.
3. Please ensure that you provide clear and coherent comments on your code to aid with the graders' interpretation of your code.
4. For more details regarding formatting and commenting, see the PEP 8 Style Guideline.
3.1 The Investor Application
You are required to use object-oriented programming to implement the text interface and the following functionalities described from 3.2 to 3.8, which
allows users to select and perform certain operations. You should determine the proper number of classes needed instead of including all the
methods in one class (for example, you may create a class 1) SimpleDataAnalyser to deal with the loading of data as well as the simple analyses;
2) DataVisualiser to deal with the visualisations; and 3) Investor to display a menu, ask for and process user inputs, etc.). Please make sure to
create a main.py file to run your implemented text interface. You should also provide an instruction file in PDF format, which is no more than two pages in
length, to describe the usage of the interface. For each functionality from 3.2 to 3.8, we list a core method as shown below. Note that for these core
methods described below, you should use the same method name and include the same method parameter. The only permitted modification is
to add the self keyword to the methods.
3.2. Extracting Property Information
The extract_property_info(file_path) method is responsible for reading the property information from the data file located at the specified file_path .
This method returns a dataframe.
3.3. Currency Exchange
Since many of the customers are from different countries, the currency_exchange(dataframe, exchange_rate) method is responsible for transforming the
property prices in Australian dollars into the target currency according to the exchange rate. The variable dataframe is the one returned in 3.1, and the
data type of exchange_rate is float. This method returns a NumPy array of transformed prices.
3.4. Suburb Property Summary
The purpose of this method is to display the summary of the properties with respect to the number of bedrooms, number of bathrooms, and number of
parking spaces for a given suburb. Your task is to write a method suburb_summary(dataframe, suburb) where dataframe is the one returned by the method
described in 3.1, and suburb is the target suburb to be analysed. Here, if the value of suburb is "all", the method should display the summary from allthe suburbs. If the value of suburb does not exist in the dataframe , an error message should be displayed. The summary should at least include the mean
values, standard deviation, median, minimum, and maximum. This method does not have a return value.
3.5. Average Land Size
Your task here is to implement the method avg_land_size(dataframe, suburb) where dataframe is the one returned by the method described in 3.1, and
suburb is the target suburb to be analysed (or all suburbs if the value of suburb is "all"). This method calculates and returns the average land size in m² of
properties in the suburb (or None if the area does not exist). Note that the invalid land size values should be excluded and the units must be in square
meters for some properties.
3.6. Property Value Distribution
Here, you will be visualising the property values as a histogram so as to easily present to the customers. You are provided a dictionary of key-value pairs
where the keys are the names of the currency and the values are their exchange rates to Australian dollars, which you can use as a local variable within
this method:
currency_dict = { "AUD": 1, "USD": 0.66, "INR": 54.25, "CNY": 4.72, "JPY": 93.87, "HKD": 5.12, "KRW": 860.92, "GBP": 0.51, "EUR": 0.60, "SGD": 0.88
Your task is to write a method prop_val_distribution(dataframe, suburb, target_currency) which:
Takes the following parameters:
A dataframe
A suburb value
A target currency (whose default value is "AUD")
Converts the property value into the target currency if the currency is in the currency_dict . In cases where the target currency does not exist in the
currency_dict , the program needs to inform the user and generate the histogram in AUD.
Produces a graphical representation (i.e., a histogram) of the property value distribution of the specified suburb (or all suburbs if the value of suburb is
"all") based on the converted property values and saves the graphical representation as a file.
In cases where the target suburb does not exist in the dataframe , the program should inform the user and generate the histogram with all suburbs
and save the graph as a file.
Note that the records with missing price values should be excluded.
You will need to invoke methods implemented in previous steps. This method does not have a return value.
3.7. Sales Trend
Here, you will need to calculate the number of properties sold in each year and visualise the results as a line chart so that a sales trend can be easily
observed. The line chart should be saved as an image file locally.
Your task is to implement the method sales_trend(dataframe) where dataframe is the one returned by the method described in 3.1. The method does not
have a return value.
3.8. Identifying a Property of a Specific Price in a Suburb
Your task here is to implement the locate_price(target_price, data, target_suburb) method to find out if a specific target_price value is in the list of
prices from a specific suburb . In the variable data is a dataframe loaded by a previous method. You should filter the data according to the variable
target_suburb to get the list of prices for the properties in the target_suburb . The variable target_price is a numeric value. This method first sorts the
list of prices using a reverse insertion sort (i.e., an insertion sort algorithm that sorts the list in descending order). Then this method searches for the
target_price value within the reversely sorted list of prices using recursive binary search. A boolean value of True or False will be returned by this
method to indicate if the target_price value can be found in the list of prices filtered for the target_suburb .
4. Important Notes
If any exceptions/errors happen when running your program and are not properly handled, you will lose 50% of the functionality where the
exceptions/errors occur. For example, if the total mark of one functionality is 10 marks and any exception happens when running this functionality
which causes the program to terminate, then the maximum mark you can get is 5 instead of 10.
Add correct validation and output messages to make your code more user-friendly to users.
For each function listed in 3.2 to 3.8, add code to test each functionality and also the expected behaviour. The test code should be placed in the
main.py file as comments. For example, if you have created a class named DataExtractor where extract_property_info(file_path) is an instance
method:de = DataExtractor()
df = de.extract_property_info("property_information.csv")
len(df)
# this should output 118771
This is an individual assignment and must be completed on your own. You must attribute the source of any part of your code that you have not written
yourself.
The assignment must be done using PyCharm or VSCode, Python >= 3.10.
The Python code for this assignment must be implemented according to the PEP 8-Style Guide for Python Code.
The allowed libraries are OS , NumPy , Pandas , Matplotlib , Scikit-learn , and SciPy . You will receive penalties if you use any other libraries. If you
are implementing unit tests, you are allowed to use unittest .
Commenting on your code is an essential part of the assessment criteria. In addition to inline and function commenting on your code, you should
include comments/markdowns at the beginning of your program file which specify your full name, student ID, the creation date, and the last modified
date of the program, as well as a high-level description of the program.
Please be careful to ensure you do not publicly post anything which includes your reasoning, logic or any part of your work to this forum. This includes
posting your query to the forum and inviting other students to raise questions that may reveal your reasoning or solution.
5. Submission Requirements
The assignment must be submitted by Sunday, 19 Jan 2025, 23:59.
The following files are to be submitted on TronClass:
The .py files that you created to implement your assignment (i.e., code and documentation). Note that you should properly name these files to make
sure their usage is self-explanatory.
An instruction file that explains the detailed design, usage and use cases of the program. Name the file [StudentNameInChinese]_report.pdf . The
instruction file should be coherent,concise and illustrated, and should not be more than 5 pages in length.
The above files must be compressed to a .zip file named [StudentNameInChinese]_final_project.zip and submitted via TronClass.
No submissions will be accepted via email.
It is your responsibility to ENSURE that the submitted files are the correct files. We strongly recommend after uploading a submission that you check
its contents.
There are no restrictions on creating extra functions. DO NOT create redundant functions/methods.
Marks will be deducted for any of these requirements that are not strictly complied with.
6. Marking Guide
Your work will be marked as per the following:
Method Functionalities - 75 Marks
Extracting Property Information - 2 Mark
Currency Exchange - 6 Marks
Suburb Property Summary - 10 Marks
Average Land Size - 10 Marks
Property Value Distribution - 18 Marks
Sales Trend - 15 Marks
Identifying Price Value - 14 Marks
OOP Implementation and Main Logic - 25 Marks
Proper design of classes
Clear usage manual
Clear instructional messages
Good alignment to PEP 8 style
Detailed test codes
Good program logic
Penalty - up to 20 marks
Missing requirements listed in Section 4. Do and DO NOT and section 5. Submission Requirements.
Total: 100 marks, recorded as a grade out of 50

热门主题

课程名

mktg2509 csci 2600 38170 lng302 csse3010 phas3226 77938 arch1162 engn4536/engn6536 acx5903 comp151101 phl245 cse12 comp9312 stat3016/6016 phas0038 comp2140 6qqmb312 xjco3011 rest0005 ematm0051 5qqmn219 lubs5062m eee8155 cege0100 eap033 artd1109 mat246 etc3430 ecmm462 mis102 inft6800 ddes9903 comp6521 comp9517 comp3331/9331 comp4337 comp6008 comp9414 bu.231.790.81 man00150m csb352h math1041 eengm4100 isys1002 08 6057cem mktg3504 mthm036 mtrx1701 mth3241 eeee3086 cmp-7038b cmp-7000a ints4010 econ2151 infs5710 fins5516 fin3309 fins5510 gsoe9340 math2007 math2036 soee5010 mark3088 infs3605 elec9714 comp2271 ma214 comp2211 infs3604 600426 sit254 acct3091 bbt405 msin0116 com107/com113 mark5826 sit120 comp9021 eco2101 eeen40700 cs253 ece3114 ecmm447 chns3000 math377 itd102 comp9444 comp(2041|9044) econ0060 econ7230 mgt001371 ecs-323 cs6250 mgdi60012 mdia2012 comm221001 comm5000 ma1008 engl642 econ241 com333 math367 mis201 nbs-7041x meek16104 econ2003 comm1190 mbas902 comp-1027 dpst1091 comp7315 eppd1033 m06 ee3025 msci231 bb113/bbs1063 fc709 comp3425 comp9417 econ42915 cb9101 math1102e chme0017 fc307 mkt60104 5522usst litr1-uc6201.200 ee1102 cosc2803 math39512 omp9727 int2067/int5051 bsb151 mgt253 fc021 babs2202 mis2002s phya21 18-213 cege0012 mdia1002 math38032 mech5125 07 cisc102 mgx3110 cs240 11175 fin3020s eco3420 ictten622 comp9727 cpt111 de114102d mgm320h5s bafi1019 math21112 efim20036 mn-3503 fins5568 110.807 bcpm000028 info6030 bma0092 bcpm0054 math20212 ce335 cs365 cenv6141 ftec5580 math2010 ec3450 comm1170 ecmt1010 csci-ua.0480-003 econ12-200 ib3960 ectb60h3f cs247—assignment tk3163 ics3u ib3j80 comp20008 comp9334 eppd1063 acct2343 cct109 isys1055/3412 math350-real math2014 eec180 stat141b econ2101 msinm014/msing014/msing014b fit2004 comp643 bu1002 cm2030
联系我们
EMail: 99515681@qq.com
QQ: 99515681
留学生作业帮-留学生的知心伴侣!
工作时间:08:00-21:00
python代写
微信客服:codinghelp
站长地图