前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >c语言图书管理系统案例实训_c语言实现图书馆系统

c语言图书管理系统案例实训_c语言实现图书馆系统

作者头像
全栈程序员站长
发布2022-11-08 11:33:49
8970
发布2022-11-08 11:33:49
举报
文章被收录于专栏:全栈程序员必看

本次案例需要三个文件来运行分别是StuManage.h//头文件、StuManage.c//函数定义和main.c//测试文件

StuManage.h文件

代码语言:javascript
复制
#include <stdio.h>
#ifndef STUMANA_STUMANA_H
#define STUMANA_STUMANA_H
typedef struct book
{
 char bnum[10];
 char bname[30];
 char bauthor[20];
 char bclassfy[10];
 float bprice;
 struct book* next;
}BookInfo;
BookInfo* CreateBooksList();
void Insert(BookInfo* head);
void Delete(BookInfo* head);
void Print(BookInfo* head);
void Search(BookInfo* head);
void Update(BookInfo* head);
void Save(BookInfo* head);
int menu();
#endif

StuManage.c文件

代码语言:javascript
复制
#define _CRT_SECURE_NO_WARNINGS
#include "StuManage.h"
#include <stdlib.h>
#include <string.h>
BookInfo* CreateBooksList()
{
BookInfo* head;
head = (BookInfo*)malloc(sizeof(BookInfo));
head->next = NULL;
return head;
}
void Insert (BookInfo* head)
{
BookInfo *b, *p;
char flag = 'Y';
p = head;
while (p->next != NULL)
p = p->next;
while (flag == 'Y' || flag == 'y')
{
b = (BookInfo*)malloc(sizeof(BookInfo));
printf("请输入图书编号:");
fflush(stdin);
scanf("%s", b->bnum);
printf("请输入书名:");
fflush(stdin);
scanf("%s", b->bname);
printf("请输入作者:");
fflush(stdin);
scanf("%s", b->bauthor);
printf("请输入类别编号:");
fflush(stdin);
scanf("%s", b->bclassfy);
printf("请输入图书价格:");
fflush(stdin);
scanf("%f", &b->bprice);
p->next = b;
p = b;
b->next = NULL;
printf("添加成功!\n继续添加?(Y/N):");
fflush(stdin);
scanf("%c", &flag);
if (flag == 'N' || flag == 'n')break;
else if (flag == 'Y' || flag == 'y')continue;
}
return;
}
void Delete(BookInfo* head)
{
BookInfo *b, *p;
char tmp[30];
int flag;
flag = 0;
b = head;
p = head;
printf("请输入要删除的书籍名:");
fflush(stdin);
scanf("%s", tmp);
while(p != NULL)
{
if(strcmp(p->bname, tmp) == 0)
{
flag = 1;
break;
}
p = p->next;
}
if(flag == 1)
{
for(; b->next !=p;)
b = b->next;
b->next = p->next;
free(p);
printf("删除成功!\n");
}
else
printf("该书不存在!");
return;
}
void Print(BookInfo* head)
{
BookInfo *p;
if (head == NULL || head->next == NULL)
{
printf("无记录! \n");
return;
}
p = head;
printf("┏━━━┯━━━┯━━━┯━━━━━┯━━━┓\n");
printf("┃编号  ┃书名  ┃作者  ┃类别编号  ┃价格  ┃\n");
printf("┃━━━╂━━━╂━━━╂━━━━━╂━━━┥\n");
while (p->next !=NULL)
{
p = p->next;
printf("┃%-6s┃%-6s┃%-6s┃%-10s┃%.2f  ┃\n", 
p->bnum,p->bname, p->bauthor, p->bclassfy, p->bprice);
printf("┕━━━━━━━━━━━━━━━━━━━━━┚\n");
} 
}
void Search(BookInfo* head)
{
BookInfo *p;
char tmp [30];
int flag = 0;
p = head;
if (head == NULL || head->next == NULL)
printf("清单为空!\n");
else
{
printf("请输入书名:");
fflush(stdin);
scanf("%s",tmp);
while(p->next != NULL)
{
p = p->next;
if (strcmp(p->bname, tmp) == 0)
{
flag = 1;
printf("编号:%s\n书名:《%s》\n作者:%s\n分类:%s\n价格:%.2f\n",
p->bnum,p->bname,p->bauthor, p->bclassfy,p->bprice);
return;
}
if (p->next == NULL)
printf("\n查询完毕!");
}
if (flag == 0)
printf("没有找到《%s》!\n", tmp);
}
return;
}
void Update(BookInfo* head)
{
BookInfo *p;
char tmp[30];
int flag = 0;
p = head;
printf("请输入书名:");
fflush(stdin);
scanf("%s", tmp);
while (p->next != NULL)
{
p = p->next;
if (strcmp(p->bname, tmp) ==0)
{
flag = 1;
printf("请输入编号:");
fflush(stdin);
scanf("%s", p->bnum);
printf("请输入书名:");
fflush(stdin);
scanf("%s", p->bname);
printf("请输入作者:");
fflush(stdin);
scanf("%s", p->bauthor);
printf("请输入类别编号:");
fflush(stdin);
scanf("%s", p->bclassfy);
printf("请输入价格:");
fflush(stdin);
scanf("%f", &p->bprice);
}
}
if (flag == 0)
printf("没有找到《%s》!\n", tmp);
return;
}
void Save (BookInfo* head)
{
BookInfo*p;
FILE*fp;
p = head;
fp = fopen("D:\\bookslist.txt","w");
fprintf(fp, "┏━━━┯━━━┯━━━┯━━━━━┯━━━┓\n");
fprintf(fp, "┃编号  ┃书名  ┃作者  ┃类别编号  ┃价格  ┃\n");
fprintf(fp, "┃━━━╂━━━╂━━━╂━━━━━╂━━━┥\n");
while (p->next !=NULL)
{
p = p->next;
fprintf(fp, "┃%-6s┃%-6s┃%-6s┃%-10s┃%.2f  ┃\n", 
p->bnum,p->bname, p->bauthor, p->bclassfy, p->bprice);
fprintf(fp, "┕━━━━━━━━━━━━━━━━━━━━━┚\n");
} 
fclose(fp);
printf("保存成功!\n");
printf("数据已成功保存到D:\\bookslist.txt");
}
int menu()
{
int sec; 
printf("            图书管理系统            \n");
printf("━━━━━━━━━━━━━━━━━━\n");
printf("     1-图书信息录入\n");
printf("     2-图书信息浏览\n");
printf("     3-图书信息查询\n");
printf("     4-图书信息修改\n");
printf("     5-图书信息删除\n");
printf("     6-图书信息保存\n");
printf("     7-退出\n");
printf("━━━━━━━━━━━━━━━━━━\n");
printf("请选择:");
fflush(stdin);
scanf("%d", &sec);
while(sec >7 || sec < 0)
{
printf("选择有误!\n请重新输入:");
scanf("%d", &sec);
}
return sec;
}

main.c文件

代码语言:javascript
复制
#include "StuManage.h"
#include "StuManage.c"
#include <Windows.h>
int main()
{
BookInfo *head;
int sel;
head = NULL;
for(;;)
{
sel = menu();
switch (sel)
{
case 1:
if (head == NULL)
head = CreateBooksList();
Insert(head);
break;
case 2:Print(head);break;
case 3:Search(head);break;
case 4:Update(head);break;
case 5:Delete(head);break;	
case 6:Save(head);break;
case 7:exit(0);break;
default:break;
}
}
return 0;
}

运行结果

c语言图书管理系统案例实训_c语言实现图书馆系统
c语言图书管理系统案例实训_c语言实现图书馆系统
c语言图书管理系统案例实训_c语言实现图书馆系统
c语言图书管理系统案例实训_c语言实现图书馆系统
c语言图书管理系统案例实训_c语言实现图书馆系统
c语言图书管理系统案例实训_c语言实现图书馆系统
c语言图书管理系统案例实训_c语言实现图书馆系统
c语言图书管理系统案例实训_c语言实现图书馆系统
c语言图书管理系统案例实训_c语言实现图书馆系统
c语言图书管理系统案例实训_c语言实现图书馆系统
c语言图书管理系统案例实训_c语言实现图书馆系统
c语言图书管理系统案例实训_c语言实现图书馆系统
c语言图书管理系统案例实训_c语言实现图书馆系统
c语言图书管理系统案例实训_c语言实现图书馆系统
c语言图书管理系统案例实训_c语言实现图书馆系统
c语言图书管理系统案例实训_c语言实现图书馆系统

运行结果左上角的地址与代码地址不符可以根据自身需求进行更改(在StuManage.c文件最后一个地方)

c语言图书管理系统案例实训_c语言实现图书馆系统
c语言图书管理系统案例实训_c语言实现图书馆系统

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/184126.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年10月9日 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档