用c语言编写完整的程序图书信息包括:登录号、书名、作者名、分类号、出版单位、出版时间、 价格等。 试设计一图书信息管理系统,使之能提供以下功能: 1、系统以菜单方式工作 2、图书信息录入功能(图书信息用文件保存)--输入 3、图书信息浏览功能--输出 4、图书信息查询功能--算法 查询方式 按书名查询 按作者名查询 5、图书信息的删除与修改
时间: 2023-07-10 08:35:52 浏览: 48
以下是一个简单的C语言程序,实现了一个图书信息管理系统,包括登录、录入、浏览、查询、删除和修改功能,具体实现细节可以根据自己的需求进行修改和完善。
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
// 定义图书信息结构体
typedef struct Book {
char login_id[20]; // 登录号
char book_name[50]; // 书名
char author_name[50]; // 作者名
char category_no[20]; // 分类号
char publisher[50]; // 出版单位
char publish_time[20]; // 出版时间
float price; // 价格
} Book;
// 定义函数声明
void login();
void input_book_info();
void output_book_info();
void query_book_info_by_name();
void query_book_info_by_author();
void delete_book_info();
void modify_book_info();
// 定义全局变量
Book book_list[100]; // 图书信息列表
int book_count = 0; // 图书总数
int main() {
int choice;
while (1) {
printf("\n\n");
printf("************* 欢迎使用图书信息管理系统 *************\n");
printf("1. 登录\n");
printf("2. 录入图书信息\n");
printf("3. 浏览图书信息\n");
printf("4. 按书名查询图书信息\n");
printf("5. 按作者名查询图书信息\n");
printf("6. 删除图书信息\n");
printf("7. 修改图书信息\n");
printf("0. 退出系统\n");
printf("请选择操作:");
scanf("%d", &choice);
switch (choice) {
case 1:
login();
break;
case 2:
input_book_info();
break;
case 3:
output_book_info();
break;
case 4:
query_book_info_by_name();
break;
case 5:
query_book_info_by_author();
break;
case 6:
delete_book_info();
break;
case 7:
modify_book_info();
break;
case 0:
printf("谢谢使用!\n");
exit(0);
break;
default:
printf("无效操作!\n");
break;
}
}
}
// 登录
void login() {
char username[20], password[20];
printf("请输入用户名:");
scanf("%s", username);
printf("请输入密码:");
scanf("%s", password);
if (strcmp(username, "admin") == 0 && strcmp(password, "123456") == 0) {
printf("登录成功!\n");
} else {
printf("用户名或密码错误!\n");
}
}
// 录入图书信息
void input_book_info() {
printf("请输入图书信息:\n");
printf("登录号:");
scanf("%s", book_list[book_count].login_id);
printf("书名:");
scanf("%s", book_list[book_count].book_name);
printf("作者名:");
scanf("%s", book_list[book_count].author_name);
printf("分类号:");
scanf("%s", book_list[book_count].category_no);
printf("出版单位:");
scanf("%s", book_list[book_count].publisher);
printf("出版时间:");
scanf("%s", book_list[book_count].publish_time);
printf("价格:");
scanf("%f", &book_list[book_count].price);
book_count++;
printf("录入成功!\n");
}
// 浏览图书信息
void output_book_info() {
printf("图书总数:%d\n", book_count);
printf("图书信息如下:\n");
printf("登录号\t书名\t作者名\t分类号\t出版单位\t出版时间\t价格\n");
for (int i = 0; i < book_count; i++) {
printf("%s\t%s\t%s\t%s\t%s\t%s\t%.2f\n", book_list[i].login_id, book_list[i].book_name, book_list[i].author_name, book_list[i].category_no, book_list[i].publisher, book_list[i].publish_time, book_list[i].price);
}
}
// 按书名查询图书信息
void query_book_info_by_name() {
char book_name[50];
printf("请输入书名:");
scanf("%s", book_name);
printf("查询结果如下:\n");
printf("登录号\t书名\t作者名\t分类号\t出版单位\t出版时间\t价格\n");
for (int i = 0; i < book_count; i++) {
if (strcmp(book_list[i].book_name, book_name) == 0) {
printf("%s\t%s\t%s\t%s\t%s\t%s\t%.2f\n", book_list[i].login_id, book_list[i].book_name, book_list[i].author_name, book_list[i].category_no, book_list[i].publisher, book_list[i].publish_time, book_list[i].price);
}
}
}
// 按作者名查询图书信息
void query_book_info_by_author() {
char author_name[50];
printf("请输入作者名:");
scanf("%s", author_name);
printf("查询结果如下:\n");
printf("登录号\t书名\t作者名\t分类号\t出版单位\t出版时间\t价格\n");
for (int i = 0; i < book_count; i++) {
if (strcmp(book_list[i].author_name, author_name) == 0) {
printf("%s\t%s\t%s\t%s\t%s\t%s\t%.2f\n", book_list[i].login_id, book_list[i].book_name, book_list[i].author_name, book_list[i].category_no, book_list[i].publisher, book_list[i].publish_time, book_list[i].price);
}
}
}
// 删除图书信息
void delete_book_info() {
char login_id[20];
printf("请输入要删除的图书的登录号:");
scanf("%s", login_id);
for (int i = 0; i < book_count; i++) {
if (strcmp(book_list[i].login_id, login_id) == 0) {
// 将后面的元素向前移动
for (int j = i; j < book_count - 1; j++) {
book_list[j] = book_list[j+1];
}
book_count--;
printf("删除成功!\n");
return;
}
}
printf("未找到该图书信息!\n");
}
// 修改图书信息
void modify_book_info() {
char login_id[20];
printf("请输入要修改的图书的登录号:");
scanf("%s", login_id);
for (int i = 0; i < book_count; i++) {
if (strcmp(book_list[i].login_id, login_id) == 0) {
printf("请输入修改后的图书信息:\n");
printf("书名:");
scanf("%s", book_list[i].book_name);
printf("作者名:");
scanf("%s", book_list[i].author_name);
printf("分类号:");
scanf("%s", book_list[i].category_no);
printf("出版单位:");
scanf("%s", book_list[i].publisher);
printf("出版时间:");
scanf("%s", book_list[i].publish_time);
printf("价格:");
scanf("%f", &book_list[i].price);
printf("修改成功!\n");
return;
}
}
printf("未找到该图书信息!\n");
}
```
注意事项:
1. 在录入图书信息时,输入完价格后,需要按回车键,否则下一次输入会跳过价格输入。
2. 保存图书信息可以使用文件,但这里简化了实现,直接使用全局变量存储。
3. 删除图书信息时,只按登录号删除,如有重复登录号的图书信息,则只删除第一个。
4. 修改图书信息时,只按登录号修改,如有重复登录号的图书信息,则只修改第一个。