永发信息网

设计课题八:简单的同学通讯录程序设计?

答案:3  悬赏:20  手机版
解决时间 2021-11-21 09:05
  • 提问者网友:嘚啵嘚啵
  • 2021-11-20 08:17
设计课题八:简单的同学通讯录程序设计?
最佳答案
  • 五星知识达人网友:酒醒三更
  • 2021-11-20 09:16
#include
#include
#include
int count=1;
struct node
{
char num[20];
char name[20];
char sex[20];
char work[50];
char phone[20];
char email[20];
};
node *stu;
int cmp(char *a,char *b)
{
int a1=strlen(a),b1=strlen(b),i;
if(a1>b1)
{
return 0;
}
else if(a1 {
return 1;
}
else
{
for(i=0;i {
if(a[i]>b[i])
{
return 0;
}
else if(a[i] {
return 1;
}
}
}

}
int start()
{
int n;
printf(" *********************WELCOME********************\n");
printf(" ******* (1).添加数据 *******\n");
printf(" ******* (2).删除数据 *******\n");
printf(" ******* (3).修改数据 *******\n");
printf(" ******* (4).统计(男,女人数,总人数) *******\n");
printf(" ******* (5).查询数据 *******\n");
printf(" ******* (6).打开文件 *******\n");
printf(" ******* (7).文件排序 *******\n");
printf(" ******* (8).退出程序 *******\n");
printf(" ************************************************\n");
printf("请输入您的选择:\n");
scanf("%d",&n);
return n;
}
int main()
{
int count1=0,count2=0;
int n,i,j,flag,o;
int k;
FILE *fp;
node r;
char file[20];
char nnum[20];
char nname[20];
char nsex[20];
char nwork[50];
char nphone[20];
char nemail[20];
while(1)
{
n = start();
switch(n)
{
case 1:
printf("(1).添加数据\n");
printf("请输入添加的人的学号,姓名,性别,工作单位,电话号码,E-mail地址:\n");
scanf("%s%s%s%s%s%s",nnum,nname,nsex,nwork,nphone,nemail);
printf("请输入存储的的文件名:\n");
scanf("%s",file);
printf("文件是否存在?(1,表存在 0,表不存在)\n");
scanf("%d",&k);
fp=fopen(file,"a+");
if(fp==NULL)
{
printf("文件创建失败,请重新操作!\n");
break;
}
else
{
if(k==0)
{
if(count==1)
fprintf(fp,"%15s %10s %10s %15s %15s %20s\n","学号","姓名","性别","工作单位","电话号码","E-mail地址");
count++;
}
fprintf(fp,"%15s %10s %10s %15s %15s %20s\n",nnum,nname,nsex,nwork,nphone,nemail);
}
fclose(fp);
system("cls");
break;
case 2:
printf("(2).删除数据\n");
printf("请输入文件名:\n");
scanf("%s",file);
printf("请输入删除人物的名字:\n");
scanf("%s",nname);
fp=fopen(file,"a+");
if(fp==NULL)
{
printf("文件读取失败,请重新操作!\n");
break;
}
else
{
stu=NULL;
for(i=0;!feof(fp);i++) //读取文件
{
if(i==0)
stu=(node *)malloc(sizeof(node));
else
stu=(node *)realloc(stu,sizeof(node)*(i+1));
fscanf(fp,"%s %s %s %s %s %s",stu[i].num,stu[i].name,stu[i].sex,stu[i].work,stu[i].phone,stu[i].email);
}
fclose(fp);
flag=0;
fp=fopen(file,"w+");
for(j=0;j {
if(strcmp(stu[j].name,nname)!=0)
{
fprintf(fp,"%15s %10s %10s %15s %15s %20s\n",stu[j].num,stu[j].name,stu[j].sex,stu[j].work,stu[j].phone,stu[j].email);
}
else
{
flag=1;
}
}
fclose(fp);
system("cls");
if(flag==0)
{
printf("文件名:%s\n",file);
printf("无此人!请重新操作!\n");break;
}
}
break;
case 3:
printf("(3).修改数据\n");
printf("请输入文件名:\n");
scanf("%s",file);
printf("请输入修改人物的信息:\n");
scanf("%s%s%s%s%s%s",nnum,nname,nsex,nwork,nphone,nemail);
fp=fopen(file,"a+");
stu=NULL;
for(i=0;!feof(fp);i++) //读取文件
{
if(i==0)
stu=(node *)malloc(sizeof(node));
else
stu=(node *)realloc(stu,sizeof(node)*(i+1));
fscanf(fp,"%s %s %s %s %s %s",stu[i].num,stu[i].name,stu[i].sex,stu[i].work,stu[i].phone,stu[i].email);
}
fclose(fp);
flag=0;
fp=fopen(file,"w+");
for(j=0;j {
if(strcmp(stu[j].name,nname)!=0)
{
fprintf(fp,"%15s %10s %10s %15s %15s %20s\n",stu[j].num,stu[j].name,stu[j].sex,stu[j].work,stu[j].phone,stu[j].email);
}
else
{
fprintf(fp,"%15s %10s %10s %15s %15s %20s\n",nnum,nname,nsex,nwork,nphone,nemail);
flag=1;
}
}
fclose(fp);
system("cls");
if(flag==0)
{
printf("文件名:%s\n",file);
printf("无此人!请重新操作!\n");break;
}

break;
case 4:
printf("(4).统计(男,女人数,总人数)\n");
printf("请输入文件名:\n");
scanf("%s",file);
fp=fopen(file,"a+");
stu=NULL;
for(i=0;!feof(fp);i++) //读取文件
{
if(i==0)
stu=(node *)malloc(sizeof(node));
else
stu=(node *)realloc(stu,sizeof(node)*(i+1));
fscanf(fp,"%s %s %s %s %s %s",stu[i].num,stu[i].name,stu[i].sex,stu[i].work,stu[i].phone,stu[i].email);
}
fclose(fp);
system("cls");
count1=0,count2=0;
for(j=0;j {
if(strcmp(stu[j].sex,"男")==0)
{
count1++;
}
else if(strcmp(stu[j].sex,"女")==0)
{
count2++;
}
}
printf("文件名:%s\n",file);
printf("男生数:%d\n",count1);
printf("女生数:%d\n",count2);
printf("总人数:%d\n",count1+count2);
break;
case 5:
printf("(5).查询数据\n");
printf("请输入文件名:\n");
scanf("%s",file);
printf("请输入查询人的名字:\n");
scanf("%s",nname);
fp=fopen(file,"a+");
stu=NULL;
for(i=0;!feof(fp);i++) //读取文件
{
if(i==0)
stu=(node *)malloc(sizeof(node));
else
stu=(node *)realloc(stu,sizeof(node)*(i+1));
fscanf(fp,"%s %s %s %s %s %s",stu[i].num,stu[i].name,stu[i].sex,stu[i].work,stu[i].phone,stu[i].email);
}
fclose(fp);
system("cls");
flag=0;
for(j=0;j {
if(strcmp(stu[j].name,nname)==0)
{
printf("文件名:%s\n",file);
printf("%s %s %s %s %s %s\n",stu[j].num,stu[j].name,stu[j].sex,stu[j].work,stu[j].phone,stu[j].email);
flag=1;
break;
}
}
if(flag==0)
{
printf("文件名:%s\n",file);
printf("无此人!请重新操作!\n");break;
}
break;
全部回答
  • 1楼网友:冷風如刀
  • 2021-11-20 10:52
这个我会设计的追问发来瞧瞧吧,亲。
  • 2楼网友:持酒劝斜阳
  • 2021-11-20 09:38
简单的同学通讯录程序设计
这个你怎么分析
谈清晰,这样你才懂
你具体谈清楚追问下面不是有问题描述么。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯