程序示例精选
C语言图书管理系统控制台程序
如需安装运行环境或远程调试,见文章底部个人QQ名片,由专业技术人员远程协助!
前言
这篇博客针对《C语言图书管理系统控制台程序》编写代码,代码整洁,规则,易读。 学习与应用推荐首选。
文章目录
一、所需工具软件
二、使用步骤
1. 主要代码
2. 运行结果
三、在线协助
一、所需工具软件
1. VS2022
2. C++
二、使用步骤
代码如下(示例):
typedef struct
{
char no[20]; // 书号
char name[20]; // 书名
char author[20]; // 作者
float price; // 价格
int count; //数量
}book;
book bk[MAXNUM];
int cnt = 0; //图书总数量
void readFile() //读文件
{
FILE* fo;
fo = fopen("bookdata.txt", "r");
fscanf(fo, "%d", &cnt);
int i;
for (i = 1; i <= cnt; i++)
{
fscanf(fo, "%s", bk[i].no);
fscanf(fo, "%s", bk[i].name);
fscanf(fo, "%s", bk[i].author);
fscanf(fo, "%f", &bk[i].price);
fscanf(fo, "%d", &bk[i].count);
}
fclose(fo);
}
void saveFile() //写文件
{
FILE* fp;
fp = fopen("bookdata.txt", "w");
int i;
fprintf(fp, "%d\n", cnt);
for (i = 1; i <= cnt; i++)
{
fprintf(fp, "%5s", bk[i].no);
fprintf(fp, "%10s", bk[i].name);
fprintf(fp, "%13s", bk[i].author);
fprintf(fp, "%13f", bk[i].price);
fprintf(fp, "%13d\n", bk[i].count);
}
fclose(fp);
}
void swap(char* src, char* des) //字符串交换
{
char t[100];
strcpy(t, src);
strcpy(src, des);
strcpy(des, t);
}
void addbook() //新增图书
{
system("cls");
char a[20];
system("cls");
printf(" ********** 增加图书 **********\n");
cnt++; //图书的数量+1
printf("请输入图书书号: ");
scanf("%s", a);
if (search_no(a) != 0) {
printf("该书已存在,您可以返回主菜单选择修改信息\n");
cnt--;
return;
}
swap(a, bk[cnt].no);
printf("请输入图书书名: ");
scanf("%s", bk[cnt].name);
printf("请输入图书作者: ");
scanf("%s", bk[cnt].author);
printf("请输入图书价格: ");
scanf("%f", &bk[cnt].price);
printf("请输入图书数量: ");
scanf("%d", &bk[cnt].count);
printf("新增成功!");
}
void sort_menu() // 排序图书菜单
{
system("cls");
printf("请选择排序方式:\n");
printf("1 书号 ");
printf("2 书名 ");
printf("0 退出\n");
printf("请选择:");
}
void del_menu() //删除图书菜单
{
system("cls");
printf(" ********** 删除图书 **********\n");
printf(" 请选择删除方式:\n");
printf(" 1 书号 ");
printf(" 2 书名 ");
printf(" 0 退出\n");
printf("请选择:");
}
void search_menu() // 查找图书菜单
{
system("cls");
printf(" ********** 查找图书 **********\n");
printf(" 请选择查找方式:\n");
printf(" 1 书号 ");
printf(" 2 书名 ");
printf(" 3 作者 ");
printf(" 0 退出\n");
printf("请选择:");
}
void change_menu() //修改图书菜单
{
system("cls");
printf(" ********** 修改图书 **********\n");
printf(" 请选择修改方式:\n");
printf(" 1 书号 ");
printf(" 2 书名 ");
printf(" 0 退出\n");
printf(" 请选择:");
}
void print_menu() // 输出菜单
{
system("cls");
printf("\n********** 图书管理系统 **********\n\n");
printf("\t1 增加图书\n");
printf("\t2 修改图书\n");
printf("\t3 删除图书\n");
printf("\t4 查找图书\n");
printf("\t5 图书排序\n");
printf("\t6 图书显示\n");
printf("\t7 图书销售\n");
printf("\t0 退出系统\n\n");
printf("\t请选择要执行的操作: ");
}
void print_head() // 打印说明文字
{
char id[5] = "序号";
char no[5] = "书号";
char name[5] = "书名";
char author[9] = "作者";
char price[11] = "价格";
char count[11] = "数量";
printf("% 5s", id);
printf("%10s", no);
printf("%13s", name);
printf("%13s", author);
printf("%13s", price);
printf("%13s", count);
printf("\n");
}
void output(int i) //输出 cnt 为 i 的图书信息
{
printf("%10s", bk[i].no);
printf("%13s", bk[i].name);
printf("%13s", bk[i].author);
printf("%15.2f", bk[i].price);
printf("%15d\n", bk[i].count);
}
int main()
{
int i, j;
while (1)
{
readFile();
print_menu();
int n;
scanf("%d", &n);
printf("\n");
if (n == 0) {
printf("\t谢谢您的使用!");
break;
}
switch (n)
{
case 1: //增加图书
addbook();
break;
case 2://修改图书
change_menu();
int p;
scanf("%d", &p);
if (p == 0)
break;
switch (p)
{
case 1:
printf(" 请输入要修改书的书号:");
char no[20];
scanf("%s", no);
j = search_no(no);
if (j == 0)
printf(" 未查找到该书!\n\t");
else {
change(j);
printf("修改成功!");
}
break;
case 2:
printf(" 请输入要修改书的书名:");
char name[20];
scanf("%s", name);
i = search_name(name);
if (i == 0)
printf(" 未查找到该书!\n\t");
else {
change(i);
printf("修改成功!");
}
break;
default:
printf(" 输入错误!\n\t");
}
break;
case 3://删除图书
del_menu();
int p1;
scanf("%d", &p1);
if (p1 == 0)
break;
switch (p1)
{
case 1:
printf("请输入要删除书的书号:");
char num[20];
scanf("%s", num);
j = search_no(num);
if (j == 0)
printf("未查找到该书!\n");
else {
del(j);
printf("删除成功!");
}
break;
case 2:
printf("请输入要删除书的书名:");
char name[20];
scanf("%s", name);
i = search_name(name);
if (i == 0)
printf("未查找到该书!");
else {
del(i);
printf("删除成功!");
}
break;
default:
printf("输入错误!\n");
}
break;
default:
printf("输入有误,请重新选择:\n\n");
}
saveFile();//保存
pause();
}
system("pause");
return 0;
}
运行结果
三、在线协助:
如需安装运行环境或远程调试,见文章底部个人 QQ 名片,由专业技术人员远程协助!
1)远程安装运行环境,代码调试
2)Visual Studio, Qt, C++, Python编程语言入门指导
3)界面美化
4)软件制作
5)云服务器申请
6)网站制作
当前文章连接:https://blog.csdn.net/alicema1111/article/details/132666851
个人博客主页:https://blog.csdn.net/alicema1111?type=blog
博主所有文章点这里:https://blog.csdn.net/alicema1111?type=blog
博主推荐:
Python人脸识别考勤打卡系统:
https://blog.csdn.net/alicema1111/article/details/133434445
Python果树水果识别:https://blog.csdn.net/alicema1111/article/details/130862842
Python+Yolov8+Deepsort入口人流量统计:https://blog.csdn.net/alicema1111/article/details/130454430
Python+Qt人脸识别门禁管理系统:https://blog.csdn.net/alicema1111/article/details/130353433
Python+Qt指纹录入识别考勤系统:https://blog.csdn.net/alicema1111/article/details/129338432
Python Yolov5火焰烟雾识别源码分享:https://blog.csdn.net/alicema1111/article/details/128420453
Python+Yolov8路面桥梁墙体裂缝识别:https://blog.csdn.net/alicema1111/article/details/133434445
Python+Yolov5道路障碍物识别:https://blog.csdn.net/alicema1111/article/details/129589741
Python+Yolov5跌倒检测 摔倒检测 人物目标行为 人体特征识别:https://blog.csdn.net/alicema1111/article/details/129272048