Mã:
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <ctype.h>
#include <string.h>
#define maxch 100
#define max 100
typedef struct{
int date,month,year;
}da;
typedef struct{
char codebook[maxch],namebook[maxch],fistname[maxch];
int number;
da publishdate;
}book;
void inputlistbook(book booklist[max],int *n);
void outputlistbook(book booklist[max],int n,int i);
void add1book(book booklist[max],int n);
void swap(book *book1,book *book2);
void fistnamebook(book booklist[max],int n);
void sortname(book booklist[max],int n);
void sortcode(book booklist[max],int n);
void sortpublish(book booklist[max],int n);
void sortbook(book booklist[max],int n);
void find(char x[max],char y[max],book booklist[max],int n);
void findbook(book booklist[max],int n);
void inputlistbook(book booklist[max],int *n)
{
printf("
Input amount book: ");
scanf("%d",n);
for(int i=0;i<*n;i++){
printf("---- Information book %2d ----
",i+1);
printf("Please input name book : ");
fflush(stdin);
gets(booklist[i].namebook);
printf("Please input codebook: ");
fflush(stdin);
gets(booklist[i].codebook);
printf("Please input number book: ");
scanf("%d",&booklist[i].number);
printf("Input publish date:
\t DATE: ");
scanf("%d",&booklist[i].publishdate.date);
printf("\t MONTH: ");
scanf("%d",&booklist[i].publishdate.month);
printf("\t YEAR: ");
scanf("%d",&booklist[i].publishdate.year);
}
}
void outputlistbook(book booklist[max],int n,int i){
for(i;i<n;i++){
printf("
---- Information book %2d ----
",i+1);
printf("Name: ");
puts(booklist[i].namebook);
printf("Code book: ");
puts(booklist[i].codebook);
printf("Publish date: %2d/%2d/%4d
",booklist[i].publishdate.date,booklist[i].publishdate.month,booklist[i].publishdate.year);
printf("Number book : %2d
",booklist[i].number);
}
}
void add1book(book booklist[max],int n)
{
int k;
book book1;
book tg;
printf("
---- ADD NEW BOOK ----
");
printf("Please input name book : ");
fflush(stdin);
gets(book1.namebook);
printf("Please input codebook: ");
fflush(stdin);
gets(book1.codebook);
printf("Please input number book: ");
scanf("%d",&book1.number);
printf("Input publish date:
\t DATE: ");
scanf("%d",&book1.publishdate.date);
printf("\t MONTH: ");
scanf("%d",&book1.publishdate.month);
printf("\t YEAR: ");
scanf("%d",&book1.publishdate.year);
printf("---------------------
");
printf("Where do you insert ?(1,2,3....%d): ",n+1);
scanf("%d",&k);
for(int i=n;i>=k;i--){
booklist[i]=booklist[i-1];
}
booklist[k-1]=book1;
}
void swap(book *book1,book *book2)
{
book tg=*book1;
*book1=*book2;
*book2=tg;
}
/****Tach ten dau tien cua sach ****/
void fistnamebook(book booklist[max],int n){
for(int i=0;i<n;i++){
strcpy(booklist[i].fistname,booklist[i].namebook);
strrev(booklist[i].fistname);
for(int j=strlen(booklist[i].fistname);booklist[i].fistname[j]==' ';j--)booklist[i].fistname[j]='\0';
strrev(strtok(booklist[i].fistname," "));
}
}
void sortname(book booklist[max],int n){
fistnamebook(booklist,n);
for(int i=0;i<n-1;i++)
for(int j=i+1;j<n;j++){
if(strcmp(booklist[i].fistname,booklist[j].fistname)>0)
swap(&booklist[i],&booklist[j]);
}
}
void sortcode(book booklist[max],int n){
for (int i=0;i<n-1;i++)
for(int j=i+1;j<n;j++)
if(atol(booklist[i].codebook)>atol(booklist[j].codebook))
swap(&booklist[i],&booklist[j]);
}
void sortpublish(book booklist[max],int n){
for(int i=0;i<n-1;i++)
for(int j=i+1;j<n;j++){
if (booklist[i].publishdate.year>booklist[j].publishdate.year) swap(&booklist[i],&booklist[j]);
if (booklist[i].publishdate.year==booklist[j].publishdate.year){
if (booklist[i].publishdate.month>booklist[j].publishdate.month)swap(&booklist[i],&booklist[j]);
if (booklist[i].publishdate.month==booklist[j].publishdate.month){
if (booklist[i].publishdate.date>booklist[j].publishdate.date)swap(&booklist[i],&booklist[j]);
}
}
}
}
void sortbook(book booklist[max],int n){
char c;
do{
system("cls");
printf("
1.Sort by codebook.
");
printf("2.Sort by name book.
");
printf("3.Sort by publish date
");
printf("4.Return home.
..Please choose: ");
fflush(stdin);
switch(c=getchar()){
case '1':sortcode(booklist,n);break;
case '2':sortname(booklist,n);break;
case '3':sortpublish(booklist,n);break;
}
if(c<'4'){
printf("
DONE!!!
");
getch();
}
}while(c!='4');
}
void find(char x[max],char y[max],book booklist[max],int n){
for (int i=0;i<n;i++)
if (strcmpi(x,y)==0){
outputlistbook(booklist,i+1,i);
}
}
void findbook(book booklist[max],int n){
char c,name[maxch],code[maxch];
int date1,month1,year1,i=4;
do{
system("cls");
printf("
---FIND BOOK---
");
printf("1.Find by NAME.
");
printf("2.Find by CODE BOOK.
");
printf("3.Find by PUBLISH DAY.
");
printf("4.Return home.
...Please choose: ");
fflush(stdin);
switch((c=getchar())){
case '1':printf("Input NAME BOOK to find : ");
fflush(stdin);
gets(name);
for (i=0;i<n;i++)
if (strcmpi(booklist[i].namebook,name)==0){
outputlistbook(booklist,i+1,i);
}
break;
case '2':printf("Input CODE BOOK to find : ");
fflush(stdin);
gets(code);
for (i=0;i<n;i++)
if (strcmpi(booklist[i].codebook,code)==0){
outputlistbook(booklist,i+1,i);
}
break;
case '3':printf("Input date,month,year to find: ");
scanf("%d%d%d%*c",&date1,&month1,&year1);
for (i=0;i<n;i++)
if(date1==booklist[i].publishdate.date&&month1==booklist[i].publishdate.month&&year1==booklist[i].publishdate.year)
outputlistbook(booklist,i+1,i);
break;
case '4':break;
default: printf("Choose Again
");
}
getch();
}while(c!='4');
}
main()
{
book booklist[max];
int n=0,k;
do{
system("cls");
printf("1. Input listbook.
");
printf("2. Add 1 book.
");
printf("3. Find book.
");
printf("4. Sort book.
");
printf("5. Output listbook.
");
printf("6. Exit.
");
printf("Please choose : ");
fflush(stdin);
switch(getchar()){
case '1':inputlistbook(booklist,&n);printf("DONE!!!
");getch();break;
case '2':add1book(booklist,n);n++;break;
case '3':findbook(booklist,n);break;
case '4':sortbook(booklist,n);break;
case '5':outputlistbook(booklist,n,0);getch();break;
case '6':k=0;break;
default :printf("
Choose Again...");getch();
}
}while(k);
}
Pallet nhựa Long An đã trở thành một trong những lựa chọn phổ biến cho nhu cầu vận chuyển và lưu trữ hàng hóa trong nhiều ngành công nghiệp. Với đặc tính nhẹ nhàng, chắc chắn và dễ vận chuyển, các...
Thanh lý pallet nhựa Long An giá rẻ