赞
踩
图书管理系统,主要实现了以下功能:
void judge(int jdg)
这个函数根据传入的功能选项 jdg
来执行相应的操作。根据 switch
语句,可以实现不同选项对应的不同功能。
void judge(int jdg) { int n; char bkNum[20]; switch (jdg) { case 1: printf("请输入要录入书籍的个数:"); scanf("%d", &n); for (i = tmp; i < n + tmp; i++) { inputBk(&bk[i], i); // 录入新书籍信息 } tmp = n + tmp; // 更新书籍数量 break; case 2: printf("请输入要删除的书号:"); scanf("%s", bkNum); deleteBK(bkNum); // 删除指定书籍信息 break; case 3: sortInfo(bk, tmp); // 对书籍按照价格从小到大排序 printf("排序后:\n"); for (i = 0; i < tmp; i++) { outputInfo(&bk[i]); // 输出排序后的书籍信息 } break; case 4: printf("请输入要修改的书号:"); scanf("%s", bkNum); updateInfo(bkNum); // 修改指定书籍信息 break; case 5: printf("请输入要查询的书号:"); scanf("%s", bkNum); serchInfo(bkNum); // 查询指定书籍信息 break; case 6: flag = 0; // 退出系统 break; } }
void inputBk(BK *p, int i)
这个函数用于录入新书籍信息,接受一个指向 BK
结构体的指针 p
和一个整数 i
,表示书籍的序号。通过 scanf
函数依次输入书号、书名、作者、单价、数量和简介。
void inputBk(BK *p, int i) { printf("请录入第%d本书:\n", i + 1); printf("请输入书号:"); scanf("%s", p->num); printf("请输入书名:"); scanf("%s", p->name); printf("请输入作者:"); scanf("%s", p->author); printf("请输入单价:"); scanf("%d", &(p->price)); printf("请输入数量:"); scanf("%d", &(p->total)); printf("请输入简介:"); scanf("%s", p->introduce); }
void deleteBK(char bkNum[])
这个函数用于删除指定书号的书籍信息。首先根据输入的书号 bkNum
遍历书籍数组 bk
,找到对应的书籍信息,然后将其后的书籍依次前移一位,实现删除操作。
void deleteBK(char bkNum[]) { int assert = 0; for (i = 0; i < tmp; i++) { if (strcmp(bkNum, bk[i].num) == 0) { for (int j = i; j < tmp - 1; j++) { // 删除指定书籍信息 strcpy(bk[j].num, bk[j + 1].num); strcpy(bk[j].name, bk[j + 1].name); strcpy(bk[j].author, bk[j + 1].author); strcpy(bk[j].introduce, bk[j + 1].introduce); bk[j].price = bk[j].price; bk[j].total = bk[j].total; tmp = tmp - 1; // 更新书籍数量 assert = 1; break; } } } // 输出提示信息 if (assert) { printf("已经删除该书籍信息\n"); } else { printf("没有找到该书籍\n"); } }
void sortInfo(BK bk[], int n)
这个函数用于对书籍信息按照价格从小到大进行排序。采用冒泡排序算法实现,遍历书籍数组,比较相邻两个书籍的价格,将价格较大的书籍往后移,直到将最小的价格移到最前面。
void sortInfo(BK bk[], int n) {
int i, j;
for (i = 0; i < n - 1; i++) {
for (j = 0; j < n - 1 - i; j++) {
if (bk[j].price > bk[j + 1].price) {
swapInfo(&bk[j], &bk[j + 1]); // 交换两个书籍的位置
}
}
}
}
void swapInfo(BK *p, BK *q)
这个函数用于交换两个书籍信息的位置,接受两个 BK
结构体指针作为参数,通过一个临时变量实现交换。
void swapInfo(BK *p, BK *q) {
BK trmp;
trmp = *p;
*p = *q;
*q = trmp;
}
void outputInfo(BK *p)
这个函数用于输出一本书籍的信息,接受一个 BK
结构体指针作为参数,通过 printf
函数将书号、书名、作者、单价、数量和简介输出到屏幕上。
void outputInfo(BK *p) {
printf("%s\t%s\t%s\t%d\t%d\t%s\n", p->num, p->name, p->author, p->price, p->total, p->introduce);
}
完整系统:https://download.csdn.net/download/weixin_45741872/89045421
void updateInfo(char bkNum[])
这个函数用于修改指定书号的书籍信息。首先根据输入的书号 bkNum
找到对应的书籍信息,然后通过 scanf
函数重新输入新的书籍信息,完成修改。
void updateInfo(char bkNum[]) { int assert = 0; for (i = 0; i < tmp; i++) { if (strcmp(bkNum, bk[i].num) == 0) { printf("请修改图书馆第%d本书:\n", i + 1); printf("请修改书号:"); scanf("%s", bk[i].num); printf("请修改书名:"); scanf("%s", bk[i].name); printf("请修改作者:"); scanf("%s", bk[i].author); printf("请修改单价:"); scanf("%d", &(bk[i].price)); printf("请修改数量:"); scanf("%d", &(bk[i].total)); printf("请修改简介:"); scanf("%s", bk[i].introduce); assert = 1; break; } } // 输出提示信息 if (assert) { printf("已经修改该书籍信息\n"); } else { printf("没有找到该名称书籍\n"); } }
void serchInfo(char bkNum[])
这个函数用于查询指定书号的书籍信息。首先根据输入的书号 bkNum
找到对应的书籍信息,然后调用 outputInfo
函数将书籍信息输出到屏幕上。
void serchInfo(char bkNum[]) { int assert = 0; for (i = 0; i < tmp; i++) { if (strcmp(bkNum, bk[i].num) == 0) { outputInfo(&bk[i]); // 输出指定书籍信息 assert = 1; break; } } // 输出提示信息 if (assert) { printf("已经查询到该书籍信息\n"); } else { printf("没有找到该名称的书籍\n"); } }
int main()
主函数中包含一个 while
循环,不断显示菜单栏,并根据用户的选择调用相应的函数,直到用户选择退出系统。
int main() { while (flag) { // 循环显示菜单栏,直到用户选择退出 do { // 显示菜单栏 printf("############################################菜单栏######################################\n"); printf("请输入想要实现的功能选项\n"); printf("1、录入新书籍\n"); printf("2、删除指定书籍\n"); printf("3、价格从小到大排序书籍\n"); printf("4、修改指定书籍\n"); printf("5、查询指定书籍\n"); printf("6、退出菜单栏\n"); printf("############################################菜单栏######################################\n"); printf("请输入选项:"); scanf("%d", &menu); } while (menu > 6 || menu < 1); // 根据用户选择调用相应的函数 judge(menu); } getchar(); getchar(); getchar(); // 暂停屏幕,防止程序一闪而过 return 0; }
完整系统:https://download.csdn.net/download/weixin_45741872/89045421
录入书籍
按价格排序书籍
修改指定书籍
查询指定书籍
删除指定书籍
完整系统:https://download.csdn.net/download/weixin_45741872/89045421
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。