用c语言模拟班费管理系统

img


内容要求如图,自学找的练习题,做了好久出了好多bug,求解答让我参考一下。

#include <iostream>
#include <stdio.h>
#include <vector>
#include <string.h>

using namespace std;



int main()
{

    int n;
    int val;  //用于缴纳
    char name[10];
    //一共有5人
    int banf[5];
    for(int i=0;i<5;++i)
    {
        banf[i]=10; //初始每人缴纳10元班费
    }
    char jiaofeimingdan[5][10];
    sprintf(jiaofeimingdan[0],"%s","张三");
    sprintf(jiaofeimingdan[1],"%s","李四");
    sprintf(jiaofeimingdan[2],"%s","王五");
    sprintf(jiaofeimingdan[3],"%s","甲");
    sprintf(jiaofeimingdan[4],"%s","乙");
    while(true)
    {
        printf("***0:个人缴费查询 ***\n");
        printf("***1:班 费 缴 纳 ***\n");
        printf("***2:退 出 系 统 ***\n");
        scanf("%d",&n);
        if(n==0)
        {
            printf("请输入要查询的姓名:\n");
            scanf("%s",&name);
            bool isFind=false;
            for(int i=0;i<5;++i)
            {
                if(strcmp(name, jiaofeimingdan[i]) == 0)
                {
                    isFind=true;
                    printf("%s已缴纳班费%d元\n",jiaofeimingdan[i],banf[i]);
                    break;
                }
            }
            if(!isFind)
            {
               printf("未找到该学生,请重新选择!\n");
            }
        }
        if(n==1)
        {
            printf("请输入要缴纳的姓名:\n");
            scanf("%s",&name);
            bool isFind=false;
            for(int i=0;i<5;++i)
            {
                if(strcmp(name, jiaofeimingdan[i]) == 0)
                {
                    isFind=true;
                    printf("请输入需要缴纳的金额\n");
                    scanf("%d",&val);
                    banf[i]+=val;
                    printf("%s已缴纳班费%d元\n",jiaofeimingdan[i],banf[i]);
                    break;
                }
            }
            if(!isFind)
            {
               printf("未找到该学生,请重新选择!\n");
            }
        }
        if(n==2)
        {
            break;
        }

    }

    return 0;
}

img


有用望采纳

参考一下吧

#include<stdio.h>                                                      //标准输入输出的头文件
#include<stdlib.h>                                                      //常用的系统函数,如system("pause")可以实现冻结屏幕,便于观察程序的执行结果;exit用于终结程序
#include<string.h>                                                      //字符串操作函数库头文件
typedef struct StuFee                                                            //建立结构体
    {
        char num[5];                                  //班费编码
        char or[8];                                   //收入还是支出
        char name[20];                                //经办人
        char reson[1000];                             //原因
        int spent;                                    //金额(每位同学)
        int people;                                   //人数
        int balance;                                  //余额(自动生成
        char beizhu[1000];                            //备注
        char time[10];                                //时间(手动输入)
    }stufee;
stufee  fee[100];
//余额
void yue()
/**********************************************************************************************
函数名:yue
形参:无
功能:余额自动生成功能,在功能函数结束后加入可自动计算函数
**********************************************************************************************/
{
        int i,j;
        FILE *fp;
            if((fp=fopen("班费.txt","r"))==NULL)//打开"班费.txt"文件
    {
        // 如果打开文件错误,则不进行文件打开,直接退出程序
        printf("文件打开错误!\n");
        exit(0);
    }
    for(j=0;!feof(fp);j++)                                    //录入所有文件信息
    {    
        fscanf(fp,"%s %s %s %s %d %d %d %s %s",&fee[j].num,&fee[j].or,&fee[j].name,&fee[j].reson,&fee[j].spent,&fee[j].people,&fee[j].balance,&fee[j].beizhu,&fee[j].time);
    }
    if(strcmp(fee[0].or,"支出")==0)                                         //计算第一条信息的余额
            fee[0].balance=fee[0].spent*fee[0].people*-1;
    if(strcmp(fee[0].or,"收入")==0)
            fee[0].balance=fee[0].spent*fee[0].people;
    for(i=1;i<j;i++)                                                        //计算所有信息的余额
    {
        if(strcmp(fee[i].or,"支出")==0)
            fee[i].balance=fee[i-1].balance-fee[i].spent*fee[i].people;
        if(strcmp(fee[i].or,"收入")==0)
            fee[i].balance=fee[i-1].balance+fee[i].spent*fee[i].people;
    }
    fp=fopen("班费.txt","w");                                            //输入修改后的信息         
            for(i=0;i<j;i++)
            {
                fprintf(fp,"%s %s %s %s %d %d %d %s %s",fee[i].num,fee[i].or,fee[i].name,fee[i].reson,fee[i].spent,fee[i].people,fee[i].balance,fee[i].beizhu,fee[i].time);
                if(i<j-1)
                fprintf(fp,"\n");
            }
 
            fclose(fp);
}
//录入
void luru()
/**********************************************************************************************
函数名:luru
形参:无
功能:录入班费信息。引导操作者录入班费信息详细内容并保存到文件中。
**********************************************************************************************/
{
    int k,j,i,a=1,b;
    char x;
    FILE *fp;
    if((fp=fopen("班费.txt","r"))==NULL)                            //打开"班费.txt"文件
    {
        // 如果打开文件错误,则不进行文件打开,直接退出程序
        printf("文件打开错误!\n");
        getchar();
        exit(0);
    }
    for(k=0;!feof(fp);k++)                                    //为了实现余额的自动生成,先要将一共有多少条班费信息记录
    {    
        fscanf(fp,"%s %s %s %s %d %d %d %s %s",&fee[k].num,&fee[k].or,&fee[k].name,&fee[k].reson,&fee[k].spent,&fee[k].people,&fee[k].balance,&fee[k].beizhu,&fee[k].time);
    }
    fclose(fp);
    if((fp=fopen("班费.txt","a"))==NULL)//打开"班费.txt"文件
        {
            // 如果打开文件错误,则不进行文件打开,直接退出程序
            printf("文件打开错误!\n");
            getchar();
            exit(0);
        }
    for(j=k;a;j++)                                                               //运用for循环实现多条信息的输入
    {
        printf("\n班费编码:");
        scanf("%s",&fee[j].num);
        b=1;
        while(b)                                                                //运用while循环实现输入错误时的重新输入
        {
            b=0;
            printf("收入还是支出:");
            scanf("%s",&fee[j].or);
            if(strcmp(fee[j].or,"支出")!=0&&strcmp(fee[j].or,"收入")!=0)
            {
                printf("错误!");
                printf("请重新输入:\n");
                b=1;
            }
        }
        printf("经办人:");
        scanf("%s",&fee[j].name);
        printf("原因:");
        scanf("%s",&fee[j].reson);
        b=1;
        while(b)                                                                //运用while循环实现输入错误时的重新输入
        {
            b=0;
            printf("金额(每位同学):");
            scanf("%d",&fee[j].spent);
            if(fee[j].spent<0)
            {
                printf("金额为负,错误!");
                printf("请重新输入:\n");
                b=1;
            }
        }    
        printf("人数:");
        scanf("%d",&fee[j].people);
        if(strcmp(fee[j].or,"支出")==0)                                               //判断此信息时收入或支出,实现录入中的余额自动生成功能
            fee[j].balance=fee[j-1].balance-fee[j].spent*fee[j].people;               //录入时直接判断收入还是支出进而计算,无需最后再次计算,节约计算资源
        if(strcmp(fee[j].or,"收入")==0)
            fee[j].balance=fee[j-1].balance+fee[j].spent*fee[j].people;
        printf("备注:");
        scanf("%s",&fee[j].beizhu);
        printf("时间(手动输入):");
        scanf("%s",&fee[j].time);
        printf("新录入的班费余额(自动生成)为:");
        printf("%d",fee[j].balance);
        printf("\n继续录入请按1,结束请按0:");
        scanf("%d",&a);
    }
    printf("\n新增的班费信息:\n");
    printf("\n班费编码   收入还是支出    经办人           原因           金额(每位同学)    人数    余额(自动生成)     备注        时间(手动输入)\n");
    for(i=k;i<j;i++)
    {
        printf("%5s %13s %12s %15s %17d %15d %13d %14s %18s\n",fee[i].num,fee[i].or,fee[i].name,fee[i].reson,fee[i].spent,fee[i].people,fee[i].balance,fee[i].beizhu,fee[i].time);
    }
    printf("是否确认录入信息(Y/N)");
    a=1;
        while(a)                                                             //运用while循环实现确定功能,取消时信息不录入文件
        {
            printf("\n按Y确认,按N取消:");
            scanf("%s",&x);
            if(x=='Y'||x=='y')
            {    
                    for(i=k;i<j;i++)
                    {
                        fprintf(fp,"\n");
                        fprintf(fp,"%s %s %s %s %d %d %d %s %s",fee[i].num,fee[i].or,fee[i].name,fee[i].reson,fee[i].spent,fee[i].people,fee[i].balance,fee[i].beizhu,fee[i].time);
                    }
                    printf("录入成功!\n");
                    fclose(fp);
                    a=0;
            }
            if(x=='N'||x=='n')
            {    
                printf("取消录入!\n");
                fclose(fp);
                a=0;
            }
            if(x!='Y'&&x!='y'&&x!='N'&&x!='n')                                // 输出保护措施,确保输入错误时系统不会出错
            {
                printf("\n输入错误!\n\n请重新输入:");
                a=1;
            }
        }
}
//浏览
void liulan()
/**********************************************************************************************
函数名:liulan
形参:无
功能:将文件中的班费信息全部读取,并按输入的时间顺序输出出来。
**********************************************************************************************/
{
        int i,j;
        FILE *fp;
            if((fp=fopen("班费.txt","r"))==NULL)//打开"班费.txt"文件
    {
        // 如果打开文件错误,则不进行文件打开,直接退出程序
        printf("文件打开错误!\n");
        getchar();
        exit(0);
    }
    for(j=0;!feof(fp);j++)
    {    
        fscanf(fp,"%s %s %s %s %d %d %d %s %s",&fee[j].num,&fee[j].or,&fee[j].name,&fee[j].reson,&fee[j].spent,&fee[j].people,&fee[j].balance,&fee[j].beizhu,&fee[j].time);
    }
    printf("\n班费编码   收入还是支出    经办人           原因           金额(每位同学)    人数    余额(自动生成)     备注        时间(手动输入)\n");
    for(i=0;i<j;i++)
    {
        printf("%5s %13s %12s %15s %17d %15d %13d %14s %18s\n",fee[i].num,fee[i].or,fee[i].name,fee[i].reson,fee[i].spent,fee[i].people,fee[i].balance,fee[i].beizhu,fee[i].time);
    }
    fclose(fp);
}
//查询
void chaxun()
/**********************************************************************************************
函数名:chaxun
形参:无
功能: 根据不同的项目查询相关的班费信息,并将该条信息详情输出。
**********************************************************************************************/
{
    int a,g=0;
    char b[5],c[10],d[10],e[20],f[8];
    int j;
    FILE *fp;
        if((fp=fopen("班费.txt","r"))==NULL)//打开"班费.txt"文件
    {
        // 如果打开文件错误,则不进行文件打开,直接退出程序
        printf("文件打开错误!\n");
        getchar();
        exit(0);
    }
        printf("\n“按照班费编码进行查询”    请按1\n“按照班费时间范围进行查询”请按2\n“按照经办人进行查询”      请按3\n""“按照收入或支出进行查询”  请按4\n");
        scanf("%d",&a);    
        if(a==1)                                                    //利用选择结构实现功能分类使用
        {
            printf("请输入班费编码\n");                              //通过班费编码查询
            scanf("%s",b);
            for(j=0;!feof(fp);j++)
            {    
                fscanf(fp,"%s %s %s %s %d %d %d %s %s",&fee[j].num,&fee[j].or,&fee[j].name,&fee[j].reson,&fee[j].spent,&fee[j].people,&fee[j].balance,&fee[j].beizhu,&fee[j].time);    
                if(strcmp(fee[j].num,b)==0)
                {    
                    if(g==0)                                         //开头的项目名字只需输出一次
                    printf("班费编码   收入还是支出    经办人           原因           金额(每位同学)    人数    余额(自动生成)     备注        时间(手动输入)\n");
                    g++;
                    printf("%5s %13s %12s %15s %17d %15d %13d %14s %18s\n",fee[j].num,fee[j].or,fee[j].name,fee[j].reson,fee[j].spent,fee[j].people,fee[j].balance,fee[j].beizhu,fee[j].time);
                }
            }
            if(g==0)
                printf("您所要查找的信息不存在。\n");
        }
        else if(a==2)                                                         //通过时间查询
        {
            printf("请输入开始时间\n");
            scanf("%s",c);
            printf("请输入结束时间\n");
            scanf("%s",d);
            for(j=0;!feof(fp);j++)
            {    
                fscanf(fp,"%s %s %s %s %d %d %d %s %s",&fee[j].num,&fee[j].or,&fee[j].name,&fee[j].reson,&fee[j].spent,&fee[j].people,&fee[j].balance,&fee[j].beizhu,&fee[j].time);
                if(strcmp(fee[j].time,c)==0||strcmp(fee[j].time,d)==0||strcmp(fee[j].time,c)>0&&strcmp(fee[j].time,d)<0)
                {
                    if(g==0)                                         //开头的项目名字只需输出一次
                    printf("班费编码   收入还是支出    经办人           原因           金额(每位同学)    人数    余额(自动生成)     备注        时间(手动输入)\n");
                    printf("%5s %13s %12s %15s %17d %15d %13d %14s %15s\n",fee[j].num,fee[j].or,fee[j].name,fee[j].reson,fee[j].spent,fee[j].people,fee[j].balance,fee[j].beizhu,fee[j].time);
                    g++;
                }
            }
                    if(g==0)
                printf("您所要查找的信息不存在。\n");
        }
        else if(a==3)                                                   //通过经办人查询
        {    
            printf("请输入经办人\n");
            scanf("%s",e);
            for(j=0;!feof(fp);j++)
            {    
                fscanf(fp,"%s %s %s %s %d %d %d %s %s",&fee[j].num,&fee[j].or,&fee[j].name,&fee[j].reson,&fee[j].spent,&fee[j].people,&fee[j].balance,&fee[j].beizhu,&fee[j].time);    
                if(strcmp(fee[j].name,e)==0)
                {
                    if(g==0)                                         //开头的项目名字只需输出一次
                    printf("班费编码   收入还是支出    经办人           原因           金额(每位同学)    人数    余额(自动生成)     备注        时间(手动输入)\n");
                    g++;
                    printf("%5s %13s %12s %15s %17d %15d %13d %14s %15s\n",fee[j].num,fee[j].or,fee[j].name,fee[j].reson,fee[j].spent,fee[j].people,fee[j].balance,fee[j].beizhu,fee[j].time);
                }
            }
            if(g==0)
                printf("您所要查找的信息不存在。\n");
        }
        else if(a==4)                                                                 //通过收入或支出分类查询
        {
            printf("请输入收入或输出:");
            scanf("%s",f);
            for(j=0;!feof(fp);j++)
            {    
                fscanf(fp,"%s %s %s %s %d %d %d %s %s",&fee[j].num,&fee[j].or,&fee[j].name,&fee[j].reson,&fee[j].spent,&fee[j].people,&fee[j].balance,&fee[j].beizhu,&fee[j].time);    
                if(strcmp(fee[j].or,f)==0)
                {
                    if(g==0)                                       //开头的项目名字只需输出一次
                    printf("班费编码   收入还是支出    经办人           原因           金额(每位同学)    人数    余额(自动生成)     备注        时间(手动输入)\n");
                    g++;
                    printf("%5s %13s %12s %15s %17d %15d %13d %14s %15s\n",fee[j].num,fee[j].or,fee[j].name,fee[j].reson,fee[j].spent,fee[j].people,fee[j].balance,fee[j].beizhu,fee[j].time);
                }
            }
            if(g==0)
                printf("您所要查找的信息不存在。\n");
        }
    fclose(fp);
}
//修改
void xiugai()
/**********************************************************************************************
函数名:xiugai
形参:无
功能:通过编码查询相应详细信息,操作者修改信息再次确认后保存信息。
**********************************************************************************************/
{
    char a[5],x;
    int i,j,c,z,b=1,d=1,g=0;
        FILE *fp;
            if((fp=fopen("班费.txt","r"))==NULL)                    //打开"班费.txt"文件
    {
        // 如果打开文件错误,则不进行文件打开,直接退出程序
        printf("文件打开错误!\n");
        getchar();
        exit(0);
    }
    for(j=0;!feof(fp);j++)
    {    
        fscanf(fp,"%s %s %s %s %d %d %d %s %s",&fee[j].num,&fee[j].or,&fee[j].name,&fee[j].reson,&fee[j].spent,&fee[j].people,&fee[j].balance,&fee[j].beizhu,&fee[j].time);
    }
    fclose(fp);
        printf("\n输入需要修改的班费编号:");
        scanf("%s",a);
        for(i=0;i<j;i++)                                           //for循环加选择结构挑出所需要的结构体
        {
            if(strcmp(fee[i].num,a)==0)
            {
                printf("班费编码   收入还是支出    经办人           原因           金额(每位同学)    人数    余额(自动生成)     备注        时间(手动输入)\n");
                printf("%5s %13s %12s %15s %17d %15d %13d %14s %18s\n",fee[i].num,fee[i].or,fee[i].name,fee[i].reson,fee[i].spent,fee[i].people,fee[i].balance,fee[i].beizhu,fee[i].time);
                c=i;
                g++;
                break;
            }
        }
        if(g==0)
        {
            printf("您所要查找的信息不存在。\n");
            return;
        }
    while(b)                                                                 //利用while循环实现信息的多个数据更改
    {
        printf("1班费编码\n2收入还是支出\n3经办人\n4原因\n5金额(每位同学)\n6人数\n7备注\n8时间\n输入需要修改的选项:");
    
        scanf("%d",&z);
        if(z==1)                                                       //利用选择结构实现不同数据的修改    
        {
            printf("请输入新的班费编码:");
            scanf("%s",&fee[c].num);
        }
        else if(z==2)
        {
            printf("请输入收入或支出:");
            scanf("%s",&fee[c].or);
        }
        else if(z==3)
        {
            printf("请输入新的经办人:");
            scanf("%s",&fee[c].name);
        }
        else if(z==4)
        {
            printf("请输入新的原因:");
            scanf("%s",&fee[c].reson);
        }
        else if(z==5)
        {
            printf("请输入新的金额(每位同学):");
            scanf("%d",&fee[c].spent);
        }
        else if(z==6)
        {    
            printf("请输入新的人数:");
            scanf("%d",&fee[c].people);
        }
        else if(z==7)
        {
            printf("请输入新的备注:");
            scanf("%s",&fee[c].beizhu);
        }
        else if(z==8)
        {
            printf("请输入新的时间:");
            scanf("%s",&fee[c].time);
        }
        printf("是否更新其他字段(Y/N):");
        scanf("%s",&x);
            if(x=='Y'||x=='y')
            {    
            }
            if(x=='N'||x=='n')
            {    
                b=0;
            }
        }
    fp=fopen("班费.txt","w");
            for(i=0;i<j;i++)
            {
                fprintf(fp,"%s %s %s %s %d %d %d %s %s",fee[i].num,fee[i].or,fee[i].name,fee[i].reson,fee[i].spent,fee[i].people,fee[i].balance,fee[i].beizhu,fee[i].time);
                if(i<j-1)
                fprintf(fp,"\n");
            }
            fclose(fp);
            yue();                                           //余额自动生成功能运行
    if((fp=fopen("班费.txt","r"))==NULL)                    //打开"班费.txt"文件
    {
        // 如果打开文件错误,则不进行文件打开,直接退出程序
        printf("文件打开错误!\n");
        getchar();
        exit(0);
    }
    for(j=0;!feof(fp);j++)
    {    
        fscanf(fp,"%s %s %s %s %d %d %d %s %s",&fee[j].num,&fee[j].or,&fee[j].name,&fee[j].reson,&fee[j].spent,&fee[j].people,&fee[j].balance,&fee[j].beizhu,&fee[j].time);
    }
    fclose(fp);
        printf("修改后的信息为:");
        printf("\n班费编码   收入还是支出    经办人           原因           金额(每位同学)    人数    余额(自动生成)     备注        时间(手动输入)\n");
        printf("%5s %13s %12s %15s %17d %15d %13d %14s %18s\n",fee[c].num,fee[c].or,fee[c].name,fee[c].reson,fee[c].spent,fee[c].people,fee[c].balance,fee[c].beizhu,fee[c].time);
            
}
//删除
void shanchu()
/**********************************************************************************************
函数名:shanchu
形参:无
功能:通过编码查询相应详细信息,操作者确认后删除信息。
**********************************************************************************************/
{
    char a[5];
    char b;
        int i,j,c,g=0;
        FILE *fp;
            if((fp=fopen("班费.txt","r"))==NULL)//打开"班费.txt"文件
    {
        // 如果打开文件错误,则不进行文件打开,直接退出程序
        printf("文件打开错误!\n");
        getchar();
        exit(0);
    }
    for(j=0;!feof(fp);j++)
    {    
        fscanf(fp,"%s %s %s %s %d %d %d %s %s",&fee[j].num,&fee[j].or,&fee[j].name,&fee[j].reson,&fee[j].spent,&fee[j].people,&fee[j].balance,&fee[j].beizhu,&fee[j].time);
    }
    fclose(fp);
    printf("\n输入需要删除的班费编号:");
    scanf("%s",a);
    for(i=0;i<j;i++)                                             //for循环查询所有符合条件的信息
    {
        if(strcmp(fee[i].num,a)==0)
        {
            if(g==0)                                         //开头的项目名字只需输出一次
            printf("班费编码   收入还是支出    经办人           原因           金额(每位同学)    人数    余额(自动生成)     备注        时间(手动输入)\n");
            printf("%5s %13s %12s %15s %17d %15d %13d %14s %18s\n",fee[i].num,fee[i].or,fee[i].name,fee[i].reson,fee[i].spent,fee[i].people,fee[i].balance,fee[i].beizhu,fee[i].time);
            c=i;
            g++;
        }
    }
    if(g==0)
    {
        printf("您所要查找的信息不存在。\n");
        return;
    }
    printf("确定删除该信息(Y/N):");
    scanf("%s",&b);
    if(b=='Y'||b=='y')                                          //利用if选择结构实现确定功能,取消时信息不变
        {    
            fp=fopen("班费.txt","w");
            for(i=0;i<j;i++)
            {
                if(i!=c)                                            //以“w”方式打开文件,输入除删除数据外的所有数据,实现删除的效果
                fprintf(fp,"%s %s %s %s %d %d %d %s %s",fee[i].num,fee[i].or,fee[i].name,fee[i].reson,fee[i].spent,fee[i].people,fee[i].balance,fee[i].beizhu,fee[i].time);
                if(i<j-1)
                fprintf(fp,"\n");
            }
            printf("\n删除成功!\n");
            fclose(fp);
            yue();                                           //余额自动生成功能运行
        }
    if(b=='N'||b=='n')
        {    
            printf("\n取消删除!\n");
            fclose(fp);
        }
}
//扩展
void kuozhan()
/**********************************************************************************************
函数名:kuozhan
形参:无
功能:将全部班费信息按不同的项目进行排序并且输出出来。
**********************************************************************************************/
{
    stufee t;
    int i,j,k,z;
        FILE *fp;
            if((fp=fopen("班费.txt","r"))==NULL)                    //打开"班费.txt"文件
    {
        // 如果打开文件错误,则不进行文件打开,直接退出程序
        printf("文件打开错误!\n");
        getchar();
        exit(0);
    }
    for(j=0;!feof(fp);j++)
    {    
        fscanf(fp,"%s %s %s %s %d %d %d %s %s",&fee[j].num,&fee[j].or,&fee[j].name,&fee[j].reson,&fee[j].spent,&fee[j].people,&fee[j].balance,&fee[j].beizhu,&fee[j].time);
    }
    printf("\n按“金额(每位同学)”从大到小排序  请按1\n按“时间(手动输入)”从大到小排序  请按2\n");
    scanf("%d",&z);
    if(z==1)                                                       //利用选择结构实现不同数据的修改
    {
        for(i=0;i<j;i++)                                            //利用选择排序法排序
        {
            for(k=i+1;k<j;k++)
            if(fee[i].spent<fee[k].spent)
            {
                t=fee[i];
                fee[i]=fee[k];
                fee[k]=t;
            }
        }
        printf("班费编码   收入还是支出    经办人           原因           金额(每位同学)    人数    余额(自动生成)     备注        时间(手动输入)\n");
        for(i=0;i<j;i++)
        {
            printf("%5s %13s %12s %15s %17d %15d %13d %14s %18s\n",fee[i].num,fee[i].or,fee[i].name,fee[i].reson,fee[i].spent,fee[i].people,fee[i].balance,fee[i].beizhu,fee[i].time);
        }
    }
    else if(z==2)
    {
        for(i=0;i<j;i++)                                            //利用选择排序法排序
        {
            for(k=i+1;k<j;k++)
            if(strcmp(fee[i].time,fee[k].time)<0)
            {
                t=fee[i];
                fee[i]=fee[k];
                fee[k]=t;
            }
        }
        printf("班费编码   收入还是支出    经办人           原因           金额(每位同学)    人数    余额(自动生成)     备注        时间(手动输入)\n");
        for(i=0;i<j;i++)
        {
            printf("%5s %13s %12s %15s %17d %15d %13d %14s %18s\n",fee[i].num,fee[i].or,fee[i].name,fee[i].reson,fee[i].spent,fee[i].people,fee[i].balance,fee[i].beizhu,fee[i].time);
        }
    }
}
//主界面
int main()
{
    int z;
    char x;
    int a;
    system("color F0");                                              // 发出一个DOS命令,改变背景和字体颜色
    system("mode con cols=135 lines=30");                             //发出一个DOS命令,改变窗口长宽
    while(1)                                                        //利用while循环实现函数的无限循环
    {
        system("cls");
    printf("***************************************************************************************************************************************");
    printf("                                                     * “录入班费信息”    请按1  *\n");
    printf("                                                     * “浏览所有班费信息”请按2  *\n");
    printf("                                                     * “查询班费信息”    请按3  *\n");
    printf("                                                     * “修改班费信息”    请按4  *\n");
    printf("                                                     * “删除班费信息”    请按5  *\n");
    printf("                                                     * “扩展功能”        请按6  *\n");
    printf("***************************************************************************************************************************************");
    printf("请输入数字选择功能:");
 
        scanf("%d",&z);    
        if(z==1)                                                    //利用选择结构实现功能分类使用
            luru();
         else if(z==2)
            liulan();
        else if(z==3)
            chaxun();
        else if(z==4)
            xiugai();
        else if(z==5)
            shanchu();
        else if(z==6)
            kuozhan();
        a=1;
        while(a)                                                                      //利用while循环实现无限循环
        {
            printf("按Y继续,按N退出:");
            scanf("%s",&x);
            if(x=='Y'||x=='y')
            {    
                a=0;
            }
            if(x=='N'||x=='n')
            {    
                exit(0);                                                        //利用exit退出循环
            }
            if(x!='Y'&&x!='y'&&x!='N'&&x!='n')                                 //用户输入错误时可以重新输入
            {
                printf("\n输入错误!\n\n请重新输入:");
                a=1;
            }
        }
    }
return 0;
}