c语言实现通讯录管理系统(c课程设计),用c语言写一个通讯录系统

  c语言实现通讯录管理系统(c课程设计),用c语言写一个通讯录系统

  项目目录1、系统需求2、创建项目2.1创建项目2.2添加文件3、菜单功能4、退出功能5、添加联系人5.1设计联系人结构5.2设计通讯录结构5.3在主功能中创建通讯录5.4包添加联系人功能5.5测试添加联系人功能6.1包显示联系人功能6.2测试显示联系人功能7、 删除联系人7.1封装并检测联系人是否存在7.2封装并删除联系人功能7.3测试并删除联系人功能8、查找联系人8.1封装并查找联系人功能8.2测试并查找指定联系人9、修改联系人9.1封装修改联系人功能9.2测试修改联系人功能10、清除联系人10.1封装清除联系人功能10.2测试清除联系人11、源代码获取1、系统需求通讯录是一个可以记录亲友联系方式的工具。

  本教程主要是用C实现一个通讯录管理系统。

  系统中要实现的功能如下:

  添加联系人:在通讯录中添加新的联系人,信息包括(姓名、性别、年龄、联系电话、家庭住址)。多达1000人将被记录。显示联系人:显示地址簿中的所有联系人信息。删除联系人:按姓名删除指定的联系人。查找联系人:按姓名查看指定的联系人信息。修改联系人:按姓名重新修改指定的联系人。清空联系人:清除地址簿中的所有信息。退出通讯录。2.创建一个项目。创建项目的步骤如下:

  新建项目添加文件2.1新建项目打开vs 2019后,点击新建项目,新建一个C项目。

  选择一个空项目,下一步。

  填写项目名称,选择项目路径,然后创建

  2.2添加文件

  填写文件名,然后添加

  添加成功后,效果如下图所示:

  至此,项目已经创建完毕!

  3.菜单功能描述:用户选择功能的界面。

  菜单效果如下:

  步骤:

  封装函数显示接口,如void showMenu()调用封装函数#include iostream中的main函数。

  使用命名空间std

  //菜单界面

  void showMenu()

  {

  cout * * * * * * * * * * * * * * * * * * * * * * * * * endl;

  Cou * * * * 1。添加联系人* * * * * endl

  Cou * * * * 2。显示联系人* * * * " endl;

  Cou * * * * 3。删除联系人* * * * * endl

  cou * * * * * * 4,找到联系人* * * * endl

  Cou * * * * 5。修改联系人* * * * * endl

  Cou * * * * 6。清空联系人* * * * " endl;

  Cou * * * * 0,退出通讯录* * * * endl

  cout * * * * * * * * * * * * * * * * * * * * * * * * * endl;

  }

  int main() {

  showMenu();

  系统(“暂停”);

  返回0;

  }4.退出功能描述:退出通讯录系统。

  思路:根据用户的不同选择和不同功能,可以选择交换机分支结构来构建整体架构。

  当用户选择0时,执行退出;如果用户选择其他,先不要操作,程序不会退出。

  int main() {

  int select=0;

  while(真)

  {

  showMenu();

  cin精选;

  开关(选择)

  {

  1://添加联系人

  打破;

  2://显示联系人

  打破;

  3://删除联系人

  打破;

  4://查找联系人

  打破;

  5://修改联系人

  打破;

  6://空联系人

  打破;

  0://退出通讯簿

  Cout 欢迎下次使用 endl

  系统(“暂停”);

  返回0;

  打破;

  默认值:

  打破;

  }

  }

  系统(“暂停”);

  返回0;

  }效果图:

  5.添加联系人的职能描述:

  添加联系人功能,最多1000个联系人,联系人信息包括(姓名、性别、年龄、联系电话、家庭住址)。

  添加联系人实施步骤:

  设计联系人结构设计通讯录结构在主功能中创建通讯录包添加联系人功能测试添加联系人功能5.1设计联系人结构联系人信息包括:姓名、性别、年龄、联系电话、家庭住址。

  设计如下:

  # include string//字符串头文件

  //联系人结构

  结构人员{

  字符串m _ Name//名称

  int m _ Sex//性别:1男2女

  int m _ Age//年龄

  字符串m _ Phone//电话

  字符串m _ Addr//地址

  };5.2设计通讯录结构时,可以在通讯录结构中维护一个容量为1000的联系人数组,记录当前通讯录中的联系人数量。

  设计如下:

  #定义最大1000 //最大人数

  //通讯簿结构

  结构通讯簿{

  //保存在通讯簿中的联系人数组

  结构人员personal array[MAX];

  //通讯簿中当前记录的联系人数量

  int m _ Size

  };5.3在主函数中创建通讯录添加联系人函数打包完成后,在主函数中创建一个通讯录变量。这是我们需要一直维护的通讯录。主功能起始位置添加:

  //创建通讯簿

  通讯录abs

  //初始化联系人的数量。

  ABS . m _ Size=0;5.4添加联系人功能的打包思路:在添加联系人之前,先判断通讯录是否已满,如果已满,就不要再添加,如果未满,就将新的联系人信息逐个添加到通讯录中。

  添加联系人代码:

  //1.添加联系信息。

  void addPerson(address books * ABS){

  if (abs- m_Size==MAX) {

  Cout 通讯录已满,而 endl无法添加。

  返回;

  }否则{

  Cout 请输入您的姓名: endl

  字符串名称;

  cin名字;

  abs- personArray[abs- m_Size]。m _ Name=name

   Cout 请输入性别: endl

  int性别;

  Cout 1—— male endl

  Cout 2—— female endl

  while (true) {

  cin性爱;

  if (sex==1 sex==2) {

  abs- personArray[abs- m_Size]。m_Sex=性;

  打破;

  }

  否则{

   Cout 输入不正确,请重新输入 endl

  }

  }

   Cout 请输入年龄: endl

  int age

  cin时代;

  abs- personArray[abs- m_Size]。m_Age=年龄;

   Cout 请输入电话号码: endl

  字符串电话;

  cin电话;

  abs- personArray[abs- m_Size]。m _ Phone=phone

   Cout 请输入地址: endl

  字符串地址;

  cin地址;

  abs- personArray[abs- m_Size]。m _ Addr=addr

  ABS-m _ Size;//联系人的数量

  Cout 添加成功!endl

  系统(“暂停”);//输入任意键继续

  系统(“cls”);//清除屏幕

  }

  }5.5测试添加联系人的功能。在选择界面中,如果玩家选择了1,则意味着添加联系人。我们可以测试这个函数。

  在switch case1语句中,添加:

  1://添加联系人

  addPerson(ABS);

  打破;测试结果如图所示:

  6.显示联系人功能描述:显示通讯录中已有的联系人信息。

  显示联系人实施步骤:

  封装联系人功能测试显示联系人功能6.1封装联系人功能思路:如果当前通讯录中没有人,提示记录为空,人数大于0,显示通讯录中的信息。

  显示联系人代码:

  //2.显示所有联系信息。

  void show person(address books * ABS){

  if (abs- m_Size==0) {

  Cout“当前记录为空”endl

  }否则{

  for(int I=0;I ABS-m _ Size;i ) {

  Cout name: abs- personArray[i].m _ Name \ t

  cout Gender:(ABS-personArray[I].m_Sex==1?男:女) \ t ;

  Cout age: abs- personArray[i].m _ Age \ t

  Cout Tel: abs- personArray[i]。m _ Phone \ t

  Cout的地址: abs- personArray[i]。m _ Addr endl

  }

  }

  系统(“暂停”);

  系统(“cls”);

  }6.2开关case语句和case 2中增加了测试和显示触点功能。

  2://显示联系人

  show person(ABS);

  打破;测试结果如图所示:

  7.删除联系人功能描述:按姓名删除指定的联系人。

  删除联系人的实现步骤:

  检测封装触点的存在,封装和删除触点功能,测试和删除触点功能,7.1封装和检测触点的存在,设计思路:

  在删除联系人之前,我们需要判断用户输入的联系人是否存在。如果有删除,则没有要删除的联系人。

  所以我们可以在一个函数中封装联系人是否存在,如果存在就返回联系人在通讯录中的位置,如果不存在就返回-1。

  用于检测接触存在的代码:

  //确定是否有查询人。数组中返回了一个索引位置,但没有返回-1。

  int isExist(Addressbooks abs,string name) {

  for(int I=0;i abs.m _ Sizei ) {

  if(ABS . persona array[I].m_Name==name)

  返回I;//找到返回下标

  }

  return-1;//找不到

  }7.2包删除联系人功能根据用户输入的联系人判断通讯录中是否存在此人。

  找到要删除的,提示删除成功。

  我找不到暗示。没有这样的人。

  //3.删除指定的联系信息。

  void delete person(address books * ABS){

   Cout 请输入要删除的联系人姓名: endl

  字符串名称;

  cin名字;

  int ret=isExist(*abs,name);

  如果(ret!=-1) {

  //i MAX-1是处理边界条件。

  for(int I=ret;I ABS-m _ Size I MAX-1;i ) {

  ABS-personar array[I]=ABS-personar array[I 1];

  }

  ABS-m _ Size-;//下标减一

  Cout 已成功删除!endl

  }

  否则{

  Cout“没有这样的人!”endl

  }

  系统(“暂停”);

  系统(“cls”);

  }7.3测试删除联系人功能。在switch case3语句中,添加:

  3://删除联系人

  删除人(ABS);

  打破;测试结果如图所示:

  联系人存在:

  不存在的情况:

  8.查找联系人功能描述:按姓名查看指定的联系人信息。

  查找联系人的实施步骤

  封装联系人功能测试查找指定联系人8.1封装联系人功能实现思路:判断用户指定的联系人是否存在,如果有则显示信息,如果没有则提示查找。

  查找联系代码:

  //4.查找指定的联系信息。

  void find person(address books * ABS){

   Cout 请输入您要查找的联系人的姓名: endl

  字符串名称;

  cin名字;

  int ret=isExist(*abs,name);

  如果(ret!=-1) {

  cout name: ABS-personArray[ret].m _ Name \ t

  cout Gender:(ABS-personArray[ret].m_Sex==1?男:女) \ t ;

  Cout age: abs- personArray[ret]。m _ Age \ t

  Cout Tel: abs-personarray [ret].m _ phone \ t

  Cout的地址: ABS-personarray [ret].m _ addrendl

  }否则{

  Cout没有这样的人’endl;

  }

  系统(“暂停”);

  系统(“cls”);

  }8.2测试并找到指定的联系人。在switch case4语句中,添加:

  4://查找联系人

  find person(ABS);

  打破;测试结果如图所示。

  存在:

  不存在的情况:

  9.修改联系人的功能描述:根据姓名再次修改指定的联系人。

  修改联系人实施步骤

  包联系人功能测试修改联系人功能9.1包修改联系人功能实现思路:找到用户输入的联系人。如果搜索成功,修改操作,搜索失败提示没有此人。

  修改联系人代码:

  //5.修改指定的联系信息。

  void update person(address books * ABS){

   Cout 请输入要修改的联系人姓名: endl

  字符串名称;

  cin名字;

  int ret=isExist(*abs,name);

  如果(ret!=-1) {

  cout name: ABS-personArray[ret].m _ Name \ t

  cout Gender:(ABS-personArray[ret].m_Sex==1?男:女) \ t ;

  Cout age: abs- personArray[ret]。m _ Age \ t

  Cout Tel: abs-personarray [ret].m _ phone \ t

  Cout的地址: ABS-personarray [ret].m _ addrendl

   Cout 请输入修改后的名称: endl

  字符串pName

  CINpName;

  abs- personArray[ret]。m _ Name=pName

   Cout 请输入修改后的性别: endl

  Cout 1—— male endl

  Cout 2—— female endl

  int pSex

  CIN pSex;

  while (pSex 1 pSex 2) {

   Cout 输入不正确,请重新输入: endl

  CIN pSex;

  }

  abs- personArray[ret]。m _ Sex=pSex

   Cout 请输入修改后的年龄: endl

  int页面;

  CIN佩奇;

  abs- personArray[ret]。m _ Age=pAge

   Cout 请输入修改后的电话号码: endl

  字符串pPhone

  CIN p phone;

  abs- personArray[ret]。m _ Phone=pPhone

   Cout 请输入修改后的地址: endl

  string pAddr

  CIN帕德尔;

  abs- personArray[ret]。m _ Addr=pAddr

  Cout 修改成功!endl

  系统(“暂停”);

  系统(“cls”);

  }否则{

  Cout没有这样的人’endl;

  }

  系统(“暂停”);

  系统(“cls”);

  }9.2测试和修改触点功能。在switch case语句中,添加:

  5://修改联系人

  update person(ABS);

  打破;测试结果如图所示:

  找不到指定的联系人:

  找到联系人并成功修改:

  再次检查地址簿以确认修改:

  10.清除联系人功能描述:清除通讯录中的所有信息。

  空联系人实施步骤

  封装联系人功能测试,清空联系人10.1封装和清空联系人功能实现思路:清空通讯录中的所有联系人信息,只需将通讯录中记录的联系人数量设置为0,做逻辑清空即可。

  清除联系人代码:

  //6.清空所有联系人。

  void clean person(address books * ABS){

  Cout 您确定要清空通讯录吗?endl

  Cou 1,yes \t 2,no endl

  int select

  cin精选;

  if (select==1) {

  ABS-m _ Size=0;

  Cout 通讯簿已被清空!endl

  }否则{

  Cout 操作已取消!endl

  }

  系统(“暂停”);

  系统(“cls”);

  }10.2测试清除联系人。在switch case语句中,添加:

  6://空联系人

  clean person(ABS);

  打破;测试结果如图所示:

  空通讯簿

  再次查看信息,显示记录为空。

  至此,通讯录管理系统完成!

  转载请联系作者取得转载授权,否则将追究法律责任。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • c语言调用退出函数 c语言退出整个程序怎么写
  • c语言中怎么给函数初始化 c语言的初始化语句
  • c语言编写函数计算平均值 c语言求平均函数
  • 详解c语言中的字符串数组是什么,详解c语言中的字符串数组结构,详解C语言中的字符串数组
  • 表达式求值c++实现,c语言实现表达式求值
  • 看懂c语言基本语法,C语言详解,C语言的基本语法详解
  • 用c语言实现快速排序算法,排序算法设计与实现快速排序C语言,C语言实现快速排序算法实例
  • 深入解析c语言中函数指针的定义与使用方法,深入解析c语言中函数指针的定义与使用情况,深入解析C语言中函数指针的定义与使用
  • 描述E-R图,E-R图举例,关于C语言中E-R图的详解
  • 折半查找法C语言,折半查找算法(算法设计题)
  • 折半查找法C语言,c语言折半法查找数据,C语言实现折半查找法(二分法)
  • 扫雷小游戏c++代码设计,c语言扫雷游戏源代码,C语言实现扫雷小游戏详细代码
  • 怎样统计程序代码行数,C语言统计行数,C#程序员统计自己的代码行数
  • 基于c语言的贪吃蛇游戏程序设计,用c语言编写贪吃蛇游戏程序,C语言实现简单的贪吃蛇游戏
  • 图的两种遍历算法,图的遍历算法代码c语言,Python算法之图的遍历
  • 留言与评论(共有 条评论)
       
    验证码: