Professional Documents
Culture Documents
COS2614 ASS1 (C-GPT)
COS2614 ASS1 (C-GPT)
COS2614 ASS1 (C-GPT)
#include <QApplication>
#include <QInputDialog>
#include <QMessageBox>
#include <QString>
#include <QChar>
#include <QDebug>
#include <QTime>
#include <algorithm>
QString uniqueId;
if (nameParts.size() >= 2) {
} else {
nameWithoutSpaces.remove(' ');
return uniqueId;
}
QString generateInitialKey(const QString &fullName) {
QString initialKey;
nameWithoutSpaces.remove(' ');
qsrand(static_cast<uint>(time.msec()));
std::random_shuffle(nameWithoutSpaces.begin(), nameWithoutSpaces.end());
if (ch.isLetter()) {
if (ch.isLower()) {
hasVowel = true;
} else {
hasConsonant = true;
initialKey += ch;
break;
}
// If not enough characters, add random letters
initialKey += QChar(randomChar);
return initialKey.toLower();
if (!fullName.isEmpty()) {
return app.exec();
Question 2
#include <iostream>
#include <vector>
#include <string>
using namespace std;
class Vendor {
private:
string vendorID;
string name;
string address;
public:
return "Vendor ID: " + vendorID + "\nName: " + name + "\nAddress: " + address;
return name;
};
class Item {
private:
string itemID;
string name;
double price;
public:
return "Item ID: " + itemID + "\nName: " + name + "\nPrice: $" + to_string(price);
// Accessors
return name;
return price;
};
private:
Vendor* vendor;
public:
this->vendor = vendor;
} else {
return Item::toString();
if (vendor != nullptr) {
return vendor->getName();
} else {
return "Unknown";
};
int main() {
vector<StoreItem> items;
cout << "Enter item details (ID, Name, Price) or type 'done' to finish:\n";
double itemPrice;
while (true) {
if (itemID == "done") {
break;
cout << "\nEnter vendor details (ID, Name, Address) or type 'done' to finish:\n";
vector<Vendor> vendors;
while (true) {
if (vendorID == "done") {
break;
getline(cin, vendorAddress);
cout << "\nAssign vendor for item " << i + 1 << " (0-" << vendors.size() << "): ";
int vendorIndex;
items[i].setVendor(&vendors[vendorIndex]);
cout << "Item: " << item.getName() << ", Vendor: " << item.getVendorName() << endl;
return 0;