system("CLS"); cout << "———————————————————————————————————————————————————查询图书信息—————————————————————————————————————————————————————\n" << endl; cout << "按书名查找图书信息\n" << endl; cout << "请输入要查询的书籍名字:"; cin >> name; // 修正变量名 sql = "select * from books where books_name = '《" + name + "》'"; if (mysql_query(&mysql, sql.c_str())) { cout << "Error: Query[查询成功] fail." << mysql_error(&mysql) << endl; break; } res = mysql_store_result(&mysql); row = mysql_fetch_row(res); if (row) { // 判断查询结果是否为空 cout << setw(5) << "编号: " << row[0] << setw(10) << "书名: " << row[1] << setw(15) << "当前数量: " << row[2] << setw(15) << "价格:¥" << row[3] << setw(10) << "作者:" << row[4] << setw(10) << "类型:" << row[5] << endl; } else { cout << "未找到相关图书信息" << endl; }详细描述解释一下上方代码
时间: 2023-08-25 07:05:35 浏览: 67
这段代码实现的是查询图书信息的功能。首先使用 `system("CLS")` 清空控制台窗口,然后输出一个查询图书信息的标题。接着提示用户按书名查找图书信息,让用户输入要查询的书籍名字,存储到 `name` 变量中。
然后,使用 SQL 语句 `select * from books where books_name = '《" + name + "》'` 在数据库中查找与用户输入书籍名字匹配的图书信息。如果查询失败,输出错误信息并退出程序。
如果查询成功,使用 `mysql_store_result` 函数将查询结果存储到 `res` 变量中,然后使用 `mysql_fetch_row` 函数将 `res` 中的数据行存储到 `row` 变量中。判断 `row` 是否为空,如果不为空,则将该书籍的编号、书名、当前数量、价格、作者和类型输出到控制台窗口中,使用 `setw` 函数进行格式化输出。如果未找到相关图书信息,则输出“未找到相关图书信息”。
需要注意的是,这段代码中的 `mysql` 变量是一个 `MYSQL` 结构体类型的指针,表示了与 MySQL 数据库的连接,需要在程序中先进行连接操作。此外,这段代码中的 SQL 语句中书籍名字的格式为 `《书名》`,这是因为在数据库中存储的书籍名字是以这种格式存储的。
相关问题
case 3: { system("CLS"); cout << "———————————————————————————————————————————————————修改图书信息—————————————————————————————————————————————————————\n" << endl; printf("|修改书籍信息|\n"); //修改数据 成功返回1,查询失败返回0 cout << "请输入要修改的书籍ID:"; cin >> book_id; cout << "请输入变更的书名:"; cin >> name; cout << "请输入变更数量:"; cin >> number; cout << "请输入变更价格:"; cin >> price; cout << "请输入变更后作者:"; cin >> author; cout << "请输入变更后类型:"; cin >> type; sql = "update books set books_name ='《" + name + "》',books_number =" + to_string(number) + ",books_price =" + to_string(price) + ",books_author ='" + author + "',books_type ='" + type + "' where books_id = " + to_string(book_id); if (mysql_query(&mysql, sql.c_str())) { cout << "Error: Query[update] fail." << endl; break; } cout << "update success." << endl; cout << "——————————————————————————————————————————————————————————————————————————————————————————————————————————————————\n" << endl; break; }将这段c++代码改成可选择修改各个信息
可以通过添加一个菜单让用户选择修改哪个信息,具体修改代码如下所示:
case 3:
{
system("CLS");
cout << "———————————————————————————————————————————————————修改图书信息—————————————————————————————————————————————————————\n" << endl;
printf("|修改书籍信息|\n");
//修改数据 成功返回1,查询失败返回0
cout << "请输入要修改的书籍ID:";
cin >> book_id;
int choice;
cout << "请选择要修改的信息:" << endl;
cout << "1. 书名" << endl;
cout << "2. 数量" << endl;
cout << "3. 价格" << endl;
cout << "4. 作者" << endl;
cout << "5. 类型" << endl;
cin >> choice;
switch(choice) {
case 1:
cout << "请输入变更的书名:";
cin >> name;
sql = "update books set books_name ='《" + name + "》' where books_id = " + to_string(book_id);
break;
case 2:
cout << "请输入变更数量:";
cin >> number;
sql = "update books set books_number =" + to_string(number) + " where books_id = " + to_string(book_id);
break;
case 3:
cout << "请输入变更价格:";
cin >> price;
sql = "update books set books_price =" + to_string(price) + " where books_id = " + to_string(book_id);
break;
case 4:
cout << "请输入变更后作者:";
cin >> author;
sql = "update books set books_author ='" + author + "' where books_id = " + to_string(book_id);
break;
case 5:
cout << "请输入变更后类型:";
cin >> type;
sql = "update books set books_type ='" + type + "' where books_id = " + to_string(book_id);
break;
default:
cout << "输入错误!" << endl;
break;
}
if (mysql_query(&mysql, sql.c_str())) {
cout << "Error: Query[update] fail." << endl;
break;
}
cout << "update success." << endl;
cout << "——————————————————————————————————————————————————————————————————————————————————————————————————————————————————\n" << endl;
break;
}
阅读全文