C语言课程设计:通讯录系统实现

需积分: 3 2 下载量 36 浏览量 更新于2024-08-01 收藏 1.39MB DOC 举报
"该资源是一份关于C语言课程设计的通讯录系统的设计报告,旨在通过实践训练提升学生的程序设计能力和应用知识解决实际问题的能力。课程设计由应用技术学院的指导教师王颖指导,针对电气工程及其自动化专业的学生,特别是0783班的谭浩汉同学。设计内容包括问题分析、总体结构设计、用户界面设计和程序设计的基本技能,旨在让学生将课堂所学转化为实际操作,同时深化理解和灵活运用C语言知识。课程设计提供了八个不同的课题供学生选择,其中一个课题是构建一个通讯录系统。设计过程中,学生需要完成需求分析、概要设计、详细设计、编码、调试和文档编写等步骤,并在规定时间内提交成果。" 在本次通讯录课程设计中,学生需要掌握以下关键知识点: 1. **C语言基础**:学生需要熟练掌握C语言的基本语法,包括变量、数据类型、控制流程(顺序、分支、循环)、函数的使用以及数组的处理。 2. **程序设计方法**:通过设计通讯录系统,学生需学习如何运用结构化编程思想,将程序分解为可管理的部分,实现模块化设计。 3. **用户界面设计**:设计用户友好的交互界面,使用户能够方便地添加、查询、修改和删除联系人信息。 4. **数据结构**:理解并应用适当的数据结构,如链表或数组,来存储和管理通讯录中的联系人信息。 5. **算法设计**:设计有效的算法,例如搜索算法,用于快速查找特定联系人,或排序算法,以便按姓名、电话等条件排列联系人列表。 6. **错误处理与调试**:学会如何发现和修复程序中的错误,进行调试以确保程序的正确性。 7. **文档编写**:撰写课程设计报告,包括系统的需求分析、设计思路、实现过程和结果,培养良好的文档记录习惯。 8. **团队协作**:虽然这个资源没有明确提到团队合作,但通常课程设计可能涉及小组项目,因此学生需要学会与他人合作,分享工作负载和协调进度。 9. **软件工程规范**:遵循一定的软件开发规范,例如代码风格、注释的编写以及版本控制的使用,以提高代码质量和可维护性。 10. **问题解决能力**:将理论知识应用于实际问题,通过设计和实现通讯录系统,锻炼分析问题和解决问题的能力。 通过这个课程设计,学生不仅提升了编程技能,还学会了如何将所学知识应用于实际情境,为将来在专业领域中使用计算机解决实际问题奠定了坚实的基础。
2023-06-01 上传
1、问题描述 本次课程设计本组选择了生活中最常用的通讯录系统,随着科学时代的发展本组们的手 机或者说智能手机更是进入家家户户成为本组们不可取代的一部分。如下图,本组的手 机的界面: 根据看到手机这个界面,本组就想如果可以自己编写一个通讯录系统也是很好的。于是 本组便选择了这个题目,其他的组员也同意了本组想法。本个系统的问题是要求设计一 款通讯录,要求可以实现插入、删除、修改、查询等功能。但是由于受到了手机分组的 提,本组便多加入一个分组存储的功能。这样更加具体更加方便管理查找联系人。 程序分析和设计(流程图、功能设计、界面设计等) 首先,想要设计一款通讯录,本组们要确定他所富含的所有功能,再者是它的操作界面 。当然,流程图也是逻辑思路不能缺少的一部分,这样才能使本组们有更加系统的逻辑 思维。方便本组们编写各个部分的程序。 第一部分是介绍本组们界面设计,这一部分不止才用了一个界面,本组才用了一级界 面,二级界面、三级界面。这一点上,本组主要是参考了很多软件都有界面变化。但是 由于这一块本组也不是很熟悉,所以本组有参考一些相关书籍比如《数据结构(c语言版 )》。借助于现有书籍的程序代码,本组设计了界面。 /*--------一级主菜单-----------*/ void menu() { int i; int num1;//定义num1 printf("\t…………………………#《通讯录》#…………………………\n");//界面 printf("\n"); printf("\n"); printf("\t***亲人:添加(1)\t删除(2)\t排序(3)\t修改(4)\t显示(5)\t查询(6)\t\n* ***朋友:添加(7)\t删除(8)\t排序(9)\t修改(10)\t显示(11)\t查询(12)\t\n*****同学 添加(13)\t删除(14)\t排序(15)\t修改(16)\t显示(17)\t查询(18)\t\n*****同事:添加 (19)\t删除(20)\t排序(21)\t修改(22)\t显示(23)\t查询(24)\t*****\n");//菜单 printf("\n"); printf("很高兴能为你服务,请输入你的选择(1_24): "); scanf("%d",&num1);//输入数字 for (i = 1; i < 24; i++)//for函数重复输入信息 { if (num1 < 1 "" num1 > 24) { printf("老大,拜托!你输错啦!"); scanf("%d", &num1); } } switch (num1)//开关函数。根据输入数字打开相应的函数 { case 1: Input();//如何解决间断的输入问题 break; case 2: Delete();//打开删除函数 break; case 3: Sort();//打开排序函数 break; case 4: Correct();//修改函数 break; case 5: Output();//输出已有的联系人情况 break; case 6: Thirdmenu();//打开第三界面 break; case 7: Input();//如何解决间断的输入问题 SecondMenu(); break; case 8: Delete();SecondMenu();//删除函数以及二级菜单 break; case 9: Sort();SecondMenu();//排序函数以及二级菜单 break; case 10: Correct();SecondMenu();//修改函数以及二级菜单 break; case 11: Output();SecondMenu();//输出函数以及二级菜单 break; case 12: Thirdmenu();//三级菜单 break; case 13: Input();//如何解决间断的输入问题 SecondMenu();//二级菜单 break; case 14: Delete();SecondMenu();//删除函数和二级菜单 break; case 15: Sort();SecondMenu();//排序函数和二级菜单 break; case 16: Correct();SecondMenu();//修改函数和二级菜单 break; case 17: Output();SecondMenu();//输出函数和二级菜单 break; case 18: Thirdmenu();SecondMenu();//三级菜单二级菜单 break; case 19: Input();//如何解决间断的输入问题 SecondMenu(); break; case 20: Delete();//删除函