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语言实现图书馆系统

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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • js中有几种数据类型_数据类型定义

    js中有几种数据类型_数据类型定义js数据类型有几种?它们之间的区别是什么两种基本数据类型和引用数据类型区别:1)基本类型在栈内存,引用类型在堆内存分配地址; 2)不同的内存分配机制也带来了不同的访问机制; 3)赋值变量时的不同; 4)参数传递的不同(把实参赋值给形参的过程);…

    2025年8月29日
    4
  • 拉式变换,卷积与传递函数

    拉式变换,卷积与传递函数前言这里主要想记录一下自己对拉式变换 卷积 以及传递函数的理解 之前上学时在某一门课上曾经想通过 但是后面又想不通了 今天重新学习了一下终于又想通了 所以记录下 方便以后能够找到 这里记录的都是一些理性认识 不会有太多的公式推导 因为我觉得做工程 而非学术 更多的是了解某个原理是什么工作的 要怎么使用 而不应该花过多时间细究其公式推导 没啥用 因为过段时间又忘了 就算是做学术 如果只是拓展知识面的话 很多东西也是不需要细究的 注 下面记录的都是个人理解 可能存在不严谨之处 欢迎探讨 正文一 传递函

    2025年11月12日
    6
  • Eamcs ditaa基于字符图形产生的图像上

    Eamcs ditaa基于字符图形产生的图像上

    2022年1月5日
    56
  • 《高可用MySQL》2 – 单机版MySQL主从配置「建议收藏」

    《高可用MySQL》2 – 单机版MySQL主从配置

    2022年2月2日
    37
  • 最艰难的采访IT公司ThoughtWorks代码挑战——FizzBuzzWhizz游戏

    最艰难的采访IT公司ThoughtWorks代码挑战——FizzBuzzWhizz游戏

    2022年1月5日
    47
  • 安装maven步骤_织梦安装教程

    安装maven步骤_织梦安装教程熟练的配置开发环境是每一个程序员必备的功课,俗话说:工欲善其事,必先利其器。本文须知:安装maven环境之前要先安装javajdk环境(没有安装java环境的可以先去看安装JAVA环境的教程)Maven3.3+requireJDK1.7及以上。第一步:下载maven(本教程安装的是3.8.4)官方下载链接:https://maven.apache.org/download.cgiBinary是可执行版本,已经编译好可以直接使用。Source是源代码版本,需要自己编译成可执..

    2022年8月22日
    9

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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