C++药房管理系统设计模块代码分析

药房管理系统涉及到药品管理、库存管理、销售管理等多个模块。其中类设计如下(使用C++语言):

  1. 药品管理模块------药品类(Drug)的定义:

```cpp

class Drug {

private:

string name;

int quantity;

double price;

public:

Drug(string n, int q, double p) {

name = n;

quantity = q;

price = p;

}

// Getter and setter methods

string getName() {

return name;

}

int getQuantity() {

return quantity;

}

double getPrice() {

return price;

}

void setQuantity(int q) {

quantity = q;

}

};

```

  1. 药品库存管理模块的示例代码:

```cpp

class Inventory {

private:

vector<Drug> drugs;

public:

void addDrug(Drug drug) {

drugs.push_back(drug);

}

void updateDrugQuantity(string name, int quantity) {

for (int i = 0; i < drugs.size(); i++) {

if (drugsi.getName() == name) {

drugsi.setQuantity(quantity);

break;

}

}

}

void displayInventory() {

for (int i = 0; i < drugs.size(); i++) {

cout << "Name: " << drugsi.getName() << ", Quantity: " << drugsi.getQuantity() << ", Price: " << drugsi.getPrice() << endl;

}

}

};

```

  1. 销售管理模块的示例代码:

```cpp

class Sales {

private:

vector<Drug> soldDrugs;

public:

void sellDrug(Drug drug, int quantity) {

if (drug.getQuantity() >= quantity) {

drug.setQuantity(drug.getQuantity() - quantity);

soldDrugs.push_back(drug);

cout << "Drug sold successfully." << endl;

} else {

cout << "Insufficient quantity in stock." << endl;

}

}

void displaySales() {

for (int i = 0; i < soldDrugs.size(); i++) {

cout << "Name: " << soldDrugsi.getName() << ", Quantity: " << soldDrugsi.getQuantity() << ", Price: " << soldDrugsi.getPrice() << endl;

}

}

};

```

4.数据库创建和连接代码:

```cpp

#include <iostream>

#include <mysql/mysql.h>

int main() {

// 创建数据库连接

MYSQL* conn = mysql_init(NULL);

// 连接数据库

if (!mysql_real_connect(conn, "localhost", "root", "password", "pharmacy", 0, NULL, 0)) {

std::cout << "数据库连接失败: " << mysql_error(conn) << std::endl;

return 1;

}

// 创建药品表

std::string createTableQuery = "CREATE TABLE drugs ("

"id INT PRIMARY KEY AUTO_INCREMENT,"

"name VARCHAR(100) NOT NULL,"

"quantity INT NOT NULL,"

"price FLOAT NOT NULL"

")";

if (mysql_query(conn, createTableQuery.c_str())) {

std::cout << "创建药品表失败: " << mysql_error(conn) << std::endl;

return 1;

}

// 关闭数据库连接

mysql_close(conn);

std::cout << "数据库连接已关闭" << std::endl;

return 0;

}

```

上述代码创建一个名为"pharmacy"的数据库,其中包含一个名为"drugs"的药品表。你需要将"localhost"、"root"和"password"替换为你自己的MySQL服务器地址、用户名和密码。

5.用户管理模块代码:

```cpp

#include <iostream>

#include <vector>

using namespace std;

// 用户类

class User {

private:

string username;

string password;

public:

User(string username, string password) {

this->username = username;

this->password = password;

}

string getUsername() {

return username;

}

bool checkPassword(string password) {

return this->password == password;

}

};

// 用户管理类

class UserManager {

private:

vector<User> users;

public:

void addUser(User user) {

users.push_back(user);

}

bool loginUser(string username, string password) {

for (int i = 0; i < users.size(); i++) {

if (usersi.getUsername() == username && usersi.checkPassword(password)) {

return true;

}

}

return false;

}

};

int main() {

UserManager userManager;

// 添加用户

User user1("admin", "admin123");

User user2("guest", "guest123");

userManager.addUser(user1);

userManager.addUser(user2);

// 用户登录

string username, password;

cout << "请输入用户名:";

cin >> username;

cout << "请输入密码:";

cin >> password;

if (userManager.loginUser(username, password)) {

cout << "登录成功!" << endl;

} else {

cout << "登录失败!" << endl;

}

return 0;

}

```

代码中包括了一个User类和一个UserManager类。User类表示用户,包含用户名和密码属性,以及检查密码的方法。UserManager类表示用户管理,包含添加用户和登录验证的方法。

在main函数中,首先创建一个UserManager对象,并添加两个用户。然后通过用户输入的用户名和密码,调用UserManager的loginUser方法进行登录验证,如果登录成功,则输出"登录成功",否则输出"登录失败"。

相关推荐
程与留13 小时前
15_国际化和本地化:tr()、ts 文件、QM 文件、多语言切换
c++·qt
程与留14 小时前
14_Qt 样式表(QSS)入门(语法、选择器、美化实战)
c++·qt
Quz21 小时前
QML 拖拽篇:接收拖拽与数据交换
qt
欧特克_Glodon1 天前
OpenCV计算机视觉开发入门与实践<二十七>:图像分割概述
c++·人工智能·opencv·计算机视觉
蒸蒸yyyyzwd1 天前
cpp 选手秋招学习笔记 day21
c++·面试·八股
Interview Aid1121 天前
TikTok OA 四题分享|半小时内 AC,题目基本都是实现题
java·开发语言·算法·面试·职场和发展
CoderIsArt1 天前
C#中UI 线程与 Dispatcher
开发语言·ui·c#
AI情绪识别开源1 天前
检信 ALLEMOTION OS 加密打包可执行程序 — 全面测试报告版本: v1.3功能测试 / 性能测试 /
开发语言·数据结构·人工智能·功能测试
「QT(C++)开发工程师」1 天前
C++ auto 用法详解
开发语言·c++