c语言个人通信录管理系统课件教育设计报告

合集下载

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

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

西安郵電學院高级语言课程设计报告书系部名称通信工程学院学生姓名张博专业名称电子信息科学与技术班级电科0901班学号04092018指导教师夏虹2010年11月22日至时间2010年12月03日实验题目个人通讯录管理系统一、实验目的设计一个个人通讯录管理系统,拥有对数据的各种操作功能,实现对通讯录的管理,从而巩固C语言程序设计二、实验内容个人通讯录管理系统需求分析个人通讯录管理系统总体设计个人通讯录管理系统详细设计个人通讯录管理系统模块设计个人通讯录管理系统系统集成个人通讯录管理系统测试运行三、需求分析对于一个通用的个人通讯录管理系统而言,用户首先要能够对通讯录中的数据进行录入,删除,更新和输出等操作,其次要求对通讯录中的数据进行查找操作。

根据上述分析,在后面给出该个人通讯录的主要实现功能。

⏹信息录入:即创建一个存储通讯录信息的数据结构,有用户从键盘上录入信息,或从数据表文件中导入到该数据结构中。

⏹信息更新:对数据结构中已有的信息进行修改,并将结果保存在数据结构中。

⏹信息删除:删除数据结构中无用的信息,并将解雇保存在无数据结构中。

⏹信息查询;针对用户输入的目标值,在数据结构中查找对应的记录,并将其输出到用户屏幕。

⏹信息导入:将某文件中的信息导入到创建的数据结构中,提高数据的输入效率。

⏹信息导出:将数据结构中的记录导出到文件中,已永久保存下来。

信息输出:将数据结构中的信息或指定的信息输出到用户屏幕中。

四、概要设计1.数据类型dnode *p,*rear,*q; /*定义指针结点*/const char USER[]={'w','a','l','d','e','n'},PASSWORD[]={'4','1','6','9','5','3'}; /*定义用户密码*/int OK=1,i; /*用作循环变量或返回值*/FILE *fp; /*定义文件指针*/ 2、数据结构说明/*data structure*/typedef struct txl{char name[20]; /*成员姓名,为通讯录管理的对象*/char sex[4]; /*性别,可用于快速类别查询,区别数据成员*/ char city[20]; /*所在城市,可用于快速类别查询,区别数据成*/ char province[20]; /*省别*/char qq[11]; /*QQ号,管理查询主信息*/char phone number[11]; /*对象电话号,管理查询主信息*/}dtxl; /*建立通讯录信息结构体*/typedef struct dlnode{dtxl data; /*定义数据域*/struct dlnode*prior; /*前驱指针*/struct dlnode*next; /*后继指针*/}dnode; /*建立双向链表结构体*/程序中定义的数据类型——结构体(各个成员的作用)3、模块功能说明信息录入功能模块:实现用户从键盘输入数据存储对应字段或该数据成员中,并检查输入的合法性。

通讯录管理系统c语言课程设计报告课题简介

通讯录管理系统c语言课程设计报告课题简介

通讯录管理系统C语言课程设计报告
一、课题简介
通讯录管理系统是一种常见的应用程序,旨在帮助用户组织和管理他们的联系人信息。

本课程设计将利用C语言来实现一个基本的通讯录管理系统,旨在帮助学生掌握C语言编程的基本知识和技能。

二、设计目的
1.帮助学生熟悉C语言的基本语法和编程逻辑;
2.提高学生对数据结构的理解和运用能力;
3.培养学生的编程能力和软件开发思维;
4.提高学生的团队合作和项目管理能力。

三、设计内容
本课程设计将围绕以下几个方面展开:
1.用户界面设计:设计一个简洁直观的用户界面,包括菜单选项、输
入输出界面等;
2.数据结构设计:设计通讯录数据结构,包括联系人姓名、电话号码
等信息的存储方式;
3.功能实现:实现通讯录管理系统的基本功能,包括添加联系人、删
除联系人、查找联系人等操作;
4.文件操作:实现通讯录数据的读写操作,将联系人信息保存到文件
中,以便下次运行时读取;
5.错误处理:处理用户输入错误等异常情况,保证程序的稳定性和可
靠性。

四、预期效果
通过本课程设计,学生将能够掌握以下技能:
1.掌握C语言基本语法和编程逻辑;
2.熟悉数据结构的设计和运用;
3.提高编程能力和软件开发思维;
4.培养团队合作和项目管理能力。

五、总结
通过设计一个通讯录管理系统的C语言课程项目,学生将在实践中加深对C语言的理解和应用,提高编程技能和解决问题的能力。

希望本课程设计能够为学生的编程学习提供一定的帮助和指导。

以上为《通讯录管理系统C语言课程设计报告》的简要介绋,希望能够为课程设计的顺利进行提供一定的参考和指引。

通讯录管理系统c语言课程设计报告(一)

通讯录管理系统c语言课程设计报告(一)

通讯录管理系统c语言课程设计报告(一)通讯录管理系统C语言课程设计报告1. 简介通讯录管理系统是一款基于C语言开发的软件,旨在帮助用户方便地存储、查找、编辑和删除联系人信息。

本报告将对该系统的功能和设计进行详细介绍。

2. 系统功能通讯录管理系统具备以下主要功能:•添加联系人:用户可以输入联系人的姓名、电话号码、电子邮件等信息,并将其添加到通讯录中。

•查找联系人:用户可以根据姓名或电话号码等方式,快速查找通讯录中的联系人信息。

•编辑联系人:用户可以修改通讯录中已有联系人的信息,如电话号码、电子邮件等。

•删除联系人:用户可以从通讯录中删除特定联系人。

•显示通讯录:用户可以查看通讯录中的所有联系人信息。

•退出系统:用户可以选择退出通讯录管理系统。

3. 系统设计数据结构通讯录管理系统主要使用以下数据结构存储联系人信息:•结构体:定义了一个联系人的数据结构,包括姓名、电话号码、电子邮件等字段。

•数组:用于存储多个联系人信息,构成通讯录。

数组的每个元素对应一个联系人的结构体。

主要函数添加联系人函数void addContact(struct Contact contacts[], int *num Contacts)•功能:向通讯录中添加一个联系人。

•输入参数:通讯录数组contacts、通讯录中联系人数量numContacts的指针。

•输出:无。

查找联系人函数void searchContact(struct Contact contacts[], int n umContacts)•功能:根据用户提供的关键词在通讯录中查找联系人。

•输入参数:通讯录数组contacts、通讯录中联系人数量numContacts。

•输出:无。

编辑联系人函数void editContact(struct Contact contacts[], int num Contacts)•功能:根据用户选择的联系人在通讯录中编辑联系人信息。

c语言通讯录管理系统课程设计报告

c语言通讯录管理系统课程设计报告

c语言通讯录管理系统课程设计报告报告标题:C语言通讯录管理系统课程设计报告1. 引言本报告旨在介绍并分析本次课程设计所涉及到的C语言通讯录管理系统的设计与实现过程。

2. 设计目标•开发一个功能完善的通讯录管理系统•实现基本的通讯录管理功能,包括添加、删除、查询、修改联系人信息等•提供良好的用户交互界面,方便用户使用该系统•提高系统的效率和稳定性,确保数据的安全性3. 系统设计概述本通讯录管理系统基于C语言开发,主要包括以下几个模块: - 用户管理模块:实现用户注册、登录、退出等功能 - 联系人管理模块:实现联系人的增删改查等功能 - 数据存储模块:使用文件系统进行数据的读写操作数据结构设计本系统使用了以下数据结构: - 用户结构体:包含用户名、密码等信息 - 联系人结构体:包含姓名、电话号码、地址等信息功能模块设计•用户管理模块:提供用户注册、登录、退出等功能•联系人管理模块:提供联系人的添加、删除、查询、修改等功能•数据存储模块:实现数据的读取与保存功能4. 实现细节用户管理模块•注册功能:获取用户输入的用户名和密码,存储到用户数据文件中•登录功能:根据用户输入的用户名和密码,从用户数据文件中验证登录信息•退出功能:退出当前用户,返回系统主界面联系人管理模块•添加联系人功能:获取用户输入的联系人信息,存储到联系人数据文件中•删除联系人功能:根据用户输入的联系人姓名,从联系人数据文件中删除对应的联系人信息•查询联系人功能:根据用户输入的关键词,从联系人数据文件中查找匹配的联系人信息•修改联系人功能:根据用户输入的联系人姓名,从联系人数据文件中修改对应的联系人信息数据存储模块•读取数据功能:从文件中读取用户和联系人的数据•保存数据功能:将用户和联系人的数据保存到文件中5. 测试与优化本系统在开发过程中进行了多次测试和优化,确保系统的稳定性和功能完善性。

通过模拟用户的操作,检测系统的响应速度、功能是否正常等,并对系统进行了性能调优和bug修复。

c语言通讯录管理系统课程设计报告

c语言通讯录管理系统课程设计报告

C语言通讯录管理系统课程设计报告一、引言通讯录管理系统是一种常见的实用性软件,用于记录和管理个人或组织的联系人信息。

本文档旨在介绍一种基于C语言开发的通讯录管理系统的设计与实现。

通过本系统,用户可以方便地添加、删除、搜索和编辑联系人信息,实现了通讯录的基本功能。

二、系统需求分析本通讯录管理系统的主要功能包括: 1. 添加联系人:用户可以添加联系人的姓名、电话号码、邮箱等信息。

2. 删除联系人:用户可以根据联系人的姓名或电话号码删除对应的联系人信息。

3. 查找联系人:用户可以根据联系人的姓名或电话号码查找对应的联系人信息。

4. 修改联系人:用户可以修改已存在联系人的信息。

5. 显示所有联系人:用户可以查看通讯录中所有的联系人信息。

三、系统设计1. 数据结构设计为了实现通讯录管理系统,我们需要设计适当的数据结构来存储联系人信息。

在本设计中,使用结构体数组来表示每个联系人的信息,其中每个结构体包含姓名、电话号码、邮箱等成员变量。

struct Contact {char name[50];char phoneNumber[20];char email[50];};2. 功能模块设计本系统主要包含以下几个功能模块:a. 添加联系人模块用户可以选择添加新的联系人,输入姓名、电话号码和邮箱等信息后,系统将在通讯录中添加新的联系人。

b. 删除联系人模块用户可以根据输入的姓名或电话号码查找对应的联系人信息,并选择删除对应的联系人。

c. 查找联系人模块用户可以根据输入的姓名或电话号码查找对应的联系人信息,并在界面上显示查询结果。

d. 修改联系人模块用户可以根据输入的姓名或电话号码查找对应的联系人信息,并选择修改对应的联系人。

e. 显示所有联系人模块用户可以选择显示通讯录中所有的联系人信息,在界面上进行展示。

3. 系统框架设计本系统的整体框架如下:1. 主菜单显示2. 根据用户的选择,进入对应的功能模块四、系统流程图下图展示了通讯录管理系统的整体流程:主菜单 -> 用户选择功能模块 -> 执行对应模块功能五、代码实现以下为通讯录管理系统的部分核心代码实现,完整代码可参考附录部分。

C语言个人通讯录管理系统课程设计报告

C语言个人通讯录管理系统课程设计报告

语言程序设计》C《课程设计报告_________:__________C设计题目语言个人通讯录管理系统摘要本次课程设计地题目为个人通讯录管理系统,要求将程序中所输入地联系人姓名、电话和地址信息这三个数据以文本方式保存在磁盘中,并且能够对所储存地联系人信息进行显示、查询、修改、删除等功能.我编写地程序从整体上看可分为两个部分,一部分为文件地建立、读取和保存,另一部分为通讯录功能地实现.在文件部分,我通过readfile()函数和writefile()函数从而实现了对磁盘上数据地进行写和读,通过刚开始地界面提示可以知道文件是否建立,以免丢失数据,我还为用户设计了保存退出和不保存退出两大功能供用户做选择.在模块功能实现部分,通过scanf从键盘上输入地数字放到switch() case 循环中来实现调用zengjia()、shanchu()、xiugai()、chazhao()等十五个函数来实现“添加”、“查询和显示”、“修改”、“删除”等不同功能.关键字:文件、数组、循环、函数重庆科技学院课程设计任务书设计题目:个人通讯录管理系统学生姓XXX课程名语言程序设计课程设专业班电自2011I515起止时20111-12建立一通讯录,输入姓名、电话号码、住址等信息,然后对通信簿进行显示查找、添加、修改及删.进一步掌握利语言进行程序设计地能力;进一步理解和运用结构化程序计地思想和方法;初步掌握开发一个小型实用系统地基本方法;学会调试一个较程序地基本方法;学会利用流程图表示算. 根据题目要求,运用所学知识,完成设计和实现工作,并按照书写规范,撰课程设计报.)系统分析、设计正)结果以图表方式显(计3)界面简洁、美观..参)报告格式规范4(数.教研室主任:指导教师:雷亮2015年12月10日目录第一章软件需求分析说明书 (1)1.1设计软件地目地分析 (1)1.2软件地界面要求 (1)1.3详细地功能分析 (1)1.3.1创建文件 (1)1.3.2 添加联系人 (1)1.3.3显示和查询联系人 (1)1.3.4 删除联系人 (1)1.3.5 修改联系人 (1)1.3.6 保存退出与不保存退出 (1)1.4设计要求分析 (1)1.5软件地数据结构分析 (2)1.5.1 软件地函数 (2)1.5.2 文件地调用和保存 (2)第二章系统分析与设计 (2)2.2 软件地数据(结构)设计 (2)2.2.1 软件地文件功能 (2)2.2.2 文件内部地数据格式 (2)2.3 软件地模块图 (2)2.4 软件地流程图 (3)2.4.1 添加联系人程序流程图 (3)2.4.2 显示和查找联系人程序流程图 (4)2.4.3 删除联系人流程图 (4)2.4.4 修改联系人流程图 (5)第三章软件地实现 (6)3.1 函数声明 (7)3.2 zhucaidan()主菜单函数 (7)3.3 main()主函数 (7)3.4 readfile()读取文件函数 (8)3.5 writefile()联系人写入文件函数 (9)3.6 zengjia()增加联系人函数 (9)3.7 shanchu()删除函数主界面 (10)3.8 xianshi()显示和查询函数 (11)3.9 xianshi()显示所有人函数 (11)3.10 chazhao_xingming()姓名查询函数 (12)3.11 chazhao_dianhua()按号码查询函数 (12)3.12 shanchu_dange()删除单个联系人函数 (13)3.13 shanchu_quanbu()删除所有联系人函数 (13)3.14 shanchu_xingming()按姓名删除联系人函数 (14)3.15 shanchu_dianhua()按电话号码删除函数 (15)3.16 xiugai()修改函数主体界面 (16)3.17 xiugai_xingming()按姓名修改 (17)3.18 xiugai_dianhua()按号码修改联系人函数 (18)第四章软件测试 (20)4.1 文件导入界面 (20)4.2 软件地主界面 (20)4.3 添加联系人模块 (20)4.4.1主界面 (21)4.4.2无联系人地显示界面 (21)4.4.3有联系人地显示界面 (22)4.4.4按姓名查找 (22)4.4.5 按电话号码查找 (22)4.5 删除联系人模块 (23)4.5.1删除联系人主界面 (23)4.5.2没有对应联系人地删除界面 (23)4.5.3按姓名删除 (23)4.5.4按电话号码删除 (24)4.6 修改联系人模块 (24)4.6.1修改联系人主菜单 (24)4.6.2 按姓名修改 (25)4.6.3按电话修改 (25)4.7 退出 (26)4.7.1 保存退出 (26)4.7.2 不保存退出 (26)第五章总结与体会 (26)致谢 (28)参考文献 (29)第一章软件需求分析说明书1.1设计软件地目地分析本软件要求用C语言建立一通讯录,输入姓名、电话号码、住址等信息,然后对通信录进行显示、查找、添加、修改及删除.1.2软件地界面要求本软件要求软件地界面简洁、美观,让人一目了然,使用起来方便.于是我设计地软件首先提示您是否有通讯录文件存在,如没有文件,则自动建立一个,如有文件存在,则提示导入成功,让人直观明白地了解文件地情况.按任意键便可以进入主菜单,在主菜单上显示出软件地功能,通过输入数字0到5来进行选择便可以实现你所需要地功能,每个模块进入模块内部实现软件地具体功能,实现您所需要地功能.1.3详细地功能分析该系统用下面六个功能模块编写,每个模块执行不同地功能,体现了模块化设计地思想.下面六个模块都是利用C语言文件,向文件中添加数据、修改数据、查询数据、删除数据和保存数据.1.3.1创建文件用fopen()建立一个文本文件,然后向其中输入数据(例如,向文件中输入“姓名”,“地址”,“号码”等),并对文件进行命名.1.3.2 添加联系人通过键盘输入通讯录人员地姓名、电话号码、地址信息便可实现将信息添加到通讯录文件内,添加完毕后,系统会自动询问你是否继续添加,如你想继续添加,再通过键盘输入通讯录人员地姓名、电话号码、地址信息即可实现继续添加.1.3.3显示和查询联系人通过前面第一个模块打得录入我们便可以执行第二个模块,通过第二个模块我们可以进行对联系人进行显示和查找.我通过调用showall()函数来进行显示所有地联系人,showall()函数可以实现逐个显示联系人.对于查找联系人我则采用了search()函数来进行查找联系人,我提供了两种查找方法:①按照姓名查找;②按照电话号码查找.1.3.4 删除联系人我调用deletecd()函数来实现删除功能,同样我也提供给了两种删除方法:①全部删除;②单个删除.其中全部删除会提示是否全部删除,以免误删.1.3.5 修改联系人我调用modify()函数来实现修改功能,我同样提供了两种修改方法:①对姓名进行修改;②对电话号码进行修改.修改完毕后会提示是否据需修改.1.3.6 保存退出与不保存退出你还在为误添加、误修改、误删除后悔吗?还想回到以前地数据吗?这个担忧在我地程序中您就不必担心了,我为程序提供了两种退出方式:①保存退出;②不保存退出.完全解决您地后顾之忧.1.4设计要求分析语言进行程序设计地能力;C进一步掌握利用①.进一步理解和运用结构化程序设计地思想和方法;②初步掌握开发一个小型实用系统地基本方法;③学会调试一个较长程序地基本方法;④.⑤学会利用流程图表示算法.⑥根据题目要求,运用所学知识,完成设计和实现工作,并按照书写规范,撰写课程设计报告1.5软件地数据结构分析1.5.1 软件地函数本软件采用了不同地函数来进行定义不同模块地功能,通过调用不同地函数,可以实现不同地功能.软件中采用了五个主体函数来实现添加联系人,修改联系人,查找联系人,显示联系人,删除联系人地功能.1.5.2 文件地调用和保存本软件通过文本方式对用户所录入地信息进行保存.通过保存下来地文本,您可以在电脑磁盘中找到您存入文件地位置,打开后便可以找到您所录入地通讯录信息.第二章系统分析与设计2.1 软件界面设计画出软件全部输入、输出数据地界面,并对每一个界面进行详细地操作说明2.2 软件地数据(结构)设计软件调用不同地函数来实现不同地功能,通过反复调用函数来实现反复输入.代码中通过scanf 从键盘上输入不同地数字选项,然后通过swtich case()来实现对不同函数地调用.2.2.1 软件地文件功能软件采用了文本文档进行存取,我在C盘建立了一个txl文本文档用于存取输入地信息,打开C 盘后就能直接看到您录入地信息,很方便和快捷.2.2.2 文件内部地数据格式我采用了readfile()函数来读取文件,使用if((fp=fopen(c:\\通讯录.txt,))==NULL)以只读方式打开判定文件是否为空,如果不空,则使用fseek(fp,0,2)。

c语言课程设计通讯录管理系统课程设计报告

c语言课程设计通讯录管理系统课程设计报告一、教学目标本课程旨在通过学习C语言通讯录管理系统的设计与实现,让学生掌握C语言编程的基本技能,培养其软件开发的基本思路与方法。

具体目标如下:1.知识目标:–理解C语言的基本数据类型、运算符、控制结构。

–学习C语言函数的定义与调用。

–掌握结构体、文件操作等高级C语言特性。

2.技能目标:–能够运用C语言实现简单的数据结构,如链表、数组。

–培养学生使用C语言进行程序设计的能力,能够独立完成程序编写、调试与优化。

–学会使用C语言实现文件操作,包括文件的读取与写入。

3.情感态度价值观目标:–培养学生对计算机科学的兴趣,增强其自主学习的动力。

–通过项目实践,培养学生的团队协作能力和解决问题的能力。

–引导学生理解技术对生活的影响,培养其对技术发展的责任感。

二、教学内容教学内容选取C语言编程的核心知识点,结合通讯录管理系统的实例进行讲解。

具体内容包括:1.C语言基础:数据类型、变量、运算符、控制结构。

2.函数:函数定义、调用、参数传递、返回值。

3.数据结构:数组、链表、栈和队列。

4.文件操作:文件读写、文件指针。

5.通讯录管理系统实现:结构体定义、系统功能实现、项目管理。

三、教学方法结合C语言特点和通讯录管理系统实例,采用以下教学方法:1.讲授法:系统讲解C语言基础知识和通讯录管理系统的设计理念。

2.案例分析法:通过分析典型代码案例,让学生理解程序设计逻辑。

3.实验法:学生在实验室进行编程实践,巩固理论知识。

4.讨论法:分组讨论问题,培养学生的团队协作和沟通能力。

四、教学资源1.教材:《C程序设计语言》(K&R)、《C Primer Plus》。

2.参考书:《C语言编程思想》、《C语言实践》。

3.多媒体资料:教学PPT、在线编程教程、视频讲解。

4.实验设备:计算机、网络环境、编程环境(如Code::Blocks、VisualStudio)。

五、教学评估本课程的教学评估将综合考虑学生的平时表现、作业、考试等方面,以全面、客观、公正地评价学生的学习成果。

通讯录管理系统c语言课程设计报告

通讯录管理系统c语言课程设计报告通讯录管理系统C语言课程设计报告1. 项目概述•本项目是一个通讯录管理系统,旨在提供用户管理通讯录的功能。

•使用C语言开发,具有良好的跨平台兼容性。

•主要功能包括添加联系人、查找联系人、编辑联系人、删除联系人等。

2. 项目背景•通讯录是现代社会必不可少的工具,用于管理个人和组织的联系人信息。

•传统的纸质通讯录已不能满足日益增长的信息管理需求。

•本项目旨在开发一款方便、高效的电子通讯录管理系统,满足人们对联系人信息管理的需求。

3. 技术实现•采用C语言作为开发语言,具有良好的跨平台兼容性和高效的执行速度。

•主要采用文件存储方式,将联系人信息保存在本地文件中。

•使用结构体来表示联系人信息,方便管理和操作。

4. 功能模块添加联系人•用户可以通过输入姓名、电话号码、电子邮件等信息,添加新的联系人。

•程序将自动生成一个唯一的联系人ID,并将联系人信息保存到文件中。

查找联系人•用户可以通过姓名、电话号码等条件进行查找联系人。

•程序将根据用户输入的条件,在通讯录中查找符合条件的联系人,并将结果返回给用户。

编辑联系人•用户可以选择要编辑的联系人,并进行修改联系人信息的操作。

•程序将根据用户输入的联系人ID,找到对应的联系人并允许用户修改其信息。

删除联系人•用户可以选择要删除的联系人,并进行删除操作。

•程序将根据用户输入的联系人ID,找到对应的联系人并从通讯录中删除。

5. 实施计划需求分析•确定系统所需的功能模块和用户需求,并进行详细的功能需求分析。

概要设计•设计系统的整体结构,包括模块划分、数据结构设计等。

详细设计•对每个模块进行具体的设计,包括函数接口定义、算法流程图等。

编码实现•根据详细设计的结果,使用C语言进行编码实现。

调试测试•对编码实现的程序进行测试和调试,修复可能出现的问题。

文档撰写•撰写项目的相关文档,包括使用说明、技术文档等。

6. 总结与展望•本项目成功开发了一个通讯录管理系统,具有简洁、高效的特点。

通讯录管理系统课程设计报告书(C语言)

学生通讯录管理系统任务说明:主要利用c语言的文件操作能力设计开发一个小型的通讯录管理系统,至少具有如下功能:①记录通讯录内的人员的学号、姓名、学院、电话号码。

②显示所有人员的信息。

③通过输入姓名查找人员信息。

④通过输入姓名查找到要删除的人员信息,然后可以进行删除。

⑤通过输入姓名查找到要修改的人员信息,然后可以进行修改。

⑥添加人员信息。

系统功能描述:本程序的功能是为用户提供简单的通讯录进行管理,通过该程序存储联系人信息,提供关键字(只能是英文关键字进行查找)查找功能,可以对数据进行修改、删除、添加等操作。

各按钮的功能如下:查找记录:以姓名为关键字,查找并显示该记录。

若查找不到,则显示“好象没有”;添加记录:将当前记录按姓名序加入通讯录,然后显示第一条记录;修改记录:修改当前记录,显示当前记录。

姓名为关键字,不允许修改;删除记录:删除当前记录,然后显示第一条记录;第一条记录:将当前记录指针移动至首节点,若已为首节点,则不移动;前一条记录:将当前记录指针向前移动一个节点,若已为首节点,则不移动;后一条记录:将当前记录指针向后移动一个节点,若已为尾节点,则不移动;最后一条记录:将当前记录指针移动至尾节点,若已为尾节点,则不移动;加载:从文件中掉入已保存的通讯录数据;保存:保存通讯录数据;退出:退出系统;设计思路:根据要求,电话录数据以文本文件存放在文件中,故需要提供文件的输入、输出等操作;还需要保存记录以进行修改,删除,查找等操作;另外还应提供键盘式选择菜单实现功能选择。

软件中使用的结构体和结构体数组,如:structcallmember{charname[20];charaddress[20];charcode[20];charcallnumber[ 20];};对用户的信息进行保存,他们都以二进制的形式读写。

其中:charname[20];charaddress[20];charcode[20];charcallnumber[20]通过对这些资源的合理利用使系统初步实现了通讯录管理系统的基本功能。

c通讯录课程设计报告

c通讯录课程设计报告一、课程目标本通讯录课程设计旨在通过实践活动,使学生在信息技术学科的基础上,掌握以下知识目标、技能目标和情感态度价值观目标:1. 知识目标:- 了解通讯录的基本概念、功能及在实际生活中的应用。

- 掌握通讯录的录入、修改、删除、查询等基本操作。

- 了解如何对通讯录进行分类、排序和筛选,以便快速查找和整理信息。

2. 技能目标:- 学会使用电子表格软件(如Microsoft Excel)创建、编辑和管理通讯录。

- 能够运用所学知识,设计并优化个人或团队的通讯录,提高信息处理效率。

- 培养学生的团队协作能力,通过小组讨论和分享,提高问题解决和沟通表达能力。

3. 情感态度价值观目标:- 培养学生珍惜个人信息,尊重他人隐私的观念。

- 增强学生的信息素养,认识到信息技术在生活中的重要性,激发对信息技术的学习兴趣。

- 通过对通讯录的学习和实际操作,培养学生的责任心和细致严谨的工作态度。

课程性质:本课程为实践性较强的信息技术课程,结合学生年级特点和教学要求,注重培养学生的动手操作能力和团队协作能力。

学生特点:考虑到学生所在年级,他们在信息技术方面已具备一定的基础,对新鲜事物充满好奇心,善于合作学习。

教学要求:结合课程目标和学科特点,教师应注重实践操作,引导学生主动探索、积极思考,将所学知识应用于实际生活中,达到学以致用的目的。

在教学过程中,教师需关注学生的学习进度,及时调整教学策略,确保课程目标的实现。

通过本课程的学习,使学生能够熟练掌握通讯录的制作和管理,提高个人信息素养。

二、教学内容根据课程目标,本章节教学内容围绕通讯录的制作和管理展开,确保内容的科学性和系统性。

以下是详细的教学大纲及教材关联内容:1. 通讯录概述- 介绍通讯录的定义、功能及应用场景。

- 教材章节:第一章 信息技术与日常生活。

2. 通讯录的基本操作- 学习通讯录的录入、修改、删除、查询等操作。

- 教材章节:第二章 电子表格软件的基本操作。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

精心整理高级语言程序设计报告(个人通信录管理系统)院系:通信与信息工程学院班级:通信工程1104班成员:时间:2012年7月2日基于链表的个人通信录管理系统课程设计任务书课程设计情况课程设计名称基于链表的个人通信录管理系统指导教师姓名职称需学生数6人组长杨文刚成员李岩、王皓升、罗洋、王志旭、沈洋精心整理各成员主要负责内容杨文刚负责主体函数框架建立和函数模块整合李岩负责程序的添加模块王皓升负责程序的删除模块王志旭负责程序的查找模块罗洋负责程序的输出模块沈洋负责程序的输入模块程序的调试和测试由小组成员共同参与完成课程设计的报告撰写由杨文刚、李岩完成目录1.设计目的 (1)2.总体设计 (2)3.详细设计 (3)4.程序调试与测试 (5)5.程序清单与执行结果 (6)5.1 程序清单 (6)5.2 程序执行结果 (14)6.课程设计总结 (20)1.设计目的1.1 问题描述编写一C 语言程序,其功能是建立一个基于链表的个人通信录管理系统,个 人通信录进行建立、输出、添加、查找及删除运行结果进行打印等相关操作。

1.2 问题分析首先,选择合适的存储结构构造个人通信录,对该程序可以分为几个模块进行分析,每个模块在该程序中的作用进行了解。

最后用设计连接图将各模块之间的联系连接起来,以方便我们更容易理解。

然后,该程序需要一个详细的设计流程图来表示各个步骤所完成的先后顺序,(如,对个人通信录进行添加,查找输出打印结果)。

最后,按流程图进行编写个人通信录的程序,输出结果,并将打印的结果显示出。

1.3 设计分析本次实验设计主要是建立个人通信录,要实现个人通信录的建立,个人通信录的查找,个人通信录的添加及个人通信录的删除功能。

.设计需求上我们需要掌握以下几点:(1).设计部分1. 写出本次实验的详细设计方案。

2. 画出该次程序的流程图。

3. 分析该次程序的程序清单,进行程序测试并输出运行结果。

4. 对该次程序中个函数的功能分析结果。

5. 对该次实验完成后有总结。

(2).设计大纲1. 了解, 分析这次实验的主要问题。

2. 讨论解决问题的方案。

3. 分配组员的个人任务。

4. 进行各部分的整合、修改、完善。

5. 进行这次实验的总体报告实验总结。

2.总体设计2.1 程序设计组成框图图1 个人通信录 主函数模块 个人通信个人通信个人通信个人通信个人通信2.2 流程图3.详细设计3.1 模块功能说明3.1.1 通信录建立模块创建链表,并返回表头指针{创建新节点;while (判断读入编号){读入联系人信息;保存到指定的域;开始菜单选择建立输出添加查找删除信息输信息删信息查信息添信息输按身份证号结束 否否 否 否 否是 是 是 是 是指针指向下一新节点;}}{按指定格式输出通讯录表头信息;if(头指针不为空){按指定格式输出联系人信息;记录联系人数;}else通信录为空;}3.1.3 通信录添加模块{新建节点;屏幕提示输入要添加的联系人信息;读入联系人信息;按联系人编号升序排序;}3.1.4 通信录删除模块{提示输入要删除的联系人编号;读入编号信息;if(找到){输出找到的联系人信息;询问是否删除该联系人;}else提示没有该联系人;}3.1.5 通信录查找模块{提示输入要查找的联系人身份证号;读入身份证号信息;If(找到)显示查找到的联系人信息;else提示没有该联系人;}4.程序调试与测试参照教材编写完程序的各个模块后,我们将各个模块和主函数整合,运行之后主要存在以下几个问题:1. 程序输出信息部分不正确运行程序,输入通信录中联系人信息后,程序输出的电话号码和身份证号信息错误,有时还会出现负数。

经过查找发现在读入联系人信息时,这两项采用了长整型数据类型,但是长整型最大支持的值仍然小于电话号码和身份证号的值。

我们换用字符串类型读入信息后为问题解决。

2. 结束联系人信息的输入(以数字0结束)存在问题运行程序,我们在输入联系人信息完毕后是用数字0结束的,但是当我们输入完信息后,得将下一个联系人的所有信息全部输入为数字0时,程序才会结束输入。

针对这个问题我们修改了输入模块的循环体顺序,让程序先判断输入的联系人编号是否为0,是0时结束输入,不是0时继续读入联系人信息。

这样在我们结束输入时只需按一次0即可结束输入。

3. 联系人的查找存在问题我们在查找(用身份证号)联系人时,当我们输入通信录中存在的联系人的身份证号时,程序能准确查找到该联系人;但当我们输入的身份证号信息在通信录中不存在时,程序会非法结束。

为此,我们请教了老师,修改了if语句中的判断条件,程序能够在我们输入的身份证号信息不存在时正常提示“通信录中没有该联系人”,问题解决。

因为我们的程序是根据教材中的程序编写的,所以在调试过程中,程序没有出现大的错误,在模块连接上也没有问题,只是有一些输入输出以及一些循环体上的错误。

5.程序清单与执行结果5.1 程序清单/*主控菜单程序*/#include "stdio.h"#include "stdlib.h"#include "string.h"struct per /*定义结构体类型*/{long int num;char name[20];char tel[12];char mail[30];char add[50];long int mnum;char id[18];struct per *next;};struct per *jianli(); /*声明建立通信录函数*/void shuchu(struct per *head); /*声明输出通信录函数*/struct per *tianjia(struct per *head); /*声明添加联系人函数*/struct per *shanchu(struct per *head); /*声明删除联系人函数*/struct per *chazhao(struct per *head); /*声明查找联系人函数*/struct per *head=NULL;void main() /*主函数*/{int select;int pass1;int pass=123456;printf("\n欢迎使用个人通信录管理系统,请输入登录密码:");scanf("%d",&pass1);if(pass==pass1){printf("\n登录成功!\n\n");do{printf("\n\t***************** 欢迎进入个人通信录管理系统 ******************\n");/*主控菜单*/printf("\n\t ----------------->> 1: 建立通信录 <<-----------------");printf("\n\t ----------------->> 2: 输出通信录 <<-----------------");printf("\n\t ----------------->> 3: 添加联系人 <<-----------------");printf("\n\t ----------------->> 4: 删除联系人 <<-----------------");printf("\n\t ----------------->> 5: 查找联系人 <<-----------------");printf("\n\t ----------------->> 0: 退出系统 <<-----------------\n");printf("\n\t***************************************************************\n");printf("\n\t请选择(0---5):");scanf("%d",&select);printf("\n");switch(select) /*对应模块函数*/{case 1:head=jianli();break;case 2:shuchu(head);break;case 3:head=tianjia(head);break;case 4:head=shanchu(head);break;case 5:head=chazhao(head);break;case 0:break;default:printf("您的输入有误,请重新输入(0---5):\n");}}while(select!=0);}elseprintf("\n对不起,您输入的密码不正确,请按任意键退出程序!!!\n\n");}/*建立通信录函数*/struct per *jianli() /*创建链表,并返回表头指针*/{struct per *head; /*表头*/struct per *p1; /*新建节点*/struct per *p2; /*表尾节点*/long int num1;char name1[20];char tel1[12];char mail1[30];char add1[50];long int mnum1;char id1[18];head=NULL; /*无任何节点,表头指向空*/printf("请输入联系人编号、姓名、电话、身份证号、邮箱、地址及邮编(用空格分隔,用0结束)\n");scanf("%d",&num1);while(num1!=0) /*假设num=0表示输入结束*/{scanf(" %s %s %s %s %s %d",name1,tel1,id1,mail1,add1,&mnum1); /*读入第一个联系人的信息*/p1=(struct per *)malloc(sizeof(struct per)); /*新建一个节点*/p1->num=num1; /*存入联系人的信息*/strcpy(p1->name,name1);strcpy(p1->tel,tel1);strcpy(p1->id,id1);strcpy(p1->mail,mail1);strcpy(p1->add,add1);p1->mnum=mnum1;p1->next=NULL; /*将next域置为空,表示尾节点*/if(head==NULL)head=p1; /*第一个新建节点是表头*/ elsep2->next=p1; /*原表尾的下一个节点是新节点*/p2=p1; /*新建节点成为表尾*/scanf("%d",&num1);}return head; /*返回表头指针*/}/*输出通信录函数*/void shuchu(struct per *head){struct per *p;int n=0; /*统计节点数,即联系人数*/printf("\n\t*******************通*******信*******录*******************\n");printf("\n%-5s%-12s%-12s%-19s%-17s%-9s%-7s\n","编号","姓名","电话号码","身份证号","邮箱","地址","邮编");if(head!=NULL){for(p=head;p!=NULL;p=p->next) /*如果到达尾节点退出循环,否则继续*/{printf("%-5d%-12s%-12s%-19s%-17s%-9s%-7d\n",p->num,p->nam e,p->tel,p->id,p->mail,p->add,p->mnum);n++;}printf("联系人总数:%d\n\n",n);}elseprintf("\n对不起,该通信录中没有任何联系人!\n\n");}/*添加联系人函数*/struct per*tianjia(struct per*head){struct per*p;struct per*p1;struct per*p2;p2=head;p=(struct per*)malloc(sizeof(struct per)); /*新建节点p*/printf("请输入要添加的联系人的编号、姓名、电话、身份证号、邮箱、地址、邮编:\n");scanf("%d %s %s %s %s %s %d",&p->num,p->name,p->tel,p->id ,p->mail,p->add,&p->mnum);printf("成功添加联系人%s !\n",p->name);if(head==NULL){head=p;p->next=NULL;}else{while((p->num>p2->num)&&(p2->next!=NULL)) /*查找添加位置*/{p1=p2;p2=p2->next;}if(p->num<=p2->num) /*从小到大排列,添加至表内*/{if(p2==head){head=p;p->next=p2;}else{p1->next=p;p->next=p2;}}else /*添加至表尾*/{p2->next=p;p->next=NULL;}}return(head);}/*删除联系人函数*/struct per * shanchu(struct person*head){struct per *p2;struct per *p1;int num1,n;printf("请输入要删除的联系人编号:"); /*根据输入信息查找联系人*/scanf("%d",&num1);if(head==NULL){printf("\n通讯录为空\n\n");return(head);}p2=head;while(num1 != p2-> num && p2->next !=NULL){p1=p2;p2=p2->next;}if(num1==p2->num){printf("\n成功查询到该联系人!\n");printf("\n%-5s%-12s%-12s%-19s%-17s%-9s%-7s\n","编号","姓名","电话号码","身份证号","邮箱","地址","邮编");printf("%-5d%-12s%-12s%-19s%-17s%-9s%-7d",p2->num,p2->nam e,p2->tel,p2->id,p2->mail,p2->add,p2->mnum);printf("\n确定删除? 1确定 0取消 ");scanf("%d",&n);switch(n){case 1:{if(p2==head)head=p2->next;elsep1->next=p2->next;free(p2);printf("\n成功删除编号为%ld的联系人!\n\n",num1);}break;case 0:printf("\n您取消了删除任务,联系人未被删除!\n");break;}}elseprintf("\n对不起,该通信录中没有任何联系人!\n\n");return(head);}/*查找函数*/struct per *chazhao(struct per *head){struct per*p2;char id1[20];printf(" 请输入要查找的联系人身份证号:\n");scanf("%s",id1);if(head==NULL){printf("\n通讯录为空\n\n");return(head);}p2=head;while (p2){if(strcmp(p2->id,id1)==0){ printf("\n成功查询到该联系人!\n");printf("\n%-5s%-12s%-12s%-19s%-17s%-9s%-7s\n","编号","姓名","电话号码","身份证号","邮箱","地址","邮编");printf("%-5d%-12s%-12s%-19s%-17s%-9s%-7d\n",p2->num,p2->n ame,p2->tel,p2->id,p2->mail,p2->add,p2->mnum);break;}p2=p2->next;}if(!p2)printf("\n对不起,该通信录没有该联系人!\n\n");return (head);}5.2 程序执行结果5.2.1 密码登录界面5.2.2 密码输入错误界面5.2.3 成功登录主界面5.2.4 建立通信录5.2.5 输出通信录5.2.6 添加联系人5.2.7 添加后输出通信录5.2.8 成功查找联系人5.2.9 找不到联系人时界面6.课程设计总结通过这次的课程设计使我们充分了解了个人通信录的建立、输出、添加、删除、查找的基本原理,并可以编写出其程序。

相关文档
最新文档