void deletebook(Book bookList[]) { char delete_bookname[30]; for(int j=0;j<numbooks;j++) { printf("%5s\t%15s\t%10s\t%25s\n",bookList[j].id,bookList[j].name,bookList[j].author,bookList[j].press);//打印借完书后的新书单 } printf("请输入要删掉的书名:"); scanf("%s",delete_bookname); for(int j=0;j<numbooks;j++) { if(strcmp(bookList[j].name,delete_bookname)==0) { strcpy(bookList[j].id,bookList[j+1].id); strcpy(bookList[j].name,bookList[j+1].name); strcpy(bookList[j].author,bookList[j+1].author); strcpy(bookList[j].press,bookList[j+1].press); numbooks--; printf("删除图书信息成功!\n"); break; } } for(int j=0;j<numbooks;j++) { printf("%5s\t%15s\t%10s\t%25s\n",bookList[j].id,bookList[j].name,bookList[j].author,bookList[j].press);//打印借完书后的新书单 } }怎么修改这段代码
时间: 2024-03-31 13:35:32 浏览: 52
这段代码是一个删除图书信息的函数,可以根据用户输入的书名来删除对应的图书信息。可以根据需求进行修改,下面是几个可能需要修改的地方:
1. 函数名可以根据实际需要进行修改,比如改为deleteBook或者removeBook等等。
2. 可以添加参数来接收用户输入的书名,比如将delete_bookname改为函数的参数。
3. 在删除图书信息之前可以先判断书名是否存在,如果不存在则提示用户。
4. 在删除图书信息之后可以重新按照某种规则排序,比如按照书名、作者、出版社等等进行排序。
5. 可以添加错误处理,比如输入不合法等等。
下面是修改后的代码示例:
void deleteBook(Book bookList[], char bookName[]) {
int index = -1;
for(int j = 0; j < numbooks; j++) {
if(strcmp(bookList[j].name, bookName) == 0) {
index = j;
break;
}
}
if(index == -1) {
printf("书名%s不存在!\n", bookName);
return;
}
for(int j = index; j < numbooks - 1; j++) {
strcpy(bookList[j].id, bookList[j+1].id);
strcpy(bookList[j].name, bookList[j+1].name);
strcpy(bookList[j].author, bookList[j+1].author);
strcpy(bookList[j].press, bookList[j+1].press);
}
numbooks--;
printf("删除图书信息成功!\n");
//按照书名重新排序
for(int i = 0; i < numbooks - 1; i++) {
for(int j = i + 1; j < numbooks; j++) {
if(strcmp(bookList[i].name, bookList[j].name) > 0) {
Book tmp = bookList[i];
bookList[i] = bookList[j];
bookList[j] = tmp;
}
}
}
//打印新的书单
printf("%5s\t%15s\t%10s\t%25s\n", "编号", "书名", "作者", "出版社");
for(int j = 0; j < numbooks; j++) {
printf("%5s\t%15s\t%10s\t%25s\n", bookList[j].id, bookList[j].name, bookList[j].author, bookList[j].press);
}
}
阅读全文