联系方式

  • QQ:99515681
  • 邮箱:99515681@qq.com
  • 工作时间:8:00-23:00
  • 微信:codinghelp

您当前位置:首页 >> C/C++编程C/C++编程

日期:2024-12-03 10:17

SEHH/SEHS2042 24-25 Semester One – Group Project 1

SEHH/SEHS2042 Computer Programming

Group Project – AI Service Token Management System

(Due: 23:59, 1 Dec 2024, Sunday)

Expected Learning Outcomes

develop computer programs in one or more high level language programming environment;

design and develop structured and documented computer programs;

explain the fundamentals of object-oriented programming and apply it in computer program

development;

integrate the computer programming techniques to solve practical problems.

Introduction

In this assignment, you are going to develop an “AI Service Token Management System” that runs

in the command line environment. The system maintains user records and manages the use of

tokens by a user which can be used to pay for various web-based AI services. The system allows

users to check their token balance and update their token balance upon purchasing new tokens or

using a particular AI service.

Tasks

Each group is required to write a Win32 Console Application program called TMS.cpp.

Each student is required to submit a video recording (at most 2-minute long) to demonstrate

his/her individual contribution in the group project.

Each student is required to submit a Peer-to-Peer evaluation form (through the given Word file)

via Blackboard.

Program Requirements

R0 When the program starts, the console should display a welcome message, followed by the

Main Menu of the program. Users can enter the options of the corresponding actions (see

R1 to R6 below).

Welcome Message designed by your group

*** Main Menu ***

[1] Load Starting Data

[2] Show User Records

[3] Edit Users

[4] Enter User View SEHH/SEHS2042 24-25 Semester One – Group Project 2

[5] Show System Usage Summary

[6] Credits and Exit

*****************

Option (1 - 6):

R1 [1] Load Starting Data

When the user inputs 1 in the Main Menu, the system is loaded with starting data. The

starting data includes user records as shown in R1.1 below. After the starting data is loaded,

the system returns to the Main Menu.

R1.1 The starting data to be loaded, together with the required data format of the data fields, are

described below.

User records

User ID Type Token Balance Auto Top-up

SkyWalker T 20 N

Ocean123 T 35 N

Forest99 T 6 Y

Valley777 F 10 Y

Desert2022 F 25 N

River456 F 20 Y

Blaze2023 F 100 N

Meadow888 S 40 Y

Galaxy S 15 Y

Storm2024 S 30 N

Data format of each field:

User ID: A string that uniquely identifies a user in the system (assume at most 50

characters long); it is case-sensitive. You can assume it does not contain white space.

Type: A character (T, F or S) that represents the account type. Different restrictions

about using the AI services, and different charging policies are used for different

account types. See requirement R7 for details.

Type (character) Rank (description)

T Trial Account

F Full Account

S Student Account

Token Balance: The token balance owned by the user. SEHH/SEHS2042 24-25 Semester One – Group Project 3

Auto Top-up: A character (Y or N) to indicate whether extra tokens would be

purchased automatically if the token balance is not enough for a particular AI service.

R1.2 Options 2 to 5 in the Main Menu are enabled only after the system is loaded with the

starting data. If the user enters options 2 to 5 before starting data is loaded, an error message

should be shown, and then the system returns to the Main Menu.

R2 [2] Show User Records

[After the starting data is loaded] When the user inputs 2 in the Main Menu, the system

displays all the fields of all user records. A tabular format should be displayed, and the

records are sorted in alphabetical order based on the ID values. Data shown should be

the latest set of data since the starting data is loaded (updates on the user records resulted

by the operations under options 3 or 4 in the Main Menu should be included). After

showing the records, the system returns to the Main Menu.

R3 [3] Edit Users

[After the starting data is loaded] When the user inputs 3 in the Main Menu, the system

prompts for the next user input of a User ID. If such User ID does not exist in the system,

it is an add user operation. Otherwise, it is a delete user operation.

You can assume the system will store at most 100 user records.

Add user

The system asks the user to input the information of the remaining three fields: (1) Type,

(2) Token Balance, and (3) Auto Top-up. After getting all user inputs, the new user should

be added into the system. For any invalid inputs (e.g., wrong field values, incorrect range

for token balance, etc.), the system allows TWO more retries. With more than THREE

times of invalid inputs, no user is added. The system prints an appropriate error message

and returns to the Main Menu.

Delete customer

The system displays the information of the user (including all the fields), and prompts for

user’s “Yes/No” confirmation on the delete operation. The user record is deleted from the

system if it is confirmed.

A message showing the summary of the above operation is then displayed, and the system

returns to the Main Menu.

SEHH/SEHS2042 24-25 Semester One – Group Project 4

R4 [4] Enter User View

[After the starting data is loaded] When the user inputs 4 in the Main Menu, the system

prompts for the next user input of a User ID. If such User ID does not exist in the system,

the system displays an error message and returns to the Main Menu. Otherwise, it displays

the User View Menu as shown below and allows further processing on the particular user

(e.g., River456) as follows (see R4.1 to R4.4 below).

Action for User ID: River456

***** User View Menu *****

[1] Select AI Service

[2] Purchase Tokens

[3] Edit Profile

[4] Show Transaction History

[5] Return to Main Menu

**************************

Option (1 - 5):

R4.1 [1] Select AI Service (Also refer to requirement R7 about the AI services)

When such option is chosen, the system shows the list of available AI services and asks

user for the choice. After the choice input, the system accepts subsequent user inputs

associated with the chosen AI service. If all user inputs are valid, the AI service is allowed

for that user, and the user’s token balance is enough for paying the AI service, the user’s

token balance will be updated accordingly.

The user can still use the AI service with “less-than-required” tokens in his balance if the

“Auto Top-up” option is enabled for the user account. If so, the system should additionally

display the extra money that has been paid for buying the extra tokens, and the user’s final

token balance. The auto top-up amount should be in a multiple of $20, which buys

minimum extra tokens that are enough for the AI service.

The AI service will not be paid if it is not allowed for that user, if there is any invalid user

input, or if the user’s token balance is insufficient with “Auto Top-up” option disabled. In

such siutation, no change in the token balance will be made.

For all the above cases, the system should print a meaningful message about the situation,

print the change in user’s token balance as a result, and return to the User View Menu.

SEHH/SEHS2042 24-25 Semester One – Group Project 5

R4.2 [2] Purchase Tokens

Each token costs $2. When such option is chosen, the system prompts for user input of an

even integer value, which is the amount of money to spend for purchasing tokens. The

system then calculates and adds the tokens into the token balance for the user. For any

invalid input, no tokens should be purchased.

R4.3 [3] Edit Profile

When such option is chosen, the system allows users to make changes to either the

“Account Type” or the “Auto Top-up” setting. User is allowed to choose which fields he

wants to update, and to input the new field value. The user’s profile should be updated

afterwards, if user inputs are valid.

For any invalid input, the system allows TWO more retries. With more than THREE

rounds of invalid inputs, the system prints an appropriate error message and returns to the

User View Menu.

R4.4 [4] Show Transaction History

When such option is chosen, the system displays all token transaction records history for

the particular user since the program starts running:

 All kinds of tokens transactions under R4.1 and R4.2 should be considered and

displayed.

 The transaction records should be displayed in the order that they were carried out.

 For token transactions under R4.1 (paying for an AI service), both the number of tokens

spent and the name of the AI service being used should be displayed. If there is an “auto

top-up” action, the extra money paid for buying the extra tokens should be displayed

too.

 For token transactions under R4.2 (purchasing tokens), both the number of tokens

purchased and the amount of money spent should be displayed.

 At the end, a summary showing the original token balance, the final token balance, the

change in token balance, and the TOTAL amount of money paid for buying tokens

(including those used under “auto top-up”) should be displayed.

 A meaningful message should be shown if there have been no transactions made so far

for the user.

After displaying the transaction history, the system returns to the User View Menu.

SEHH/SEHS2042 24-25 Semester One – Group Project 6

R4.5 [5] Return to Main Menu

When such option is chosen, the system returns to the Main Menu.

R4.6 Stay at the User View Menu

Following R4.1, R4.2 and R4.3, after an operation for a user, the system should display the

change (the original and the new values) in the token balance or the profile of the user by

that operation, and then stays at the User View Menu.

R5 [5] Show System Usage Summary

[After the starting data is loaded] When the user inputs 5 in the Main Menu, the system

displays the usage summary of the system since the program starts running. The summary

includes: (1) the number of tokens spent on each of the AI service by all users, (2) the total

number of tokens spent on all AI services by all users, and (3) the total amount of money

paid for buying tokens (including those used under “auto top-up”) by all users.

After displaying the system usage summary, the system returns to the Main Menu.

R6 [6] Credits and Exit

When the user inputs this option, the system prompts for user’s confirmation. If the user

inputs ‘n’ or ‘N’, the system returns to the Main Menu. If the user inputs ‘y’ or ‘Y’, the

system displays the personal particulars (student name, student ID, tutorial group) of the

group members and terminates. Other input is not acceptable and the system should ask

the user to confirm again.

R7 Description about AI services

A user can select an AI service and pay for it using tokens under R4. Each token costs $2.

There are four AI services. Charges of different AI services are put down below, which

also takes the user type into consideration:

(1) Image Recognition

Charging Model: Based on image size

Image Size Charges (per image)

Trial Account Full Account Student Account

Under 3 MB 5 tokens 5 tokens 4 tokens

Over 3 MB Not allowed 8 tokens 7 tokens

SEHH/SEHS2042 24-25 Semester One – Group Project 7

(2) Speech-to-text transcription

Charging Model: Based on the length of the speech audio file

(same charge for all user types)

Length of Audio Charges (per minute)

The first 3 minutes 2 tokens

After 3 minutes 3 tokens

(3) Predictive Analysis

Charging Model: 10 tokens per prediction task (same charge for all user types)

(4) Natural Language Processing (NLP)

Charging Model: Based on length of text for NLP, 1 token for every 500 characters

(e.g., a 900-character text needs 2 tokens)

Note: For trial account, the length of text should not exceed 2500 characters. If so, the

AI service should not be used.

As a result, for each AI service, the required user inputs for charge calculation are:

AI Service Required user inputs for charge

calculation

(1) Image Recognition Size of the image (in MB)

(2) Speech-to-text transcription Length of speech audio file (in minutes)

(3) Predictive Analysis Number of prediction tasks

(4) Natural Language Processing (NLP) Number of characters in the text

R8 Suitable checking on user’s input is expected, except in situations with assumptions stated

in the requirements above. Appropriate error messages should be printed whenever

unexpected situation happens, e.g., input value out of range, incorrect character input, etc.

R9 The use of functions (in addition to main function) and classes (i.e., OOP design) are

expected in your program. Appropriate comments should be added in your source code file.

R10 Creativity and Critical Thinking: Use suitable format to present all required information of

users and AI services clearly and neatly. Additional features can be added.

Tips

1. To handle unexpected input error (e.g. input a character to an integer variable), you may use

the following code appropriately in your program:

cin.ignore(); // Discard the content in the input sequence.

cin.clear(); // Reset the input error status to no error.


相关文章

版权所有:留学生编程辅导网 2020 All Rights Reserved 联系方式:QQ:99515681 微信:codinghelp 电子信箱:99515681@qq.com
免责声明:本站部分内容从网络整理而来,只供参考!如有版权问题可联系本站删除。 站长地图

python代写
微信客服:codinghelp