天天看點

第二節課作業

#include"stdio.h"

#include"stdlib.h"

#include"string.h"

#include"conio.h"

#define PAGE 3

#define MAX 1000

#define N 5

int k=0;

  /*結構體類型*/

typedef struct 

{   int num;/*産品編号*/

    char name[20];/*産品名稱*/

 char studentclass[20];/*産地*/

 int score;/*産品數量*/

}STUDENTS;

int read_file(STUDENTS stu[])

{ FILE *fp;

    int i=0;

 if((fp=fopen("stu.txt","rt"))==NULL)

 {printf("\n\n*****庫存檔案不存在!請創");

  return 0;

 }

 while(feof(fp)!=1)

    {

 fread(&stu[i],sizeof(STUDENTS),1,fp);

 if(stu[i].num==0)

  break;

 else

  i++;

 fclose(fp);

 return i;

}

void save_file(STUDENTS stu[],int sum)

{FILE*fp;

 int i;

 if((fp=fopen("stu.txt","wb"))==NULL)

 {printf("寫檔案錯誤!\n");

  return;

   for(i=0;i<sum;i++)

    if(fwrite(&stu[i],sizeof(STUDENTS),1,fp)!=1)

     printf("寫檔案錯誤!\n");

    fclose(fp);

/*建立産品資訊*/

int input(STUDENTS stu[])

{  int i,x;

   for(i=0;i<1000;i++)

   {

    system("cls"); 

    printf("\n\n                 錄入産品資訊  (最多%d個)\n",MAX);

    printf("               ----------------------------\n");

        printf("\n                     第%d個産品",k+1);

     printf("\n 請輸入産品編号:");

        scanf("%d",&stu[k].num);

        printf("\n 請輸入産品名稱:");

        scanf("%s",stu[k].name); 

        printf("\n 請輸入産品産地:");

        scanf("%s",stu[k].studentclass);       

        printf("\n 請輸入産品數量:");

        scanf("%d",&stu[k++].score);

        printf("\n 請按1鍵傳回菜單或按0鍵繼續建立");

  scanf("%d",&x);

  if(x)

    break;

   }

       return k;

/*删除産品資訊*/

void deletel(STUDENTS stu[])

  { system("cls");

   char Stuname2[20];

   int i,j;

   printf("請輸入産品名稱:");

   scanf("%s",Stuname2);

   printf("\n");

   for(i=0;i<k;i++)

   if(strcmp(stu[i].name,Stuname2)==0)  

     for(j=0;j<20;j++)

       stu[i].name[j]=stu[i+1].name[j];

   k--;

   printf("删除成功\n");

   printf("按任意鍵加回車傳回主菜單!");

   scanf("%d",&i);

   getchar();

/*列印産品資訊*/                                                                                                                                                                                                                                                       

void output(STUDENTS stu[])

{  system("cls");

   int i;

   for(i=0;i<k;i++) 

     printf("産品編号:%d,産品名稱:%s,産地:%s,産品數量: %d\n",stu[i].num,stu[i].name,

    stu[i].studentclass,stu[i].score);

/*查詢産品資訊*/

void inquire(STUDENTS stu[])

  { int i;

    int num;

    system("cls");

    printf("     \n\n請輸入您要查找的産品的編号");

    scanf("%d",&num);

    for(i=0;i<k;i++)

      if(num==stu[i].num)

         printf("\n\n\n産品編号:%d,産品名稱:%s,産地:%s,産品數量: %d\n",stu[i].num,stu[i].name,

   stu[i].studentclass,stu[i].score);

    printf("按任意鍵加回車傳回主菜單!");

 scanf("%d",&i);

    getchar();

  }

/*修改産品資訊*/

void change(STUDENTS stu[])

  {  int num,i,choice;

     system("cls");

  printf("\n\n\n      請輸入您要修改的産品的編号");

     scanf("%d",&num);

     for(i=0;i<k;i++)

     { if(num==stu[i].num)

         printf("\n産品編号:%d,産品名稱:%s,産地:%s,産品數量: %d\n",stu[i].num,stu[i].name,

     printf("\n\n\n     ********請輸入您想要修改的資料********\n\n");

     printf("                1. 産品編号\n\n");

     printf("                2. 産品名稱\n\n");

     printf("                3. 産地\n\n");

     printf("                4. 産品數量\n\n");

     printf("                 請選擇(1-4):");

   scanf("%d",&choice);

   switch(choice)

   {case 1:{

         printf("\n   請輸入你改的新産品編号");

            scanf("%d",&stu[i].num);

      break;

      }

    case 2:{

         printf("\n   請輸入你改的新産品名稱");

            scanf("%s",stu[i].name);

     }

    case 3:{

         printf("\n   請輸入你改的新産地");

            scanf("%s",stu[i].studentclass);

    case 4:{

         printf("\n   請輸入你改的新産品數量");

            scanf("%d",&stu[i].score);

    printf("産品編号:%d,産品名稱:%s,産地:%s,産品數量: %d\n",stu[i].num,stu[i].name,

       printf("按任意鍵加回車傳回主菜單!");

    scanf("%d",&i);

/*産品數量資訊排名*/

void sort(STUDENTS stu[])

  {  int i,j,n=1,x;

     int t;

      for(i=0;i<k-1;i++)

  for(j=i+1;j<k;j++)

   if(stu[i].score<stu[j].score)

   { t=stu[i].score;

     stu[i].score=stu[j].score;

     stu[j].score=t;

              t=stu[i].num;

     stu[i].num=stu[j].num;

     stu[j].num=t;