C语言通讯录管理系统课程设计

本文实例为大家分享了C语言通讯录管理系统课程设计,供大家参考,具体内容如下

#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
struct Sign{
    char name[8];
    char sex[4];
    char birthday[12];
    char phone[11];
    char postcode[7];
    char addr[30];
    struct Sign *next;
  }pe;
  char PhoneCop[4] ; 

//结构体
struct Sign *p1,*p2,*head;
FILE *fp;
void ShowMenu(){
  system("color 1F");
  printf("#################     通讯录管理系统 v1.0  ###################\n");
  printf("#####################################################################\n");
  printf("#                                  #\n");
  printf("#      1-----------------信息录入-------------------      #\n");
  printf("#                                  #\n");
  printf("#      2-----------------信息查询-------------------      #\n");
  printf("#                                  #\n");
  printf("#      3-----------------信息查看-------------------      #\n");
  printf("#                                  #\n");
  printf("#      4-----------------信息修改-------------------      #\n");
  printf("#                                  #\n");
  printf("#      5-----------------信息统计-------------------      #\n");
  printf("#                                  #\n");
  printf("#      6-----------------退出系统-------------------      #\n");
  printf("#                                  #\n");
  printf("#####################################################################\n");
  printf("#   POWER BY *************  兰州理工大学   201407      #\n");
  printf("#####################################################################\n"); 

};
void HeadShow()
{
  printf("#################     通讯录管理系统 v1.0  ###################\n");
  printf("---------------------------------------------------------------------\n"); 

}
void FileLoading()
{
    if((fp=fopen("txl.dat","rb"))==NULL)
  {
    printf("文件操作错误,请检查是否有权限操作文件!");
    Sleep(3000);
    exit(1);
  }
  p1=(struct Sign*)malloc(sizeof(struct Sign));
  p1->next=NULL;
  head=p1;
  while(!feof(fp))
  {
    if(fread(p1,sizeof(struct Sign),1,fp)!=1)
      break;
    p2=(struct Sign*)malloc(sizeof(struct Sign));
    p2->next=NULL;
    p1->next=p2;
    p1=p2;
  }
  fclose(fp);
}
void add()
{
  char ch;
  if((fp==fopen("txl.dat","ab+"))!=1)
  {
    printf("文件打开失败");
    exit(1);
  }
  while(1)
  {  system("cls");
    printf("请输入__\n");
    p2=(struct Sign*)malloc(sizeof(struct Sign));
    p2->next=NULL;
    printf("姓名:");scanf("%s",pe.name);
    printf("性别:");scanf("%s",pe.sex);
    printf("生日:");scanf("%s",pe.birthday);
    printf("电话号码:");scanf("%s",pe.phone);
    printf("邮编:");scanf("%s",pe.postcode);
    printf("地址:");scanf("%s",pe.addr);
    strcpy(p1->name,pe.name);
    strcpy(p1->sex,pe.sex);
    strcpy(p1->birthday,pe.birthday);
    strcpy(p1->phone,pe.phone);
    strcpy(p1->postcode,pe.postcode);
    strcpy(p1->addr,pe.addr);
    p1->next=p2;
    p1=p2;
    if(fwrite(&pe,sizeof(struct Sign),1,fp)!=1)
      printf("写入错误");
    printf("输入E或e来结束输入?");
    getchar();
    ch=getchar();
    if(ch=='e'||ch=='E')
      break; 

  }
  fclose(fp);
}
void SaveChange()
{
  if((fp==fopen("txl.dat","w"))!=1)
  {
    printf("文件打开失败");
    exit(1);
  }
  p1=head;
  while(p1->next!=NULL)
  {
    if(fwrite(p1,sizeof(struct Sign),1,fp)!=1)
      printf("写入错误");
    p1=p1->next; 

  }
  fclose(fp);
}
void AllShow()
{
  HeadShow();
  printf("%10.8s %6.6s %10.10s %11.4s %9.7s %16.6s \n","姓名","性别","生日","电话","邮编","地址");
  printf("---------------------------------------------------------------------\n");
  p1=head;
  while(p1->next!=NULL)
  {
    printf("%10.8s %6.6s %10.12s %11.11s %9.7s %16.16s \n",p1->name,p1->sex,p1->birthday,p1->phone,p1->postcode,p1->addr);
    p1=p1->next; 

  }  

} 

void AllNum()
{  int i=0;
  HeadShow();
  printf("     共有记录条数为:  \n");
  printf("---------------------------------------------------------------------\n");
  p1=head;
    while(p1->next!=NULL)
  {
    i++;
    p1=p1->next; 

  }
  printf("     %d         \n",i);
  printf("---------------------------------------------------------------------\n"); 

  printf("     共有联通用户为:  \n");
  printf("---------------------------------------------------------------------\n");
  p1=head;
  i=0;
    while(p1->next!=NULL)
  {
    strncpy(PhoneCop,p1->phone,3);
    if(strcmp(PhoneCop,"130")==0||strcmp(PhoneCop,"131")==0||strcmp(PhoneCop,"132")==0||strcmp(PhoneCop,"155")==0||strcmp(PhoneCop,"156")==0||strcmp(PhoneCop,"185")==0||strcmp(PhoneCop,"186")==0)
      i++;
    p1=p1->next; 

  }
  printf("     %d         \n",i);
  printf("---------------------------------------------------------------------\n");
  printf("     共有移动用户为:  \n");
  printf("---------------------------------------------------------------------\n");
  p1=head;
  i=0;
    while(p1->next!=NULL)
  {
    strncpy(PhoneCop,p1->phone,3);
    if(strcmp(PhoneCop,"134")==0||strcmp(PhoneCop,"135")==0||strcmp(PhoneCop,"136")==0||strcmp(PhoneCop,"137")==0||strcmp(PhoneCop,"138")==0||strcmp(PhoneCop,"139")==0||strcmp(PhoneCop,"150")==0||strcmp(PhoneCop,"151")==0||strcmp(PhoneCop,"152")==0||strcmp(PhoneCop,"157")==0||strcmp(PhoneCop,"158")==0||strcmp(PhoneCop,"159")==0||strcmp(PhoneCop,"187")==0||strcmp(PhoneCop,"188")==0)
      i++;
    p1=p1->next; 

  }
  printf("     %d         \n",i);
  printf("---------------------------------------------------------------------\n");
    printf("     共有电信用户为:  \n");
  printf("---------------------------------------------------------------------\n");
  p1=head;
  i=0;
    while(p1->next!=NULL)
  {
    strncpy(PhoneCop,p1->phone,3);
    if(strcmp(PhoneCop,"180")==0||strcmp(PhoneCop,"189")==0||strcmp(PhoneCop,"133")==0||strcmp(PhoneCop,"153")==0)
      i++;
    p1=p1->next; 

  }
  printf("     %d         \n",i);
  printf("---------------------------------------------------------------------\n");
}
void CheckFace()
{  int Check_key;
  printf("###########     通讯录管理系统 v1.0  ################\n");
  printf("############################################################\n");
  printf("#                             #\n");
  printf("#         1------按姓名查询            #\n");
  printf("#                             #\n");
  printf("#         2------按电话号码查询          #\n");
  printf("#                             #\n");
  printf("#         3------综合查询             #\n");
  printf("#                             #\n");
  printf("#         4------退出查询模块           #\n");
  printf("#                             #\n");
  printf("#                             #\n");
  printf("#                             #\n");
  printf("############################################################\n");
  printf("#  POWER BY *************  兰州理工大学   201407   #\n");
  printf("############################################################\n"); 

}
void Selelctname()
{  system("cls");
  HeadShow();
  printf("%10.8s %6.6s %10.10s %11.4s %9.7s %16.6s \n","姓名","性别","生日","电话","邮编","地址");
  printf("---------------------------------------------------------------------\n");
  p1=head;
  char FindName[8];
  int i=0;
  printf("请输入要查询的姓名:");
  scanf("%s",&FindName);
  while(p1->next!=NULL)
  {
    if(strcmp(p1->name,FindName)==0)
      {printf("%10.8s %6.6s %10.10s %11.14s %9.7s %16.16s \n",p1->name,p1->sex,p1->birthday,p1->phone,p1->postcode,p1->addr);
      i++;
      }
    p1=p1->next; 

  }
  printf("共 %d 条\n",i);
  system("pause");
}  

void Selelctphone()
{  system("cls");
  HeadShow();
  printf("%10.8s %6.6s %10.10s %11.4s %9.7s %16.6s \n","姓名","性别","生日","电话","邮编","地址");
  printf("---------------------------------------------------------------------\n");
  p1=head;
  char phone[11];
  int i=0;
  printf("请输入要查询的电话号码:");
  scanf("%s",&phone);
  while(p1->next!=NULL)
  {
    if(strcmp(p1->phone,phone)==0)
      {printf("%10.8s %6.6s %10.10s %11.4s %9.7s %16.6s \n",p1->name,p1->sex,p1->birthday,p1->phone,p1->postcode,p1->addr);
      i++;
      }
    p1=p1->next; 

  }
  printf("共 %d 条\n",i);
  system("pause");
}
void Selelctall()
{  system("cls");
  HeadShow();
  printf("%10.8s %6.6s %10.10s %11.4s %9.7s %16.6s \n","姓名","性别","生日","电话","邮编","地址");
  printf("---------------------------------------------------------------------\n");
  p1=head;
  char all[30];
  int i=0;
  printf("请输入任意一项要查询的内容:");
  scanf("%s",&all);
  while(p1->next!=NULL)
  {
    if(strcmp(p1->name,all)==0||strcmp(p1->sex,all)==0||strcmp(p1->birthday,all)==0||strcmp(p1->phone,all)==0||strcmp(p1->postcode,all)==0||strcmp(p1->addr,all)==0)
      {printf("%10.8s %6.6s %10.10s %11.11s %9.7s %16.16s \n",p1->name,p1->sex,p1->birthday,p1->phone,p1->postcode,p1->addr);
      i++;
      }
    p1=p1->next; 

  }
  printf("共 %d 条\n",i);
  system("pause");
}
void Change()
{  char ChangeName[8];
  int changekey;
  system("cls");
  HeadShow();
  int i,y=0;
  p1=p2=head;
  printf("请输入你要修改的条目的姓名:");
  scanf("%s",&ChangeName);
    getchar();
  while(p1!=NULL)
  {
  if(strcmp(p1->name,ChangeName)==0)
    {  printf("%10.8s %6.6s %10.10s %11.11s %9.7s %16.16s \n",p1->name,p1->sex,p1->birthday,p1->phone,p1->postcode,p1->addr);
      printf("您要修改的是这条记录吗?1---是|2---否\n");
      scanf("%d",&i);
      if(i==1)
      { y=1;
      printf("你要修改的通讯录为:\n");
      printf("%10.8s %6.6s %10.10s %11.11s %9.7s %16.16s \n",p1->name,p1->sex,p1->birthday,p1->phone,p1->postcode,p1->addr);
      printf("请选择您的操作   1---删除|2---修改\n");
      scanf("%d",&changekey);
      if(changekey==1)
       {
        if(p1==head)
         {head=p1->next;
         free(p1);
         }
         else
         {
        p2->next=p1->next;
        free(p1);
        SaveChange();   

       } 

    }
    else if(changekey==2)
    {
      printf("姓名:");scanf("%s",p1->name);
      printf("性别:");scanf("%s",p1->sex);
      printf("生日:");scanf("%s",p1->birthday);
      printf("电话:");scanf("%s",p1->phone);
      printf("邮编:");scanf("%s",p1->postcode);
      printf("地址:");scanf("%s",p1->addr);
      SaveChange();
      printf("\n OK!  \n");
    }
      }       

    }
  else if(strcmp(p1->name,ChangeName)&&(p1->next)==NULL)
    {
      i=0;        

    }
    p2=p1;
    p1=p1->next;
  } 

   if(y==0)
  {
    printf("对不起,没有找到要修改的通讯名单,请检查你要修改的姓名是否正确\n");
  } 

  system("pause");
}
void ExirShow()
{
  system("color 0E");
  printf("###########     通讯录管理系统 v1.0  ################\n");
  printf("############################################################\n");
  printf("#                             #\n");
  printf("#                             #\n");
  printf("#                             #\n");
  printf("#                             #\n");
  printf("#                             #\n");
  printf("#           谢谢使用!              #\n");
  printf("#                             #\n");
  printf("#                             #\n");
  printf("#                             #\n");
  printf("#                             #\n");
  printf("#                             #\n");
  printf("############################################################\n");
  printf("#  POWER BY *************  兰州理工大学   201407   #\n");
  printf("############################################################\n"); 

}
void ErrorShow()
{  int errortime=5;
  system("color 0E");
  for(errortime=5;errortime>0;errortime--)
    {printf("\r输入错误!请仔细检查!将在%d秒后返回",errortime);
     Sleep(1000);
    } 

}
int main()
{  int key;
  int Ex_key;
  int Check_key;
  char a[10];
  if((fp=fopen("txl.dat","ab"))==NULL)
  {
    printf("文件操作错误,请检查是否有权限操作文件!");
    Sleep(3000);
    exit(1);
  }
  fclose(fp);
  FileLoading();
  while(1){
  ShowMenu();
  gets(a);
  key=atoi(a);
  if(key==1)
    {system("cls");
    add();
    }
  else if(key==2)
    {  system("cls"); 

      system("color 0E");
    while(1)
       {
      system("color 0E");
      CheckFace();
      printf("请输入你的选择:\n");
      gets(a);
      Check_key=atoi(a);
      if(Check_key==1)
        Selelctname()
      ;
      else if(Check_key==2)
        Selelctphone()
      ;
      else if(Check_key==3)
        Selelctall()
      ;
      else if(Check_key==4) 

      break;
      else
      ErrorShow();
      system("cls");
      system("color 1F");
      getchar(); 

    }   

    } 

  else if(key==3)   //2013级 耿。。
  {  system("color 0E");
    system("cls");
    AllShow();
    system("pause");
  }
  else if(key==4)
    {
      system("color 0A");
      Change(); 

    }
  else if(key==5)
    {
    system("color 5F");
    system("cls");
    AllNum();
    system("pause");
     }
  else if(key==6)
    {
    system("cls");
    ExirShow();
    Sleep(1000);
    exit(0);
    } 

  else  

    ErrorShow();
    system("cls");
    system("color 1F");
    getchar();
  } 

}

比较简单就是用到了链表和文件操作,其中统计联通和移动人数的那里其实只用一个循环就可以。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • C语言数据结构之学生信息管理系统课程设计

    本文实例为大家分享了学生信息管理系统设计的具体代码,供大家参考,具体内容如下 建立一个动态链表,链表中每一结点包括:学号.姓名.性别.年龄.成绩.程序能实现以下功能: 建立链表      显示链表      查找链表中是否存在某个元素,并显示这个元素的所有信息,若没有这个元素则显示"无此记录!"的信息.      删除链表中指定学号的结点.      在链表中指定的位置插入一个新结点(学号不能和其他结点重复). 要求:程序运行中,先显示实现以上功能所构成的菜单,然后根据选项调用相应程序

  • C语言银行系统课程设计

    本文为大家分享了C语言银行系统课程设计,供大家参考,具体内容如下 main.c #include <stdio.h> #include <stdlib.h> #include <string.h> #include <conio.h> #include <windows.h> #define MaxNum 200 #define N_P 6 typedef struct { int AccountNumber[3]; char name[20];

  • C语言学生学籍管理系统课程设计

    C语言学生学籍管理系统做了好长时间的,里面有点小问题,希望大佬找到并帮忙改改,注意输入密码三次错误会自动注销用户,密码123456 代码: #include<stdio.h> #include<stdlib.h> #include<string.h> #include<conio.h> struct student { char xuehao[100];//输入学号 char name[100];//输入姓名 char sex[100];//输入性别 int

  • C语言实现学生选修课程系统设计

    本文实例为大家分享了C语言学生选修课程系统的具体代码,供大家参考,具体内容如下 我编程的时间不长,所以这里面肯定有一些错误,或者存在更好的解决方案,欢迎大神上课!谢谢! ps:寻找一起学习的小伙伴! 代码: /********************************* *主题:学生选修课程系统设计 * *设计要求: *1.添加功能:程序能够任意添加课程和学生记录,可提供选择界面供用户选择所需要添加的类别,要求编号要唯一,如果添加了重复编号的记录是,则提示数据添加重复并取消添加. *2.查

  • C语言图书管理系统课程设计

    这是本人大一第二学期初C语言课程设计的作品,嘿嘿,本来以为已经找不到原稿了,今天无意中竟然在QQ网络硬盘中找到了当初的teta版,发布于此,以作纪念. C 源代码如下: #include<stdio.h> #include<stdlib.h> #include<string.h> struct book{ char book_name[30]; int bianhao; double price; char author[20]; char state[20]; cha

  • C语言学生成绩管理系统课程设计

    学生成绩管理系统是比较适合初学者的.它涵盖了c语言几乎知识.对于学了c语言的人,把这个课程设计搞好(当然自己能设计出来是要有很好的基础).不管自己能不能够完成,最重要的是能弄懂.参考其他资料,试着自己编写是不错的选择.这个课程设计也是我参照资料,自己编写的.自己适当地增加了一些功能.不过,编的不够那么专业吧. #include<stdio.h> #include<string.h> #include<stdlib.h> #define size 100 char* cl

  • 基于C语言实现学生选课系统

    鉴于C语言实现的通讯录,为了巩固C语言的基础知识,试着写一个简单的学生选课系统. 思路比较简单: 1.回滚显示各种提示信息或操作信息 2.链表操作. 代码中有管理员部分功能没有实现,学生和老师的功能基本实现,但有待加固,如果初学者可是试着去完善一下. 还可以将老师,学生的信息输出到文件文本中,本代码中没有实现,但并不是很难. 代码如下: #include <stdio.h> #include <stdlib.h> #include <string.h> /* 总链表--

  • C语言实现学生选课系统

    本文实例为大家分享了C语言实现学生选课系统的具体代码,供大家参考,具体内容如下 代码: #include<stdio.h> #include<windows.h> #include<stdlib.h> #include<conio.h> typedef unsigned char uint8_t; typedef unsigned short uint16_t; typedef unsigned int uint32_t; #define CLASS_CLS

  • C语言通讯录管理系统课程设计

    本文实例为大家分享了C语言通讯录管理系统课程设计,供大家参考,具体内容如下 #include <stdio.h> #include <stdlib.h> #include <windows.h> struct Sign{ char name[8]; char sex[4]; char birthday[12]; char phone[11]; char postcode[7]; char addr[30]; struct Sign *next; }pe; char Ph

  • C语言通讯录管理系统完整版

    C语言实现了通讯录的录入信息.保存信息.插入.删除.排序.查找.单个显示等功能.. 完整的代码如下: #include <stdio.h> #include <malloc.h> //得到指向大小为Size的内存区域的首字节的指针// #include <string.h> #include <stdlib.h> //标准库函数// #define NULL 0 #define LEN sizeof(struct address_list) //计算字节//

  • C++实现图书管理系统课程设计(面向对象)

    本文实例为大家分享了C++实现图书管理系统课程设计,供大家参考,具体内容如下 1.题目: [1]:工作人员登录后,可以进行的操作 添加学生的信息(学号,姓名,院系,最大借阅的图书数量等):修改学生的信息(学号,姓名,院系,最大借阅的图书数量等):删除学生的信息(学号,姓名,院系,最大借阅的图书数量等):如果某个学生退学,就要清除他的信息:查看学生的信息:添加图书的信息(图书号,书名,作者,出版社,数量等):修改图书的信息(图书号,书名,作者,出版社,数量等):删除图书的信息(图书号,书名,作者,

  • C语言学生成绩管理系统课程设计word版

    一份C语言学生成绩管理系统设计报告,分享给大家 一.课程设计题目 <学生成绩管理系统设计> 二.实训目的 (1)掌握结构化程序设计的基本方法,基本掌握面向对象程序设计的基本思路和方法. (2)掌握C++的基本概念和基础知识. (3)通过训练能够读懂较为复杂的C++语言源程序并具备基本C++语言程序设计的能力. (4)通过实训,培养自己编写.调试.分析程序的能力. (5)培养自己独立解决问题,查找资料的能力.同学之间相互帮助,相互交流,相互合作的团队精神. (6) 培养自己良好的学习兴趣,独立的

  • C语言实现班档案管理系统课程设计

    本文实例为大家分享了C语言班档案管理系统的具体代码,供大家参考,具体内容如下 做的挺长时间的课程设计,当作参考吧 #include<stdio.h> #include<stdlib.h> #include<string.h> #define N 20 struct student { long num; char name[20]; char sex[10]; int age; char bz[40]; struct student *next; }; int i,j,

  • C语言实现电话簿管理系统课程设计

    本文实例为大家分享了C语言课程设计:电话簿管理系统,供大家参考,具体内容如下 文件目录: 初始界面 现在显示一部分代码: //添加联系人 void add() { int i; FILE *fp1;//定义文件指针fp1,使其指向电话簿文本文件 fp1=fopen("电话簿.txt","a+"); printf("请输入要增加的联系人的个数:"); scanf("%d",&n); for(i=num;i<num+

  • C语言实现学生宿舍信息管理系统课程设计

    本文实例为大家分享了C语言实现学生宿舍信息管理系统的具体代码,供大家参考,具体内容如下 一.问题陈述 宿舍对于大学生在校生活来说相当于家的存在,而宿舍管理又是学校后勤管理的重要环节,如何直观的了解宿舍的入住情况和每位同学的住宿位置是提高工作效率的重要课题,根据我们所学的C语言和数据结构课程中有关链表的内容,为宿舍管理人员编写宿舍管理查询软件,就可以轻松满足实现上述需求. 任务: 1.为宿舍管理人员编写一个宿舍管理查询软件, 程序设计要求:1).采用交互工作方式2).可按关键字(姓名.学号.房号)

  • C语言实现宾馆管理系统课程设计

    本文实例为大家分享了C语言实现宾馆管理系统的具体代码,供大家参考,具体内容如下 课程设计题目: 宾馆管理系统 一.需求分析 近年来,科技进步不仅促进了全球旅游企业的快速增长,而且指导了旅游者消费观念的 更新,其中信息与通信技术的发展对酒店等企业有着深远的影响,传统的管理方式已不 能满足具有信息量大,查询量大,保存期长,要求不间断运行等特点的宾馆管理需求, 重视信息技术的发展成为我国酒店业的共识.为增强竞争能力,提高管理水平,先进的 宾馆管理系统已成为必然.宾馆管理系统可以及时了解客户信息与需求,

随机推荐