⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 c的数据库编程 1267.txt

📁 用C来实现数据库编程
💻 TXT
📖 第 1 页 / 共 4 页
字号:

/*   long_c,long_f  : (* UNDEFINED TYPE: longint *);

Error 4:  type expected:  ; */
 /* UNDEFINED TYPE: longint */
int long_c,long_f;
struct node *c,
            *l;
int find_num;
num_range1 find_number;
char find_name[11];
char find_sex;
struct date find_birthdate;
num_range2 find_experience;
num_range2 find_force;
num_range2 find_smartness;

    condition_code = condition_select("find condition:");
    switch (condition_code) {
 case 1:
     printf("\n");
     printf("record:");
     scanf("%d",&find_num);
     if ((find_num >= 1) && (find_num <= count)) {
                if (head != nil) {
                    c = nil;
                    l = nil;
                    found_num = 1;    /*FIND NODE*/
      for (i = 1; i <= find_num; i++) {
                        if (i == 1) {
                            c = head;
                            l = c->next;
                        }
                        else  {
                            c = l;
                            l = c->next;
                        }    /*IF*/
                    }    /*FOR*/
                    output_title();
      output_it(c,find_num);
      printf("find %d\n",found_num);
  }
  else
      printf("no record\n");
     }
            else 
  printf("out record\n");
     break;
        case 2:
            printf("\n");
     printf("no:");
     scanf("%d",&find_number);
     if (head != nil) {
                c = head;
                l = c->next;
                found_num = 0;
                output_title();
                for (i = 1; i <= count; i++) {
                    if (c->number == find_number) {
   output_it(c,i);
                        found_num = found_num + 1;
   c = l;
                        c = c->next;
      }
      else  {
                        c = l;
                        l = c->next;
      }    /*IF*/
  }    /*FOR*/
  if (found_num != 0)
      printf("find %d\n",found_num);
  else
      printf("no record\n");
     }
     else
  printf("out record\n");
     break;
 case 3:
     printf("\n");
     printf("name:");
     gets(find_name);
     if (head != nil) {
  c = head;
  l = c->next;
                found_num = 0;
                output_title();
                for (i = 1; i <= count; i++) {
                    if (strcmp(c->name,find_name) == 0) {
   output_it(c,i);
                        found_num = found_num + 1;
   c = l;
   c = c->next;
      }
      else  {
   c = l;
   l = c->next;
      }    /*IF*/
  }    /*FOR*/
  if (found_num != 0)
      printf("find %d\n",found_num);
  else
      printf("no record\n");
     }
     else
  printf("out record\n");
     break;
 case 4:
     printf("\n");
     printf("sex:");
     scanf("%c",&find_sex);
            if (head != nil) {
                c = head;
  l = c->next;
                found_num = 0;
                output_title();
                for (i = 1; i <= count; i++) {
                    if (c->sex == find_sex) {
   output_it(c,i);
                        found_num = found_num + 1;
   c = l;
                        c = c->next;
      }
      else  {
   c = l;
   l = c->next;
      }    /*IF*/
  }    /*FOR*/
  if (found_num != 0)
      printf("find %d\n",found_num);
  else
      printf("no record\n");
     }
     else
  printf("out record\n");
     break;
 case 5:
     printf("\n");
     printf("birthday:");
     scanf("%d%d%d",&find_birthdate.da_year,&find_birthdate.da_mon,
      &find_birthdate.da_day);
     if (head != nil) {
  c = head;
  l = c->next;
  found_num = 0;
                output_title();
  long_f = find_birthdate.da_year;
                long_f = long_f * 100;
  long_f = long_f + find_birthdate.da_mon;
  long_f = long_f * 100;
  long_f = long_f + find_birthdate.da_day;
  for (i = 1; i <= count; i++) {
      long_c = c->birthdate.da_year;
                    long_c = long_c * 100;
      long_c = long_c + c->birthdate.da_mon;
                    long_c = long_c * 100;
      long_c = long_c + c->birthdate.da_day;
                    if (long_c == long_f) {
   output_it(c,i);
                        found_num = found_num + 1;
                        c = l;
   c = c->next;
      }
                    else  {
   c = l;
                        l = c->next;
                    }
                }    /*FOR*/
  if (found_num != 0)
      printf("find %d\n",found_num);
  else
      printf("no record\n");
     }
     else
  printf("out record\n");
     break;
        case 6:
            printf("\n");
     printf("experience:");
     scanf("%d",&find_experience);
            if (head != nil) {
                c = head;
                l = c->next;
                found_num = 0;
  output_title();
  for (i = 1; i <= count; i++) {
                    if (c->experience == find_experience) {
                        output_it(c,i);
                        found_num = found_num + 1;
   c = l;
   l = c->next;
      }
      else  {
   c = l;
   l = c->next;
      }    /*IF*/
  }    /*FOR*/
  if (found_num != 0)
      printf("find %d\n",found_num);
  else
      printf("no record\n");
     }
     else
  printf("out record\n");
     break;
 case 7:
     printf("\n");
     printf("force:");
     scanf("%d",&find_force);
     if (head != nil) {
  c = head;
  l = c->next;
  found_num = 0;
  output_title();
  for (i = 1; i <= count; i++) {
      if (c->force == find_force) {
   output_it(c,i);
   found_num = found_num + 1;
   c = l;
   l = c->next;
      }
      else  {
   c = l;
   l = c->next;
      }    /*IF*/
  }    /*FOR*/
  if (found_num != 0)
      printf("find %d\n",found_num);
  else
      printf("no record\n");
     }
     else
  printf("out record\n");
     break;
 case 8:
     printf("\n");
     printf("smartness:");
     scanf("%d",&find_smartness);
     if (head != nil) {
  c = head;
  l = c->next;
                found_num = 0;
                output_title();
                for (i = 1; i <= count; i++) {
      if (c->smartness == find_smartness) {
   output_it(c,i);
                        found_num = found_num + 1;
   c = l;
   l = c->next;
      }
      else  {
   c = l;
   l = c->next;
      }    /*IF*/
  }    /*FOR*/
  if (found_num != 0)
      printf("find %d\n",found_num);
  else
      printf("no record\n");
     }
            else 
  printf("out record\n");
     break;
 default:
     printf("find error\n");
     break;
    }    /*CASE*/

}

void sort_record (void)
{

int condition_code;
int i,
    j;

int long_c,long_f;
struct node *c_bak,
     *l_bak;

    condition_code = condition_select("sort condition:");
    switch (condition_code) {
 case 1:
     printf("record over\n");
     break;
 case 2:
     if ((head != nil) && (head->next != nil)) {
  c_bak = current;
  l_bak = last;    /*沉淀法排序*/
  for (i = count - 1; i >= 1; i--) {
      current = c_bak;
      last = l_bak;
      for (j = 1; j <= i; j++) {
   if (current->number < current->front->number)
       swap_it(&current,&last,&c_bak,&l_bak);
                        current = current->front;
   last = current->next;
                    }
                }
                current = c_bak;
                last = l_bak;
     }
     printf("no over\n");
     break;
        case 3:
            if ((head != nil) && (head->next != nil)) {
                c_bak = current;
                l_bak = last;    /*沉淀法排序*/
                for (i = count - 1; i >= 1; i--) {
                    current = c_bak;
                    last = l_bak;
                    for (j = 1; j <= i; j++) {
                        if (strcmp(current->name,
    current->front->name) < 0)
                            swap_it(&current,&last,&c_bak,&l_bak);
                        current = current->front;
   last = current->next;
                    }
                }
                current = c_bak;
                last = l_bak;
            }
     printf("name over\n");
            break;
        case 4:
     if ((head != nil) && (head->next != nil)) {
                c_bak = current;
                l_bak = last;    /*沉淀法排序*/
                for (i = count - 1; i >= 1; i--) {
                    current = c_bak;
                    last = l_bak;
                    for (j = 1; j <= i; j++) {
                        if (current->sex < current->front->sex)
                            swap_it(&current,&last,&c_bak,&l_bak);
                        current = current->front;
                        last = current->next;
      }
  }
                current = c_bak;
                last = l_bak;
            }
     printf("sex over\n");
     break;
        case 5:
            if ((head != nil) && (head->next != nil)) {
                c_bak = current;
                l_bak = last;    /*沉淀法排序*/
                for (i = count - 1; i >= 1; i--) {
                    current = c_bak;
      last = l_bak;
                    for (j = 1; j <= i; j++) {    /*CURRENT*/
   long_c = current->birthdate.da_year;
                        long_c = long_c * 100;
   long_c = long_c + current->birthdate.da_mon;
                        long_c = long_c * 100;
   long_c = long_c + current->birthdate.da_day;
   /*FRONT*/                        long_f = current->front->birthdate.da_year;
                        long_f = long_f * 100;
                        long_f = long_f + 
    current->front->birthdate.da_mon;
                        long_f = long_f * 100;
   long_f = long_f + current->front->birthdate.da_day;

   if (long_c < long_f)
       swap_it(&current,&last,&c_bak,&l_bak);
   current = current->front;
   last = current->next;
      }
  }
  current = c_bak;
  last = l_bak;
     }
     printf("birthday over\n");
     break;
        case 6:
            if ((head != nil) && (head->next != nil)) {
  c_bak = current;
                l_bak = last;    /*沉淀法排序*/
                for (i = count - 1; i >= 1; i--) {
                    current = c_bak;
                    last = l_bak;
                    for (j = 1; j <= i; j++) {
                        if (current->experience < current->front->experience)
                            swap_it(&current,&last,&c_bak,&l_bak);
                        current = current->front;
   last = current->next;
                    }
  }
                current = c_bak;
                last = l_bak;
            }
     printf("experience over\n");
     break;
        case 7:
            if ((head != nil) && (head->next != nil)) {
                c_bak = current;
  l_bak = last;    /*沉淀法排序*/
  for (i = count - 1; i >= 1; i--) {
                    current = c_bak;
                    last = l_bak;
                    for (j = 1; j <= i; j++) {
                        if (current->force < current->front->force)
                            swap_it(&current,&last,&c_bak,&l_bak);
                        current = current->front;
                        last = current->next;
                    }
                }
  current = c_bak;
                last = l_bak;
     }
     printf("force over\n");
     break;
        case 8:
            if ((head != nil) && (head->next != nil)) {
                c_bak = current;
                l_bak = last;    /*沉淀法排序*/
  for (i = count - 1; i >= 1; i--) {
                    current = c_bak;
                    last = l_bak;
                    for (j = 1; j <= i; j++) {
                        if (current->smartness < current->front->smartness)
       swap_it(&current,&last,&c_bak,&l_bak);
                        current = current->front;
                        last = current->next;
                    }
                }
                current = c_bak;
  last = l_bak;
            }
     printf("smartness over\n");
     break;
    }    /*CASE*/

}

/*BEGIN*/
void modify_record (void)
{

int condition_code;
int i,
    modified_num;


int long_c,long_m;
struct node *c,
     *l;
int mdf_num;
num_range1 mdf_number;
char mdf_name[11];
char mdf_sex;
struct date mdf_birthdate;
num_range2 mdf_experience;
num_range2 mdf_force;
num_range2 mdf_smartness;

    condition_code = condition_select("modify:");
    switch (condition_code) {
 case 1:
     printf("\n");
     printf("record:");
     scanf("%d",&mdf_num);
            if ((mdf_num >= 1) && (mdf_num <= count)) {
  if (head != nil) {
                    c = nil;
                    l = nil;    /*FIND NODE*/
                    for (i = 1; i <= mdf_num; i++) {
   if (i == 1) {
                            c = head;
                            l = c->next;
   }
                        else  {
                            c = l;
       l = c->next;
   }    /*IF*/
                    }    /*FOR*/
                    modify_it(c,l,i);
      printf("%d modify\n",mdf_num);
  }
  else
      printf("no record\n");
     }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -