F河 发表于 2014-6-21 12:56:38

有一个错误,不知道怎么改

#include<stdio.h>   
#include<stdlib.h>
#include<string.h>
#define BUFLEN 100
#define LEN 15
#define N 100 struct record
{char code;
char name;
int age;
char sex;
char time;
char add;
char tel;
char mail;
}stu;   
    int k=1,n,m;   
void readfile();         
void seek();
void modify();
void insert();
void del();
void display();
void save();
void number();
void menu();   
int main()
{
   while(k)
   menu();
   system("pause");
   return 0;
}
void readfile()//刷新学生信息
{
   char *p="student.txt";
   FILE *fp;
   int i=0;
   if ((fp=fopen("student.txt","r"))==NULL)
   {      
         printf("Open file %s error! Strike any key to exit!",p);
         system("pause");   
         exit(0);   
   }      
   while(fscanf(fp,"%s %s%d%s %s %s %s %s",stu.code,stu.name,&stu.age,stu.sex,stu.time,stu.add,stu.tel,stu.mail)==8)
    {
            i++;
            i=i;
   }
   fclose(fp);
   n=i;
   printf("录入完毕!\n");
   }      
void seek()//查询学生信息   
void modify()//修改学生信息   
void sort()//对学生信息按学号排序
{
   int i,j,*p,*q,s;
   char temp;
   for(i=0;i<n-1;i++)
   {
         for(j=n-1;j>i;j--)
         if(strcmp(stu.code,stu.code)>0)
         {         
            strcpy(temp,stu.code);
            strcpy(stu.code,stu.code);
            strcpy(stu.code,temp);
            strcpy(temp,stu.name);
            strcpy(stu.name,stu.name);
            strcpy(stu.name,temp);   
            strcpy(temp,stu.sex);
            strcpy(stu.sex,stu.sex);
            strcpy(stu.sex,temp);   
            strcpy(temp,stu.time);
            strcpy(stu.time,stu.time);
            strcpy(stu.time,temp);
            strcpy(temp,stu.add);
            strcpy(stu.add,stu.add);
            strcpy(stu.add,temp);
            strcpy(temp,stu.tel);
            strcpy(stu.tel,stu.tel);
            strcpy(stu.tel,temp);   
            strcpy(temp,stu.mail);
            strcpy(stu.mail,stu.mail);
            strcpy(stu.mail,temp);
            p=&stu.age;
            q=&stu.age;
            s=*q;
            *q=*p;
            *p=s;
          }
      }
}      
void insert()//增加学生信息   
void display()//显示当前学生信息
{
   int i;
   printf("所有学生的信息为:\n");   
   printf("学生学号,学生姓名,年龄,性别,   出生年月,   地址,   电话,   E-mail\n");
   printf("------------------------------------------------------------------\n");
   for(i=0;i<n;i++)
   {      
         printf("%6s, %7s, %5d, %5s, %9s, %8s, %10s, %14s\n",stu.code,stu.name,stu.age,stu.sex,stu.time,stu.add,stu.tel,stu.mail);
   }
}      
void save()//保存当前学生信息
{
   int i;
   FILE *fp;
   fp=fopen("student.txt","w");
   for(i=0;i<n;i++)
   {
       fprintf(fp,"%s, %s, %d, %s, %s, %s, %s, %s\n",stu.code,stu.name,stu.age,stu.sex,stu.time,stu.add,stu.tel,stu.mail);
   }
   fclose(fp);
}   
void number()//汇总学生数目
{
   int i,girl,boy=0;
   for(i=0;i<n;i++)
   if(strcmp(stu.sex,"1")==0)
    {
       boy++;
   }
   girl=n-boy;
   printf("男生人数是:%d\n女生的人数是:%d\n",boy,girl);
   printf("总的学生人数为:%d",n);
}   
void help()//系统帮助
{
   printf("输入性别时男为1,女为2");
   printf("\n3.增加学生信息后,切记保存按7;\n");
   printf("\n4.谢谢您的使用!\n");
}   
void menu()//可视化的系统操作界面
{
    int num;
    printf(" \n\n                  学生通讯录管理系统               \n\n");
    printf(" *********************系统功能菜单************************       \n");
    printf("       --------------------------------   -------------------------------   \n");
    printf("      1.刷新学生信息          2.查询学生信息   \n");
    printf("       *********************************************   \n");
    printf("      3.修改学生信息          4.增加学生信息   \n");
    printf("       *********************************************   \n");
    printf("      5.按学号删除信息      6.显示当前信息   \n");
    printf("       *********************************************   \n");
    printf("      7.保存当前学生信息      8.汇总学生数目   \n");
    printf("       *********************************************   \n");
    printf("      9.系统帮助            10.退出系统               \n");
    printf("       ---------------------------------   ------------------------------   \n");
    printf(" ************************************************************   \n");
    printf("请选择菜单编号:");   scanf("%d",&num);
    switch(num)
   {
       case 1:readfile();break;
       case 2:seek();break;
       case 3:modify();break;
       case 4:insert();break;
       case 5:del();break;
       case 6:display();break;
       case 7:save();break;
       case 8:number();break;
       case 9:help();break;
       case 10:k=0;break;
      default:printf("请在1-10之间选择\n");
   }
}

页: [1]
查看完整版本: 有一个错误,不知道怎么改