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

数据结构的

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

数据结构的

#include
#include
#include
#define MAX 1000
typedef struct  
{   int num;
    char name[20];
    char author[20];
    char press[20];
    float price;
    int quantity;
}book;

typedef struct{
    book *data;                                 
    int length;                                 
}linklist;

 void init(linklist &L)           
{
    L.data=(book*)malloc(MAX*sizeof(book));
    L.length=0;               
}

int read_file(linklist &L)
{ FILE *fp;
    int i=0;
  while(feof(fp)==0)
    {
  fread(&L.data[i],sizeof(book),1,fp);
  if(L.length==0)
    break;
  else
    i++;
  }
  fclose(fp);
  return i;
}


void save_file(linklist &L,int sum)
{FILE*fp;
 int i;
 if((fp=fopen("L.txt","wb"))==NULL)
 {printf("写文件错误!n");
  return;
 }
   for(i=0;i      if(fwrite(&L.data[i],sizeof(book),1,fp)!=1)
       printf("写文件错误!n");
     fclose(fp);
}
 
int input(linklist &L)
{  int i,x;
    if(L.length>MAX)
    {
        printf("库存已满!");
        return 1000;
        }
    else{
           for(i=0;i<1000;i++)
           {
           
            system("cls");  
            printf("nn                 录入图书信息  (最多1000本)n");
            printf("               ----------------------------n");
   
            printf("n                     第%d本图书",L.length+1);
            printf("n 请输入图书的ISBN:");
            scanf("%d",&L.data[i].num);
            printf("n 请输入图书的书名:");
            scanf("%s",L.data[i].name); 
            printf("n 请输入图书的作者:");
            scanf("%s",L.data[i].author);
            printf("n 请输入图书的出版社:");
            scanf("%s",L.data[i].press); 
            printf("n 请输入图书的价格:");
            scanf("%f",&L.data[i].price);
            printf("n 请输入图书的数量:");   
            scanf("%d",&L.data[i].quantity); 
            L.data[L.length].num=L.length+1;
               L.length++;
            printf("n 请按1键返回菜单或按0键继续创建");
            scanf("%d",&x);
             if(x==1)
             break;
            }
   
   }
    
       return L.length;
}
 
 

void deletel(linklist &L)
  { system("cls"); 
   char Stuname2[20];
   int i,j;
   printf("请输入图书书名:");
   scanf("%s",Stuname2);
   printf("n");
   for(i=0;i    if(strcmp(L.data[i].name,Stuname2)==0)   
     {
               L.data[i]=L.data[i+1];    
        }
    L.length--;
   printf("删除成功n");
   printf("按任意键加回车返回主菜单!");
   scanf("%d",&i);
   getchar();
}
 
void output(linklist &L)
{  system("cls");
   int i;
   for(i=0;i        printf("nnnISBN号:%d,书名:%s,作者:%s,出版社:%s,价格: %.2f,数量:%dn",L.data[i].num,L.data[i].name,
     L.data[i].author,L.data[i].press,L.data[i].price,L.data[i].quantity);
   printf("按任意键加回车返回主菜单!");
   scanf("%d",&i);
   getchar();
}

void inquire(linklist &L) 
  { int i;
    char name[20];
    system("cls");
    printf("     nn请输入您要查找的图书的书名:");
    scanf("%s",&name);
    for(i=0;i       if(strcmp(L.data[i].name,name)==0)
         printf("nnnISBN号:%d,书名:%s,作者:%s,出版社:%s,价格: %.2f,数量:%dn",L.data[i].num,L.data[i].name,
     L.data[i].author,L.data[i].press,L.data[i].price,L.data[i].quantity);
    printf("按任意键加回车返回主菜单!");
    scanf("%d",&i);
    getchar();
  }
 
 

void change(linklist &L)
  {  int i,choice;
  char name[20];
     system("cls"); 
   printf("nnn      请输入您要修改的图书的书名");
     scanf("%s",&name);
     for(i=0;i      { if(strcmp(L.data[i].name,name)==0)
         {
         printf("nnnISBN号:%d,书名:%s,作者:%s,出版社:%s,价格: %.2f,数量:%dn",L.data[i].num,L.data[i].name,
     L.data[i].author,L.data[i].press,L.data[i].price,L.data[i].quantity);
 
     printf("nnn     ********请输入您想要修改的数据********nn");
     printf("                1. ISBN号nn");
     printf("                2. 书名nn");
     printf("                3. 作者nn");
     printf("                4. 出版社nn");
     printf("                5. 价格nn");
     printf("                6. 数量nn");
     printf("                 请选择(1-6):");
    scanf("%d",&choice);
    switch(choice)
    {case 1:{
           printf("n   请输入你改的新ISBN号");
             scanf("%d",&L.data[i].num); 
         break;
         }
     case 2:{
           printf("n   请输入你改的新书名");
             scanf("%s",L.data[i].name); 
         break;
        }
     case 3:{
           printf("n   请输入你改的新作者");
             scanf("%s",L.data[i].author); 
         break;
        }
     case 4:{
           printf("n   请输入你改的新出版社");
             scanf("%s",L.data[i].press); 
         break;
        }
     case 5:{
           printf("n   请输入你改的新价格");
             scanf("%f",&L.data[i].price); 
         break;
     case 6:{
           printf("n   请输入你改的新数量");
             scanf("%d",&L.data[i].quantity); 
         break;
        }    
        }
    }
       printf("修改后:n");
      printf("nnnISBN号:%d,书名:%s,作者:%s,出版社:%s,价格: %.2f,数量:%dn",L.data[i].num,L.data[i].name,
     L.data[i].author,L.data[i].press,L.data[i].price,L.data[i].quantity);}
     printf("按任意键加回车返回主菜单!");
     scanf("%d",&i);
     break;
   }
}
 
void menu()
{
  linklist L;
    book e;
    init(L);
  int choice,sum;
  sum=read_file(L);
  do
  {  system("cls");  
     printf("nnn               ********图书信息管理系统********nn");
     printf("                      1. 创建图书信息nn");
     printf("                      2. 查询图书信息nn");
     printf("                      3. 修改图书信息nn");
     printf("                      4. 删除图书信息nn");
     printf("                      5. 全部图书信息nn");
     printf("                      0. 退出系统nn");
     printf("                       请选择(0-5):");
     scanf("%d",&choice); 
    switch(choice)
    {
      case 1: input(L); break;
      case 2: inquire(L); break;
      case 3: change(L); break;
      case 4: deletel(L); break;
      case 5: output(L);break;
      case 0: break;
    }
  }while(choice!=0);
  
}
int main()
{  
  int i,sum;
  menu();   
}     

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

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

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