> 文档中心 > 开放实验-扶贫政策法规信息管理系统设计

开放实验-扶贫政策法规信息管理系统设计

/******************预处理模块和结构体******************/
#include
#include
#include
#include
#define LEN sizeof(struct policy)
#define FORMAT "%-10d%-25s%-28s%-25s%-15s\n"
#define  DATA p[i].num,p[i].name, p[i].keyword,p[i].department,p[i].date
/******************定义扶贫政策法规的结构体******************/
struct policy        

    int num;                 /*文件编号*/
    char name[80];            /*法规标题名称*/
    char keyword[200];        /*摘要*/
    char department[20];    /*发布部门*/
    char date[20];            /*发布日期*/
    
};
struct policy p[50];    /*定义全局结构体数组*/

/******************函数声明与简介******************/
void input();    /*录入信息*/
void show();    /*显示所有信息*/
void menu();    /*程序主菜单*/

/******************主函数******************/
int main()

    int n;
    menu();
    scanf("%d",&n);            /*输入选择功能的编号*/
    while(n)
    { 
        switch(n)
        { 
        case 0: exit(0);            /*退出功能函数exit(0)所在的头文件为stdlib.h*/
        case 1: input();break;        /*录入记录功能函数调用*/
        case 2: show();break;        /*所有记录显示功能函数调用*/
        default:printf("输入有误,请重新输入:");break;
        }
    getch();    暂停程序,等待键盘输入一个字符,但是不会回显在屏幕上,所在的头文件为
    menu();                            /*菜单界面循环显示*/
    scanf("%d",&n);
    }
    return 0;
}
/******************自定义函数实现菜单功能******************/
void menu()
{
    system("cls");   //完成清屏操作,所在的头文件为stdlib.h
    printf("\t\t|-------------扶贫政策法规信息管理系统----------|\n");
    printf("\t\t|\t 0. 退出系统\t\t\t|\n");
    printf("\t\t|\t 1. 输入记录\t\t\t|\n");
    printf("\t\t|\t 2. 显示记录\t\t\t|\n");
    printf("\t\t|---------------------------------------|\n");
    printf("\t\t请输入您的操作(0-2):");
}
/******************录入信息******************/
void input()

    int i,m=0;    /*变量m表示记录的条数*/
    char ch[2];  
    FILE *fp;    /*定义文件指针*/
    if((fp=fopen("PolicyData.txt","a+"))==NULL)    /*打开指定文件*/
    { 
        printf("打开文件失败\n");
        return;
    }
    while(!feof(fp))
    {
        if(fread(&p[m] ,LEN,1,fp)==1)
            m++;    /*统计当前记录条数*/
    }
    fclose(fp);
    if(m==0)
        printf("没有数据!\n");
    else
    {
        system("cls");
        show();    /*调用show函数,显示原有信息*/
    }
    
    if((fp=fopen("PolicyData.txt","wb"))==NULL)
    {
        printf("打开文件失败\n");
        return;
    }
    for(i=0;i<m;i++)
    {
        fwrite(&p[i] ,LEN,1,fp);    /*向指定的磁盘文件写入信息*/
    }

    printf("是否输入数据?请确认(y/n):");
    scanf("%s",ch);
    while(strcmp(ch,"Y")==0||strcmp(ch,"y")==0)    /*判断是否要录入新信息*/
    {
        printf("法规编号:");
        scanf("%d",&p[m].num);    /*输入法规编号*/
        for(i=0;i<m;i++)
            if(p[i].num==p[m].num)
            {
                printf("此法规编号已存在!");
                getch();   //暂停程序,等待键盘输入一个字符,但是不会回显在屏幕上
                fclose(fp);
                return;
            }
        /*如果法规编号可用,则继续输入其它数据*/
        printf("法规标题名称:");
        scanf("%s",p[m].name);        /*输入法规标题名称*/
        printf("摘要:");
        scanf("%s",p[m].keyword);    /*输入摘要*/
        printf("部门:");
        scanf("%s",p[m].department);        /*输入部门*/
        printf("发布日期:");
        scanf("%s",p[m].date);    /*输入发布日期*/
            if(fwrite(&p[m],LEN,1,fp)!=1)    /*将新录入的信息写入指定的磁盘文件*/
        {
            printf("保存失败!");
            getch();
        }
        else
        {
            printf("%s 已保存!\n",p[m].name);
            m++;
        }
        printf("是否继续?(y/n):");    /*询问是否继续*/
        scanf("%s",ch);
    }
    fclose(fp);
    printf("操作成功!\n");
}

/******************显示信息******************/
void show()

    FILE *fp;
    int i,m=0;
    fp=fopen("PolicyData.txt","rb");
    while(!feof(fp))
    {
        if(fread(&p[m] ,LEN,1,fp)==1) 
            m++;
    }  
    fclose(fp);
    printf("文件编号  法规标题名称             摘要                         发布部门                发布日期\t\n");
    for(i=0;i<m;i++)
    { 
        printf(FORMAT,DATA);        /*将信息按指定格式打印*/
    }
}
 

/******************预处理模块和结构体******************/
#include
#include
#include
#include
#define LEN sizeof(struct policy)
#define FORMAT "%-10d%-25s%-28s%-25s%-15s\n"
#define  DATA p[i].num,p[i].name, p[i].keyword,p[i].department,p[i].date
/******************定义扶贫政策法规的结构体******************/
struct policy        

    int num;                 /*文件编号*/
    char name[80];            /*法规标题名称*/
    char keyword[200];        /*摘要*/
    char department[20];    /*发布部门*/
    char date[20];            /*发布日期*/
    
};
struct policy p[50];    /*定义全局结构体数组*/

/******************函数声明与简介******************/
void show();    /*显示所有信息*/
void menu();    /*程序主菜单*/
void search();    /*查找信息*/

/******************主函数******************/
int main()

    int n;
    menu();
    scanf("%d",&n);            /*输入选择功能的编号*/
    while(n)
    { 
        switch(n)
        { 
        case 0: exit(0);            /*退出功能函数exit(0)所在的头文件为stdlib.h*/
        case 1: search();break;        /*查找记录功能函数调用*/
        case 2: show();break;        /*所有记录显示功能函数调用*/
        default:printf("输入有误,请重新输入:");break;
        }
    getch();    暂停程序,等待键盘输入一个字符,但是不会回显在屏幕上,所在的头文件为
    menu();                            /*菜单界面循环显示*/
    scanf("%d",&n);
    }
    return 0;
}
/******************自定义函数实现菜单功能******************/
void menu()
{
    system("cls");   //完成清屏操作,所在的头文件为stdlib.h
    printf("\t\t|-------------扶贫政策法规信息管理系统----------|\n");
    printf("\t\t|\t 0. 退出系统\t\t\t|\n");
    printf("\t\t|\t 1. 查找记录\t\t\t|\n");
    printf("\t\t|\t 2. 显示所有记录\t\t\t|\n");
    printf("\t\t|---------------------------------------|\n");
    printf("\t\t请输入您的操作(0-2):");
}
/******************自定义查找函数******************/
void search()

    FILE *fp;
    int snum,i,m=0;
    char ch[2];
    if((fp=fopen("PolicyData.txt","rb"))==NULL)
    { 
        printf("打开文件失败\n");
        return;
    }
    while(!feof(fp))  
        if(fread(&p[m],LEN,1,fp)==1) 
            m++;
    fclose(fp);
    if(m==0) 
    {
        printf("文件无记录!\n");
        return;
    }
    printf("请输入需要查找的文件编号:");
    scanf("%d",&snum);
    for(i=0;i<m;i++)
        if(snum==p[i].num)        /*查找输入的文件编号是否在记录中*/
        { 
            printf("数据已找到,确认显示?(y/n)");
            scanf("%s",ch);
            if(strcmp(ch,"Y")==0||strcmp(ch,"y")==0) 
            {
                printf("文件编号  法规标题名称             摘要                         发布部门                发布日期\t\n");
                printf(FORMAT,DATA);    /*将查找出的结果按指定格式输出*/
                break;
            }
        }   
    if(i==m) 
        printf("未找到要查询的信息!\n");            /*未找到要查找的信息*/
}
/******************显示所有信息******************/
void show()

    FILE *fp;
    int i,m=0;
    fp=fopen("PolicyData.txt","rb");
    while(!feof(fp))
    {
        if(fread(&p[m] ,LEN,1,fp)==1) 
            m++;
    }  
    fclose(fp);
    printf("文件编号  法规标题名称             摘要                         发布部门                发布日期\t\n");
    for(i=0;i<m;i++)
    { 
        printf(FORMAT,DATA);        /*将信息按指定格式打印*/
    }
}
 

/******************预处理模块和结构体******************/
#include
#include
#include
#include
#define LEN sizeof(struct policy)
#define FORMAT "%-10d%-25s%-28s%-25s%-15s\n"
#define  DATA p[i].num,p[i].name, p[i].keyword,p[i].department,p[i].date
/******************定义扶贫政策法规的结构体******************/
struct policy        

    int num;                 /*文件编号*/
    char name[80];            /*法规标题名称*/
    char keyword[200];        /*摘要*/
    char department[20];    /*发布部门*/
    char date[20];            /*发布日期*/
    
};
struct policy p[50];    /*定义全局结构体数组*/

/******************函数声明与简介******************/
void show();    /*显示所有信息*/
void  modify();    /*修改信息*/
void menu();    /*程序主菜单*/

/******************主函数******************/
int main()

    int n;
    menu();
    scanf("%d",&n);            /*输入选择功能的编号*/
    while(n)
    { 
        switch(n)
        { 
        case 0: exit(0);            /*退出功能函数exit(0)所在的头文件为stdlib.h*/
        case 1: modify();break;        /*录入记录功能函数调用*/
        case 2: show();break;        /*所有记录显示功能函数调用*/
        default:printf("输入有误,请重新输入:");break;
        }
    getch();    暂停程序,等待键盘输入一个字符,但是不会回显在屏幕上,所在的头文件为
    menu();                            /*菜单界面循环显示*/
    scanf("%d",&n);
    }
    return 0;
}
/******************自定义函数实现菜单功能******************/
void menu()
{
    system("cls");   //完成清屏操作,所在的头文件为stdlib.h
    printf("\t\t|-------------扶贫政策法规信息管理系统----------|\n");
    printf("\t\t|\t 0. 退出系统\t\t\t|\n");
    printf("\t\t|\t 1. 修改记录\t\t\t|\n");
    printf("\t\t|\t 2. 显示记录\t\t\t|\n");
    printf("\t\t|---------------------------------------|\n");
    printf("\t\t请输入您的操作(0-2):");
}
/******************自定义修改函数******************/
void modify()

    FILE *fp;
    int i,j,m=0,snum;
    if((fp=fopen("PolicyData.txt","r+"))==NULL)
    { 
        printf("打开文件失败\n");
        return;
    }
    while(!feof(fp))  
        if(fread(&p[m],LEN,1,fp)==1) 
            m++;
    if(m==0) 
    {
        printf("文件无记录!\n");
        fclose(fp);
        return;
    }
    show();
    printf("请输入你要修改的法规的文件编号\n");
    printf("文件编号是:");
    scanf("%d",&snum);
    for(i=0;i<m;i++)
    {
        if(snum==p[i].num)/*检索记录中是否有要修改的信息*/
        {
            printf("数据已找到,请修改!\n");            
            printf("法规标题名称:");
        scanf("%s",p[i].name);        /*输入法规标题名称*/
        printf("摘要:");
        scanf("%s",p[i].keyword);    /*输入摘要*/
        printf("部门:");
        scanf("%s",p[i].department);        /*输入部门*/
        printf("发布日期:");
        scanf("%s",p[i].date);    /*输入发布日期*/

            if((fp=fopen("PolicyData.txt","wb"))==NULL)
            { 
                printf("打开文件失败\n");
                return;
            }
            for(j=0;j<m;j++)/*将新修改的信息写入指定的磁盘文件中*/
                if(fwrite(&p[j] ,LEN,1,fp)!=1)
                { 
                    printf("保存失败!");
                    getch(); 
                }
            fclose(fp);
            return ;
        }     
    }
    printf("没有找到匹配信息!\n");
}
/******************显示信息******************/
void show()

    FILE *fp;
    int i,m=0;
    fp=fopen("PolicyData.txt","rb");
    while(!feof(fp))
    {
        if(fread(&p[m] ,LEN,1,fp)==1) 
            m++;
    }  
    fclose(fp);
    printf("文件编号  法规标题名称             摘要                         发布部门                发布日期\t\n");
    for(i=0;i<m;i++)
    { 
        printf(FORMAT,DATA);        /*将信息按指定格式打印*/
    }
}

/******************预处理模块和结构体******************/
#include
#include
#include
#include
#define LEN sizeof(struct policy)
#define FORMAT "%-10d%-25s%-28s%-25s%-15s\n"
#define  DATA p[i].num,p[i].name, p[i].keyword,p[i].department,p[i].date
/******************定义扶贫政策法规的结构体******************/
struct policy        

    int num;                 /*文件编号*/
    char name[80];            /*法规标题名称*/
    char keyword[200];        /*摘要*/
    char department[20];    /*发布部门*/
    char date[20];            /*发布日期*/
    
};
struct policy p[50];    /*定义全局结构体数组*/

/******************函数声明与简介******************/
void show();    /*显示全部信息*/
void del();    /*删除信息*/
void menu();    /*程序主菜单*/

/******************主函数******************/
int main()

    int n;
    menu();
    scanf("%d",&n);            /*输入选择功能的编号*/
    while(n)
    { 
        switch(n)
        { 
        case 0: exit(0);            /*退出功能函数exit(0)所在的头文件为stdlib.h*/
        case 1: del();break;        /*查找记录功能函数调用*/
        case 2: show();break;        /*所有记录显示功能函数调用*/
        default:printf("输入有误,请重新输入:");break;
        }
    getch();    暂停程序,等待键盘输入一个字符,但是不会回显在屏幕上,所在的头文件为
    menu();                            /*菜单界面循环显示*/
    scanf("%d",&n);
    }
    return 0;
}
/******************自定义函数实现菜单功能******************/
void menu()
{
    system("cls");   //完成清屏操作,所在的头文件为stdlib.h
    printf("\t\t|-------------扶贫政策法规信息管理系统----------|\n");
    printf("\t\t|\t 0. 退出系统\t\t\t|\n");
    printf("\t\t|\t 1. 删除记录\t\t\t|\n");
    printf("\t\t|\t 2. 显示所有记录\t\t\t|\n");
    printf("\t\t|---------------------------------------|\n");
    printf("\t\t请输入您的操作(0-2):");
}
/******************自定义删除函数******************/
void del()
{
    FILE *fp;
    int snum,i,j,m=0;
    char ch[2];
    if((fp=fopen("PolicyData.txt","r+"))==NULL)
    {
        printf("打开文件失败\n");return;
    }
    while( !feof(fp) )  
        if(fread(&p[m],LEN,1,fp)==1) 
            m++;
        fclose(fp);
        if(m==0) 
        {
            printf("文件无记录!\n");
            return;
        }
        show();                                    /*显示已有数据*/
        printf("请输入需要删除的文件编号:");
        scanf("%d",&snum);    
        for(i=0;i<m;i++)
        {
            if(snum==p[i].num)                /*查找到删除的文件编号*/
            {    
                printf("数据已找到,是否确认删除?(y/n)");
                scanf("%s",ch);
                if(strcmp(ch,"Y")==0||strcmp(ch,"y")==0)/*判断是否要进行删除*/
                {    
                    for(j=i;j<m;j++)
                        p[j]=p[j+1];        /*将记录依次移到前面的位置*/
                    m--;                            /*记录的总个数减1*/
                    if((fp=fopen("PolicyData.txt","wb"))==NULL)
                    { 
                        printf("打开文件失败\n");
                        return;
                    }
                    for(j=0;j<m;j++)/*将更改后的记录重新写入指定的磁盘文件中*/
                        if(fwrite(&p[j] ,LEN,1,fp)!=1)
                        { 
                            printf("对不起,保存失败!\n");
                            getch();                /*程序暂停*/
                        }
                        fclose(fp);
                        printf("删除成功!\n");
                        return;
                }
                else                /*用户输入的字符不是y或Y,表示取消删除*/
                {
                    printf("取消删除!\n");
                    return;
                }
            }
        } 
printf("没有找到要删除的信息!\n");
}
/******************显示所有信息******************/
void show()

    FILE *fp;
    int i,m=0;
    fp=fopen("PolicyData.txt","rb");
    while(!feof(fp))
    {
        if(fread(&p[m] ,LEN,1,fp)==1) 
            m++;
    }  
    fclose(fp);
    printf("文件编号  法规标题名称             摘要                         发布部门                发布日期\t\n");
    for(i=0;i<m;i++)
    { 
        printf(FORMAT,DATA);        /*将信息按指定格式打印*/
    }
}