| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 558 人关注过本帖
标题:我这个程序运行不了
只看楼主 加入收藏
灵魂之健仔
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2014-12-15
结帖率:0
收藏
已结贴  问题点数:10 回复次数:6 
我这个程序运行不了
//统计功能//
struct person *compute(struct person *head)
{
struct person *p1,*p2,*p,*q;
FILE *fp;
int birth;
int i,j,x,y,z=1,count=0,n=0,k;
char *t[10];
char phone[12],address[30],post[20],type[10],name[10];
printf("\n");
for(i=0;i<9;i++) printf("   ");
for(j=0;j<13;j++) printf("**");
printf("\n");
for(i=0;i<9;i++) printf("   ");
printf("欢迎使用都巷通讯录统计功能\n");
for(i=0;i<9;i++) printf("   ");
for(j=0;j<13;j++) printf("**");
printf("\n\n");
for(i=0;i<15;i++) printf(" ");
printf("##请输入一个起始日期和一个结束日期##\n                   ◇统计该日期范围内的生日人数\n\n");
for(j=0;j<10;j++) printf(" ");
printf("☆请输入起始日期:");
scanf("%d",&x);
if(x/10000<1900||x/10000>2015||x%100<1||x%100>31||x/100%100<1||x/100%100>12){
printf("\n            输入错误,");
return NULL;
}
printf("\n");
for(j=0;j<10;j++) printf(" ");
printf("★请输入结束日期:");
scanf("%d",&y);
if(y/10000<1900||y/10000>2015||y%100<1||y%100>31||y/100%100<1||y/100%100>12){
printf("\n            输入错误,");
return NULL;
}
system("cls");
printf("\n");
for(i=0;i<9;i++) printf("   ");
for(j=0;j<13;j++) printf("**");
printf("\n");
for(i=0;i<9;i++) printf("   ");
printf("欢迎使用都巷通讯录统计功能\n");
for(i=0;i<9;i++) printf("   ");
for(j=0;j<13;j++) printf("**");
printf("\n\n");
for(i=0;i<9;i++) printf("   ");
printf("★★★下面是统计结果★★★");
printf("\n\n");
for(i=0;i<15;i++) printf(" ");
p=head;
while(p!=NULL){
if(p->birth>=x&&p->birth<=y) count++;
p=p->next;
}
printf("%d.该日期范围内共有%d人过生日;\n",1,count);
for(i=0;i<15;i++) printf(" ");
printf("%d.以下为各类别联系人过生日情况:\n",2);
strcpy(t[0],head->type);
t[0]=(char*)malloc(sizeof(char)*(strlen(head->type)+1));
p1=head;p2=head->next;
while(p2!=NULL){
for(i=0;i<z;i++){
if(strcmp(t[z],p2->type)==0) break;
}
if(i==z){
t[z]=(char*)malloc(sizeof(char)*(strlen(p2->type)+1));
strcpy(t[z],p2->type);
z++;
}
p2=p2->next;
}
for(k=0;k<z;k++){
    q=head;n=0;
while(q!=NULL){
if(q->birth<=y&&q->birth>=x&&strcmp(q->type,t[k])==0)  n++;
q=q->next;
}
for(j=0;j<20;j++) printf(" ");
printf("%s类中过生日的有%d人;\n",t[k],n);
}
return head;
}
这个函数为通讯录统计某时期内联系人生日人数总数和各个分类生日的人数,运行时出现弹框现象,请查出原因。
搜索更多相关主题的帖子: person 通讯录 count 统计 
2015-05-15 08:20
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:3 
代码风格啊  楼主  黑呼呼一大片  没法看啊

另:你的代码也不全啊   这仅仅是一个函数而已

DO IT YOURSELF !
2015-05-15 08:44
灵魂之健仔
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2014-12-15
收藏
得分:0 
回复 2楼 wp231957
#include<stdio.h>
#include <string.h>
#include <stdlib.h>
#include<process.h>
#include<conio.h>
struct person{
char name[10];
char phone[12];
char address[30];
char post[20];
int birth;
char type[10];
struct person *next;
};

//创建函数//
struct person *create()
{
struct person *head,*p,*p2;
FILE *fp;
int birth;
char name[10],address[30],post[20],type[10],phone[12];
head=NULL;
p2=NULL;
if((fp=fopen("address.txt","r+"))==NULL){
printf("打开失败...");
exit(0);
}
while(fscanf(fp,"%s%s%d%s%s%s",name,phone,&birth,type,post,address)>0){
p=(struct person*)malloc(sizeof(struct person));
strcpy(p->name,name);
strcpy(p->phone,phone);
strcpy(p->address,address);
strcpy(p->post,post);
p->birth=birth;
strcpy(p->type,type);
p->next=NULL;
if(head==NULL){
head=p;
p2=head;
}
else{
p2->next=p;
p2=p;
}
}
fclose(fp);
return head;
}

//名字查询//
struct person *nameinquiry(struct person *head,char *name)
{
struct person *p1,*p2,*p;
FILE *fp;
int birth;
int i,j,k;
char phone[12],address[30],post[20],type[10];
p=head;
while(p!=NULL){
if(strstr(p->name,name)-(p->name)>=0){
printf("\n\n");
for(i=0;i<10;i++) printf("  ");
printf("该联系人的信息为:\n\n");
for(i=0;i<4;i++) printf("       ");
printf("姓名:%s\n",p->name);
for(i=0;i<4;i++) printf("       ");
printf("地址:%s\n",p->address);
for(i=0;i<4;i++) printf("       ");
printf("邮箱:%s\n",p->post);
for(i=0;i<4;i++) printf("       ");
printf("类别:%s\n",p->type);
for(i=0;i<4;i++) printf("       ");
printf("电话号码:%s\n",p->phone);
for(i=0;i<4;i++) printf("       ");
printf("出生日期:%d\n\n",p->birth);
if(p->next!=NULL) p=p->next;
else break;
}
else{
if(p->next==NULL) break;
p=p->next;
}
}
if(p==NULL) return NULL;
return head;
}

//手机号码查询//
struct person *phoneinquiry(struct person *head,char *phone)
{
struct person *p1,*p2,*p;
FILE *fp;
int birth;
int i,j,k;
char name[10],address[30],post[20],type[10];
p=head;
for(i=0;i<4;i++) printf("     ");
for(j=0;j<4;j++) printf("----------");
printf("\n");
for(i=0;i<4;i++) printf("       ");
printf("该类别联系人的信息为:\n");
while(p!=NULL){
if(strstr(p->phone,phone)-(p->phone)>=0){
printf("\n");
for(i=0;i<5;i++) printf("      ");
printf("姓名:%s\n",p->name);
for(i=0;i<5;i++) printf("      ");
printf("类别:%s\n",p->type);
for(i=0;i<13;i++) printf("  ");
printf("出生日期:%d\n",p->birth);
for(i=0;i<13;i++) printf("  ");
printf("电话号码:%s\n",p->phone);
for(i=0;i<5;i++) printf("      ");
printf("邮箱:%s\n",p->post);
for(i=0;i<5;i++) printf("      ");
printf("地址:%s\n",p->address);
if(p->next!=NULL) p=p->next;
else break;
}
else{
if(p->next==NULL) break;
p=p->next;
}
}
if(p==NULL) return NULL;
return head;
}

//类别查询//
struct person *typeinquiry(struct person *head,char *type)
{
struct person *p1,*p2,*p;
FILE *fp;
int birth;
int i,j,k=0;
char phone[12],address[30],post[20],name[10];
p=head;
for(i=0;i<13;i++) printf("  ");
for(j=0;j<5;j++) printf("------");
printf("\n");
for(i=0;i<5;i++) printf("      ");
printf("该类别联系人的信息为:\n");
while(p!=NULL){
if(strcmp(p->type,type)==0){
printf("\n");
for(i=0;i<19;i++) printf("  ");
printf("姓名:%s\n",p->name);
for(i=0;i<19;i++) printf("  ");
printf("类别:%s\n",p->type);
for(i=0;i<19;i++) printf("  ");
printf("地址:%s\n",p->address);
for(i=0;i<19;i++) printf("  ");
printf("邮箱:%s\n",p->post);
for(i=0;i<17;i++) printf("  ");
printf("出生日期:%d\n",p->birth);
for(i=0;i<17;i++) printf("  ");
printf("电话号码:%s\n",p->phone);
if(p->next!=NULL) p=p->next;
else break;
k++;
}
else p=p->next;
}
if(p==NULL&&k==0) return NULL;
return head;
}

//查询功能//
struct person *inquiry(struct person *head)
{
struct person *p1,*p2,*p;
FILE *fp;
int birth;
int i,j,k;
char phone[12],address[30],post[20],type[10],name[10];
printf("\n");
for(i=0;i<27;i++) printf(" ");
for(j=0;j<13;j++) printf("**");
printf("\n");
for(i=0;i<27;i++) printf(" ");
printf("欢迎使用都巷通讯录管理功能\n");
for(i=0;i<27;i++) printf(" ");
for(j=0;j<13;j++) printf("**");
printf("\n\n");
for(i=0;i<13;i++) printf("  ");
printf("请输入您所需要执行的查询功能:\n\n");
for(i=0;i<15;i++) printf("  ");
printf("%d是根据姓名查询;\n\n",1);
for(i=0;i<15;i++) printf("  ");
printf("%d是根据分类查询;\n\n",2);
for(i=0;i<15;i++) printf("  ");
printf("%d是根据手机号码查询;\n\n",3);
for(i=0;i<15;i++) printf("  ");
printf("%d为列出全部联系人.\n\n",0);
for(i=0;i<8;i++) printf("  ");
printf("#请输入您所要执行的查询功能编号(按Enter键结束):");
scanf("%d",&k);
system("cls");
if(k<0||k>3){
printf("输入错误...");
return 0;
}
switch(k)
{
case 0: printf("\n\n");
        for(i=0;i<27;i++) printf(" ");
        for(j=0;j<13;j++) printf("**");
        printf("\n");
        for(i=0;i<27;i++) printf(" ");
        printf("欢迎使用都巷通讯录查询功能\n");
        for(i=0;i<27;i++) printf(" ");
        for(j=0;j<13;j++) printf("**");
        printf("\n\n");
        for(i=0;i<15;i++) printf(" ");
        for(j=0;j<10;j++) printf("-");
        printf("以下是您通讯录的全部联系人信息");
        for(j=0;j<10;j++) printf("-");
        printf("\n\n\n");
        for(i=0;i<5;i++) printf(" ");
        p=head;
        printf(" 姓名   手机号码    生日    类别          邮箱           地址\n\n");
        for(i=0;i<5;i++) printf(" ");
        while(p!=NULL){
        printf("%5s %11s %d %5s %20s  %s\n",p->name,p->phone,p->birth,p->type,p->post,p->address);
        for(i=0;i<5;i++) printf(" ");
        p=p->next;
        }
        break;
case 1: printf("\n");
        for(i=0;i<5;i++) printf("     ");
        for(j=0;j<5;j++) printf("******");
        printf("\n");
        for(j=0;j<5;j++) printf("     ");
        printf("欢迎使用都巷通讯录名字查询系统");
        printf("\n");
        for(j=0;j<5;j++) printf("     ");
        for(j=0;j<5;j++) printf("******");
        printf("\n\n\n");
        for(i=0;i<3;i++) printf("        ");
        printf("请输入您需要查询人的姓名:");
        scanf("%s",name);
        head=nameinquiry(head,name);
        if(head==NULL){
            printf("\n");
            for(i=0;i<28;i++) printf(" ");
            printf("★该联系人信息不存在★\n");
        }
        break;
case 2: printf("\n");
        for(i=0;i<5;i++) printf("     ");
        for(j=0;j<5;j++) printf("******");
        printf("\n");
        for(j=0;j<5;j++) printf("     ");
        printf("欢迎使用都巷通讯录分类查询系统");
        printf("\n");
        for(j=0;j<5;j++) printf("     ");
        for(j=0;j<5;j++) printf("******");
        printf("\n\n");
        for(i=0;i<13;i++) printf("  ");
        printf("请输入您需要查询人的类别:");
        scanf("%s",type);
        head=typeinquiry(head,type);
        if(head==NULL){
            printf("\n");
            for(i=0;i<28;i++) printf(" ");
            printf("★该联系人信息不存在★\n");
        }
        break;
case 3: printf("\n");
        for(i=0;i<23;i++) printf(" ");
        for(j=0;j<17;j++) printf("**");
        printf("\n");
        for(j=0;j<23;j++) printf(" ");
        printf("欢迎使用都巷通讯录手机号码查询系统");
        printf("\n");
        for(j=0;j<23;j++) printf(" ");
        for(j=0;j<17;j++) printf("**");
        printf("\n\n");
        for(i=0;i<4;i++) printf("     ");
        printf("请输入您需要查询人的手机号码:");
        scanf("%s",phone);
        head=phoneinquiry(head,phone);
        if(head==NULL){
            printf("\n");
            for(i=0;i<28;i++) printf(" ");
            printf("★该联系人信息不存在★\n");
        }
        break;
}
return head;
}


//增加函数//
struct person *increase(struct person *head,struct person *p)
{
struct person *p1,*p2;
p1=head;
p2=p;
if(head==NULL){
head=p2;
head->next=NULL;
}
else {
while(p1->next!=NULL){
p1=p1->next;
}
p1->next=p2;
p2->next=NULL;
}
return head;
}

//删除函数//
struct person *de(struct person *head,char *name)
{
struct person *p1,*p2,*p;
FILE *fp;
int birth;
int i,j;
char phone[12],address[30],post[20],type[10];
if((fp=fopen("address.txt","w"))==NULL){
printf("打开失败");
exit(0);
}
if(head==NULL) return NULL;
if(head!=NULL&&strcmp(head->name,name)==0){
p2=head;
head=head->next;
}
else{
p1=head;p2=head->next;
while(p2!=NULL){
if(strcmp(name,p2->name)==0){
     for(i=0;i<10;i++) printf("   ");
       printf("姓名:%s\n",p2->name);
       for(i=0;i<10;i++) printf("   ");
       printf("手机号码:%s\n",p2->phone);
       for(i=0;i<10;i++) printf("   ");
       printf("出生日期:%d\n",p2->birth);        
       for(i=0;i<10;i++) printf("   ");
       printf("类别:%s\n",p2->type);
       for(i=0;i<10;i++) printf("   ");
       printf("邮箱:%s\n",p2->post);
       for(i=0;i<10;i++) printf("   ");
       printf("地址:%s\n\n",p2->address);
p1->next=p2->next;
break;
}
else{
p1=p2;
p2=p1->next;
}
}
}
p=head;
while(p!=NULL){
fprintf(fp,"%s %s %d %s %s %s\n",p->name,p->phone,p->birth,p->type,p->post,p->address);
p=p->next;
}
for(i=0;i<22;i++) printf(" ");
printf("电话号码:%s\n",p2->phone);
for(i=0;i<22;i++) printf(" ");
printf("出生日期:%d\n",p2->birth);
for(i=0;i<22;i++) printf(" ");
printf("类别:%s\n",p2->type);
for(i=0;i<22;i++) printf(" ");
printf("邮箱:%s\n",p2->post);
for(i=0;i<22;i++) printf(" ");
printf("地址:%s\n\n",p2->address);
free(p2);
fclose(fp);
return head;
}

//修改函数//
struct person *change(struct person *head,char *name)
{
struct person *p1,*p2,*p,*q,*s;
FILE *fp;
int birth;
int i,j,c;
char phone[12],address[30],post[20],type[10];
if((fp=fopen("address.txt","w"))==NULL){
printf("打开失败");
exit(0);
}
s=head;
while(strcmp(s->name,name)!=0){
s=s->next;
}
       for(i=0;i<10;i++) printf("   ");
       printf("姓名:%s\n",s->name);
       for(i=0;i<10;i++) printf("   ");
       printf("手机号码:%s\n",s->phone);
       for(i=0;i<10;i++) printf("   ");
       printf("出生日期:%d\n",s->birth);        
       for(i=0;i<10;i++) printf("   ");
       printf("类别:%s\n",s->type);
       for(i=0;i<10;i++) printf("   ");
       printf("邮箱:%s\n",s->post);
       for(i=0;i<10;i++) printf("   ");
       printf("地址:%s\n\n",s->address);
       for(i=0;i<25;i++) printf(" ");
       printf("如果继续修改,请按%d;",1);
       printf("返回主菜单,请按%d.\n",0);
       for(i=0;i<10;i++) printf("   ");
       printf("请输入您的选择:");
       scanf("%d",&c);
       if(c==0) return 0;
       if(c==1) system("cls");
       printf("\n");
for(i=0;i<27;i++) printf(" ");
for(j=0;j<26;j++) printf("*");
printf("\n");
for(i=0;i<27;i++) printf(" ");
printf("欢迎使用都巷通讯录修改功能\n");
for(i=0;i<27;i++) printf(" ");
for(j=0;j<26;j++) printf("*");
printf("\n\n");
if(head==NULL) return NULL;
if(head!=NULL&&strcmp(head->name,name)==0){
    for(i=0;i<21;i++) printf(" ");
    printf("◎请输入您所要修改的联系人的全部信息:\n\n");
for(i=0;i<25;i++) printf(" ");
printf("姓名:");
scanf("%s",name);
printf("\n");
for(i=0;i<25;i++) printf(" ");
printf("电话号码:");
scanf("%s",phone);
printf("\n");
for(i=0;i<25;i++) printf(" ");
printf("出生日期:");
scanf("%d",&birth);
printf("\n");
for(i=0;i<25;i++) printf(" ");
printf("类别:");
scanf("%s",type);
printf("\n");
for(i=0;i<25;i++) printf(" ");
printf("邮箱:");
scanf("%s",post);
printf("\n");
for(i=0;i<25;i++) printf(" ");
printf("地址:");
scanf("%s",address);
system("cls");
printf("\n");
for(i=0;i<27;i++) printf(" ");
for(j=0;j<26;j++) printf("*");
printf("\n");
for(i=0;i<27;i++) printf(" ");
printf("欢迎使用都巷通讯录修改功能\n");
for(i=0;i<27;i++) printf(" ");
for(j=0;j<26;j++) printf("*");
printf("\n\n");
for(i=0;i<24;i++)  printf(" ");
printf("您所要修改人的所有信息为:\n");
printf("\n\n");
for(i=0;i<22;i++) printf(" ");
printf("姓名:%s\n",name);
for(i=0;i<22;i++)
printf(" ");
printf("电话号码:%s\n",phone);
for(i=0;i<22;i++) printf(" ");
printf("生日:%d\n",birth);
for(i=0;i<22;i++) printf(" ");
printf("类别:%s\n",type);
for(i=0;i<22;i++) printf(" ");
printf("邮箱:%s\n",post);
for(i=0;i<22;i++) printf(" ");
printf("地址:%s\n",address);
p=(struct person*)malloc(sizeof(struct person));
p=head;
strcpy(p->name,name);
strcpy(p->phone,phone);
strcpy(p->address,address);
strcpy(p->post,post);
p->birth=birth;
strcpy(p->type,type);
}
else{
    for(i=0;i<15;i++) printf(" ");
    printf("◎请输入您所要修改的联系人的全部信息:\n\n");
for(i=0;i<25;i++) printf(" ");
printf("姓名:");
scanf("%s",name);
printf("\n");
for(i=0;i<25;i++) printf(" ");
printf("电话号码:");
scanf("%s",phone);
printf("\n");
for(i=0;i<25;i++) printf(" ");
printf("出生日期:");
scanf("%d",&birth);
printf("\n");
for(i=0;i<25;i++) printf(" ");
printf("类别:");
scanf("%s",type);
printf("\n");
for(i=0;i<21;i++) printf(" ");
printf("邮箱:");
scanf("%s",post);
printf("\n");
for(i=0;i<21;i++) printf(" ");
printf("地址:");
scanf("%s",address);
system("cls");
printf("\n");
for(i=0;i<27;i++) printf(" ");
for(j=0;j<26;j++) printf("*");
printf("\n");
for(i=0;i<27;i++) printf(" ");
printf("欢迎使用都巷通讯录修改功能\n");
for(i=0;i<27;i++) printf(" ");
for(j=0;j<26;j++) printf("*");
printf("\n\n");
for(i=0;i<20;i++)  printf(" ");
printf("您所要修改人的所有信息为:\n");
printf("\n\n");
for(i=0;i<22;i++) printf(" ");
printf("姓名:%s\n",name);
for(i=0;i<22;i++) printf(" ");
printf("电话号码:%s\n",phone);
for(i=0;i<22;i++) printf(" ");
printf("出生日期:%d\n",birth);
for(i=0;i<22;i++) printf(" ");
printf("类别:%s\n",type);
for(i=0;i<22;i++) printf(" ");
printf("邮箱:%s\n",post);
for(i=0;i<22;i++) printf(" ");
printf("地址:%s\n",address);   
p1=head;p2=head->next;
while(strcmp(p2->name,name)!=0){
p1=p2;
p2=p1->next;
}
strcpy(p2->name,name);
strcpy(p2->phone,phone);
strcpy(p2->address,address);
strcpy(p2->post,post);
p2->birth=birth;
strcpy(p2->type,type);
}
q=head;
while(q!=NULL){
fprintf(fp,"%s %s %d %s %s %s\n",q->name,q->phone,q->birth,q->type,q->post,q->address);
q=q->next;
}
return head;
}

//管理系统//
struct person *manage(struct person *head)
{
int CH,i,j,c;
int birth;
char name[10],address[30],post[20],type[10],phone[12];
struct person *p;
FILE *fp;
printf("\n");
for(i=0;i<27;i++) printf(" ");
for(j=0;j<26;j++) printf("*");
printf("\n");
for(i=0;i<27;i++) printf(" ");
printf("欢迎使用都巷通讯录管理功能\n");
for(i=0;i<27;i++) printf(" ");
for(j=0;j<26;j++) printf("*");
printf("\n\n");
for(i=0;i<26;i++) printf(" ");
printf("请输入您所需要执行的管理功能:\n\n");
for(i=0;i<30;i++) printf(" ");
printf("%d是增加联系人;\n\n",1);
for(i=0;i<30;i++) printf(" ");
printf("%d是删除联系人;\n\n",2);
for(i=0;i<30;i++) printf(" ");
printf("%d是修改联系人.\n\n",3);
for(i=0;i<22;i++) printf(" ");
printf("#请输入您的选择(按Enter键结束):");
scanf("%d",&CH);
system("cls");
if(CH<1||CH>3){
printf("输入错误....");
return 0;
}
switch(CH)
{
case 1:printf("\n");
       for(i=0;i<27;i++) printf(" ");
       for(j=0;j<13;j++) printf("**");
       printf("\n");
       for(i=0;i<27;i++) printf(" ");
       printf("欢迎使用都巷通讯录增加功能\n");
       for(i=0;i<27;i++) printf(" ");
       for(j=0;j<13;j++) printf("**");
       printf("\n\n");
       for(i=0;i<10;i++) printf(" ");
       printf("请输入您所要增加的全部信息(出生日期为%d位数字按Enter键结束):\n\n",8);
       for(i=0;i<22;i++) printf(" ");
       printf("姓名:");
       scanf("%s",name);
       printf("\n");
       for(i=0;i<22;i++) printf(" ");
       printf("电话号码:");
       scanf("%s",phone);
       printf("\n");
       for(i=0;i<22;i++) printf(" ");
       printf("出生日期:");
       scanf("%d",&birth);
       printf("\n");
       for(i=0;i<22;i++) printf(" ");
       printf("类别:");
       scanf("%s",type);
       printf("\n");
       for(i=0;i<22;i++) printf(" ");
       printf("邮箱:");
       scanf("%s",post);
       printf("\n");
       for(i=0;i<22;i++) printf(" ");
       printf("地址:");
       scanf("%s",address);
       p=(struct person*)malloc(sizeof(struct person));
       strcpy(p->name,name);
       strcpy(p->phone,phone);
       strcpy(p->address,address);
       strcpy(p->post,post);
       p->birth=birth;
       strcpy(p->type,type);
       if((fp=fopen("address.txt","a"))==NULL){
       printf("打开失败");
       exit(0);
       }  
       fprintf(fp,"%s %s %d %s %s %s\n",name,phone,birth,type,post,address);
       head=increase(head,p);
       fclose(fp);
       break;

case 2:printf("\n");
       for(i=0;i<27;i++) printf(" ");
       for(j=0;j<13;j++) printf("**");
       printf("\n");
       for(i=0;i<27;i++) printf(" ");
       printf("欢迎使用都巷通讯录删除功能\n");
       for(i=0;i<27;i++) printf(" ");
       for(j=0;j<13;j++) printf("**");
       printf("\n\n");
       for(i=0;i<20;i++) printf(" ");
       printf("请输入您所要删除人的名字(按Enter键结束):");
       scanf("%s",name);
       system("cls");
       printf("\n");
       for(i=0;i<27;i++) printf(" ");
       for(j=0;j<13;j++) printf("**");
       printf("\n");
       for(i=0;i<27;i++) printf(" ");
       printf("欢迎使用都巷通讯录删除功能\n");
       for(i=0;i<27;i++) printf(" ");
       for(j=0;j<13;j++) printf("**");
       printf("\n\n\n");
       for(i=0;i<5;i++) printf("      ");
       printf("------删除成功------\n\n");
       for(i=0;i<20;i++)
       printf(" ");
       printf("您所要删除人的所有信息为:");
       printf("\n\n");
       for(i=0;i<22;i++)
       printf(" ");
       printf("姓名:%s\n",name);
       head=de(head,name);
       for(i=0;i<15;i++) printf(" ");
       printf("功能执行成功,请按任意键返回主菜单:");
       getch();
       break;

 
case 3:printf("\n");
       for(i=0;i<27;i++) printf(" ");
       for(j=0;j<26;j++) printf("*");
       printf("\n");
       for(i=0;i<27;i++) printf(" ");
       printf("欢迎使用都巷通讯录修改功能\n");
       for(i=0;i<27;i++) printf(" ");
       for(j=0;j<26;j++) printf("*");
       printf("\n\n");
       for(i=0;i<18;i++) printf(" ");
       printf("请输入您所要修改人的名字(按Enter键结束):");
       scanf("%s",name);
       printf("\n\n\n");      
       for(i=0;i<24;i++) printf(" ");
       printf("******以下是你将要修改人的全部信息******\n\n");
       head=change(head,name);
       break;
}
return head;
}

//统计功能//
struct person *compute(struct person *head)
{
struct person *p1,*p2,*p,*q;
FILE *fp;
int birth;
int i,j,x,y,z=1,count=0,n=0,k;
char *t[10];
char phone[12],address[30],post[20],type[10],name[10];
printf("\n");
for(i=0;i<9;i++) printf("   ");
for(j=0;j<13;j++) printf("**");
printf("\n");
for(i=0;i<9;i++) printf("   ");
printf("欢迎使用都巷通讯录统计功能\n");
for(i=0;i<9;i++) printf("   ");
for(j=0;j<13;j++) printf("**");
printf("\n\n");
for(i=0;i<15;i++) printf(" ");
printf("##请输入一个起始日期和一个结束日期##\n                   ◇统计该日期范围内的生日人数\n\n");
for(j=0;j<10;j++) printf(" ");
printf("☆请输入起始日期:");
scanf("%d",&x);
if(x/10000<1900||x/10000>2015||x%100<1||x%100>31||x/100%100<1||x/100%100>12){
printf("\n            输入错误,");
return NULL;
}
printf("\n");
for(j=0;j<10;j++) printf(" ");
printf("★请输入结束日期:");
scanf("%d",&y);
if(y/10000<1900||y/10000>2015||y%100<1||y%100>31||y/100%100<1||y/100%100>12){
printf("\n            输入错误,");
return NULL;
}
system("cls");
printf("\n");
for(i=0;i<9;i++) printf("   ");
for(j=0;j<13;j++) printf("**");
printf("\n");
for(i=0;i<9;i++) printf("   ");
printf("欢迎使用都巷通讯录统计功能\n");
for(i=0;i<9;i++) printf("   ");
for(j=0;j<13;j++) printf("**");
printf("\n\n");
for(i=0;i<9;i++) printf("   ");
printf("★★★下面是统计结果★★★");
printf("\n\n");
for(i=0;i<15;i++) printf(" ");
p=head;
while(p!=NULL){
if(p->birth>=x&&p->birth<=y) count++;
p=p->next;
}
printf("%d.该日期范围内共有%d人过生日;\n",1,count);
for(i=0;i<15;i++) printf(" ");
printf("%d.以下为各类别联系人过生日情况:\n",2);
strcpy(t[0],head->type);
t[0]=(char*)malloc(sizeof(char)*(strlen(head->type)+1));
p1=head;p2=head->next;
while(p2!=NULL){
for(i=0;i<z;i++){
if(strcmp(t[z],p2->type)==0) break;
}
if(i==z){
t[z]=(char*)malloc(sizeof(char)*(strlen(p2->type)+1));
strcpy(t[z],p2->type);
z++;
}
p2=p2->next;
}
for(k=0;k<z;k++){
    q=head;n=0;
while(q!=NULL){
if(q->birth<=y&&q->birth>=x&&strcmp(q->type,t[k])==0)  n++;
q=q->next;
}
for(j=0;j<20;j++) printf(" ");
printf("%s类中过生日的有%d人;\n",t[k],n);
}
return head;
}



//主程序//
main()
{
int ch,a;
int birth;
int i,j;
struct person *p,*head;
char name[10],address[30],post[20],type[10],phone[12];
while(1){
head=create();   
printf("\n");
for(i=0;i<29;i++)
printf(" ");
for(j=0;j<22;j++)
printf("*");
printf("\n");
for(i=0;i<29;i++)
printf(" ");
printf("欢迎使用都巷通讯录系统\n");
for(i=0;i<29;i++)
printf(" ");
for(j=0;j<22;j++)
printf("*");
printf("\n\n");
for(i=0;i<4;i++) printf("    ");
printf("-----请输入您所需要执行的功能(按Enter键结束)-----\n");
printf("\n");
for(i=0;i<30;i++) printf(" ");
printf("%d是通讯录管理功能;\n",1);
printf("\n");
for(i=0;i<30;i++) printf(" ");
printf("%d是通讯录查询功能;\n",2);
printf("\n");
for(i=0;i<30;i++) printf(" ");
printf("%d是通讯录统计功能.\n",3);
printf("\n\n");
for(i=0;i<20;i++) printf(" ");
printf("#请输入您的选择:");
scanf("%d",&ch);
system("cls");
if(ch<1||ch>3){
printf("输入有误...");
return 0;
}
   
switch(ch)
{

case 1:head=manage(head);
       if(head==NULL){
       system("cls");
       break;
       }
       printf("\n\n");
       for(i=0;i<7;i++) printf("    ");
       printf("∽∽∽");
       printf("功能执行成功∽∽∽\n\n");
       for(i=0;i<5;i++) printf(" ");
       printf("★请输入任意键返回主菜单:");
       getch();
       system("cls");
       break;
case 2:head=inquiry(head);
       printf("\n\n");
       for(i=0;i<7;i++) printf("    ");
       printf("∽∽∽");
       printf("功能执行成功∽∽∽\n\n");
       for(i=0;i<5;i++) printf(" ");
       printf("★请输入任意键返回主菜单:");
       getch();
       system("cls");
       break;
case 3:head=compute(head);
       if(head==NULL){
       printf("请输入任意键返回主菜单:");
       getch();
       system("cls");
       break;
       }
       printf("\n\n");
       for(i=0;i<20;i++) printf(" ");
       printf("∽∽∽");
       printf("功能执行成功∽∽∽\n\n");
       for(i=0;i<10;i++) printf(" ");
       printf("※请输入任意键返回主菜单:");
       getch();
       system("cls");
       break;
}
}
return 0;
}
2015-05-15 08:45
诸葛欧阳
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:流年
等 级:贵宾
威 望:82
帖 子:2790
专家分:14619
注 册:2014-10-16
收藏
得分:3 
补全之后也太长了吧,你应该先介绍一下你的目的和思路,以及可能出错的地方

一片落叶掉进了回忆的流年。
2015-05-15 10:42
纳兰伽香
Rank: 10Rank: 10Rank: 10
来 自:北京
等 级:贵宾
威 望:10
帖 子:426
专家分:1650
注 册:2015-4-5
收藏
得分:3 
这代码   一个字   长!!!!!!!

风回小院庭芜绿,柳眼春相续
2015-05-15 11:49
灵魂之健仔
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2014-12-15
收藏
得分:0 
回复 4楼 诸葛欧阳
我的代码是一个通讯录。具有管理、查询、统计功能;函数分别是链表录入信息、管理、修改、删除、增加、手机号码查询、类别查询、名字查询、统计在某时期生日总数和各类别生日的人数。现在的问题是统计功能运行时弹框。
2015-05-15 13:46
tlliqi
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:204
帖 子:15453
专家分:65956
注 册:2006-4-27
收藏
得分:3 
以下是引用纳兰伽香在2015-5-15 11:49:25的发言:

这代码   一个字   长!!!!!!!
zhang
2015-05-15 14:35
快速回复:我这个程序运行不了
数据加载中...
 
   



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

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