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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • linux查看rpm包创建的所有目录和文件

    linux查看rpm包创建的所有目录和文件

    2021年9月17日
    77
  • java中scanner的作用_Java中的Scanner类有什么作用[通俗易懂]

    java中scanner的作用_Java中的Scanner类有什么作用[通俗易懂]介绍:简单来说,Scanner就是用来获取用户在控制台输入的字符串,也可以获取一个文件中的字符串。java.util.Scanner是Java5的特征,一个可以使用正则表达式来解析基本类型和字符串的简单文本扫描器。使用方法介绍:1、使用不同的next方法将得到的标记转换为不同类型的值,比如说要从获控制台取一个输入字符串中的int类型的数字,使用nextInt。代码示例:Scanners…

    2022年7月20日
    15
  • AD域、Windows AD域管理功能大全「建议收藏」

    AD域、Windows AD域管理功能大全「建议收藏」WindowsAD域管理功能大全,再也不用东拼西凑了!功能一、AD域管理1、AD域管理通过批量创建和编辑用户帐户,指派管理权限等,简化WindowsAD域的管理。2、批量管理域用户使用CSV文件批量导入用户、编辑用户属性、重置密码、批量迁移用户和用户对象。3、批量创建域用户通过导入CSV文件,批量创建用户,包含Exchange邮箱、终端服务等所有属性,指派到组。4、批…

    2022年5月17日
    30
  • activity工作流引擎

    activity工作流引擎工作流activity引擎入门案例1、工作流是什么?简单来说工作流就是将一条信息根据角色、分工、条件不同进行固定的向上传递,数据是按照固定的流向进行传输,一级一级传递下去,这种场景在OA,CRM/ERP中应用的比较多。通常这种操作自己本身也可以通过逻辑来实现,但是复杂度很高。而且不方便维护。所以通常都采用第三方引擎框架来实现,出了引擎本身简化了操作以外。更重要的是维护起来很方便。2、…

    2022年6月12日
    36
  • Web端即时聊天项目实现(基于WebSocket)

    Web端即时聊天项目实现(基于WebSocket)Web端即时聊天项目实现项目背景 其实这个项目算是我做过的花时间最长也投入心血最多的一个项目了,当时决定开始做这个的时候我几乎什么都不会,那时我个人的情况是:-JavaEE方面:会jsp+servlet,也简单使用过Struts,Spring仅仅只是听说过。-前端方面:html,css有一些基础,会使用Bootstrap前端工具开发集,js基本不了解。-数据库…

    2022年5月14日
    56
  • vs2012激活密钥永久_win7简易版激活密钥

    vs2012激活密钥永久_win7简易版激活密钥VS2012有效注册密钥 Microsoft Visual Studio Ultimate 2012 旗舰版 有效注册密钥:YKCW6-BPFPF-BT8C9-7DCTH-QXGWC原文地址

    2022年10月14日
    5

发表回复

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

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