开放实验-扶贫政策法规信息管理系统设计
/******************预处理模块和结构体******************/
#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); /*将信息按指定格式打印*/
}
}