药房管理系统涉及到药品管理、库存管理、销售管理等多个模块。其中类设计如下(使用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 drugs;
public:
void addDrug(Drug drug) {
dr服务器托管网ugs.push_back(drug);
}
void updateDrugQuantity(string name, int quantity) {
for (int i = 0; i
if (drugs[i].getName() == name) {
drugs[i].setQuantity(quantity);
break;
}
}
}
void displayInventory() {
for (int i = 0; i
cout }
}
};
“`
3. 销售管理模块的示例代码:
“`cpp
class Sales {
private:
vector soldDrugs;
public:
void sellDrug(Drug drug, int quantity) {
if (drug.getQuantity() >= quantity) {
drug.setQuantity(drug.getQuantity() – quantity);
soldDrugs.push_back(drug);
cout } else {
cout }
}
void displaySales() {
for (int i = 0; i
cout }
}
};
“`
4.数据库创建和连接代码:
“`cpp
#include
#include
int main() {
// 创建数据库连接
MYSQL* conn = mysql_init(NULL);
// 连接数据库
if (!mysql_real_connect(conn, “localhost”, “root”, “password”, “pharmacy”, 0, NULL, 0)) {
std::cout 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 return 1;
}
// 关闭数据库连接
mysql_close(conn);
std::cout
return 0;
}
“`
上述代码创建一个名为”pharmacy”的数据库,其中包含一个名为”drugs”的药品表。你需要将”localhost”、”root”和”password”替换为你自己的MySQL服务器地址、用户名和密码。
5.用户管理模块代码:
“`cpp
#include
#include
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 users;
public:
void addUser(User user) {
users.push_back(user);
}
bool loginUser(string username, string password) {
for (int i = 0; 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, pass服务器托管网word;
cout cin >> username;
cout cin >> password;
if (userManager.loginUser(username, password)) {
cout } else {
cout }
return 0;
}
“`
代码中包括了一个User类和一个UserManager类。User类表示用户,包含用户名和密码属性,以及检查密码的方法。UserManager类表示用户管理,包含添加用户和登录验证的方法。
在main函数中,首先创建一个UserManager对象,并添加两个用户。然后通过用户输入的用户名和密码,调用UserManager的loginUser方法进行登录验证,如果登录成功,则输出”登录成功”,否则输出”登录失败”。
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
空间包围检测在计算机图形学、虚拟仿真、工业生产等有着广泛的应用。 现代煤矿开采过程中,安全一直是最大的挑战之一。地质空间中存在诸多如瓦斯积聚、地质构造异常、水文条件不利等隐蔽致灾因素,一旦被触发,可能引发灾难性的后果。因此在安全生产过程中有效的管理和规避各隐蔽…