| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1280 人关注过本帖
标题:学生通讯录管理系统的注释
取消只看楼主 加入收藏
李小738
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2014-4-14
结帖率:50%
收藏
已结贴  问题点数:20 回复次数:5 
学生通讯录管理系统的注释
这是一道学生通讯录管理系统的c程序,我实在不懂改,有些改的地方是别人帮我改的,能帮我在‘// '后面加上注释么,在这里先谢谢好心人了,如果,你懂改,就先写序号,然后写文字。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define NULL 0
#define LEN sizeof(LNode)//1


int seat;//2

typedef struct LNode//3
{
 int number;
 double telenum;
 char name[20];
 struct LNode *next;
}LNode,*LinkList;


void printList(LinkList L)//4(显示通讯录)
{   
 printf("\n          ---------------------------------------\n");
 printf("               学号       姓名     电话号码\n");
 printf("          ----------------------------------------\n");
 LinkList p=L;
 int n=1;
 if(L==NULL||L->next==NULL)
     printf("该通讯录中没有元素\n");
 else
  while(p->next !=NULL)//5
  {
   printf("          %2d   %-9d",n,p->next->number);
   printf("    %-5s  %.0f\n",p->next->name,p->next->telenum);
   p=p->next;//
   n++;//6
  }
 printf("          ----------------------------------------\n");
 return ;
}

LinkList prior(LinkList L,LinkList p)//7(返回列表前一个列表求节点前一个节点的地址。)
{     
 if(L->next==NULL)
     return(L);//8
 LinkList p_prior=L;
 while(p_prior->next != p)//9
{
    p_prior=p_prior->next;
}
 return (p_prior);//10
}   

void insert(LinkList L,LinkList Elem) //11(实现插入功能)
{              
    LinkList p=L->next;
    while(p!=NULL && Elem->number>=p->number)//
    {
        if(p->number==Elem->number)
        {
            printf("重复输入!!\n");return;
        }
        p=p->next;
    }         
    if(p==NULL) //12
    {
        p=prior(L,p);
        Elem->next=NULL;
        p->next=Elem;
    }
    else   //  13  
    {
        p=prior(L,p);
        Elem->next=p->next;
        p->next=Elem;
    }
}

LinkList creatLink() //14(创建通讯录)
{
 LinkList L=(LinkList)malloc(LEN); //15 //
 L->next=NULL;
 LinkList p;
 int num=1;

 int number;
 double telenum;
 char name[20];
 printf("请输入学生学号、姓名和电话号码,建立通讯录,以'-1'为输入结束标志\n");
 printf("请输入学号 %d:",num);
 scanf("%d",&number);
 printf("请输入姓名 %d: ",num);
 char temp=getchar();
 gets(name);
 printf("请输入电话号码 %d:",num);
 scanf("%lf",&telenum);
 while (number>=0)//16
 {
  p=(LinkList)malloc(LEN);
  p->number=number;
  p->telenum=telenum;
  strcpy(p->name,name);
  insert(L,p);      
  num++;
  printf("请输入学号 %d:",num);
  scanf("%d",&number);
  printf("请输入姓名 %d: ",num);
  temp=getchar();
  gets(name);
  printf("请输入电话号码 %d:",num);
  scanf("%lf",&telenum);
 }
 return(L);//
}


void deleteElement(LinkList L,int i)   // 17  删除通讯录中的某一个表示)
{
 LinkList p=L;
 int j=0;
 while (p->next!=NULL&&j<i-1)//18
 {
  p = p->next;
  j++;
 }
if(p->next==NULL) //19
{
    printf("第%d个元素删除失败\n",i);
    return ;
}
LinkList q = p->next;
p->next = q->next;//20
free(q); //21
}

int searchNum(LinkList L,int n)//22(查找通讯录中的某一个按学号查找)
{   
 int flag=0;
 LinkList p=L->next;
 seat=1;
 if(L->next==NULL)
     printf("该链表中没有元素,查找失败\n");
 else
 {
  while(p !=NULL)
  {
   if(p->number<=n)//23
    if(p->number==n)
    {
       flag=1;
       printf("要查找的是第%d位通讯者:\n",seat);
       printf("                        学号: %d   姓名: %s   电话号码.:%.0f\n",p->number,p->name,p->telenum);
    }
   p=p->next;
   seat++;//
  }
 }
 return flag;//24
}

int searchName(LinkList L,char n[])//25
{   
 int flag=0;
 LinkList p=L->next;
 seat=1;
 if(L->next==NULL||L==NULL)
    printf("该通讯录中没有元素,查找失败\n");
 else
 {
  while(p !=NULL)
  {
   if(!strcmp(p->name,n))//26
   {
    flag=1;
    printf("要查找的是第%d位通讯者:\n",seat);
    printf("                        Number: %d   Name: %s   TeleNo.:%.0f\n",p->number,p->name,p->telenum);
   }
   p=p->next;
   seat++;
  }
 }
 return flag;//27
}

int delNum(LinkList L,int n)//28
{   
 int flag=0;
 LinkList p=L->next;
 seat=1;
 if(L->next==NULL)
    printf("该链表中没有元素,删除失败\n");
 else
 {
  while(p !=NULL)
  {
   if(p->number<=n)
   {
    if(p->number==n)
    {
       flag=1;
       printf("%d ",p->number);
       p=p->next;
       deleteElement(L,seat);
       break;//29
    }
    else
    {
        p=p->next;
        seat++;
    }
   }
   else
       break;
  }
  if(flag)
      printf("被删除\n");//30
 }
 return flag;
}


int delName(LinkList L,char n[])//31
{        
 int flag=0;
 LinkList p=L->next;
 seat=1;
 if(L->next==NULL)
    printf("该链表中没有元素,查找失败\n");
 else
 {
  while(p !=NULL)
  {
   if(!strcmp(p->name,n))
   {
    flag=1;
    printf("%s ",p->name);
    p=p->next;
    deleteElement(L,seat);
    break;//32
   }
   else
   {
       p=p->next;
       seat++;
   }//
  }
  if(flag)
      printf("被删除\n");
 }
 return flag;
}

void main()
{
 system("color 1f");   
 LinkList L=NULL;//33
 printf("\n           ***************** ^@^欢迎使用通讯录系统***********\n");
 printf("           *               1 通讯录的建立                   *\n");      
 printf("           *               2 插入通讯记录                   *\n");
 printf("           *               3 查询通讯记录                   *\n");
 printf("           *               4 删除通讯记录                   *\n");
 printf("           *               5 显示通讯录信息                 *\n");
 printf("           *               0 退出管理系统                   *\n");
 printf("           **************** ^@^欢迎使用通讯录系统************\n");
 int flag=0;
 int menu;
 printf("请选择0-5:");
 scanf("%d",&menu);//34
 while(menu!=0)//35
 {
 switch(menu)
 {
  case 1://36
     {
    L=creatLink();//37
    printf("建立通讯录:");
    printList(L);//38
    flag=1;//39
    break;
      }
  case 2://
      {
          if(flag==1)//40
          {
           int number,telenum;
           char name[20];
           printf("请输入通讯者的学号和姓名:\n");
           printf("请输入学号: ");
           scanf("%d",&number);
           printf("请输入姓名: ");
           char temp=getchar();
           gets(name);
           printf("请输入电话号码: ");
           scanf("%d",&telenum);
           LinkList p=(LinkList)malloc(LEN);
           p->number=number;
           strcpy(p->name,name);
           p->telenum=telenum;
           insert(L,p);   // 41   
           printf("插入后:");
           printList(L);
          }
          else
              printf("\nERROR: 通讯录还没有建立,请先建立通讯录\n");
          break;
      }
  case 3://
      {
          int way,n;
          char na[20];
          int s;
          if(L!=NULL)//42
          {
              if(flag)
              {
                  printf("选择查找方式:\n");
                  printf("               1.按学号   2.按姓名\n");
                  scanf("%d",&way);
                  if(way==1)//43
                  {
                      printf("\n请输入学号:");
                      scanf("%d",&n);
                      s=searchNum(L,n);//44
                      if(s==0)
                          printf("无此通讯者,查找失败!\n");
                  }
                  else
                  if(way==2)//45
                  {
                      printf("\n请输入姓名:");
                      char temp=getchar();
                      gets(na);
                      s=searchName(L,na);//46
                      if(s==0)
                          printf("无此通讯者,查找失败!\n");
                  }
                  else
                      printf("通讯录中无记录!\n");
              }
              break;
          }
          else
              printf("通讯录中无记录!\n");
              break;
      }
  case 4://
      {
          int way;
          printf("选择删除方式:1.按序号  2. 按学号  3.按姓名 \n");
          scanf("%d",&way);
          if(way==1)//47
          {
              int n;
              printf("\n请输入通讯录序号: ");
              scanf("%d",&n);
              printf("删除后:\n");
              deleteElement(L,n);//48
              printList(L);
          }
          else
          if(way==2)//49
          {
              int n,f;
              printf("\n请输入学号: ");
              scanf("%d",&n);
              f=delNum(L,n);//50
              if(f!=0)
              {
                  printf("删除后:\n");
                  printList(L);
              }
              else
                  printf("无该学号,删除失败!\n");
          }
          else
          if(way==3)//51
          {
              char na[20];
              int f;
              printf("\n请输入姓名:");
              char temp=getchar();
              gets(na);
              f=delName(L,na);//52
              if(f!=0)
              {
                  printf("删除后:\n");
                  printList(L);
              }
              else
                  printf("无该学号,删除失败!\n");
          }
          else
              printf("ERROR!!\n");
          break;
      }
  case 5://
      {
          printf("当前通讯录内容如下:\n");
          printList(L);//53
          break;
      }
  case 0: exit(0);//
  default:  printf("\n没有此功能,重新输入\n");
 }
 printf("\n           ***************** ^@^欢迎使用通讯录系统***********\n");
 printf("           *               1 通讯录的建立                   *\n");      
 printf("           *               2 插入通讯记录                   *\n");
 printf("           *               3 查询通讯记录                   *\n");
 printf("           *               4 删除通讯记录                   *\n");
 printf("           *               5 显示通讯录信息                 *\n");
 printf("           *               0 退出管理系统                   *\n");
 printf("           **************** ^@^欢迎使用通讯录系统************\n");
 printf("选择功能:");
 scanf("%d",&menu);
}
}

搜索更多相关主题的帖子: 管理系统 include 通讯录 double number 
2014-05-11 10:28
李小738
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2014-4-14
收藏
得分:0 
回复 2 楼 kwxx
你能把都写的写么,写多少都可以的,谢谢了,程序太长,我看不懂
2014-05-11 13:45
李小738
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2014-4-14
收藏
得分:0 
回复 4 楼 xiaozi2013
能写多少是多少啦,郑因为太多,我才想靠大家的力量
2014-05-11 13:46
李小738
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2014-4-14
收藏
得分:0 
回复 3 楼 top398
程序太长了,我看不懂
2014-05-11 13:47
李小738
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2014-4-14
收藏
得分:0 
回复 楼主 李小 738
这只能说明老师太厉害了
2014-05-11 13:57
李小738
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2014-4-14
收藏
得分:0 
回复 10 楼 封尘之魂
好吧,谢谢了,能看就非常感谢了
2014-05-11 18:35
快速回复:学生通讯录管理系统的注释
数据加载中...
 
   



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

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