dvd影片管理系统,谁能帮我改改错球球了

#include<stdio.h>

#include<stdlib.h>

#include<string.h>

typedef struct a{

char num;//影片编号

 char name[100]; //影片名

 char space;//影片地区类型

 char content;//影片内容

double price;//价格

 char date; //日期

    

 struct a* next;

}DVD,*List;

 

List head=NULL;

 

int Login(); // 登陆

void Menu(); // 主菜单

int Choose(); // 选择功能

void Creathead(); // 创建头结点

void DisplayAll(); // 显示所有影片

void Delete(); // 删除影片

void DeleteAll(); // 删除所有

void Modify(); // 修改影片数据

void Search(); // 查找影片

void Sort(); // 排序

void Changedata(List p); // 排序中的数据交换

void Save(); // 保存

int main()

{

 if(Login()==0) return 0;

  Reload();

 while (1)

 {

  Menu();

  switch (Choose())

  {

  case 1:

   Create(); break;

  case 2:

   Delete(); break;

  case 3:

      Search();break; 

  case 4:

   Modify(); break;

  case 6:

   DisplayAll(); break;

  case 5:

   DeleteAll(); break;

  case 7:

   Sort(); break;

  case 8:

   Save(); break;

  case 0:

    return 0;

  }

 }

}

 

int Login()

{

 while (1)

printf(".......................\n");

printf("DVD影片管理系统\n");

printf("\t1.新增影片\n");

printf("\t2.影片浏览\n");

printf("\t3.影片删除\n");

printf("\t4.影片修改\n");

printf("\t5.影片排序\n");

printf("\t6.影片查询\n");

printf("\t7.影片统计\n");

printf(".......................\n");

 } int choose;

  char fusername[100], fpassword[100];

  char username[100], password[100];

  scanf("%d", &choose);

  if ('choose' == 1)

  {

   FILE* f1 = fopen("DVD.txt", "r");

 

   while ((c = getch()) != '\r')

   {

    if (c == '\b')

    {

     i--;

     putchar('\b');

     putchar(' ');

     putchar('\b');

    }

    else

    {

     password[i] = c;

     i++;

     putchar('*');

    }

   }

   printf("\n");

   password[i] = '\0';

   fscanf(f1, "%s %s", fusername, fpassword);

   if ((strcmp(fusername, username) == 0) && (strcmp(fpassword, password)) == 0)

   {

    getch();

    system("cls");

}

 

void Menu()

{

printf(".......................\n");

printf("DVD影片管理系统\n");

printf("\t1.新增影片\n");

printf("\t2.影片浏览\n");

printf("\t3.影片删除\n");

printf("\t4.影片修改\n");

printf("\t5.影片排序\n");

printf("\t6.影片查询\n");

printf("\t7.影片统计\n");

printf(".......................\n")

}

 

int Choose(){

 int n;

 printf("请输入序号:");

 while (scanf("%d", &n) != 1 || n < 0 || n>8)

 {

  printf("请重新输入:");

  scanf("%d", &n);

 }

 return n;

}

 

void Reload()

{

 int number,name,space,content,price,date;

char number;

 char name[100];

char space[100];

char content[100];

double price;

 char date[100][100][100];

 List b=head;

 FILE* p = fopen("data.txt", "a+");

 while (fscanf(p, "%d%s%s%s%lf%d",&number,name,&space,&content,&price,&date) == 6)

 {

  

  List a = (List)malloc(sizeof(DVD));

  b->next=a;  

 

  a->number= number;

  a->name =name;

  a->space = space;

  a->content= content;

  a->price=price;

  strcpy(a->name, name);

  

  int i; 

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

  {

   fscanf(p,"%s",date[i]);

   strcpy(a->date[i], date[i]);

  }

 

  b = b->next;

  ++;

 }

 if(number!=0)

 b->next = NULL;

 printf("成功载入%d条信息\n\n", number);

 fclose(p);

}

 

void Creathead()

{

 List a=(List)malloc(sizeof(DVD));

 

 a->number = 0;

 a->name = 0;

 a->space= 0;

 a->content = 0;

 a->price = 0;

 strcpy(a->number, "0");

// strcpy(a->date, "0");

 a->next=NULL;

 head=a; 

}

 

 

 

void Creat()

{

 List a = (List)malloc(sizeof(DVD));

 

 printf(" 请输入影片编号: ");

 scanf("%s", a->number);

 printf("请输入影片名称: ");

 scanf("%s",&a->name);

 printf("请输入地区类型:");

 scanf("%s", &a->space);

 printf("请输入内容: ");

 scanf("%d", &a->content);

 printf("请输入价格: ");

 scanf("%lf", &a->price);

 

 printf("请输入日期: ");

 scanf("%d", &a->date);

 

 int i;

 for(i=0;i< a->number;i++)

  scanf("%s", a->timeline[i]);

 

 a->next = NULL;

 List b = head;

 while (b->next != NULL)

  b = b->next;

 b->next = a;

 system("cls");

 printf("添加成功\n\n");

}

 

void Search()

{

 int flag = 1;

 List a,b;

 a=b = head->next;

 char name[100];

    printf("输入要查找的影片名:");

    scanf("%s", name);

 printf("\n");

 while(strcmp(a->name,name))

 {

  b=a;

  a=b->next;

  if (a== NULL)

  {

   printf("查找失败\n\n");

   flag = 0;

   break; 

  }

 } 

    if(flag)

 {

 printf("影片编号\t\t影片名称\t\t地区类型\t\t内容类型\t\t价格\t\出版日期\t\\n");

 printf("---------------------------------------------------------");

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

 

 printf("%d\t%s\t\t%s\t\t%s\t\t%d\t\t%s\t\t\n",-10,a->number,a->name,a->space,a->content,a->price,a->date);

 int i;

 for(i=1;i<a->number;i++)

  printf("\t\t\t\t\t\t\t\t\t\t\t\t[%d]%s\n",i+1,a->date[i]);

 printf("\n");

    }

 printf("\n\n");

 getchar();

 getchar();

 system("cls");

}

 

void Delete()

{

 char choose;

 char name[100];

 List a=head,b=head;

 printf("输入要删除的影片名: ");

 scanf("%s",name);

 while(strcmp(a->name, name))

 {

  b=a;

  a = b->next;

 }

 printf("确认删除影片 %s (y/n)",a->name);

 getchar();

 scanf("%c",&choose);

 if(choose=='y')

 {

  b->next=a->next;

  free(a);

 }

}

 

void DeleteAll()

{

 List a, b;

 a = b = head->next;

 while (a != NULL)

 {

  b = a->next;

  free(a);

  a = b;

 }

 head->next = NULL;

 remove("data");

}

 

 

void Modify()

{

 int flag = 0;

 char name[100],choose;

 List a=head->next,b=head;

 getchar();

 printf("输入要修改的影片名: ");

 scanf("%s", name);

 getchar();

 while(a!=NULL)

 {

  if (strcmp(a->name, name) == 0)

  {

   flag = 1;

   break;

  }

  b = a;

  a = b->next;

 }

 if (flag)

 {

  printf("影片名为 %s 是否修改(y/n)", a->name);

  scanf("%c", &choose);

  getchar();

  if (choose == 'y')

  {

   printf("修改为:");

   

void DisplayAll()

{

 system("cls");

 List a, b;

 a = b = head->next;

 

 if (head->next == NULL)

 {

  printf("无数据");

  getchar();

  getchar();

  system("cls");

  return;

 }

  

 printf("影片编号\t\t影片名称\t\t地区类型\t\t内容类型\t\t价格\t\t出版日期\n");

 printf("---------------------------------------------------------");

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

 

 while (a!=NULL)

 {

  printf("%s\t%s\t\t%s\t\t%s\t\t%d\t\t%s\t\t[1]%s\n",-10,a->number,a->name,a->space,a->content,a->price,a->date);

  int i;

  for(i=1;i<a->number;i++)

   printf("\t\t\t\t\t\t\t\t\t\t\t\t[%d]%s\n",i+1,a->date);

  printf("\n");

  b = a;

  a = b->next;

 } 

 getchar();

 getchar();

 system("cls");

}

 

void Sort()

{

 int a,b;

 printf("请选择 1.降序 2.升序 :");

 scanf("%d",&b);

 

 List p = head->next;

 List p1 = NULL;

 while (p != p1) 

 {

  while (p->next != p1) 

  {

   if (a == 1)

   {

    if (b == 1)

    {

     if (p->grade < p->next->grade)

     {

      Changedata(p);

     }

    }

    else if (b == 2)

    {

     if (p->grade > p->next->grade)

     {

      Changedata(p);

 

  }

  p1 = p;

  p = head->next; }

 

 printf("排序成功\n\n");

 getch();

 system("cls");

 

}

 

void Changedata(List p)

{

 double ex1 = p->number;

 p->number = p->next->number;

 p->next-> = ex1;

 

 int ex2 = p->name;

 p->name = p->next->name;

 p->next->name= ex2;

 

 int ex4 = p->space;

 p->space = p->next->space;

 p->next->space = ex4; 

 

 int ex5 = p->content;

 p->content = p->next->content;

 p->next->content = ex5;

 

 char temp[100];

 strcpy(temp, p->name);

 strcpy(p->name, p->next->name);

 strcpy(p->next->name, temp);

 

 char temp2[100][100];

 int i;

 for(i=0;i<p->number;i++)

  strcpy(temp2[i], p->date);

 for(i=0;i<p->next->number;i++)

  strcpy(p->timeline[i], p->next->date);

 for(i=0;i<p->number;i++)

  strcpy(p->next->date, temp2[i]);

 

 int ex3 = p->number;

 p->number = p->next->number;

 p->next->number = ex3;

}

 

void Save()

{

 if (head->next == NULL)

 {

  printf("未录入信息\n\n");

  return;

 }

fclose(p);

 

 printf("保存成功");

 getch();

 system("cls");

}

你发的代码不全,错误也需要发出来

代码不全,你代码用“代码段”贴出来

Reload函数里面,很多重复定义的变量到底用哪个?

a结构体中:

char num;

 char space;//影片地区类型

 char content;//影片内容

这三个都是char类型,确定不是char数组吗?一个char能放下影片内容?