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

发布时间:2023年12月29日

药房管理系统涉及到药品管理、库存管理、销售管理等多个模块。其中类设计如下(使用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;
??? }
};
```

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

```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 (drugs[i].getName() == name) {
??????????????? drugs[i].setQuantity(quantity);
??????????????? break;
??????????? }
??????? }
??? }
??? void displayInventory() {
??????? for (int i = 0; i < drugs.size(); i++) {
??????????? cout << "Name: " << drugs[i].getName() << ", Quantity: " << drugs[i].getQuantity() << ", Price: " << drugs[i].getPrice() << endl;
??????? }
??? }
};
```

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

```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: " << soldDrugs[i].getName() << ", Quantity: " << soldDrugs[i].getQuantity() << ", Price: " << soldDrugs[i].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 (users[i].getUsername() == username && users[i].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方法进行登录验证,如果登录成功,则输出"登录成功",否则输出"登录失败"。

文章来源:https://blog.csdn.net/xcksj888/article/details/135209118
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。