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

合集下载

通讯录管理系统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语言课程设计报告

目录一、需求分析 (2)二、概要设计 (2)三、详细设计 (4)四、调试分析 (6)五、用户手册 (7)六、测试数据 (7)七、附录 (15)一、需求分析1 课程设计目的设计一个实用的小型通讯录程序,具有添加,查询和删除功能。

由姓名,籍贯,电话号码1,电话号码2,电子邮箱组成,姓名可以由字符和数字混合编码。

电话号码可由字符和数字组成。

2 课程设计任务(1)系统以菜单方式工作(2)信息录入功能(3)信息浏览功能(4)信息查询功能(5)信息修改功能(6)系统退出功能3 设计环境(1)WINDOWS 2000/2003/XP/7系统(2)Visual C++或TC集成开发环境4 开发语言C语言二、概要设计⒈选项菜单printf("******************MENU******************\n\n");printf(" 0. Enter record\n");/*输入记录*printf(" 1. List the file\n");/*显示记录*/printf(" 2. Search recond on name\n");/*按姓名查找记录*/printf(" 3. Delete a record\n");/*删除记录*/printf(" 4. Add record \n");/*添加记录*/printf(" 5. Change record \n");/*修改联系人*/printf(" 6. Save the file \n");/*记录保存为文件*/printf(" 7. Load the file \n");/*从文件中读记录*/printf(" 8. Sort to make new file\n");/*按姓名排序*/printf(" 9. Quit\n");/*退出*/printf("****************************************\n");2.系统流程图系统流程图3. 本程序模块结构(1)结构体模块定义结构体类型typedef struct ADDRESS联系人信息(包括:姓名住址电话号码1 电话号码2 电子邮箱),定义一个结构体数组adr[M],用来存放联系人的信息,在c盘建一record.txt用储存联系人的信息。

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

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

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

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

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

C语言课程设计通讯录实验报告

C语言课程设计通讯录实验报告

C语言课程设计通讯录实验报告实验目的:本实验旨在通过设计一个通讯录程序,加深理解和掌握结构体、函数和文件操作等C语言知识,并培养学生的实践能力和解决问题的能力。

实验要求:设计一个通讯录程序,能够实现添加联系人、删除联系人、查找联系人、修改联系人信息等基本功能,并能够将联系人信息保存到文件中,实现数据的持久化存储。

实验原理:通讯录程序的数据结构可以设计为一个结构体数组,每个元素表示一个联系人,结构体包含姓名、电话号码、地址等信息。

通过使用不同的函数实现不同的功能,如添加联系人函数addContact()、删除联系人函数deleteContact()、查找联系人函数searchContact()等。

实验步骤:1. 定义一个结构体类型,包含姓名、电话号码和地址等信息。

2. 声明并实现各个功能函数,如添加联系人函数addContact()、删除联系人函数deleteContact()、查找联系人函数searchContact()等。

3. 在主函数中使用循环菜单来实现用户的各种操作选择。

4. 将联系人信息保存到文件中,实现数据的持久化存储。

5. 编译并运行程序,验证程序的正确性和功能完整性。

实验结果:通过实验,成功设计并实现了一个通讯录程序,能够实现添加联系人、删除联系人、查找联系人、修改联系人信息等基本功能,并能够将联系人信息保存到文件中,实现数据的持久化存储。

实验总结:本实验通过设计一个通讯录程序,加深了对结构体、函数和文件操作等C语言知识的理解和掌握,同时也培养了解决问题的能力和实践能力。

通过实验,我进一步理解了结构体的定义和使用、函数的声明和调用、文件的打开和关闭等操作。

在实验过程中,我也遇到了一些问题,如如何优化查找联系人的算法、如何处理文件打开失败的情况等,通过思考和调试逐步解决了这些问题。

实验过程中的问题和解决方法不仅加深了对C 语言的理解,也提高了解决问题的能力。

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语言课程设计报告---通讯录管理系统

一、实习题目通讯录管理系统二、需求分析问题描述:本程序属于非数值计算型算法设计,学生需要设计出图书馆模拟系统所需要的基本功能,并设计简单的界面(无需图形化)。

实现功能:1、通过提示菜单选择可以进行的操作2、将图书的信息存入文件中,并命名为BookInfo.txt3、将图书借阅情况信息存入文件中,并命名为SendInfo.txt4、在本系统中可以进行管理系统包含的基本操作,其中包括:a)查看所有图书的信息;b)输入一本图书的图书编号,从当前图书中进行查找,如果找到则显示该图书的相关信息,如果没有找到则给出提示信息;c)添加一本图书的基本信息,通过输入图书编号,首先查找是否存在该图书编号的图书,如果存在则提示重新输入,否则将该图书按照顺序插入到相应位置;d)删除一本图书的基本信息,通过输入图书编号,首先查找是否存在该图书编号的图书,如果存在则将该图书删除,否则给出提示信息,提示该图书不存在;e)借阅一本图书,需要给出学号和图书编号,如果图书编号不存在则重新输入,直到输入正确为止,并将学号和相应的图书编号存入SendInfo.txt文件中。

5、图书基本信息包括图书编号、书名、作者、出版社和价钱这些简单信息。

6、图书信息文件中每一行存放一本图书的信息。

7、借阅信息文件中每一行存放一本书的借阅情况。

知识点:本程序主要考察对自定义函数的熟悉程度,本程序中主要使用到的是数组的相关操作,包括数组的输入、输出、查找、插入、删除等操作,需要对数组有比较深入的掌握。

说明:(1)当程序执行的时候所读取的图书信息文件必须存在,否则可能会出现错误。

(2)图书信息文件中存放图书信息的时候是按照行来存放的,即一行一本书。

(3)借阅信息文件中存放学生借阅情况是按照行来存放的,即一行存放一个学号和一个图书编号。

(4)程序执行的基本过程为:a)在所有操作之前,也就是加载操作菜单之前,先从文件中读取所有图书的信息,并存入一个数组中,此时数组可以定义为包含100个元素;b)然后根据菜单所进行的所有操作都是对当前数组进行操作,此时也就是对数组的查找、定位、添加、修改、删除操作;c)当退出系统的时候再将当前数组中的所有元素按照一本图书一行的方式写回图书信息文件中,此时注意选择覆盖方式,这样就可以将原来的所有数据覆盖,只保留最新的数据;当按行读取图书信息文件的时候,有可能最后一行只有一个回车,这时候实际上所读取的数据为空字符串,需要对此作判断,如果是空字符串,则说明已经没有人员,就必须将当前读入的空字符串写入数组中。

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

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)。

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

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

通讯录系统的设计与实现桂林电子科技大学电信三班傅得耕3.1系统的需求分析通讯录系统作为一个应用软件将为人民提供一个可以串联人与人之间的信息的一个平台。

根据系统界面的提示信息对通讯录进行查询、初始化等操作。

系统功能需求分析描述如下:(1)创建联系人。

(2)显示所有联系人:显示可以进行的操作。

(3)删除联系人。

(4)查询:根据姓名进行查询,并可显示所有关于该人的信息。

(5) :退出。

3.2系统的设计3.2.1 系统的总体设计下面从系统的整体流程的功能模块、系统界面及数据结构进行总体设计。

(1)总体思想本系统主要设计思想是实现通讯录系统信息的创建联系人、删除、查找等主要功能。

系统的设计方法是结构化实际方法,系统用C语言进行开发用户可以清晰的了解联系人的情况。

(2)系统模块结构图根据需求分析结果,通讯录系统可以分为五大模块:创建联系人模块、显示功能模块、查找联系人功能模块、删除联系人模块以及退出模块。

㈡查询人物信息进入此菜单功能模块,输入您要查询的图书的名字。

图书查询模块流程如图:3.3创建删除系统3.4 源代码#include <stdio.h>#include <malloc.h>#include <string.h>#define LEN sizeof(struct people) struct people{char name[10];char address[50];char postcode[7];char phonenum[12];struct people * next;};int n = 0, c;static struct people * head;void insert();void show();void delete(char *);void query(char *);int main(int argc, char const *argv[]) {struct people * peo;char nam[10];int i, choose = 0;for (i = 0; i < 60; ++i){printf("*");}printf("\n\t\t\t\t通讯录\n");printf("\t\t\t1.创建联系人\n");printf("\t\t\t2.显示所有联系人\n");printf("\t\t\t3.删除联系人\n");printf("\t\t\t4.查找联系人\n");printf("\t\t\t5.退出\n\n");for (i = 0; i < 60; ++i){printf("*");}do{printf("\t\t\t请选择功能(1~5):\n");printf("\n");scanf("%d", &choose);switch (choose){case 1:insert();break;case 2:show();break;case 3:printf("\n请输入要删除联系人的姓名:");scanf("%s", nam);delete(nam);break;case 4:printf("\n请输入要查询联系人的姓名:");scanf("%s", nam);query(nam);break;case 5:exit(0);break;}} while (1);return 0;}void insert(){struct people * p1, *p2;p1 = (struct people *)malloc(LEN); if (n == 0){printf("姓名:");scanf("%s", &p1->name);printf("地址:");scanf("%s", &p1->address);printf("邮编:");scanf("%s", &p1->postcode);printf("电话:");scanf("%s", &p1->phonenum);head = p1;p1->next = NULL;}else {p1 = head;while (p1->next != NULL){p1 = p1->next;}p2 = p1;p1 = (struct people *)malloc(LEN);printf("姓名:");scanf("%s", &p1->name);printf("地址:");scanf("%s", &p1->address);printf("邮编:");scanf("%s", &p1->postcode);printf("电话:");scanf("%s", &p1->phonenum);p2->next = p1;p1->next = NULL;}n += 1;}void show(){struct people * p;printf("姓名\t 地址\t 邮政编码\t 电话号码\n");p = head;if (head != NULL){do{printf("%s \t %s %s \t %s \n", p->name, p->address, p->postcode, p->phonenum);p = p->next;} while (p != NULL);}}void delete(char * name){struct people * p1, *p2;if (head == NULL){printf("没有数据\n");}p1 = head;while (strcmp(name, p1->name) && p1->next != NULL){p2 = p1;p1 = p1->next;}if (!strcmp(name, p1->name)){if (p1 == head){head = p1->next;}else{p2->next = p1->next;}printf("已经删除%s的数据\n", name);n = n - 1;}else {printf("找不到这个人\n");}}void query(char * name){struct people * p;p = head;if (head != NULL){do{if (!strcmp(name, p->name)){printf("姓名:%s\n", p->name);printf("地址:%s\n", p->address);printf("邮编:%s\n", p->postcode);printf("电话:%s\n", p->phonenum);}p = p->next;} while (p != NULL);}else{printf("输入错误\n");}}第四章心得体会经过一个多星期的编译原理课程设计,在我的努力下,顺利完成该课程设计。

通过该课程设计,掌握了编译程序工作的基本过程及其各阶段的基本任务,熟悉了编译程序总流程框图,了解了编译程序的生成过程及其相关的技术,对课本上的知识也有了更深的理解。

老师常说,课本上的知识是机械的,表面的,要学会去运用,要举一反三。

现在终于深刻的了解了这句话。

经过这次的课程设计,发现书本上很深奥的知识变的更为简单,同样,对实验原理也了有更深的理解。

知道和理解了该理论在计算机中是怎样执行的,对该理论在实践中的应用有深刻的理解。

通过该课程设计,把死板的课本知识变得生动有趣,激发了学习的积极性。

能够把课堂上学的知识通过自己设计的程序表示出来,加深了对理论知识的理解。

课程设计中程序比较复杂,在调试时应该仔细,在程序调试时,注意指针,将不必要的命令去除。

除了课堂外,课程设计是最能学到东西的,最考验人的。

在做课程设计的这段时间,时刻都感到自己学的知识有多么的贫瘠。

经过这次课程设计,让我对C这门语言有了更深的认识,操作能力有了提高要想是写出的代码能运行,需要耐心细心,毅力以及充沛的体力。

只有经过多次编辑,多次编译,再多次运行,才能编写出更好的程序,有时候需要多次的更正才能达到所要的运行结果。

参考文献谭洁强《C程序设计第二版》清华大学出版社。

相关文档
最新文档