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


相关推荐

发表回复

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

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