#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;
}



