| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 589 人关注过本帖
标题:学生系统求解释
只看楼主 加入收藏
请问你好吗
Rank: 2
等 级:论坛游民
帖 子:64
专家分:51
注 册:2011-11-27
结帖率:81.48%
收藏
已结贴  问题点数:10 回复次数:5 
学生系统求解释
include<stdio.h>
#include<stdlib.h>
#include<string.h>
/*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*/
    typedef struct person
    {     char name[10];
          char addr[30];
          char offph[15];
          char mbph[15];
          char hmph[15];
          struct person *next;
    }listnode,*listlink;
/*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*/
    struct add_person
    {     char name[10];
          char addr[30];
          char offph[15];
          char mbph[15];
          char hmph[15];
    };
/*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*/
    listlink readfp()
    {
          FILE *fp;
          listlink head=NULL,end=NULL,s;
          struct add_person persons;
          fp=fopen("people.txt","rb");
          if(fp==NULL)
          {
              printf("不能打开此文件!");
              return head;
          }
          fread(&persons,sizeof(struct add_person),1,fp);
          while(!feof(fp))
          {
              s=(listnode*)malloc(sizeof(listnode));
              strcpy(s->name,persons.name);
              strcpy(s->addr,persons.addr);
              strcpy(s->offph,persons.offph);
              strcpy(s->mbph,persons.mbph);
              strcpy(s->hmph,persons.hmph);
              s->next=NULL;
              if(head==NULL)
                  head=end=NULL;
              else
              {
                  end->next=s;
                  end=s;
              }
              fread(&persons,sizeof(struct add_person),1,fp);
          }
          return head;
    }
/*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*/
    void save(listlink head)
    {
        FILE *fp;
        listlink p;
        static struct add_person persons;
        fp=fopen("people.txt","wb");
        for(p=head;p!=NULL;p=p->next)
        {
            strcpy(persons.name,p->name);
            strcpy(persons.addr,p->addr);
            strcpy(persons.offph,p->offph);
            strcpy(persons.mbph,p->mbph);
            strcpy(persons.hmph,p->hmph);
            fwrite(&persons,sizeof(struct add_person),1,fp);
        }
        fclose(fp);
    }
/*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*/
    listlink create()
    {
        listlink s;
        listlink head=NULL,end=NULL;
        while(1)
        {
            s=(listlink)malloc(sizeof(listnode));
            printf("\n\n\t创建文件!\n");
            scanf("%s",s->name);
            if(strcmp(s->name,"#")==0)
                break;
            printf("\n\naddr:\t offph:\t mbph:\t hmph:\t");
            scanf("%s%s%s%s",s->addr,s->offph,s->mbph,s->hmph);
            s->next=NULL;
            if(head==NULL)
                head=end=NULL;
            else
            {
                end->next=s;
                end=s;
            }

        }
        return head;
    }
/*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*/
    void show(listlink head)
    {
        listlink p;
        p=head;
        while(p!=NULL)
        {
            printf("%s\t",p->name);
            printf("%s\t",p->addr);
            printf("%s\t",p->offph);
            printf("%s\t",p->mbph);
            printf("%s\t",p->hmph);
            p=p->next;
        }
    }
/*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*/
    void Delete(listlink head)
    {
        listlink p1,p2;
        char name[10];
        p1=p2=head;
        if(p1==NULL)
        {
            printf("no record!\n");
            return;
        }
        printf("\n\n\tDlelte--------please your name:");
        scanf("%s",name);
        while(strcmp(p1->name,name)!=0&&p1->next!=NULL)
        {
            p2=p1;
            p1=p1->next;
        }
        if(strcmp(p1->name,name)==0)
        {
            if(p1==head)
                p1=p1->next ;
            else
                p2->next=p1->next ;
            free(p1);
        }
        else
            printf("没有相应的记录!!!");
    }
/*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*/
    void find(listlink head)
    {
        listlink p;
        char name[10];
        while(1)
        {
            p=head;
            printf("\n\n\t------please your name!");
            scanf("%s",name);
            if(strcmp(name,"#")==0)
                return;
            if(strcmp(name,p->name)!=0&&p->next!=NULL)
                p=p->next;
            if(strcmp(name,p->name)!=0)
                printf("没有相应的记录!!!");
         else
            {
                printf("\tname:%s",p->name);
                 printf("\taddr:%s",p->addr);
                printf("\toffph:%s",p->offph);
                printf("\tmbph:%s",p->mbph);
                printf("\thmph:%s",p->hmph);
                 
            }
        }
    }
/*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*/
    void input(listlink head)
    {
          listlink s,end;
          s=(listlink)malloc(sizeof(listnode));
          do
          {
              printf("\n\n\tplaese your name:");
              scanf("%s",s->name);
              if(strcmp(s->name,"#")==0)
                  return;
              if(head==NULL)
                  break;
              while(strcmp(s->name,end->name)!=0&&end->next!=NULL)
                  end=end->next;
          }while(strcmp(s->name,end->name)==0);
              printf("\n\n\t输入你的信息;\taddr:\toffph:\tmbph:\thmph:\n");
              scanf("%s%s%s%s",s->addr,s->offph,s->mbph,s->hmph);
              s->next=NULL;
              end->next=s;
              end=s;
    }
/*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*/
    void alter(listlink head)
    {
        listlink p;
        p=head;
        char name[10],addr[30],offph[15],mbph[15],hmph[15];
        printf("\n\n\tplease your name:");
        scanf("%s",name);
        if(strcmp(name,"#")==0)
            return;
        while(strcmp(p->name,name)!=0&&p->next!=NULL)
            p=p->next;
        if(strcmp(p->name,name)!=0)
        {
            printf("\n\n没有相应的记录!");
            return;
        }
        else
        {
            printf("\n\naddr:\t offph:\t mbph:\t hmph:\t");
            printf("input your message:");
            scanf("%s%s%s%s",addr,offph,mbph,hmph);
            strcpy(p->name,name);
            strcpy(p->addr,addr);
            strcpy(p->offph,offph);
            strcpy(p->mbph,mbph);
            strcpy(p->hmph,hmph);

        }
    }
/*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*/
    void main()
    {
        listlink head=NULL;
        int sel;
        head=readfp();
        if(head==NULL)
            head=create();
        do
        {
             printf("\n欢迎您用此管理系统!");
            printf("\n1.显示信息!      2.删除信息!");
            printf("\n3.查找信息!      4.追加信息!");
             printf("\n5.修改信息!                    ");
            printf("\n0.保存信息及退出系统!");
            printf("\n请输入您要操作的对应号码(0-5):");
            scanf("%d",&sel);
            switch(sel)
            {
            case 1:show(head);
                printf("press any to return");
                getchar();
                break;
            case 2:Delete(head);
                break;
            case 3:find(head);
                printf("press any to return");
                getchar();
                break;
            case 4:input(head);
                break;
            case 5:alter(head);
                break;
            case 0:save(head);
                return;
                        
            }
        }while(1);
    }
搜索更多相关主题的帖子: include person 
2011-12-22 21:47
利剑长风
Rank: 2
等 级:论坛游民
帖 子:11
专家分:32
注 册:2011-12-18
收藏
得分:3 
好长啊   我头都晕了
2011-12-22 22:12
lijy520
Rank: 2
等 级:论坛游民
帖 子:119
专家分:42
注 册:2007-8-8
收藏
得分:3 
解释什么?   

2011-12-22 22:12
小赵q1
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:4
帖 子:492
专家分:777
注 册:2011-8-26
收藏
得分:3 
初中毕业的我表示:全是英文看不懂,就算是变量也要设置个通俗易懂的吧,比如要定义边长就定义float chang;
解释可以用汉字的为什么一定要弄成英文的呀;唉我头都大了;
2011-12-23 04:07
飞扬冲天
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:86
专家分:122
注 册:2011-10-21
收藏
得分:3 
把你要求的解释说出来吧,不然太长了,看着头晕
2011-12-23 08:15
请问你好吗
Rank: 2
等 级:论坛游民
帖 子:64
专家分:51
注 册:2011-11-27
收藏
得分:0 
    typedef struct person
    {     char name[10];
          char addr[30];
          char offph[15];
          char mbph[15];
          char hmph[15];
          struct person *next;
    }listnode,*listlink;
/*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*/
    struct add_person
    {     char name[10]; FILE *fp;
        listlink p;
        static struct add_person persons;
        fp=fopen("people.txt","wb");


          char addr[30];
          char offph[15];
          char mbph[15];
          char hmph[15];
*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*/

   
2011-12-23 11:11
快速回复:学生系统求解释
数据加载中...
 
   



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

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