Python代写 | CP1404/CP1804 Assignment Travel Tracker

使用Python 3和Kivy工具包创建类似于第一次Assignment的控制台程序和图形用户界面(GUI)程序的Python代写

CP1404/CP1804 2019 SP1 – Assignment 2

Travel Tracker 2.0 (Complete)

Create both a console program and a Graphical User Interface (GUI) program similar to your first assignment, using Python 3 and the Kivy toolkit, as described in the following information and accompanying screencast video. This assignment will help you build skills using classes and GUIs as well as giving you more practice using techniques like selection, repetition, exceptions, lists, dictionaries, file I/O and functions. Some requirements have in-text help references, like [0], that refer to the resources list near the bottom of this document. Please check these references to find help on that topic. Everything you need to complete this assignment can be found in the subject materials.

Start your work by clicking this link to create a new repository in GitHub classroom:

Do not use any other repo or a copy of this one… just use this actual repository!
This will give you a new repo containing starter code files and a README for your project reflection, all of which you must use. Do not add any other files in this project, and do not rename anything – just use this as your assignment repo. Do not “download” this repo, but rather checkout this repo using PyCharm.

The most important learning outcome of this assignment is to be able to use classes to create reusable data types that simplify and modularise your programs. The fact that you can use these classes in both console and GUI programs highlights this modularity. It is important that you create these classes first – before any code that requires them. This is good coding practice. You should write and then test each method of each class – one at a time – committing as you go (e.g. you might commit each time you complete a method and its tests).

We will assess your Git commit history to see (and mark) that you do these in an appropriate order, so make sure you write your classes, with tests, then the console program, before attempting any functionality for the GUI.

The starter code includes two files ( and with incomplete code for testing your classes. Complete these files with simple tests, that you write as you develop your Place and PlaceCollection classes. Do not change the existing tests… write code that makes these tests pass. You may use things like assert and doctest as shown in lectures [1], or just very simple tests that print the results of calling the methods you are testing [2].

Once you have written and tested your classes, you can then use the Place class in your console program.

Do not store any additional attributes in this class. (E.g. you don’t need to store the number of places because this information is easily derived from what you do store.)

Remember to test your classes before moving on to using them in the following programs.

Console Program:

After you have written and tested your classes, rewrite your first assignment to make use of your new Place class. Optionally, you may also use the PlaceCollection class in your console program. Start by copying the code from your first assignment into the existing file. In the first assignment, each place was stored as a list. Modify your code so that each place is stored as an object of your new Place class.

You do not need to rewrite your first assignment in any other way, even if it had problems.
We will only evaluate how you use the Place class in the console program.

GUI Program:

(The display and functionality explained here is also shown in the screencast video demo.)

The GUI program should have the following features, as demonstrated in the accompanying screencast video. Complete the main program in a Kivy App subclass in [4, 5]

For important places, it should be like:

Adding Places (Error Checking):

More Coding Requirements:

Project Reflection:

It is important and beneficial for you to start developing good coding and working practices, so you will complete a short but thoughtful reflection on this project. Complete the template provided in the README and reflect on what you learned regarding both coding and your development process. This is worth significant marks, so allocate significant time to it.
We expect answers that show some detail and thought, not just trivial statements.


You must use Git version control with your project stored in the private repository on GitHub that will be created when you accept the GitHub Classroom invitation above. You are assessed on your use of version control including commits and commit messages, using the imperative voice (like “Add X” not “Added X”). [7]


Submit a single zip file by uploading it on LearnJCU under Assessment (click on the title of the assignment). Your zip file should contain the entire project directory, including the .git directory (just zip up your project directory). Make sure your GitHub URL is included in Please name the zip file like:

Submit your assignment by the date and time specified on LearnJCU. Submissions received after this date will incur late penalties as described in the subject outline.


The work you submit for this assignment must be your own. Submissions that are detected to be too similar to that of another student will be dealt with according to the College procedures for handling plagiarism and may result in serious penalties.

The goals of this assignment include helping you gain understanding of fundamental programming concepts and skills, and future subjects will build on this learning. Therefore, it is important that you develop these skills to a high level by completing the work and gaining the understanding yourself. You may discuss the assignment with other students and get assistance from your peers, but you may not do any part of anyone else’s work for them and you may not get anyone else to do any part of your work. Note that this means you should never give a copy of your work to anyone or accept a copy of anyone else’s work, including looking at another student’s work or having a classmate look at your work. If you require assistance with the assignment, please ask general questions in #cp1404 on Slack, or get specific assistance with your own work by talking with your lecturer or tutor.

The subject materials (lecture notes, practicals, textbook and other guides provided in the subject) contain all of the information you need for this assignment. You should not use online resources (e.g. Stack Overflow or other forums) to find resources or assistance as this would limit your learning and would mean that you would not achieve the goals of the assignment – mastering fundamental programming concepts and skills.

Sample Output:

Study the screencast provided with this assignment to see how the GUI program should work, including what the messages should be and when they occur.

References – Resources from Subject Materials:

Marking Scheme:

Ensure that you follow the processes and guidelines taught in class in order to produce high quality work. Do not just focus on getting the program working. This assessment rubric provides you with the characteristics of exemplary down to very limited work in relation to task criteria.