网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
05月24日漏签0天
c语言吧 关注:798,929贴子:4,355,722
  • 看贴

  • 图片

  • 吧主推荐

  • 视频

  • 游戏

  • 0回复贴,共1页
<<返回c语言吧
>0< 加载中...

求大神相助,追加不了信息,前面的信息一直被覆盖。帮忙看哈程序

  • 只看楼主
  • 收藏

  • 回复
  • 青春太烂
  • 毛蛋
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define N 1 //宏定义 (全局变量)
#define null 0
struct st
{
char name[50]; /***姓名****/
int xh;/***学号****/
char sex[50];/***性别****/
int nl;/***年龄****/
char syd[50];/***生源地****/
int txl;/***通讯地址****/
};
void main()
{
system("color 06");
st a[N];
int i;
void add(st a[],int n);
void xs(st a[],int n);
void xg(st a[],int n);
void sc(st a[],int n);
void save(st stud[],int n);
void lr(st a[],int n);
void cx(st a[],int n);
do
{
printf("****************** 学生信息管理系统 ********************\n");
printf(" <1.> 录入学生信息\n");
printf(" <2.> 保存学生信息 \n");
printf(" <3.> 查询学生信息 \n");
printf(" <4.> 修改学生信息 \n");
printf(" <5.> 删除学生信息 \n");
printf(" <6.> 增加学生信息 \n");
printf(" <7.> 显示已有通讯录 \n");
printf(" <0.> 退出系统 \n");
printf("输入选择项< 1 - 7 > \n");
printf("\n");
scanf("%d",&i);
if(i==0)
{
system("color 07");
printf("欢饮使用本系统! \n)");
break;
}
else
{
switch(i)
{
case 1:lr(a,N); // 录入1
break;
case 2:save(a,N);//保存
break;
case 3:cx(a,N);
break;
case 4:xg(a,N);//修改记录
break;
case 5:sc(a,N);//删除
break;
case 6:add(a,N);//增加信息
break;
case 7:xs(a,N);//打开已有通讯录
break;
}
}
}while(1);
}
void lr(st a[],int n)//输入学生信息
{
int i;
int y;
printf("你想继续么?\t(1.继续,-1.退出)\n");
scanf("%d",&y);
while(y!=-1)
{
printf("请录入%d个学生信息\n",n);
fflush(stdin);
for(i=0;i<n;i++)
{
printf("姓名:");
scanf("%s",a[i].name);
printf("学号: ");
scanf("%d",&a[i].xh);
printf("性别: ");
scanf("%s",a[i].sex);
printf("年龄: ");
scanf("%d",&a[i].nl);
printf("生源地: ");
scanf("%s",a[i].syd);
printf("通讯录(电话): ");
scanf("%d",&a[i].txl);
printf("\n");
//save(a,N);
}
printf("你想继续么?\t(1.继续,-1.退出)\n");
scanf("%d",&y);
}
}
//保存
void save(st a[],int n)
{
FILE *fp;
int i;
system("color 04");
if((fp=fopen("d:\\student.txt","w"))==NULL)
{
printf(" 保存失败 !\n");
exit(0);
}
else
{
fflush(fp);
for (i=0;i<n;i++)
{
fprintf(fp,"%s %d %s %d %s %d\n",a[i].name,a[i].xh, a[i].sex, a[i].nl, a[i].syd, a[i].txl);
//fread(&a[i],sizeof(struct st),1,fp);//这个函数至对于以二进制文件操作,不限于文本文件
}
}
fclose(fp);
}
//显示
void xs(st a[],int n)
{
FILE *fp;
int i;
//st a[N];
system("color 02");
if((fp=fopen("d:\\student.txt","at+"))==NULL)
{
printf("读取失败 !");
exit(0);
}
else
{
printf("姓名\t学号\t性别\t年龄\t生源地\t通讯录\n");
for (i=0;i<N;i++)
{
fscanf(fp,"%s",a[i].name);/*从磁盘里写入到内存中*/
fscanf(fp,"%d",&a[i].xh);
fscanf(fp,"%s",a[i].sex);
fscanf(fp,"%d",&a[i].nl);
fscanf(fp,"%s",a[i].syd);
fscanf(fp,"%d",&a[i].txl);
//fwrire(&a[i],sizeof(struct st),1,fp);
}
for(i=0;i<N;i++)
printf("%s %d %s %d %s %d\n",a[i].name,a[i].xh, a[i].sex, a[i].nl, a[i].syd, a[i].txl);
/*从内存输入到显示器中*/
}
fclose(fp);
}
//按姓名查找
void cx(st a[],int n)
{
int i,f=-1;
//st a[N];
char name[10];
system("color 09");
int j;
printf("你想继续么?\t(1.继续,-1.退出)\n");
scanf("%d",&j);
while(j!=-1)
{
printf("输入你要查找的名字:\n");
//gets(name);
scanf("%s",name);
FILE *fp;
if((fp=fopen("d:\\student.txt","r"))==NULL)
{
printf("读取失败 !");
exit(0);
}
else
for(i=0;i<n;i++)
{
fscanf(fp,"%s",a[i].name);/*从磁盘里写入到内存中*/
fscanf(fp,"%d",&a[i].xh);
fscanf(fp,"%s",a[i].sex);
fscanf(fp,"%d",&a[i].nl);
fscanf(fp,"%s",a[i].syd);
fscanf(fp,"%d",&a[i].txl);
if(strcmp(a[i].name ,name)==0)
{
f=0;
printf("已查到,数据为!\n");
printf("\n");
printf("姓名\t学号\t性别\t年龄\t生源地\t通讯录\n");
printf("%s %d %s %d %s %d\n",a[i].name,a[i].xh, a[i].sex, a[i].nl, a[i].syd, a[i].txl);
}
}
if(f==-1)
{
printf("查无此人\n");
}
fclose(fp);
printf("你想继续么?\t(1.继续,-1.退出)\n");
scanf("%d",&j);
}
}
// 修改数据
void xg(st a[],int n)
{
int k,i,f=-1;
//st a[N];
char name[10];
int y;
system("color 03");
printf("你想继续么?\t(1.继续,-1.退出)\n");
scanf("%y",&y);
while(y!=-1)
{
printf("你要修改学生的名字:\n");
//gets(name);
scanf("%s",name);
FILE *fp;
if((fp=fopen("d:\\student.txt","rt+"))==NULL)
{
printf("读取失败 !");
exit(0);
}
else
for(i=0;i<n;i++)
{
fscanf(fp,"%s",a[i].name);/*从磁盘里写入到内存中*/
fscanf(fp,"%d",&a[i].xh);
fscanf(fp,"%s",a[i].sex);
fscanf(fp,"%d",&a[i].nl);
fscanf(fp,"%s",a[i].syd);
fscanf(fp,"%d",&a[i].txl);
if(strcmp(a[i].name ,name)==0)
{
k=i;
f=0;
printf("原数据为!\n");
printf("\n");
printf("姓名\t学号\t性别\t年龄\t生源地\t通讯录\n");
printf("%s %d %s %d %s %d\n",a[i].name,a[i].xh, a[i].sex, a[i].nl, a[i].syd, a[i].txl);
fflush(stdin);
printf("姓名:");
scanf("%s",a[i].name);
printf("学号: ");
scanf("%d",&a[i].xh);
printf("性别: ");
scanf("%s",a[i].sex);
printf("年龄: ");
scanf("%d",&a[i].nl);
printf("生源地: ");
scanf("%s",a[i].syd);
printf("通讯录(电话): ");
scanf("%d",&a[i].txl);
printf("\n");
save(a,N);
//信息修改后重新更新文件里面的数据 以保持数据一致性
for(i=k;i<N;i++)
{
fprintf(fp,"%s %d %s %d %s %d\n",a[i].name,a[i].xh, a[i].sex, a[i].nl, a[i].syd, a[i].txl);
}
save(a,N);
}
}
if(f==-1)
printf("查无此人\n");
fclose(fp);
printf("你想继续么?\t(1.继续,-1.退出)\n");
scanf("%d",&y);
}
}
void sc(st a[],int n)
{
int i,k,f=-1;
FILE *fp;
//st a[N];
char name[10];
system("color 08");
int y;
printf("你想继续么?\t(1.继续,-1.退出)\n");
scanf("%d",&y);
while(y!=-1)
{
printf("请输入你要删除者名字:\n");
//gets(name);
scanf("%s",name);
if((fp=fopen("d:\\student.txt","w"))==NULL)
{
printf("读取失败 !");
exit(0);
}
else
{
for(i=0;i<n;i++)
{
fscanf(fp,"%s",a[i].name);//从磁盘里写入到内存中
fscanf(fp,"%d",&a[i].xh);
fscanf(fp,"%s",a[i].sex);
fscanf(fp,"%d",&a[i].nl);
fscanf(fp,"%s",a[i].syd);
fscanf(fp,"%d",&a[i].txl);
}
for(i=0;i<n;i++)
if(strcmp(a[i].name ,name)==0)
{
k=i;
f=0;
fflush(stdin);
}
}
if(f==-1)
{
printf("查无此人\n");
}
else
{
//lr(a,N);
for(i=k;i<n;i++)
{
//a[i]=a[i+1];
strcpy(a[k].name,a[k+1].name);
strcpy(a[k].sex,a[k+1].sex);
strcpy(a[k].syd,a[k+1].syd);
a[k].nl=a[k+1].nl;
a[k].xh=a[k+1].xh;
a[k].txl=a[k+1].txl;
printf("%s %d %s %d %s %d\n",a[i].name,a[i].xh, a[i].sex, a[i].nl, a[i].syd, a[i].txl);
fprintf(fp,"%s %d %s %d %s %d\n",a[i].name,a[i].xh, a[i].sex, a[i].nl, a[i].syd, a[i].txl);
}
printf("删除成功!\n");
save(a,N-1);
}
printf("你想继续么?\t(1.继续,-1.退出)\n");
scanf("%d",&y);
fclose(fp);
}
}
void add(st a[],int n) //添增模块函数
{
//st a[N];
FILE *fp; //定义文件指针变量
int y;
system("color 02");
{
if((fp=fopen("d:\\student.txt","a+"))==NULL) //以追加形式打开文件
{
printf("建立失败!\n");
exit(0);
}
else
{
fflush(stdin);
lr(a,N);
save(a,N);
}
fclose(fp);
}
}


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 0回复贴,共1页
<<返回c语言吧
分享到:
©2025 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示