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

c语言图书管理系统案例实训_c语言实现图书馆系统本次案例需要三个文件来运行分别是StuManage.h//头文件、StuManage.c//函数定义和main.c//测试文件#include<stdio.h>#ifndefSTUMANA_STUMANA_H#defineSTUMANA_STUMANA_Htypedefstructbook{charbnum[10];charbname[30];charbauthor[20];charbclassfy[10];floatbprice;.

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

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

StuManage.h文件

#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文件

#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文件

#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语言实现图书馆系统运行结果左上角的地址与代码地址不符可以根据自身需求进行更改(在StuManage.c文件最后一个地方)

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

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • android系统的官网下载地址,Android安卓10.0系统官方正式版

    android系统的官网下载地址,Android安卓10.0系统官方正式版Android安卓10.0系统官方正式版:这是一款关于安卓的系统,没错就在今天,谷歌更新了关于安卓10.0的系统更新,相信很多的小伙伴都应该是不清楚的,应为感觉还是有很多的用户在等着系统自己的更新,没有操心这一方面的事情。Android安卓10.0系统官方正式版更新了什么功能?1、目前来看的话,更新功能还是蛮多的,但是用户能够看的上的就不言而喻;2、毕竟以前放出来的消息就是这一次更新将会有可能安卓…

  • VC++ 使用BitBlt函数显示位图「建议收藏」

    VC++ 使用BitBlt函数显示位图「建议收藏」BitBlt函数该函数对指定的源设备环境区域中的像素进行位块(bit_block)转换,以传送到目标设备环境。原型:BOOLBitBlt(HDChdcDest,intnXDest,intnYDest,intnWidth,intnHeight,HDChdcSrc,intnXSrc,intnYSrc,DWORDdwRop);参数:hdcDest:指向目标设备环境的句柄。nXDe…

    2022年10月19日
  • 有没有提醒喝水的打卡软件_小爱同学定时打卡

    有没有提醒喝水的打卡软件_小爱同学定时打卡本文方案来自CSDN博主「机灵鹤」方案详情可查看原文:https://smartcrane.blog.csdn.net/article/details/121837850本项目实现了一个久坐提醒和喝水提醒的小助手,在检测到连续工作较长时间之后,会打印纸条,提醒我们起身活动一下;在设定的喝水时间到了以后,也会打印纸条,提醒我们去喝水。项目用到的硬件设备有:硬件都备的差不多了,在开发时我遇到了一个比较棘手的问题,就是咕咕机跟人体传感器它也不是同一家的设备啊!虽然两家都有各自的控制APP,但是它们毕竟是两套系

  • python字符串查找特定字符_神器是啥意思

    python字符串查找特定字符_神器是啥意思TheFuzz库对应的源码链接为https://github.com/seatgeek/thefuzz。需要说明的是,TheFuzz是FuzzyWuzzy的升级版本,后者在2020年后已经不再进行更新,所以请及时切换到TheFuzz库。1.安装方法2.两大模块fuzz和process2.1模块一:fuzz2.2模块二:process2.2.1process.extractOne(提取出相似度最高的选择)2.2.2process.extract(提取出相似度高的多个选择)3.实战案例

  • telnet 1521端口不通

    telnet 1521端口不通一:场景:本机telnet虚拟机oracle数据库1521不通二:解决方法1:首先保证双方都ping通,虚拟机本地1521telnet是通的2:虚拟机防火墙设置如下:新建规则选择端口选择TCP输入端口号1521,后面一直下一步就OK了…

  • conda安装tensorflow-cpu

    conda安装tensorflow-cpu把之前的清空condauninstallxxx安装condainstall–channelhttps://conda.anaconda.org/HCCtensorflow试了很多镜像都不行,只有这个可以安装完,importtensorflow报错卸载h5py,重装condauninstallh5pycondainstallh5pydone…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号