新增图书信息 删除图书信息 修改图书信息 查找图书信息 显示所有图书信息 新增读者信息 删除读者信息 修改读者信息 查找读者信息 显示所有的读者信息 借书登记 还书登记用C语言代码写出来
时间: 2024-03-07 12:48:08 浏览: 78
好的,以下是图书馆管理系统的C语言代码实现:
```c
// 图书结构体
typedef struct {
char bookName[50]; // 书名
char author[30]; // 作者
char press[30]; // 出版社
char ISBN[20]; // ISBN号
char category[20]; // 分类
float price; // 价格
} Book;
// 读者结构体
typedef struct {
char name[20]; // 姓名
char sex[10]; // 性别
int age; // 年龄
char phone[20]; // 电话
char email[30]; // 邮箱
} Reader;
// 借阅记录结构体
typedef struct {
char bookName[50]; // 书名
char readerName[20];// 借阅人姓名
char borrowDate[20];// 借阅日期
char returnDate[20];// 归还日期
} BorrowRecord;
// 全局变量
Book books[100]; // 存储图书信息的数组
Reader readers[100]; // 存储读者信息的数组
BorrowRecord borrowRecords[100]; // 存储借阅记录的数组
int bookCount = 0; // 当前图书数量
int readerCount = 0; // 当前读者数量
int borrowRecordCount = 0; // 当前借阅记录数量
// 新增图书信息
void addBook() {
Book book;
printf("请输入书名:");
scanf("%s", book.bookName);
printf("请输入作者:");
scanf("%s", book.author);
printf("请输入出版社:");
scanf("%s", book.press);
printf("请输入ISBN号:");
scanf("%s", book.ISBN);
printf("请输入分类:");
scanf("%s", book.category);
printf("请输入价格:");
scanf("%f", &book.price);
books[bookCount++] = book;
printf("添加成功!\n");
}
// 删除图书信息
void deleteBook() {
char bookName[50];
printf("请输入要删除的书名:");
scanf("%s", bookName);
int i;
for (i = 0; i < bookCount; i++) {
if (strcmp(books[i].bookName, bookName) == 0) {
int j;
for (j = i; j < bookCount - 1; j++) {
books[j] = books[j + 1];
}
bookCount--;
printf("删除成功!\n");
return;
}
}
printf("未找到该书!\n");
}
// 修改图书信息
void modifyBook() {
char bookName[50];
printf("请输入要修改的书名:");
scanf("%s", bookName);
int i;
for (i = 0; i < bookCount; i++) {
if (strcmp(books[i].bookName, bookName) == 0) {
printf("请输入新的作者:");
scanf("%s", books[i].author);
printf("请输入新的出版社:");
scanf("%s", books[i].press);
printf("请输入新的分类:");
scanf("%s", books[i].category);
printf("请输入新的价格:");
scanf("%f", &books[i].price);
printf("修改成功!\n");
return;
}
}
printf("未找到该书!\n");
}
// 查找图书信息
void searchBook() {
char keyword[50];
printf("请输入查找关键字:");
scanf("%s", keyword);
int i;
for (i = 0; i < bookCount; i++) {
if (strstr(books[i].bookName, keyword) || strstr(books[i].author, keyword)
|| strstr(books[i].press, keyword) || strstr(books[i].ISBN, keyword)
|| strstr(books[i].category, keyword)) {
printf("书名:%s\t作者:%s\t出版社:%s\tISBN:%s\t分类:%s\t价格:%.2f\n",
books[i].bookName, books[i].author, books[i].press,
books[i].ISBN, books[i].category, books[i].price);
}
}
}
// 显示所有图书信息
void showAllBooks() {
int i;
for (i = 0; i < bookCount; i++) {
printf("书名:%s\t作者:%s\t出版社:%s\tISBN:%s\t分类:%s\t价格:%.2f\n",
books[i].bookName, books[i].author, books[i].press,
books[i].ISBN, books[i].category, books[i].price);
}
}
// 新增读者信息
void addReader() {
Reader reader;
printf("请输入姓名:");
scanf("%s", reader.name);
printf("请输入性别:");
scanf("%s", reader.sex);
printf("请输入年龄:");
scanf("%d", &reader.age);
printf("请输入电话:");
scanf("%s", reader.phone);
printf("请输入邮箱:");
scanf("%s", reader.email);
readers[readerCount++] = reader;
printf("添加成功!\n");
}
// 删除读者信息
void deleteReader() {
char readerName[20];
printf("请输入要删除的读者姓名:");
scanf("%s", readerName);
int i;
for (i = 0; i < readerCount; i++) {
if (strcmp(readers[i].name, readerName) == 0) {
int j;
for (j = i; j < readerCount - 1; j++) {
readers[j] = readers[j + 1];
}
readerCount--;
printf("删除成功!\n");
return;
}
}
printf("未找到该读者!\n");
}
// 修改读者信息
void modifyReader() {
char readerName[20];
printf("请输入要修改的读者姓名:");
scanf("%s", readerName);
int i;
for (i = 0; i < readerCount; i++) {
if (strcmp(readers[i].name, readerName) == 0) {
printf("请输入新的性别:");
scanf("%s", readers[i].sex);
printf("请输入新的年龄:");
scanf("%d", &readers[i].age);
printf("请输入新的电话:");
scanf("%s", readers[i].phone);
printf("请输入新的邮箱:");
scanf("%s", readers[i].email);
printf("修改成功!\n");
return;
}
}
printf("未找到该读者!\n");
}
// 查找读者信息
void searchReader() {
char keyword[20];
printf("请输入查找关键字:");
scanf("%s", keyword);
int i;
for (i = 0; i < readerCount; i++) {
if (strstr(readers[i].name, keyword) || strstr(readers[i].sex, keyword)
|| strstr(readers[i].phone, keyword) || strstr(readers[i].email, keyword)) {
printf("姓名:%s\t性别:%s\t年龄:%d\t电话:%s\t邮箱:%s\n",
readers[i].name, readers[i].sex, readers[i].age,
readers[i].phone, readers[i].email);
}
}
}
// 显示所有读者信息
void showAllReaders() {
int i;
for (i = 0; i < readerCount; i++) {
printf("姓名:%s\t性别:%s\t年龄:%d\t电话:%s\t邮箱:%s\n",
readers[i].name, readers[i].sex, readers[i].age,
readers[i].phone, readers[i].email);
}
}
// 借书登记
void borrowBook() {
char bookName[50], readerName[20];
printf("请输入要借阅的书名:");
scanf("%s", bookName);
int i;
for (i = 0; i < bookCount; i++) {
if (strcmp(books[i].bookName, bookName) == 0) {
printf("请输入借阅人姓名:");
scanf("%s", readerName);
int j;
for (j = 0; j < readerCount; j++) {
if (strcmp(readers[j].name, readerName) == 0) {
strcpy(borrowRecords[borrowRecordCount].bookName, bookName);
strcpy(borrowRecords[borrowRecordCount].readerName, readerName);
time_t now = time(NULL);
strftime(borrowRecords[borrowRecordCount].borrowDate, 20, "%Y-%m-%d", localtime(&now));
printf("借阅成功!\n");
borrowRecordCount++;
return;
}
}
printf("未找到该读者!\n");
return;
}
}
printf("未找到该书!\n");
}
// 还书登记
void returnBook() {
char bookName[50], readerName[20];
printf("请输入要归还的书名:");
scanf("%s", bookName);
int i;
for (i = 0; i < borrowRecordCount; i++) {
if (strcmp(borrowRecords[i].bookName, bookName) == 0) {
printf("请输入归还人姓名:");
scanf("%s", readerName);
if (strcmp(borrowRecords[i].readerName, readerName) == 0) {
time_t now = time(NULL);
strftime(borrowRecords[i].returnDate, 20, "%Y-%m-%d", localtime(&now));
printf("归还成功!\n");
return;
} else {
printf("归还人姓名错误!\n");
return;
}
}
}
printf("未找到该借阅记录!\n");
}
// 主函数
int main() {
int choice;
while (1) {
printf("欢迎使用图书馆管理系统!\n");
printf("1. 新增图书信息\n");
printf("2. 删除图书信息\n");
printf("3. 修改图书信息\n");
printf("4. 查找图书信息\n");
printf("5. 显示所有图书信息\n");
printf("6. 新增读者信息\n");
printf("7. 删除读者信息\n");
printf("8. 修改读者信息\n");
printf("9. 查找读者信息\n");
printf("10. 显示所有读者信息\n");
printf("11. 借书登记\n");
printf("12. 还书登记\n");
printf("0. 退出系统\n");
printf("请输入您的选择:");
scanf("%d", &choice);
switch (choice) {
case 1:
addBook();
break;
case 2:
deleteBook();
break;
case 3:
modifyBook();
break;
case 4:
searchBook();
break;
case 5:
showAllBooks();
break;
case 6:
addReader();
break;
case 7:
deleteReader();
break;
case 8:
modifyReader();
break;
case 9:
searchReader();
break;
case 10:
showAllReaders();
break;
case 11:
borrowBook();
break;
case 12:
returnBook();
break;
case 0:
printf("感谢使用图书馆管理系统!\n");
return 0;
default:
printf("输入错误,请重新输入!\n");
break;
}
}
}
```
希望这份代码能够对您有所帮助。
阅读全文