辅导 CSCI 4176、SQL程序语言讲解
CSCI 4176/5708 – Mobile Computing
Midterm-1
You are tasked with developing an expense/income logging application that prioritizes the
application of concepts covered in class and lab sessions, rather than focusing on the app's
visual aesthetics. The app should consist of three activities and utilize shared preferences, as
well as Room/SQLite for data storage. Additionally, the use of a RecyclerView and UI fragments
is required.
Activity 1: Login and Sign Up
Activity One comprises two fragments: the login and sign-up fragments. Upon opening the app,
the login fragment is initially displayed. The Login Fragment includes at least four elements: two
input fields (one for the username and the other for the password), a login button for validating
details and navigating to Activity Two, and a sign-up button to transition to the Sign-Up
Fragment.
The Sign-Up Fragment consists of a minimum of four elements: three input fields (for profile
name, username, and password) and a create button for validating and saving user details.
Data storage and retrieval are accomplished using shared preferences.
Activity 2: Expense Overview
Activity 2 contains a minimum of three elements at the top and a RecyclerView. The three
elements consist of two buttons: one for logging out the user and returning to Activity 1, and the
other for adding expenses/income, which opens Activity Three. The third element is a text field
displaying the profile name of the logged-in user.
The RecyclerView within Activity 2 contains elements representing expenses/income. Each
element in the RecyclerView includes the name of the expense/income, the corresponding
amount (using '+' or '-' to indicate income or expense), and an edit button that navigates to
Activity Three. Data related to expenses is stored in Room/SQLite for efficient management and
retrieval.
Activity 3: Expense/Input Details
Activity 3 is designed with two distinct modes that share a consistent visual layout but differ in
behavior. When the user clicks the add button in Activity 2, Activity 3 opens with all fields empty.
Alternatively, when the user clicks the edit button on elements within the RecyclerView in
Activity 2, Activity 3 opens with the date pre-filled of the expense/income in the input field,
allowing for editing.
Activity 3 includes a minimum of six elements: three text input fields for the name of the
expense/income, amount, and description; a fourth input field for specifying whether it's an
expense or income that can be a radio button or toggle; and two buttons—one for saving
changes and the other for deletion.
Two buttons save and delete. The save button not only stores the information but also navigates
back to Activity 2. Similarly, the delete button removes the selected entry and returns to Activity
2. In the scenario where the user initiated the process to add but decided to delete, the app
seamlessly returns to Activity 2 to streamline the user experience. Data management is handled
through Room/SQLite, ensuring consistency with the data source used in Activity 2.
Key Notes:
To meet the requirements, use Fragments in Activity 1, implement a RecyclerView in Activity 2,
and store user details with shared preferences. Manage expense/income data through CRUD
operations using Room or SQLite.
Ensure each screen meets minimum element requirements, allowing for additional elements.
Implement validations and user feedback, like toasts, for actions such as incorrect username or
password entries.
Submission Guidelines:
Report:
1. Code Snippets:
● Include code snippets that highlight key parts of the question.
● For example, demonstrate how Room/SQLite is implemented in your code.
2. Screenshots:
● Provide screenshots of the running application.
● Clearly label and organize the screenshots to correspond to specific functionalities or
questions.
3. Data Flow Documentation:
● Document how data moves within your application and its impact.
● Use diagrams or flowcharts to illustrate the flow of data.
4. Interpretations and Assumptions:
● Clearly state your interpretations and assumptions regarding the questions.
● If any assumptions were made during the implementation, document them explicitly.
5. Citations:
● Provide proper citations for any external libraries, frameworks, or resources used.
● Mention the source or reference where specific solutions or ideas were adopted.
Source code (as zip):
6. Naming Conventions and Organization:
● Use a consistent and clear naming convention for files and folders.
● Markers should easily distinguish and match files to their respective parts.
7. Comments on Code Snippets:
● Add comments at the function level to explain the purpose and functionality of important
code snippets. Clearly articulate the logic and intentions behind the code.
** Submit both a report and source code as zip file.