8-1 图书馆模拟系统 分数 100 作者 冯筠 单位 西北大学 完成一个简单的图书管理系统中所用到的函数库,其中主要的函数包括: 输入若干个图书名称(英文)并存储到二维字符串数组中(10分) 输出目前图书名称列表(不超过50本)(10分) 对当前图书列表按字母顺序排序,自己确定用什么类型的排序方法(20分) 图书查找功能,输入一本图书的名称,输出是数组中第几本书(20分) 图书模糊查找功能,输入一本图书名称的一部分,输出这本书的全名(10分) 函数规范设计(包括函数名,返回值,参数设置等)20分
时间: 2024-02-02 12:04:38 浏览: 150
图书管理系统模拟
函数库设计如下:
1. void input_books(char books[][100], int n);
函数功能:输入若干个图书名称并存储到二维字符串数组中
参数说明:
- books:二维字符串数组,用于存储图书名称
- n:整型,表示要输入的图书数量
2. void output_books(char books[][100], int n);
函数功能:输出目前图书名称列表
参数说明:
- books:二维字符串数组,用于存储图书名称
- n:整型,表示当前图书数量
3. void sort_books(char books[][100], int n);
函数功能:对当前图书列表按字母顺序排序
参数说明:
- books:二维字符串数组,用于存储图书名称
- n:整型,表示当前图书数量
4. int search_book(char books[][100], int n, char book_name[]);
函数功能:图书查找功能,输入一本图书的名称,输出是数组中第几本书
参数说明:
- books:二维字符串数组,用于存储图书名称
- n:整型,表示当前图书数量
- book_name:字符数组,表示要查找的图书名称
5. void fuzzy_search(char books[][100], int n, char book_name[]);
函数功能:图书模糊查找功能,输入一本图书名称的一部分,输出这本书的全名
参数说明:
- books:二维字符串数组,用于存储图书名称
- n:整型,表示当前图书数量
- book_name:字符数组,表示要查找的图书名称的一部分
函数库的实现可以参考下面的代码:
#include <stdio.h>
#include <string.h>
void input_books(char books[][100], int n) {
printf("请输入图书名称:\n");
for (int i = 0; i < n; i++) {
scanf("%s", books[i]);
}
}
void output_books(char books[][100], int n) {
printf("目前图书名称列表:\n");
for (int i = 0; i < n; i++) {
printf("%s\n", books[i]);
}
}
void sort_books(char books[][100], int n) {
char temp[100];
for (int i = 0; i < n-1; i++) {
for (int j = i+1; j < n; j++) {
if (strcmp(books[i], books[j]) > 0) {
strcpy(temp, books[i]);
strcpy(books[i], books[j]);
strcpy(books[j], temp);
}
}
}
}
int search_book(char books[][100], int n, char book_name[]) {
for (int i = 0; i < n; i++) {
if (strcmp(books[i], book_name) == 0) {
return i+1;
}
}
return -1;
}
void fuzzy_search(char books[][100], int n, char book_name[]) {
printf("模糊查找结果:\n");
for (int i = 0; i < n; i++) {
if (strstr(books[i], book_name) != NULL) {
printf("%s\n", books[i]);
}
}
}
int main() {
char books[50][100];
int n;
printf("请输入图书数量:\n");
scanf("%d", &n);
input_books(books, n);
output_books(books, n);
sort_books(books, n);
printf("按字母顺序排序结果:\n");
output_books(books, n);
char book_name[100];
printf("请输入要查找的图书名称:\n");
scanf("%s", book_name);
int index = search_book(books, n, book_name);
if (index == -1) {
printf("未找到该图书!\n");
} else {
printf("%s 是数组中第 %d 本书\n", book_name, index);
}
printf("请输入要模糊查找的图书名称:\n");
scanf("%s", book_name);
fuzzy_search(books, n, book_name);
return 0;
}
阅读全文