| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 334 人关注过本帖
标题:求大神,帮我看看怎么改好。第一次s
只看楼主 加入收藏
顽固石子
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2014-10-23
结帖率:50%
收藏
 问题点数:0 回复次数:0 
求大神,帮我看看怎么改好。第一次s
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
//主要就是find ()函数有问题
int menu()//菜单
{
int m;
printf("**********************************************************************");
printf("\n**1.录入工会成员信息 ******** ******** ******** ******");
printf("\n**2.添加工会成员信息 * * * * ******");
printf("\n**3.浏览工会成员信息 * * * * ******");
printf("\n**4.查询公会成员信息 ******** ******** ******** ******");
printf("\n**5.删除公会成员信息 * * * ******");
printf("\n**6.修改工会成员信息 ******** ******** ******** ******");
printf("\n**7.退出系统 ******");
printf("\n**********************************************************************\n请选择:");
scanf("%d",&m);
return m;
}
struct birthday
{
int year;
int moth;
int day;
};
struct leaguer//定义结构体
{
char name[10];
int number;
char sex;
struct birthday date;
char marital;
int children;
}str,stu[1000];
void write()//定义函数,输入结构体
{
printf("\n姓名:");
getchar();
gets(str.name);
printf("\n编号:");
scanf("%d",&str.number);
printf("\n性别(W/M):");
getchar();
scanf("%c",&str.sex);
printf("\n出生年份:");
scanf("%d",&str.date.year);
printf("\n出生月份:");
scanf("%d",&str.date.moth);
printf("\n出生日期:");
scanf("%d",&str.date.day);
printf("\n婚姻状况(N/Y):");
getchar();
scanf("%c",&str.marital);
printf("\n孩子数量:");
scanf("%d",&str.children);
}
void put()//定义函数,输出结构体
{
printf("姓名:%s\n",str.name);
printf("编号:%d\n",str.number);
printf("性别:%c\n",str.sex);
printf("出生日期:%d,%d,%d\n",str.date);
printf("婚姻状况:%c\n",str.marital);
printf("孩子数量:%d\n\n",str.children);
}
void scanf_1()
{
FILE *fp1;
char ch1;
if((fp1=fopen("text.txt","wb+"))==NULL)
{
printf("文件打开失败!");
exit(0);
}
do
{

write();
if(fwrite(&str,sizeof(struct leaguer),1,fp1)!=1)
{
printf("文件打开失败!");
exit(0);
}
printf("是否要继续输入(y/n)?");
getchar();
scanf("%c",&ch1);
}while(ch1=='y'||ch1=='Y');
fclose(fp1);
}
void scanf_2()
{
FILE *fp1;
char ch1;
if((fp1=fopen("text.txt","ab"))==NULL)
{
printf("文件打开失败!");
exit(0);
}
do
{

write();
if(fwrite(&str,sizeof(struct leaguer),1,fp1)!=1)
{
printf("文件打开失败!");
exit(0);
}
printf("是否要继续输入(y/n)?");
getchar();
scanf("%c",&ch1);
}while(ch1=='y'||ch1=='Y');
fclose(fp1);
}
void printf_1()
{
FILE *fp1;
if((fp1=fopen("text.txt","rb+"))==NULL)
{
printf("文件打开失败!");
exit(0);
}
while(fread(&str,sizeof(struct leaguer),1,fp1)==1)
{
put();
}
fclose(fp1);
}
void find()//没错,就是这个家伙
{
int i,j;
FILE *fp1;
char name[10];
if((fp1=fopen("text.txt","rb"))==NULL)
{
printf("文件打开失败!");
exit(0);
}
printf("1.姓名;\n2.编号;\n请输入:");
scanf("%d",&i);
if(i==1)//姓名查找完全失败,没用
{
getchar();
printf("请输入姓名:");
getchar();
gets(name);
while(fread(&str,sizeof(struct leaguer),1,fp1)==1)
if(strcmp(str.name,name)==0)
{
put();
j++;
printf("%d",j);
}
if (j==0)
printf("对不起!没有找到相关信息:\n");
}
else if(i==2)//编号查找,会将查到到的部分开始后面全部输出。
{
getchar();
printf("请输入编号:");
scanf("%d",&j);
while(fread(&str,sizeof(struct leaguer),1,fp1)==1)
if(str.number==j)
{
put();
j++;
}
if (j==0)
printf("对不起!没有找到相关信息:\n");
}
fclose(fp1);
}
void del()
{
int j;
FILE *fp1,*fp2;
char name[10];
if((fp1=fopen("text.txt","rb"))==NULL)
{
printf("文件打开失败!");
exit(0);
}
if((fp2=fopen("txt.txt","wb"))==NULL)
{
printf("文件打开失败!");
exit(0);
}
printf("请输入要删除信息编号:");
scanf("%d",&j);
while(fread(&str,sizeof(struct leaguer),1,fp1)==1)
if(str.number==j)
{
put();
j++;
}
else if (str.number!=j)
fwrite(&str,sizeof(struct leaguer),1,fp2);
if (j==0)
{
printf("对不起!没有找到相关信息:\n");
getchar();
}
rewind(fp1);
rewind(fp2);
getchar();
getchar();
printf("删除成功!");
getchar();
fclose(fp1);
fclose(fp2);
remove("text.txt");
rename("txt.txt","text.txt");
}
void change()
{


int j;
FILE *fp1,*fp2;
char name[10];
if((fp1=fopen("text.txt","ab"))==NULL)
{
printf("文件打开失败!");
exit(0);
}
if((fp2=fopen("txt.text","rb"))==NULL)
{
printf("文件打开失败!");
exit(0);
}
printf("请输入要删除信息编号:");
scanf("%d",&j);
while(fread(&str,sizeof(struct leaguer),1,fp1)==1)
if(str.number==j)
{
write();
j++;
fwrite(&str,sizeof(struct leaguer),1,fp2);
}
else if (str.number!=j)
fwrite(&str,sizeof(struct leaguer),1,fp2);
if (j==0)
{
printf("对不起!没有找到相关信息:\n");
getchar();
}
rewind(fp1);
rewind(fp2);
getchar();
getchar();
printf("修改成功!");
getchar();
fclose(fp1);
fclose(fp2);
remove("text.txt");
rename("txt.txt","text.txt");
}
int main()
{
//定义文件类型指数
int i=0,k;
while ((k=menu())!=6)
{
if (k==1)
scanf_1();
else if(k==2)
scanf_2();
else if(k==3)
printf_1();
else if(k==4)
find();
else if(k==5)
del();
else if(k==6)
change();
else if(k==7)
exit(0);
}
return 0;
}
搜索更多相关主题的帖子: include 信息 
2015-05-22 23:31
快速回复:求大神,帮我看看怎么改好。第一次s
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018546 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved