栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

书籍管理系统--基于c语言

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

书籍管理系统--基于c语言

基于C语言 主要采用单链表的数据结构 功能简单:书籍的增加,修改,查找,列出书籍清单 头文件
#ifndef BOOK_H_
#define BOOK_H_
#define OK 1
#define ERROR 0
typedef int Status ;

typedef struct BookNode
{
	char Title[20];
	char Author[10];
	int count;
	struct BookNode* next;
}BookNode,*pbook;


void GUI(char title[20],char content1[20],char content2[20],char content3[20],char content4[20],char content5[20],int CWin);
Status ShowFiveBooks(int number,pbook book);
Status Welcome(pbook book);
Status Listbooks(pbook book);
Status Modifybook(pbook book); 
Status Searchbook(pbook book);
Status Insertbook(pbook book);
Status AboutMe(void);
void ShowBooks(char title[20],char c1[20],char c2[20],char c3[20],char c4[20],char c5[20],char c6[20],char c7[20],char c8[20],char c9[20],char c10[20],int CWin);


#endif
主界面

书单界面

代码主体

#include "stdio.h"
#include "stdlib.h"
#include "Book.h"
#include "string.h"
pbook temp;


void GUI(char title[20],char content1[20],char content2[20],char content3[20],char content4[20],char content5[20],int CWin)
{	if(CWin) printf("33c");
	printf("nnnn");
    printf("ttt+-----------------------------------------------+n");
    printf("ttt|tttttt|n"); 
    printf("ttttt   %stttn",title);
    printf("ttt|_______________________________________________|n");
    printf("tttttttttn"); 
    printf("ttt%sttttttn",content1); 
    printf("ttt%stttttn",content2);
    printf("ttt%stttttn",content3);
    printf("ttt%stttttn",content4);
    printf("ttt%stttttn",content5); 
    printf("tttttttttn"); 
    printf("tttttttttn");
    printf("tttttttttn");
    printf("ttttttPress'r' to return Menun") ;
    printf("ttt+-----------------------------------------------+n");
}


void ShowBooks(char title[20],char c1[20],char c2[20],char c3[20],char c4[20],char c5[20],char c6[20],char c7[20],char c8[20],char c9[20],char c10[20],int CWin)
{	if(CWin) printf("33c");
	printf("nnnn");
    printf("ttt+-----------------------------------------------+n");
    printf("ttt|tttttt|n"); 
    printf("ttttt   %stttn",title);
    printf("ttt|_______________________________________________|n");
    printf("tttttttttn"); 
    printf("ttt___Title:        《 %s》tttttn",c1); 
    printf("ttt___Author:       Mr/Mrs.%stttttn",c2);
    printf("ttt___Title:        《 %s》tttttn",c3);
    printf("ttt___Author:       Mr/Mrs.%stttttn",c4);
    printf("ttt___Title:        《 %s》tttttn",c5); 
    printf("ttt___Author:        Mr/Mrs.%stttttn",c6); 
    printf("ttt___Title:        《 %s》tttttn",c7);
    printf("ttt___Author:        Mr/Mrs.%stttttn",c8);
    printf("ttt___Title:        《 %s》tttttn",c9);
    printf("ttt___Author:        Mr/Mrs.%stttttn",c10);
    printf("ttttttPress'r' to return Menun") ;
    printf("ttt+-----------------------------------------------+n");
}

Status Init(pbook* book)
{
	(*book) = (pbook)malloc(sizeof(BookNode));
	(*book)->next = NULL;	
	(*book)->count = 0;
}



Status Welcome(pbook book)
{
	GUI("WELCOME!","(a)  Add Books","(b)  List Books","(c)  Modify Books","(d)  Search Books","(e)  About Me",1);
    int ch;
    while(1)//the main process
    { 	ch = getchar();
        switch(ch)
        {  
            case 'a': 
				printf("33c");
				Insertbook(book);
            	break;
            case 'b':
				printf("33c");
				Listbooks(book);
                break;
            case 'c':
				printf("33c");
				Modifybook(book);
				//GUI("Modify Books","","","","",1);
            	break;
			case 'd':
				printf("33c");
				Searchbook(book);
				break;
			case 'e':
				printf("33c");
				AboutMe();
				break;
			case 'r':
				printf("33c");
				GUI("WELCOME!","(a)  Add Books","(b)  List Books","(c)  Modify Books","(d)  Search Books","(e)  About Me",1);
				break;
		}
	}	
}


Status AboutMe(void)
{
	printf("Heren");
	GUI("About me","2022年8月8日,炽夏,伏山乡","那远远的山,山上有悠悠的风力发电机,我的","心中也有这样一个美好的地方,山山层叠,夕阳徐徐","我们会上岸的对吗?nnn","Author:---------yanchao",1);
	return OK;
}



Status Searchbook(pbook book)
{
	if(book->count == 0) 
	{
		
		GUI("**Wrong**","--------------","No Book!","--------------","","",1);
		return ERROR; 
	}
	GUI("Search Book","Please enter book title","","","","",1);
	printf("Input heren");
	char Title[20];
	scanf("%s",Title);
	pbook SearchBook = book;
	while(SearchBook)
	{
		
		if(strcmp(SearchBook->Title,Title) == 0)
		{
			GUI("Search Result","------Title------",SearchBook->Title,"------Author-----",SearchBook->Author,"",1);
			return OK;
		}
		SearchBook = SearchBook->next;
	}

	GUI("No such Book","--------------","Please check Title!n","--------------","","",1);
	return ERROR;
}


Status Modifybook(pbook book)
{
	if(book->count == 0) 
	{
		
		GUI("**Wrong**","--------------","No Book!","--------------","","",1);
		return ERROR; 
	}
	GUI("Modify Books","Please enter book title","","","","",1);
	printf("Input heren");
	char Title[20];
	//char NewTitle[20]; 
	scanf("%s",Title);
	pbook ModifyBook = book;
	while(ModifyBook)
	{
		if(strcmp(ModifyBook->Title,Title) == 0)
		{
			printf("Find Node!n");
			GUI("Modify Books","New book title is ?","","","","",1);
			printf("Input heren");
			scanf("%s",ModifyBook->Title);
			GUI("Modify Books","book Author is?","","","","",1);
			printf("Input heren");
			scanf("%s",ModifyBook->Author);
			GUI("Modify Books","--------------","Modify sucess!","--------------","","",1);

			return OK;
		}
		ModifyBook = ModifyBook->next;
	}
	GUI("No such Book","--------------","Modify defeat!","--------------","","",1);
	return ERROR;
 } 

Status Insertbook(pbook book)//与以往不同的是,以前是一次插入很多数据,这次是每次插入一个数据。
{	printf("Insertn");
	pbook newbook = (pbook)malloc(sizeof(BookNode));
	if(book->count >= 5) 
	{
		printf("Can only store 5 books! n");
		GUI("**Wrong**","","(b)  List Books","(c)  Modify Books","(d)  Search Books","(e) About Me",0);
		return ERROR;
	}
	
	if(book->count == 0)   
	{
	temp = (pbook)malloc(sizeof(BookNode));
	temp = book;
	}//第一次运行时 temp指向头指针
	GUI("Book Title","Please enter Book title","","","","",1);
	scanf("%s",newbook->Title);
	GUI("Books's Author","Please enter Book Author","","","","",1);
	scanf("%s",newbook->Author);
	GUI("Book Information","----The author is Mr/Mrs:",newbook->Author,"----The book title:",newbook->Title,"",1);
	newbook->next = NULL;
	temp->next = newbook;
	temp = newbook;
	book->count++;
}


Status Listbooks(pbook book)// 此时book应该指向第一个节点
{	//printf("book%sn",book->Title);
	if(!book) 
	{
			GUI("**Wrong**","--------------","No Initialize!","--------------","","",1);
	}
	if(!book->next)
	{
			GUI("**Wrong**","--------------","No Book!","--------------","","",1);
			return ERROR;
	}
	pbook temp = book->next;
	
	ShowFiveBooks(book->count,temp);
	
	printf("Continue Inputn");
	
	return OK;
}


Status ShowFiveBooks(int number,pbook temp)
{	 // 最多能够添加五本书。
	
	if (number == 5)
	ShowBooks("Book List",temp->Title,temp->Author,temp->next->Title,temp->next->Author, temp->next->next->Title,temp->next->next->Author,temp->next->next->next->Title,temp->next->next->next->Author,temp->next->next->next->next->Title,temp->next->next->next->next->Author,1);
	if (number == 4)
	ShowBooks("Book List",temp->Title,temp->Author,temp->next->Title,temp->next->Author, temp->next->next->Title,temp->next->next->Author,temp->next->next->next->Title,temp->next->next->next->Author,"","",1);
	if(number == 3)
	ShowBooks("Book List",temp->Title,temp->Author,temp->next->Title,temp->next->Author, temp->next->next->Title,temp->next->next->Author,"","","","",1);
	if(number == 2)
	ShowBooks("Book List",temp->Title,temp->Author,temp->next->Title,temp->next->Author,"","","","","","",1);
	if(number == 1)
	ShowBooks("Book List",temp->Title,temp->Author,"","","","","","","","",1);
	
}

int main()
{	
	pbook book;
	Init(&book);	
	Welcome(book);
	return OK;
}


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1037648.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号