文件操作

pressman 2005-05-18 06:07:44
现在有2个文件a.txt和b.txt
--a.txt中内容如下:
[PERSON]
jack=4000
david=2500
sun=3000
[PPP]
20050505xy=
20050508tt=
--完
--b.txt中内容如下:
[PERSON]
jack=4000
david=2500
[PPP]
20050505xy=
20050508tt=
20050510de=
--完
,要求用C语言程序找出a.txt和b.txt的区别,并记录到一个名为log.txt的文件中

那么log.txt中应该记录的是:
[PERSON]
sun=3000 CANT FIND IN b.txt
[PPP]
20050510de= CANT FIND IN a.txt

那位大哥帮帮忙,谢谢!
在线,分不够,再加
...全文
123 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
pressman 2005-05-18
  • 打赏
  • 举报
回复
TO lanshigang1984() ( ) 信誉:100 :
我的问题还没解决呀,你捣什么乱呀?
zjlang 2005-05-18
  • 打赏
  • 举报
回复
楼上的搞乱............
不想给分就说嘛.......
lanshigang1984 2005-05-18
  • 打赏
  • 举报
回复
社区怎么不能提问啊?
我们正在做C语言课程设计,我忙一个星期了,代码是写出来了
但是老是不能编译成功,我很急啊,明天就要交上去了啊,
请高手帮我看看,小弟在此谢过了!
题目是这样子的:
做一个学生成绩管理系统,要求如下:
1.主要功能:
(1) 能按学期、按班级完成对学生成绩的录入、修改 (1-3用函数实现)
(2) 能按班级统计学生的成绩 的总分及均分,并能根据学生的平均成绩进行排序 (TOTAL、AVERAGE、)
(3) 能查询学生成绩,不及格科目及学生名单(有相应的提示:请输入学号)。。。。。。)(4) 能按班级输出学生的成绩单
2.要求: 界面友好,易于操作

以下是我编的程序:
#include<stdio.h>
#include<malloc.h>
#include<string.h>
#include<conio.h>

#define MAXSIZE 100
#define ADDSIZE 50
#define PT elem+l->length
#define N 4
typedef struct term{/*班级和学期的结构体*/
char class1[10];
char term1[10];
}term;
typedef struct student{/*学生成绩信息的结构体*/
term st;/*班级和学期结构体放于此结构体中*/
char num[10];
char name[12];
float course[4];
int total;
int average;
int bit;
}lnode,*stu;

typedef struct{
lnode *elem;/*指向上个结构体的指针*/
int size;/*最大能放lnode结构体成员的个数*/
int length;/*当前长度*/
}sqack,*sq;
sqack *l;
void init(void)/*动态分配存储空间*/
{l->elem=(stu)malloc(MAXSIZE*sizeof(lnode));
l->length =0;
l->size=MAXSIZE;
}


int input(void)/*输入学生的信息*/
{lnode *newbase,*p;
char cla[10],ter[10],ch;
int n,i;
if(l->length>=l->size){
newbase=(stu)realloc(l->elem,(l->size +ADDSIZE)*sizeof(lnode));/*追加存储空间*/
l->elem =newbase;
l->size +=ADDSIZE;
}
p=l->elem;
do
{printf("输入班级和学期(学期用这种格式,如2005年上学期 2005 1,2005年下学期 2005 2;先输入班级,回车后再输入学期)\n");
gets(cla);
gets(ter);
printf("要输入多少个名单?");
scanf("%d",&n);
printf("输入学生的成绩\n学号\t姓名\t科目1\t科目2\t科目3\t科目4\n");
for(i=0;i<n;i++)
{scanf("%s%s%d%d%d%d",p->num ,p->name,p->course[0],p->course[1],p->course[2],p->course[3]);
strcpy(p->st.class1,cla);
strcpy(p->st.term1,ter);
++l->length ;}
printf("要继续吗?(y/n)");
ch=getchar();}while(ch=='Y'||ch=='y');
}
int change()/*修改学生的信息*/
{lnode *p;
lnode e;
int flag=1,i;
char s1[10],num1[10];
printf("输入学期和学号(输入学期以后按回车再输入学号):\n");
gets(s1);
gets(num1);
p=l->elem ;
while(p<=(l->elem+l->length ) && flag==1)/*查找要修改的学生的信息*/
{if(strcmp(p->num,num1)==0&&strcmp(p->st.term1,s1)==0);
flag=0;/*找到了*/
p++;}
p--;
if(flag==1) printf("找不到此学号!\n");

printf("%s %s",p->num,p->name);
for(i=0;i<N;i++)
printf("%d ",p->course[i]);
printf("\n");
printf("输入修改信息\n");
scanf("%s%s%s%s",e.st.class1,e.st.term1,&e.num,e.name);
for(i=0;i<N;i++)
scanf("%d",&e.course[i]);
*p=e;
}
void stat()/*统计学生的成绩*/
{lnode tt[50];
char ter[10],clas[10];
int i,k;
printf("请输入学期和班级(输入学期后按回车再输入班级):\n");
for(i=0;ter[i]!='\n';i++)
ter[i]=getchar();
for(i=0;clas[i]!='\n';i++)
clas[i]=getchar();
same(ter,clas,tt,&k);/*把学期和班级相同的学生信息放在结构体数组tt中*/
sort(tt,&k);/*按学生成绩从高到低排序函数*/
print(tt,&k);/*输出学生的成绩*/
}

void same(char *t1,char *t2,lnode *t,int *k) /*把学期和班级相同的学生信息放在结构体数组tt中*/
{int i=0;
lnode *p,*q;
q=t;
p=l->elem ;
while(p<=l->elem+l->length )
{if(strcmp(p->st.term1,t1)==0&&strcmp(p->st.class1 ,t2)==0)
{*q=*p;q++;
i++;}
p++;}
*k=i;
}
int sort(lnode *p,int *k)/*按学生成绩从高到低排序函数*/
{int i;
lnode *q,temp;
for(q=p;q<p+ *k;q++)
{q->total =0;
for(i=0;i<N;i++)
q->total =q->total +q->course [i];
q->average =q->total /N;
}
for(i=0;i<*k-1;i++)
for(q=p;q<p+*k-1-i;q++)
if(q->total<(q+1)->total){temp=*q;*q=*(q+1);*(q+1)=temp;}
}
void print(londe *q,int *k)/*输出学生的成绩*/
{int n;
lnode *p;
p=q;
for(p=q;p<q+*k;p++)
{printf("%s %s",p->num,p->name);
for(i=0;i<N;i++)
printf("%d ",p->course[i]);
printf("%d %f",p->total,p->average);
printf("\n");}
}
void search()/*查找学生的成绩*/
{char ch;
do
{printf("1 按学号查询\n2按姓名查询\n");
ch=getchar();
switch(ch)
{case '1': 1search();break;
case '2': 2search();break;
default:printf("错误!\n");
}printf("要继续查找吗?(y/n)");
ch=getchar() } while(ch=='y'&&ch=='Y');
}
void 1search()/*按学号查*/
{lnode *p;
char ter1[10];
int i,flag=1;
p=l->elem;
printf("输入学号:");
gets(ter1);
for(p=l->elem;p<l->PT;p++)
{if(strcmp(p->num,ter1)==0)
{flag=0;
printf("%s %s ",p->st.term1,p->st.class1);
printf("%s %s ",p->num,p->name);
for(i=0;i<N;i++)
printf("%d ",p->course[i]);
printf("%d %3.1f",p->total,p->average);
printf("\n");}}
if(flag) printf("没有找到!");
}
void 2search()/*按姓名查*/
{lnode *p;
char ter1[10];
int i,flag=1;
p=l->elem;

printf("输入姓名:");
gets(ter1);
for(p=l->elem;p<l->PT;p++)
{if(strcmp(p->name,ter1)==0)
{flag=0;
printf("%s %s ",p->st.term1,p->st.class1);
printf("%s %s",p->num,p->name);
for(i=0;i<N;i++)
printf("%d ",p->course[i]);
printf("%d %f",p->total,p->average);
printf("\n");}
}
if(flag) printf("没有找到!") ;
}
void fail()/*查找不及格及学生名单*/
{int i;
lnode *p;
for(p=l->elem;p<l-> PT;p++)
{ for(i=0;i<N;i++)
if(p->course[i]<60)
{printf("%s %s ",p->st.class1,p->st.term1);
for(i=0;i<N;i++)
printf("%d ",p->course[i]);
printf("%d %f ",p->total,p->average);
printf("\n");}}
}
void output()/*按班级输出学生的成绩单*/
{lnode tt[50];
int k;
char clas[10],ter1[10];
printf("输入要查询的班级和学期(输入班级后按回车输入学期):\n");
gets(clas);
gets(ter1);
same(ter1,clas,tt,&k);/*/*把学期和班级相同的学生信息放在结构体数组tt中*/*/
print(tt,&k);/*输出学生的成绩*/
}


int main()
{char ch;
do
{printf("请选择:\n");
printf("1 对学生成绩的录入\n2 对学生成绩的修改\n3 统计学生成绩\n4 查询学生成绩\n5查找不及格科目及学生名单\n6 按班级输出学生成绩单\n ");
ch=getchar();
switch(ch)
{case '1': input();break;
case '2':change();break;
case '3':stat();break;
case '4':search();break;
case '5':fail();break;
case '6':output();break;
default:printf("错误!\n");
}
printf("要继续吗?(y/n)");
ch=getchar();
}while(ch='y'||ch='Y');
return;
getch();
}
pressman 2005-05-18
  • 打赏
  • 举报
回复
就比较a.txt中的行,在b.txt中是否有,没有就记录一下,
然后同样的道理,比较b.txt中的行,在a.txt中是否有,没有就记录一下.
pressman 2005-05-18
  • 打赏
  • 举报
回复
http://community.csdn.net/Expert/topic/4017/4017360.xml?temp=.6583826也是这个帖,一起结!

64,654

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧