鱼C论坛

 找回密码
 立即注册
查看: 1580|回复: 0

有没有大神看看为什么添加信息进文件最后会多个0呀?

[复制链接]
发表于 2022-6-15 13:37:12 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<conio.h>

#define MAX 1000
#define N 100

int flag;//用来标记登录状态
int length = 1;//注册人数

void Fpage();
void menu();
void login();
void browse();
void insert();
void print_back();
void deleter();
void print_one(int);
void search();
void modify();
void browse_x();
void fp_password();
void enroll(int);

struct student//学生信息
{
        char num[15];//学号
        char name[15];//姓名
        char sex[5];//性别
        int age;//年龄
        char addr[50];//籍贯
        char dept[50];//系别
        char major[30];//专业
        char classroom[30];//班级
        char native_changes[30];//学籍
}stu[N];

struct pass{
        char name[15];//名字
        char num[15];//学号
        char dept[50];//系别
        char major[30];        //专业
        char classnum[30];//班级
        char word[30];//密码
        char account[30]; //账号
}password[MAX];//存储密码的数组

int main()//主函数
{
        Fpage();//首页
        menu();//菜单
         
        return 0;
}

void Fpage()//访问首页
{
        printf("\n\t     ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★\n");
        puts("\t    ※※※※※※※※※※※※※※※※※※※※※※※※※※※");
        puts("\t    ※※                                              ※※");
        puts("\t    ※※                                              ※※");
        puts("\t    ※※          欢迎访问学生学籍管理系统!           ※※");
        puts("\t    ※※                                              ※※");
        puts("\t    ※※                                              ※※");
        puts("\t    ※※                                              ※※");
        puts("\t    ※※                                              ※※");
        puts("\t    ※※                              制作人:陈茗杰  ※※");
        puts("\t    ※※                                  2022.5.30   ※※");
    puts("\t    ※※                                              ※※");
        puts("\t    ※※※※※※※※※※※※※※※※※※※※※※※※※※※");
        printf("\n\tPress [ Enter ] key to continue……\n");
    getchar();
        system("cls") ;
}

void menu()//主菜单
{
        system("cls");
        printf("\n\t\t\t欢迎使用学生学籍管理系统!\n");
        printf("\n");
        int n,r1;//n用来选择功能,r1用来输入错误时重新返回功能
        do
        {
           puts("\t\t★★★★★★★★    菜单  ★★★★★★★★★");
           puts("\t\t★             1.登录个人账号             ★");
           puts("\t\t★             2.登记学生信息             ★");
           puts("\t\t★             3.删除学生信息             ★");
           puts("\t\t★             4.查找学生信息             ★");
           puts("\t\t★             5.修改学生信息             ★");
           puts("\t\t★             6.浏览学生籍贯             ★");
           puts("\t\t★             7.查询学籍变化             ★");
           puts("\t\t★             8.退出学籍系统             ★");
           puts("\t\t★★★★★★★★★★★★★★★★★★★★★★");
       printf("请选择服务种类(1-8) : [ ]\b\b");
       scanf("%d",&n);
       if(n<1||n>8)
       {
                   system("cls");
                   printf("选择错误!请正确输入!\n");
                   r1=1;
           }
           else
               r1=0;
        }while(r1==1);
        switch(n)
        {
                case 1: login();break;//登录账号
                case 2: system("cls"); insert();  break;//插入
                case 3: system("cls"); deleter(); break;//删除
                case 4: system("cls"); search();  break;//查找
                case 5: system("cls"); modify();  break;//修改
                case 6: system("cls"); browse();  break;//浏览
                case 7: system("cls"); browse_x(); break;//学籍浏览
                case 8: system("cls"); exit(0);//退出系统
        }
}

//注册账号密码
void enroll(int n)
{
        int i;
        char newword[20];//密码
        if(length == MAX)printf("该系统注册人数已达上限!!暂无法继续注册!!!\n");//防止单次注册人数达到上限
        else if(n == 1)
        {
                printf("\t\t\t请输入您的学号:");
                scanf("%s",&password[length].num);//输入学号
                printf("\t\t\t请输入您的姓名:");
                scanf("%s",&password[length].name);//输入姓名
                printf("\t\t\t请输入您的学院:");
                scanf("%s",&password[length].dept);//输入学院
                printf("\t\t\t请输入您的专业:");
                scanf("%s",&password[length].major);//输入专业
                printf("\t\t\t请输入您的班级:");
                scanf("%s",&password[length].classnum);//输入班级
                do
                {
                        printf("\t\t\t请您输入密码:");//输入密码
                        scanf("%s",&password[length].word);
                        printf("\t\t\t请您再次输入密码:");
                        scanf("%s",&newword);//再次输入密码
                        if(strcmp(newword,password[length].word)){printf("\t\t\t您两次输入的密码不一致!!请您再次输入新密码!!!\n");system("cls");}//提示密码错误
                        else break;
                }while(1);//若密码两次输入不一致,则进行重新输入
                printf("\n\n\t\t\t已成功注册!!\n");//提示注册成功
                printf("\t\t\t您的账号是%s\n",password[length].num);
                printf("\t\t\t您的新密码是%s\n",password[length].word);//生成账号密码
                for(i = 0;i < strlen(password[length].classnum);i++)
                 password[length].account[i] = password[length].num[i];//将账号补充在结构体中的account变量
                length++;
        }
        else if(n == 2){
                printf("\t\t\t请输入您的教职工号:");
                scanf("%s",&password[length].num);//输入学号
                printf("\t\t\t请输入您的姓名:");
                scanf("%s",&password[length].name);//输入姓名
                printf("\t\t\t请输入您的所在学院:");
                scanf("%s",&password[length].dept);//输入学院
                do
                {
                        printf("\t\t\t请您输入密码:");//输入密码
                        scanf("%s",&password[length].word);
                        printf("\t\t\t请您再次输入密码:");
                        scanf("%s",&newword);//再次输入密码
                        if(strcmp(newword,password[length].word))
                        {
                                printf("\t\t\t您两次输入的密码不一致!!请您再次输入新密码!!!\n");
                                system("cls");}//提示密码错误
                        else break;
                }while(1);//若密码两次输入不一致,则进行重新输入
                printf("\n\n\t\t\t已成功注册!!\n");//提示注册成功
                printf("\t\t\t您的账号是%s\n",password[length].num);
                printf("\t\t\t您的新密码是%s\n",password[length].word);//生成账号密码
                for(i = 0;i < strlen(password[length].classnum);i++)
                 password[length].account[i] = password[length].num[i];//将账号补充在结构体中的account变量
                 length++;
        }
        fp_password();//将密码保存到文件中
        system("pause");
        system("cls");
}

//将密码及注册人信息保存到文件
void fp_password()
{
        FILE *fp;
        int i;
        fp=fopen("password.txt","a");//在此路径下创建名为“password.txt”的记事本

                for(i=1;i<=length;i++)
                {
                        fprintf(fp,"%s  %s  %s  %s  %s  %s\n",password[i].num,
                                                                                                  password[i].word,
                                                              password[i].name,
                                                                                                  password[i].major,
                                                                                                  password[i].dept,
                                                                                                  password[i].classnum);  
                }
               
        fclose(fp);
}

//核对密码
int fp_wordsearch(char a[] , char b[])
{
        FILE *p; //定义文件指针变量
        char acc[N] , word[N];//定义字符数组
       
        p = fopen("password.txt","r");//以只读的形式打开password文本文件
        if(p == NULL)
        {
                printf("\t\t\t请先进行注册。\n");//说明未找到情况
                return -1;
        }
       
        while(!feof(p))
        {
                fscanf(p,"%s %s",&acc, &word);//从文本中寻找对应的账号密码
                if(!strcmp(acc , a)&&!strcmp(word , b))break;//若找到了,则退出循环
        }
       
        if(!feof(p))
        {
                return 1; //若找到了返回1
        }
        else{
                clearerr(p); //使文件错误标志和文件结束标志置为0
                return -2;//若找不到,返回-2
        }       
}

void login()//登录
{

    char d, c , w, w1;
        char word[N] , acc[N];//定义变量
        system("cls");
       
        if(flag) //先判断是否已登录
        {
                printf("\t\t\t您已经登录!\n");
                printf("\t\t\tPress any key to continue...\n");
                getchar();
                getchar();
                system("cls");
                menu();
        }
       
        printf("\t\t\t————请进行系统登录————\n");
        printf("\t\t\t*         1,学生            *\n");
        printf("\t\t\t*         2,教师            *\n");
        printf("\t\t\t*         0,退出            *\n");
        printf("\t\t\t———————————————\n");//系统登录菜单
        printf("\t\t\t是否已注册本系统账号(y/n):");
           do c = getchar(); while(c != 'y'&&c != 'n');//选择是否进行注册
       
        if(c == 'y')
        {
                printf("\n\t\t\t请选择身份:");
            scanf("%d",&d);
                system("pause");
               
                do
                {
                        system("cls");
                printf("\t\t\t————请进行系统登录————\n");
                        printf("\t\t\t*         1,学生            *\n");
                        printf("\t\t\t*         2,教师            *\n");
                        printf("\t\t\t*         0,退出            *\n");
                        printf("\t\t\t———————————————\n");
                        int i = 0;
                        printf("\t\t\t账号:");
                        scanf("%s" , acc); //输入账号
                        printf("\t\t\t密码:");          
                        getch();
                        int j=0;//用于密码数组 下标
                        while(1)
                        {
                                word[j]=getch();
                                if(word[j]=='\r')
                                  break;
                                printf("*");
                                j++;
                        }
                        flag=0;
                        word[j]='\0';
                        if(fp_wordsearch(acc , word) == -2)
                        {       
                                printf("\n\t\t\t密码或账号输入错误。\n\n");//说明账号密码输入错误的情况
                                w1=1;
                    }
                        else if(fp_wordsearch(acc , word) == 1)
                        {
                                printf("\n\t\t\t登录成功。\n");
                                flag=1;
                                break;
                        }//提示账号密码输入正确
                        system("pause");
                }while(w1=1);
            printf("\t\t\tPress [Enter] key to continue...\n");
                getchar();
                system("pause");
                system("cls");
                menu();
        }
       
       
        //未注册
        else
        {
                printf("\t\t\t请选择身份:");
            scanf("%d",&d);
                system("pause");
            enroll(d);//进行账号密码的注册
                do
                {       
                    system("cls");
                        printf("\t\t\t————请进行系统登录————\n");
                        printf("\t\t\t*         1,学生            *\n");
                        printf("\t\t\t*         2,教师            *\n");
                        printf("\t\t\t*         0,退出            *\n");
                        printf("\t\t\t———————————————\n");//系统登录菜单
                        printf("\t\t\t是否已注册本系统账号(y/n):");
                        do c = getchar(); while(c != 'y'&&c != 'n');//选择是否进行注册
                        int i = 0;
                        printf("\t\t\t账号:");
                        scanf("%s" , acc); //输入账号
                        printf("\t\t\t密码:");          
                        getch();
                        int j=0;//用于密码数组 下标
                        while(1)
                        {
                                word[j]=getch();
                                if(word[j]=='\r')
                                  break;
                                printf("*");
                                j++;
                        }
                        flag=0;
                        word[j]='\0';                               
                        if(fp_wordsearch(acc , word) == -2)
                        {       
                                printf("\n\t\t\t密码或账号输入错误。\n\n");//说明账号密码输入错误的情况
                                w1=1;
                    }
                        else if(fp_wordsearch(acc , word) == 1)
                        {
                                printf("\t\t\t登录成功。\n");
                                flag=1;
                                break;
                        }//提示账号密码输入正确
                        system("pause");
                }while(w1=1);
                printf("\t\t\tPress [Enter] key to continue...");
                getchar();
                system("cls");
                menu();               
    }
}
int load()//打开文件,读取数据
{
        FILE *fp;
        int i;
        if((fp=fopen("student.txt","r"))==NULL)
        {
                printf("\n文件不存在!请重新输入:\n");
                return 0;
        }
        for(i=0;!feof(fp);i++)
            fread(&stu[i],sizeof(struct student),1,fp);//将一批数据作为一个整体一次性写入磁盘文件
            //fread(buffer,size,cout,fp)
            //buffer:数据位置 sizeof:数据字节数 count:读取次数 fp:原磁盘文件指针
                fclose(fp);
                return(i-1);
}

void input(int k)//输入学生信息
{
        getchar();
        printf("学号:");  fflush(stdin); gets(stu[k].num); fflush(stdin);
        printf("姓名:");   gets(stu[k].name); fflush(stdin);
        printf("性别:");   gets(stu[k].sex); fflush(stdin);
        printf("年龄:");   scanf("%d",&stu[k].age);  getchar();
    printf("籍贯:");   gets(stu[k].addr); fflush(stdin);
        printf("系别:");   gets(stu[k].dept); fflush(stdin);
        printf("专业:");   gets(stu[k].major); fflush(stdin);
        printf("班级:");   gets(stu[k].classroom); fflush(stdin);
        printf("学籍变化(如入学、转专业、退学、降级、休学、毕业):"); gets(stu[k].native_changes); fflush(stdin);
       
}

void save(int n)//保留学生信息
{
        FILE *fp;
        int i;
        fp=fopen("student.txt","a");//在路径下打开名为“student.txt”的记事本,并追加
        for(i=0;i<=n;i++)
        {
               
                fprintf(fp,"%-17s%-17s%-17s%-17d%-17s%-17s%-17s%-17s%-17s\n",stu[i].num,stu[i].name,stu[i].sex,stu[i].age,stu[i].addr,stu[i].dept,stu[i].major,stu[i].classroom,stu[i].native_changes);
        }
        fclose(fp);
        printf("\t\t\t学生信息保存成功!");
        getchar();
}   

void insert()//添加学生信息
{
        int i,n,k,t;
        FILE *fp;
        if((fp=fopen("student.txt","r"))==NULL)//读入空文件,r表示打开一个文件,只允许读数据
        {
                printf("\n\t\t\tHow many student do you want to add(1-%d)?:",N-1);
                n=0;
        }//文件未存数据时 ,总数n为0
        else
        {
                n=load();
                printf("\n\t\t\tHow many student do you want to insert(1-%d)?:",N-n-1);
        }//文件存有数据,还剩下N-t(已添加人数)可以添加
        scanf("%d",&t);
        k=n+t;// 现文件存在人数 +要添加的人数
        for(i=n;i<k;i++)//从第最后存在人数开始增加
        {
                printf("\n\t\t\t 输入第%d个学生的学籍信息.\n",i-n+1);
                input(i);
        }
        save(k);//保留所有学生的信息
        print_back();
}

void print_back()//添加信息后显示“是浏览还是返回”
{
        system("cls");
        int w,k=0;
        void browse();
        void menu();
        printf("\n\n\t插入成功\n\n");
        do
        {
                printf("\t\t\tWhat do you want to do next?\n");
                printf("\t\t\t1.浏览所有\n");
                printf("\t\t\t2.返回\n");       
                printf("\t\t\t[ ]\b\b");       
                scanf("%d",&w);
                if(w==1)
                {
                        system("cls");
                        browse();
                }
                else if(w==2)
                {
                        system("cls");
                        menu();
                }
                else
                    printf("选择错误!请重新选择!\n");
        }while(k==0);
}

void deleter()//删除
{
        void menu();
        if(!flag)
        {
                printf("\n\n\t请先登录!\n");
                printf("\n\t请按Enter 键进入登录界面!");
                getchar();
                getchar();
                login();
        }
        else
        {
                struct student s;
                int i,n,k,w0,w1;
                n=load();
                do
                {
                        k=-1;
                        do
                        {
                                printf("\n\n请输入您想要删除的学生的姓名!\nName:");
                            scanf("%s",s.name);
                            for(i=0;i<n;i++)
                              if(strcmp(s.name,stu[i].name)==0)
                              {
                                      k=i;
                                      s=stu[i];
                              }
                            if(k==-1)
                            {
                                    int m;
                                    printf("\n\n没有这个学生的信息!\n");
                                    printf("What do you want to do next?1.继续输入 2.返回主菜单   [ ]\b\b");
                                    scanf("%d",&m);
                                    if(m==1)
                                        deleter();
                                    else
                                    {
                                            k=0;
                                            menu();
                                        }
                                }
                        }while(k==-1);
                        print_one(k);
                        printf("\n\t确定删除?\n\t1.是  2.返回    [ ]\b\b");//再次询问是否删除
                        scanf("%d",&w0);
                        if(w0==1)
                        {
                                stu[k].name[0]='\0';
                                save(n);
                        }
                        else
                            break;
                        printf("\n\t成功删除!\n");
                        printf("What do you want to do?\n\t1.继续  2.返回   [ ]\b\b");
                        scanf("%d",&w1);        
                }while(w1==1);
                system("cls");
                menu();//不再删除时返回菜单,w1!=1
        }
}

void print_one(int k)//输出一个学生的信息
{
        printf("学号:%s\n",stu[k].num);
        printf("姓名:%s\n",stu[k].name);
        printf("性别:%s\n",stu[k].sex);
        printf("年龄:%d\n",stu[k].age);
    printf("籍贯:%s\n",stu[k].addr);
        printf("系别:%s\n",stu[k].dept);
        printf("专业:%s\n",stu[k].major);
        printf("班级:%s\n",stu[k].classroom);
        printf("学籍变化:%s\n",stu[k].native_changes);
}

void print_n(int n)//浏览时输出所有学生的信息
{
        int j,i=1;
        for(j=0;j<n;j++)
        {
                printf("第%个学生:\n",i++);
                print_one(j);
                printf("\n");
        }
        getchar();
}

void search()//查找
{
        void menu();
        int w0,k,i,n,w1,w2,a;
        struct student s;
        FILE *fp;
        if((fp=fopen("student.txt","r"))!=NULL)//不是空文件
            n=load();
        do
        {
                printf("请选择查找类别:1.姓名 2.学号  [ ]\b\b");
                scanf("%d",&w1);getchar();
                if(w1>2||w1<1)
                {
                        printf("输入错误!请重新输入!\n");
                        w2=1;
                }
                else
                    w2=0;//加这句是为了能跳出循环
        }while(w2==1);
       
        if(w1=1)//姓名查找
        {
                do
                {
                        k=-1;
                        do
                        {
                                printf("\n请输入您想要查找的学生的姓名!\nName:");
                                scanf("&s",s.name);
                                for(i=0;i<n;i++)
                                  if(strcmp(s.name,stu[i].name)==0)//找到
                                  {
                                                  a=i;
                                                  s=stu[i];
                                                  k=2;
                                  }
                                  
                                  if(k==-1)//没有找到
                                  {
                                                   int o;
                                                  printf("\n\n没有找到这个学生的信息!\n");
                                                  printf("What do you want to do?\n\t 1.继续 2.返回菜单 [ ]\b\b");
                                                  scanf("%d",&o);
                                                  if(o==1)
                                                  {
                                                          system("cls");
                                                          search();//继续查找
                                                  }
                                                else
                                                {
                                                        system("cls");
                                                        menu();
                                                }
                                  }
                        }while(k==1);
                    system("cls");
                    print_one(a);//找到以后输出这个学生的信息
                    printf("\nWhat do you want to do next?\n\t1.继续 2.返回菜单  [ ]\b\b");
                    scanf("%d",&w0);
                }while(w0==1);
            system("cls");
            menu();//不在寻找时返回菜单
        }
        else//按学号查找
        {
                do
                {
                        k=-1;
                        do
                        {
                                printf("\n请输入您想要查找的学生的学号!\nNum:");
                                scanf("%s",s.num);
                                for(i=1;i<n;i++)
                                  if(strcmp(s.num,stu[i].num)==0)//找到
                                  {
                                          a=i;
                                          k=2;
                                          s=stu[i];
                                  }
                                        if(k==-1)//没有找到
                                        {
                                                int o;
                                                printf("\n\n没有这个学生的信息!\n!");
                                                printf("What do you want to do?\n\t1.继续  2.返回菜单  [ ]\b\b");
                                                scanf("%d",&o);
                                                if(o==1)
                                                {
                                                        system("cls");
                                                        search();//继续查找
                                                }       
                                                else
                                                {
                                                        system("cls");
                                                        menu();
                                                }
                                        }
                        }while(k==-1);
                        system("cls");
                        print_one(a);//找到以后输出这个学生的学籍信息
                        printf("\nWhat do you want to do?\n\t1.继续  2.返回菜单  [ ]\b\b");
                        scanf("%d",&w0);
                }while(w0==1);
                system("cls");
                menu();//不再查找时返回主菜单
        }
}

int modify_data(int i)//修改信息函数
{
        int c,w1;
        void menu();
        do
        {
                puts("\n请选择要修改的选项:\n\n1.学号 2.姓名 3.性别 4.年龄 5.籍贯 6.系别 7.专业 8.班级 9.学籍变化 10.所有信息 11.取消并返回");
                printf("请选择?:[  ]\b\b\b");
                scanf("%d",&c);
                if(c>11||c<1)
                {
                        puts("\n选择错误!请重新选择!");
                        getchar();
                }
        }while(c>11||c<1);
        do
        {
                switch(c)
                {
                        case 1: printf("学号:");  scanf("%s",stu[i].num); break;
         case 2: printf("姓名:");  scanf("%s",stu[i].name); break;
         case 3: printf("性别:");  scanf("%s",stu[i].sex); break;
                 case 4: printf("年龄:");  scanf("%d",&stu[i].age);break;
                 case 5: printf("籍贯:");  scanf("%s",stu[i].addr);break;
                 case 6: printf("系别:");  scanf("%s",stu[i].dept);break;
                 case 7: printf("专业:");  scanf("%s",stu[i].major);break;
                 case 8: printf("班级:");  scanf("%s",stu[i].classroom);break;
                 case 9: printf("学籍变化:");scanf("%s",stu[i].native_changes);break;
                 case 10: input(i); break;  /*修改这个学生的所有信息*/
                 case 11: menu();  /*返回主菜单*/
                }
                puts("\nNow:\n");
                print_one(i);//输出 修改后 的这个学生的信息
                printf("\n确定?\n\n\t1.是 2.否,重新修改 3.返回不保存[ ]\b\b");
                scanf("%d",&w1);
        }while(w1==2);
        return(w1);//修改成功并选择1后返回1
}

void modify()//修改
{
        system("cls");
        void menu();
        if(!flag)
        {
                printf("\n\n\t请先登录!\n");
                printf("\n\t请按Enter 键进入登录界面!");
                getchar();
                getchar();
                login();
        }
        else
        {
                struct student s;
                int i,n,k,w0=1,w1,w2=0;
                n=load();
                do
                {
                        k=-1;
                        do
                        {
                                printf("\n 请输入您想要修改的学生的姓名!\nName:");
                                scanf("%s",s.name);
                                for(i=0;i<n;i++)
                                        if(strcmp(s.name,stu[i].name)==0)//与其中一学生匹配
                                        {
                                                k=1;
                                                s=stu[i];
                                        }
                                   if(k==-1)//没有找到输入的学生
                                   {
                                               int o;
                                               printf("\n\n没有这个学生的信息!\n");
                                               printf("What do you want to do ?\n\t1.继续 2.返回菜单 [ ]\b\b");
                                               scanf("%d",&o);
                                               if(o==1)
                                               {
                                                       system("cls");
                                                       modify();//继续修改
                                                }
                                                else
                                                {
                                                        system("cls");
                                                        menu();
                                                }
                                   }
                            }while(k==-1);
                            system("cls");
                            print_one(k);//输出这个学生的信息
                                w1=modify_data(k);
                                if(w1==1)//判断是否修改成功
                                {
                                        printf("\n\t修改成功 \n\n是否继续?\n\n\t1.是 2.保存返回\t[ ]\b\b");
                                        scanf("%d",&w0);
                                        w2=1;
                                }
                                else
                                {
                                       
                                        w0=0;
                                        if(w2==0)
                                            stu[k]=s;
                                }
                                if((w0!=1)&&(w2==1))//修改成功保存
                                    save(n);  
                }while(w0=1);
                system("cls");
                meun();//不再修改返回主菜单
        }
}

void browse()
{
        int i,n,a;
    FILE *fp;
        if((fp=fopen("student.txt","r"))!=NULL)//不是空文件
            n=load();//打开文件
        printf("********************学生籍贯表*********************\n");
        printf("学号      姓名       籍贯\n");
        for(i=0;i<=n ;i++)
        {  
                printf("%s        %s         %s\n",stu[i].num,stu[i].name,stu[i].addr);
        }
        fclose(fp);
        printf("\t\t\tPress [Enter] key to continue...");
        getchar();
        system("cls");
        menu();

}

void browse_x()
{
    struct student s;
        int i,k,w,w0,n,o;
    FILE *fp;
        if((fp=fopen("student.txt","r"))!=NULL)//不是空文件
            n=load();//打开文件
   
        do
        {
                k=-1;
                do
                {
                        printf("\n请输入您想要查找的学生的学号!\nNum:");
                        scanf("&s",s.num);
                        for(i=0;i<n;i++)
                          if(strcmp(s.num,stu[i].num)==0)//找到
                            {
                                    w=1;
                                    k=1;
                                }
                          
                        if(k==-1)//没有找到
                        {
                                  int o;
                                  printf("\n\n没有找到这个学生的信息!\n");
                                  printf("What do you want to do?\n\t 1.继续 2.返回菜单 [ ]\b\b");
                                  scanf("%d",&o);
                                  if(o==1)
                                 {
                                          system("cls");
                                          w=-1;
                                  }
                                else
                                {
                                        system("cls");
                                        menu();
                                }
                        }
                }while(w==-1);
            system("cls");
            printf("学号:%s  姓名:%s   学籍:%s  \n",stu[i].num,stu[i].name,stu[i].native_changes);;//找到以后输出这个学生的信息
            printf("\nWhat do you want to do next?\n\t1.继续 2.返回菜单  [ ]\b\b");
            scanf("%d",&w0);
        }while(w0==1);
    system("cls");
    menu;//不在寻找时返回菜单
        fclose(fp);

}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-17 12:32

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表