返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >怎么用C语言实现简单通讯录管理系统
  • 214
分享到

怎么用C语言实现简单通讯录管理系统

2023-06-20 17:06:30 214人浏览 八月长安
摘要

本篇内容主要讲解“怎么用C语言实现简单通讯录管理系统”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么用C语言实现简单通讯录管理系统”吧!C语言实现的通讯录管理系统,供大家参考,具体内容如下设计

本篇内容主要讲解“怎么用C语言实现简单通讯录管理系统”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么用C语言实现简单通讯录管理系统”吧!

C语言实现的通讯录管理系统,供大家参考,具体内容如下

设计一个学生通信录,学生通迅录数据信息构成内容可自行设计(如:学号、姓名、电话号码、所在班级、寝室地址等),通信录数据类型定义为结构体类型。

主要实现功能包括:

(1)创建学生通讯录
(2)修改学生通讯录
(3)增删学生通讯录
(4)能够按多种方式进行查询(如:①按学号查询;②按所在班级查询)

源代码:

#define _CRT_SECURE_NO_WARNINGS #include<stdio.h>#include<string.h>#include<coNIO.h>#include<stdlib.h>#include<windows.h>#include<time.h>typedef struct people{ char name[10]; //姓名 char IDnumber[20];//学号 char phone[15];   // 手机号 int classNum; //班级 char roomID[10];   //寝室 }people;  //定义别名people//函数模块定义void UI_show();//进入界面 UI 实现void NEW_in(); //新学生信息添加void OLD_adjust();//修改学生信息void OLD_delete(); //删除学生信息void OLD_find();  //学生信息查找void OLD_findByNum();//通过学号查找void OLD_findByName();//通过姓名查找//各种UI界面显示void UI_show1();void UI_show2();void UI_show3();void UI_show4();void UI_show5();void UI_show6();//=======================================================================//进入界面 UI 实现void UI_show(){ int i; //-------------------------------------------------------------------- printf("\n"); for (i = 0; i < 75; i++)   //数字用来  控制 上方 = 数量  {  printf("="); } printf("\n"); for (i = 0; i < 30; i++) {  printf(" "); } printf("欢迎进入通讯录管理系统"); for (i = 0; i < 30; i++) {  printf(" "); } printf("\n"); for (i = 0; i < 75; i++)    {  printf("="); } //实现上方欢迎界面//-------------------------------------------------------------------- printf("\n\n\n"); for (i = 0; i < 33; i++)                          //以下实现  菜单界面功能选择 {  printf(" "); } printf("请选择以下功能:\n"); for (i = 0; i < 33; i++) {  printf(" "); } printf("1、添加学生通讯录\n"); for (i = 0; i < 33; i++) {  printf(" "); } printf("2、修改学生通讯录\n"); for (i = 0; i < 33; i++) {  printf(" "); } printf("3、删除学生通讯录\n"); for (i = 0; i < 33; i++) {  printf(" "); } printf("4、查找通讯录信息\n"); for (i = 0; i < 33; i++) {  printf(" "); } printf("5、退出系统"); printf("\n\n"); for (i = 0; i < 75; i++)   //数字  控制 上方 = 数量  {  printf("="); } printf("\n\n"); for (i = 0; i < 33; i++) {  printf(" "); } printf("请选择:"); //实现界面UI}//=======================================================================//添加学生到通讯录void NEW_in(){ FILE* fp = NULL; //定义文件指针    fp = fopen("output.txt", "a");//以追加的方式打开 文件 if (fp == NULL) {  printf("\n出现未知错误!按任意键退出.....\n");  exit(0); } int classNum;  //班级 char name[10]; //姓名 char IDnumber[20];//学号 char phone[15];   // 手机号 char roomID[10];   //寝室  char ch;  //键盘输入选择 system("cls"); //清屏  UI_show1();  // 界面显示1; while (1)     //进入循环体,直到接收到信息 跳出循环 {  printf("请输入姓名:");  scanf("%s", name);  printf("请输入学号:");  scanf("%s", IDnumber);  printf("请输入联系电话:");  scanf("%s", phone);  printf("请输入寝室:");  scanf("%s", roomID);  printf("请输入班级:");  scanf("%d", &classNum);    //缓冲区保存到文件  fprintf(fp, "%s  %s  %s  %s  %d  \n", name,  IDnumber, phone, roomID, classNum);  do           // 接收字符 判断是否 继续录入用户信息  {   printf("是否继续录入?请选择(Y/N)");   getchar();   //接收 回车键   scanf("%c", &ch);  } while ((ch != 'Y') && (ch != 'y') && (ch != 'n') && (ch != 'N'));  if ((ch == 'n') || (ch == 'N'))  {   fclose(fp);  //如果用户 输入N 则保存 并退出程序   break;  } }}//=========================================================================//修改学生通讯录信息void OLD_adjust()      //    先将硬盘文件中数据 保存到 内存缓冲区中,找到要修改的用户信息,修改后 重新写入文档{ system("cls");        //清屏 people peopleI[100];//建立结构体 数组 int number = 0, sign = 0, i = 1, a, test; char name[10], ch; int classNum;  //班级 char IDnumber[20];//学号 char phone[15];   // 手机号 char roomID[10];   //寝室 FILE* fp = NULL;  //文件指针 UI_show2();       //UI调用 fp = fopen("output.txt", "r+");     //以读写的方式打开文件 if (fp == NULL)                                                      // 错误检测 {  printf("文件打开失败!请先添加用户信息!\n");  return;  } printf("请输入要修改的学生姓名:"); scanf("%s", name); while (!feof(fp))  //从文件中读取 {  fscanf(fp, "%s %s %s %s %d", peopleI[i].name,  peopleI[i].IDnumber, peopleI[i].phone, peopleI[i].roomID, &peopleI[i].classNum);  i++;     //记录行的个数 }  printf("\n"); i--; test = i;  //保存 数据的行数 for ( ; i >= 0; i--) {  a = strcmp(name, peopleI[i].name);  //比较 输入的用户名  和文件中的用户名  if (a == 0)  {   sign = 1;  //判断 赋值1  代表找到 该数据   printf("姓名%s,学号%s,联系电话%s,寝室%s,班级%d\n", peopleI[i].name, peopleI[i].IDnumber, peopleI[i].phone, peopleI[i].roomID,peopleI[i].classNum);   do   // 友情提示 选择   {    printf("你确定要修改该用户的信息吗?(Y/N):");    getchar();    scanf("%c", &ch);   } while ((ch != 'Y') && (ch != 'y') && (ch != 'n') && (ch != 'N'));   if ((ch == 'y') || (ch == 'Y'))  //如果 选y则 录入信息   {    printf("请输入姓名:");          scanf("%s", name);  printf("请输入学号:");  scanf("%s", IDnumber);  printf("请输入联系电话:");  scanf("%s", phone);  printf("请输入寝室:");  scanf("%s", roomID);  printf("请输入班级:");  scanf("%d", &classNum);    printf("修改成功!");    fclose(fp);  //关闭文件    fp = fopen("output.txt", "w");    for (i = 1; i < test; i++) //将内存中 修改过的信息 重新写入文件    {     fscanf(fp, "%s %s %s %s %d", peopleI[i].name,  peopleI[i].IDnumber, peopleI[i].phone, peopleI[i].roomID, &peopleI[i].classNum);  }    fclose(fp);    break; //跳出 for循环   }   else  //假如不修改信息  再次写入文件   {        fclose(fp);    break;   }  } } if (sign == 0) {  printf("没找到该用户!\n请按任意键继续....");  getchar(); }}//===============================================================================//删除住户信息的功能void OLD_delete(){ //  先将硬盘文件中数据 保存到 内存缓冲区中,找到要删除的用户信息,删除后 重新写入文档 system("cls");  //清屏 people peopleI[10000];//建立结构体 数组 int number = 0, len = 0, sign = 0, i = 1, a, test, j; char name[10], ch; FILE* fp = NULL;  //文件指针 UI_show3(); fp = fopen("output.txt", "r"); if (fp == NULL) {  printf("未找到文件!");  return;    //返回 main函数 } printf("请输入要删除的住户姓名:"); scanf("%s", name); while (!feof(fp))  //从文件中读取,文件中数据转移到内存数组中区 {     //!feof(fp)只要文件不到末尾 就一直读下去  fscanf(fp, "%s %s %s %s %d", peopleI[i].name,  peopleI[i].IDnumber, peopleI[i].phone, peopleI[i].roomID, &peopleI[i].classNum);  i++; } ///------------------------------------  fclose(fp);  //保存文件  printf("\n"); i--; test = i;  //保存 行数 for (; i >= 0; i--) {  a = strcmp(name, peopleI[i].name);  //比较 输入的用户名  和文件中的用户名  if (a == 0)   //找到相应位置     {   sign = 1;  // 标志 是否找到 数据    printf("姓名%s,学号%s,联系电话%s,寝室%s,班级%d\n", peopleI[i].name, peopleI[i].IDnumber, peopleI[i].phone, peopleI[i].roomID,peopleI[i].classNum);  //显示出要修改的信息   do   {    printf("你确定要删除该用户的信息吗?(Y/N):");    getchar();    scanf("%c", &ch);   } while ((ch != 'Y') && (ch != 'y') && (ch != 'n') && (ch != 'N'));   if ((ch == 'y') || (ch == 'Y'))  //假如 确定   {    printf("删除成功!");    fp = fopen("output.txt", "w");  //以写的方式打开,源文件被清除    for (j = 1; j < test; j++)  //重新写入文件      {     if (j == i) // 不写入 第i个数据     {      //操作为空      }     else //否则  写入文件      fscanf(fp, "%s %s %s %s %d", peopleI[i].name,  peopleI[i].IDnumber, peopleI[i].phone, peopleI[i].roomID, &peopleI[i].classNum);  }    fclose(fp);  //关闭  保存缓冲区 文件   }   else    //假如不修改信息  再次写入文件   {    fp = fopen("output.txt", "w");  //以写的方式打开,源文件被清除    for (i = 1; i < test; i++) //将内存中 修改过的信息 重新写入文件    {     fscanf(fp, "%s %s %s %s %d", peopleI[i].name,  peopleI[i].IDnumber, peopleI[i].phone, peopleI[i].roomID, &peopleI[i].classNum);   }    fclose(fp);   }  } } if (sign == 0)   //判断为未找到用户 {  printf("没找到该用户!\n请按回车键返回菜单选项.....");  getchar(); }}//========================================================================================//查询通讯录信息;void OLD_find(){ system("cls"); int temp; UI_show5();  printf("1.按学号查询通讯录信息\t2.按姓名查询通讯录信息\n"); printf("请选择……"); scanf("%d",&temp); switch(temp){ case 1:  system("cls");  OLD_findByNum();  break; case 2:  system("cls");  OLD_findByName();    break; default:printf("\n\t\t\t输入错误! 按回车键返回重新选择"); } _getch(); system("cls");}//===================================================================================//按照学号查询通讯录信息void OLD_findByNum()     //    先将硬盘文件中数据 保存到 内存缓冲区中,找到要用户信息,修改后 重新写入文档{ system("cls");        //清屏 people peopleI[100];//建立结构体 数组 int number = 0, sign = 0, i = 1,  test; int p; char IDnumber[20]; FILE* fp = NULL;  //文件指针 void UI_show5();       //UI调用 fp = fopen("output.txt", "r");     //以读写的方式打开文件 if (fp == NULL)                                                      // 错误检测 {  printf("文件打开失败!请先添加用户信息!\n");  return;  // exit(0); } printf("请输入要查询的学号:"); scanf("%s",IDnumber); while (!feof(fp))  //从文件中读取 {  fscanf(fp, "%s %s %s %s %d", peopleI[i].name,  peopleI[i].IDnumber, peopleI[i].phone, peopleI[i].roomID, &peopleI[i].classNum);  i++;     //记录行的个数 } printf("\n"); i--; test = i;  //保存 数据的行数 for (; i >= 0; i--) {    //比较 输入的学号  和文件中的学号  p=strcmp(IDnumber,peopleI[i].IDnumber);  if (p==0)  {   sign = 1;  //判断 赋值1  代表找到 该数据   printf("姓名%s,学号%s,联系电话%s,寝室%s,班级%d\n", peopleI[i].name, peopleI[i].IDnumber, peopleI[i].phone, peopleI[i].roomID,peopleI[i].classNum);   printf("\n");    fclose(fp);  //关闭文件   }   else  //假如meiyou信息  再次写入文件   {       fclose(fp);   }  } if (sign == 0) {  printf("没找到该学生信息!\n请按任意键继续....");  getchar(); }}//===================================================================================//按照姓名查询通讯录信息void OLD_findByName()     //    先将硬盘文件中数据 保存到 内存缓冲区中,找到要用户信息,修改后 重新写入文档{ system("cls");        //清屏 people peopleI[100];//建立结构体 数组 int number = 0, sign = 0, i = 1,  test; int p; char name[10]; FILE* fp = NULL;  //文件指针 void UI_show6();       //UI调用 fp = fopen("output.txt", "r");     //以读写的方式打开文件 if (fp == NULL)                                                      // 错误检测 {  printf("文件打开失败!请先添加用户信息!\n");  return;  // exit(0); } printf("请输入要查询的姓名:"); scanf("%s",name); while (!feof(fp))  //从文件中读取 {  fscanf(fp, "%s %s %s %s %d", peopleI[i].name,  peopleI[i].IDnumber, peopleI[i].phone, peopleI[i].roomID, &peopleI[i].classNum);  i++;     //记录行的个数 } printf("\n"); i--; test = i;  //保存 数据的行数 for (; i >= 0; i--) {    //比较 输入的姓名  和文件中的姓名  p=strcmp(name,peopleI[i].name);  if (p==0)  {   sign = 1;  //判断 赋值1  代表找到 该数据   printf("姓名%s,学号%s,联系电话%s,寝室%s,班级%d\n", peopleI[i].name, peopleI[i].IDnumber, peopleI[i].phone, peopleI[i].roomID,peopleI[i].classNum);   printf("\n");    fclose(fp);  //关闭文件   }   else  //假如meiyou信息  再次写入文件   {       fclose(fp);   }  } if (sign == 0) {  printf("没找到该学生信息!\n请按任意键继续....");  getchar(); }}//===================================================================================//判断文件是否为空int NEW_oj(){ FILE* fp; fp = fopen("output.txt", " r"); if (fp == NULL) {  fp = fopen("output.txt", " w"); } if (fgetc(fp) == EOF) {  fclose(fp);  return 0; } else {  return 1;  fclose(fp); }}//===================================================================================//      各种UI界面显示void UI_show1(){ int i; for (i = 0; i < 75; i++)   //数字  控制 上方 = 数量  {  printf("="); } printf("\n"); for (i = 0; i < 15; i++) {  printf(" "); } printf("你正在添加通讯录学生信息,请根据提示输入信息。\n"); for (i = 0; i < 75; i++)   //数字  控制 上方 = 数量  {  printf("="); } printf("\n");}void UI_show2(){ int i; for (i = 0; i < 75; i++)   //数字  控制 上方 = 数量  {  printf("="); } printf("\n"); for (i = 0; i < 15; i++) {  printf(" "); } printf("你正在修改通讯录学生信息,请根据提示输入信息。\n"); for (i = 0; i < 75; i++)   //数字  控制 上方 = 数量  {  printf("="); } printf("\n");}void UI_show3(){ int i; for (i = 0; i < 75; i++)   //数字  控制 上方 = 数量  {  printf("="); } printf("\n"); for (i = 0; i < 15; i++) {  printf(" "); } printf("你正在删除通讯录学生信息,请根据提示输入信息。\n"); for (i = 0; i < 75; i++)   //数字  控制 上方 = 数量  {  printf("="); } printf("\n");}void UI_show4(){ int i; for (i = 0; i < 75; i++)   //数字  控制 上方 = 数量  {  printf("="); } printf("\n"); for (i = 0; i < 15; i++) {  printf(" "); } printf("你正在使用通讯录查询功能,请根据提示输入信息。\n"); for (i = 0; i < 75; i++)   //数字  控制 上方 = 数量  {  printf("="); } printf("\n");}void UI_show5(){ int i; for (i = 0; i < 75; i++)   //数字  控制 上方 = 数量  {  printf("="); } printf("\n"); for (i = 0; i < 15; i++) {  printf(" "); } printf("你正在使用按学号查找功能。\n"); for (i = 0; i < 75; i++)   //数字  控制 上方 = 数量  {  printf("="); } printf("\n");}void UI_show6(){ int i; for (i = 0; i < 75; i++)   //数字  控制 上方 = 数量  {  printf("="); } printf("\n"); for (i = 0; i < 15; i++) {  printf(" "); } printf("你正在使用按姓名查找功能。\n"); for (i = 0; i < 75; i++)   //数字  控制 上方 = 数量  {  printf("="); } printf("\n");}int main(){  int pan, p;  while (1) {  p = NEW_oj();//判断用户文件是否为空  if (p == 0)  {   printf("\n\n查询文件中未存在学生信息,请先进行信息录入!!!");   printf("\n请按回车键,进入信息添加系统.....");   getchar();   NEW_in();  }  system("cls");  //清屏  UI_show();    //调用 界面UI 显示  scanf("%d", &pan);  switch (pan)  {  case 1:NEW_in(); break;//通讯录学生信息添加  case 2:OLD_adjust(); break;//通讯录学生信息修改  case 3:OLD_delete(); break;//通讯录学生信息删除  case 4:OLD_find(); break;//查询通讯录学生信息  case 5:exit(0);  break;//退出系统  default:printf("\n\t\t\t输入错误! 按回车键返回重新选择");//按键错误反馈  }  _getch();  system("cls");//清屏 } system("pause"); return 0;}

到此,相信大家对“怎么用C语言实现简单通讯录管理系统”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

--结束END--

本文标题: 怎么用C语言实现简单通讯录管理系统

本文链接: https://lsjlt.com/news/298958.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • C语言实现简单通讯录管理系统
    C语言实现的通讯录管理系统,供大家参考,具体内容如下 设计一个学生通信录,学生通迅录数据信息构成内容可自行设计(如:学号、姓名、电话号码、所在班级、寝室地址等),通信录数据类型定义为...
    99+
    2024-04-02
  • 怎么用C语言实现简单通讯录管理系统
    本篇内容主要讲解“怎么用C语言实现简单通讯录管理系统”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么用C语言实现简单通讯录管理系统”吧!C语言实现的通讯录管理系统,供大家参考,具体内容如下设计...
    99+
    2023-06-20
  • C语言怎么实现简单的通讯录管理系统
    下面是一个使用C语言实现简单通讯录管理系统的示例代码: #include <stdio.h> #include <...
    99+
    2024-03-08
    c语言
  • C语言实现简单的通讯录管理系统
    本文实例为大家分享了C语言实现通讯录管理系统的具体代码,供大家参考,具体内容如下 要实现一个通讯录管理系统,需要用到结构体、指针、文件操作、动态管理等内容。 效果展示: 实现思路 ...
    99+
    2024-04-02
  • C语言实现简单通讯录系统
    本文实例为大家分享了C语言通讯录系统(增删改查),供大家参考,具体内容如下 全部代码如下所示: #include <iostream> #include <s...
    99+
    2024-04-02
  • C++怎么实现简单通讯录管理系统
    本篇内容介绍了“C++怎么实现简单通讯录管理系统”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、代码#include <i...
    99+
    2023-06-29
  • C++实现简单通讯录管理系统
    本文实例为大家分享了C++实现简单的通讯录管理系统的具体代码,供大家参考,具体内容如下 一、代码 #include <iostream> #include <str...
    99+
    2024-04-02
  • C++实现简单的通讯录管理系统
    本文实例为大家分享了C++实现简单的通讯录管理系统的具体代码,供大家参考,具体内容如下 案例描述: 通讯录是一个可以记录亲人、好友信息的工具。本教程主要利用C++来实现一个通讯录管理...
    99+
    2024-04-02
  • C++实现简单版通讯录管理系统
    这个通讯录管理系统是我听课后做的笔记,都是很基础的逻辑实现,第一次动手写了一个小案例感觉找到了一点方向,也希望能帮到一点忙! 1、系统需求 通讯录是一个可以记录亲人、好友信息的工具。...
    99+
    2024-04-02
  • C语言单链表实现通讯录管理系统
    本文实例为大家分享了C语言单链表实现通讯录管理系统的具体代码,供大家参考,具体内容如下 本人前几天刚刚自学了单链表,趁热打铁,赶紧写一个小小的项目练练手。 单链表的实现在本人之前的博...
    99+
    2024-04-02
  • python怎么实现简单通讯录管理系统
    要实现简单的通讯录管理系统,可以使用Python的字典来存储联系人的信息。以下是一个简单的实现示例:```pythoncontact...
    99+
    2023-08-18
    python
  • Java实现简单通讯录管理系统
    本文实例为大家分享了Java实现通讯录管理系统的具体代码,供大家参考,具体内容如下 题目: 1、完成一个通讯录,需求: (1)添加联系人(联系人:编号,姓名,手机号,QQ,邮箱地址)...
    99+
    2024-04-02
  • python实现简单通讯录管理系统
    本文实例为大家分享了python实现通讯录管理系统的具体代码,供大家参考,具体内容如下 =====欢迎使用通讯录管理系统=====1.添加2.修改3.册除4.查询5.排序6.退出==...
    99+
    2024-04-02
  • C语言单链表如何实现通讯录管理系统
    这篇文章将为大家详细讲解有关C语言单链表如何实现通讯录管理系统,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。通讯录管理系统保存人的信息有: 名字   name电话 ...
    99+
    2023-06-15
  • C语言代码实现通讯录管理系统
    目录一、需求分析二、程序结构三、头文件内容的介绍四、模块化实现各个功能(1)主函数实现(2)初始化通讯录(3)添加联系人信息(4)删除联系人信息(5)查找联系人信息(6)更改联系人信...
    99+
    2024-04-02
  • C语言开发实现通讯录管理系统
    本文实例为大家分享了C语言通讯录管理系统开发的具体代码,供大家参考,具体内容如下 程序介绍 通讯录管理系统主要是实现对联系人的增、删、查以及显示的基本操作。用户可以根据自己的需要在功...
    99+
    2022-11-13
    C语言通讯录管理系统 C语言通讯录系统 C语言通讯录管理
  • C++实现简易通讯录管理系统
    目录前言结构体联系人结构体通讯录结构体函数模块菜单添加联系人显示联系人判断联系人删除联系人查找联系人清空所有联系人main函数源代码运行结果本文实例为大家分享了C++实现简易通讯录管...
    99+
    2024-04-02
  • C++实现简单通讯录系统
    本文实例为大家分享了C++实现简单通讯录系统的具体代码,供大家参考,具体内容如下 需求分析: 1.通讯录可以添加联系人。 2.通讯录可以显示所有联系人。 3.通讯录可以查找联系人。 ...
    99+
    2024-04-02
  • C++实现简易的通讯录管理系统
    本文实例为大家分享了C++实现简易通讯录管理系统的具体代码,供大家参考,具体内容如下 1. 效果图 2. 需要的知识 C++基础知识(包括变量,运算符,顺序,分支,循环)数组函数指...
    99+
    2024-04-02
  • 怎么用C++实现通讯录管理系统
    这篇“怎么用C++实现通讯录管理系统”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“怎么用C++实现通讯录管理系统”文章吧。系...
    99+
    2023-07-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作