C语言通讯录程序课程设计

3.6 实例6 通讯录程序本实例希望设计一个通讯录程序,要现通讯录信息的录入,并具有添加、查询、删除、显示等功能;使用结构体存储通讯录中记录信息;使用链表来实现通讯录信息的添加、删除、查询及显示等操作;通讯录程序可实现文件读写,在通讯录信息录入结束之后,可存入文件中,在下次程序运行时可将通讯录中的记录读取到程序中。

通讯录程序可采用基于Win32控制台程序构建或采用基于MFC应用向导.EXE的应用程序,下面对这两种方法进行详细介绍。

3.6.1. 设计目的1、掌握结构体的基本工作原理和工作方式。

2、熟悉结构体与链表的使用方法。

3、熟悉C语言下数据的输入与输出。

4、掌握C语言下对TXT文件的读写操作。

5、熟悉函数的设计方法及调用方法。

3.6.2. 基本要求1、本实例要现对通讯录信息的查找、添加、删除、显示等功能,每个功能模块均能实现随时从模块中退出,可以通过键盘对功能进行选择,完成一个通讯录管理系统的运行。

2、要使用结构体来实现对通讯录信息的存储。

3、使用链表来实现对通讯录信息的查找、添加、删除、浏览显示。

4、使用文件对记录进行存储,程序运行时还可以从文件中读取记录。

5、系统设计完成后应实现类似下图所示界面。

3.6.3 设计结构及算法分析在进行程序设计时,选择一种合理的数据存储结构是非常关键的。

本实例根据题目要求,采用结构体来存放通讯录中的信息,并采用文件存储通讯录中的信息。

1、存储结构本实例存储数据时,除了采用最常用的基本类型存储外,采用结构体的方式来存储通讯录中的个人信息,结构体如下所示:struct stu{char name[20]; /*人名*/char telephone[20]; /**/char sex[4]; /*性别*/char company[20]; /*单位*/struct stu *next; /*链表节点*/};typedef struct stu STU;2、main()主函数采用模块化设计,功能放在各模块函数中实现。

主函数是程序的入口,在其中采用循环结构,根据用户的键盘输入,依次调用各功能函数。

3、mycreate()函数------创建链表函数函数根据用户输入的信息,存储到结构体中,并建立链表结构,函数返回链表的头指针。

链表建立完成后,可根据链表的头指针来添加后续指针。

4、myadd()函数------添加学生信息记录函数函数根据用户输入信息,分配存,将数据存储到结构体中,并建立新的链表节点,到已经建立好的链表尾部。

5、mydelete()函数------删除链表节点函数根据用户输入通讯录中人名,在已有的链表中查找该人名信息存放的节点,如找到该节点,则删除该节点,并对链表结构重新;如未找到该人名信息的节点,则提示用户不存在。

6、mydisplay()函数------显示所有用户记录函数用来遍历所有节点,并向屏幕上输出所有节点的通讯录中的详细信息。

7、displaymenu()函数-------显示菜单函数函数向屏幕上输出,用户可以选择的选项菜单,给用户提示信息,给用户选择做出提示。

8、mysearch()函数-------查找学生信息函数用来查找通讯录中人名信息存在与否,如不存在则提示用户,如存在返回该人名的链表节点。

3.6.4. 程序执行流程图功能模块图3.6.5 基于Win32控制台的C语言程序设计详细步骤步骤1:建立一个工程在Visual C++6.0的集成开发环境下,单击File(文件)菜单项,之后选择其子菜单项New(新建),如下图所示。

屏幕上回弹出New(新建)对话框,如下图所示。

单击对话框上方的Projects(工程)选项卡,在其下方列表中选择Win32 Console Application选项,在右侧的Project name (工程名)框中输入工程名Address,在Location(目录)中输入工程文件存放的目录C:\ Student,之后单击OK按钮。

单击OK按钮后,会弹出如下图所示的界面,为了方便编程,选择A simple application,之后单击Finish按钮。

之后,弹出如下图所示界面。

界面中包含了建立此工程文件的头文件及路径等信息。

单击OK按钮,则进入了一个简单的C语言Win32控制台程序集成开发界面,如下图所示。

左侧窗口为工程管理窗口,选择FileView选项卡,通过点击“+”可打开工程的文件及目录列表,工程的很多操作都需要通过此窗口进行。

同时通过双击列表中的Address.cpp 文件名,可在中央的编辑窗口中打开其文件,如下图所示,此文件中只包含有一个主函数main()框架。

步骤2:添加程序头文件,在打开的Address.cpp文件上部,添加如下代码。

#include <stdio.h>#include <string.h>#include <stdlib.h>#include <conio.h>步骤3:在主函数上面添加函数定义、变量定义以及结构体定义,如下所示。

struct stu{char name[20]; /**/char telephone[20]; /**/char sex[4]; /*性别*/char company[20]; /*公司*/struct stu *next; /*链表节点*/};typedef struct stu STU;STU *mycreate(); /*创建节点*/void mydisplay(STU *head); /*显示节点*/void myadd(STU *head); /*增加记录*/STU *mysearch(STU *head,char name[20]); /*查找记录*/void mydelete(STU *head,char name[20]); /*删除记录*/void displaymenu(); /*显示所有记录*/位置如下图所示:步骤4:添加main()函数的实现部分以及其它功能函数,在main()主函数中添加代码容如下:int main(int argc, char* argv[])/*主函数*/{STU *head=NULL,*p;char name[20];int select;while(1){displaymenu(); //显示功能菜单printf("请选择一个功能:");scanf("%d", &select);switch( select ){case 1: // 录入通讯记录//getchar();head = mycreate();mydisplay(head);break;case 2: //添加通信记录//getchar();myadd(head);mydisplay(head);break;case 3: //查找通信记录printf("请输入要查找的人的:");scanf("%s",name);p = mysearch(head,name);if (p!=NULL)printf("%s %s %s %s ",p->telephone,p->name,p->sex,p->company);elseprintf("没找到!");break;case 4: //删除通信记录printf("请输入要删除的人的:");scanf("%s",&name);mydelete(head,name);mydisplay(head);break;case 5: //显示通讯记录mydisplay(head);break;case 9: //退出系统exit(0);default: //输入错误的功能选项printf("选择功能错误,请重新选择。

\n");break;} //end of switchprintf("按任意键继续......\n");getch();} // end of whilereturn 0;}STU *mycreate()/*创建链表*/{STU *head,*p,*q;head = (STU *)malloc(sizeof(STU));q = head;printf("请输入: 性别单位:\n");p = (STU *) malloc(sizeof(STU));scanf("%s%s%s%s",p->telephone,p->name,p->sex,p->c ompany);q->next = p;q = p;q->next = NULL;return head;}void myadd(STU *head) /*添加记录*/{STU *p;p = (STU *) malloc(sizeof(STU));printf("请输入: 性别单位:\n");scanf("%s%s%s%s",&p->telephone,p->name,p->sex,p-> company);p->next=head->next;head->next = p;}void mydelete(STU *head,char name[20]) /*删除记录*/ {STU *p,*q;q = head;p = head->next;while(p!=NULL){if(strcmp(p->name,name)==0){q->next = p->next;free(p);break;}q = p;p = p->next;}return;}STU *mysearch(STU *head,char name[20]) /*查找记录*/ {STU *p;p = head->next;while(p!=NULL){if(strcmp(p->name,name)==0)break;p = p->next;}return p;}void mydisplay(STU *head) /*显示记录*/{STU *p;p = head->next;while(p!=NULL){printf("%s %s %s %s\n",p->telephone,p->name,p->se x,p->company);p = p->next;}}void displaymenu( ) /*显示菜单*/{system("cls");printf("************** M E N U **************\n\n");printf(" 1. 创建通讯录\n");printf(" 2. 添加通讯录\n");printf(" 3. 查找通讯录\n");printf(" 4. 删除通讯录\n");printf(" 5. 显示通讯录\n");printf(" 6. 退出通讯录系统\n");printf("************** M E N U **************\n\n");}至此所有代码输入工作完成。

合集下载

c语言课程设计通讯录

c语言课程设计通讯录

c语言课程设计 通讯录一、课程目标知识目标:1. 理解并掌握C语言结构体和数组的使用,能够运用其创建和操作通讯录。

2. 学习并掌握C语言中的文件操作,实现通讯录数据的保存和读取功能。

3. 掌握C语言中的函数定义和应用,实现通讯录各项功能模块的划分和调用。

技能目标:1. 能够编写C程序,实现通讯录的增加、删除、修改和查询功能。

2. 能够运用所学知识,设计出界面友好、操作简便的通讯录管理系统。

3. 能够对程序进行调试和优化,提高代码的可读性和执行效率。

情感态度价值观目标:1. 培养学生主动探索、积极实践的学习态度,增强其解决实际问题的能力。

2. 培养学生的团队协作精神,学会与他人共同分析问题、解决问题。

3. 通过本课程的学习,使学生认识到编程在生活中的应用价值,激发其对计算机科学的兴趣。

分析课程性质、学生特点和教学要求:本课程为C语言课程设计,旨在巩固和拓展学生所学知识,提高其编程能力。

学生已具备一定的C语言基础,能够独立完成简单的程序编写。

课程要求学生通过动手实践,掌握结构体、数组、文件操作等知识,并能够将其应用于实际项目中。

课程目标明确,分解为具体学习成果,便于教学设计和评估。

在教学过程中,注重培养学生的实际操作能力和团队协作能力,提高其综合素质。

二、教学内容根据课程目标,教学内容主要包括以下几部分:1. C语言基础知识回顾:结构体、数组、函数、文件操作等。

- 结构体:定义、声明、初始化、结构体数组。

- 数组:一维数组、二维数组、字符串与字符数组。

- 函数:函数定义、声明、调用、参数传递。

- 文件操作:文件打开、关闭、读写、定位。

2. 通讯录管理系统功能模块设计:- 系统架构设计:功能模块划分、模块间关系。

- 功能实现:增加、删除、修改、查询、排序等。

3. 编程实践与调试:- 编写代码实现通讯录管理系统各项功能。

- 调试程序,优化代码,提高执行效率。

4. 团队协作与项目展示:- 分组进行项目开发,培养学生团队协作能力。

c语言课程设计通讯录

c语言课程设计通讯录
4.利用文件操作将通讯录数据保存到文件中,实现数据的持久化存储;
5.设计友好的用户界面,使操作更加便捷。
2、教学内容
本节课在上一阶段的基础上,进一步深化以下教学内容:
1.对结构体数组进行排序,实现通讯录联系人的姓名排序功能;
2.引入链表结构,将通讯录升级为动态存储,提高内存利用率;
3.实现链表在增加、删除节点时的动态调整,确保通讯录数据的准确性;
3.结合教材中的文件操作知识,编写函数实现通讯录数据的导入和导出功能,以便于数据的备份和迁移;
4.讨论如何优化程序性能,例如通过索引、二分查找等方法提高通讯录的查询效率;
5.强调代码规范和注释的重要性,指导学生编写整洁、易于理解的C语言代码,为后续的学习和协作打下基础。
4、教学内容
在第四部分的教学内容中,我们将重点关注以下方面:
1.结合实际应用场景,引入内存分配与释放的概念,讲解动态内存管理的重要性,并在通讯录项目中正确使用malloc和free函数;
2.通过案例展示内存泄漏和野指针的问题,教育学生注意避免这些常见的编程错误;
3.引导学生设计测试用例,对通讯录程序进行单元测试和集成测试,确保程序稳定性和正确性;
4.讨论程序异常处理的重要性,教授学生如何使用try-catch机制来处理程序中可能出现的错误;
c语言课程设计通讯录
一、教学内容
本节课为九年级下学期《C语言》课程设计示范课,基于教材第七章“数组与字符串”和第十章“文件操作”的内容,开展“C语言课程设计通讯录”项目实践。教学内容主要包括:
1.使用一维数组存储通讯录中的联系人姓名;
2.使用结构体数组存储联系人的详细信息(如姓名、电话、邮箱等);
3.实现通讯录的增加、删除、查找、修改和显示等功能;

c程序通讯录课程设计

c程序通讯录课程设计

c 程序通讯录课程设计一、课程目标知识目标:1. 理解通讯录程序的基本原理和结构;2. 掌握C语言中数组、结构体和文件操作等基本知识点的应用;3. 学会使用C语言编写、调试和运行简单的通讯录程序。

技能目标:1. 能够运用结构体创建和管理联系人信息;2. 掌握使用数组存储和访问联系人数据的方法;3. 学会使用文件操作实现通讯录数据的持久化存储;4. 培养学生独立分析问题、设计解决方案并进行编程实践的能力。

情感态度价值观目标:1. 培养学生积极探究、主动学习的兴趣,增强对编程和计算机科学的热爱;2. 培养团队协作和沟通能力,学会与他人分享编程经验和成果;3. 树立正确的价值观,认识到编程在生活中的实际应用和价值。

本课程针对高年级学生,结合C语言课程知识,注重实践性和实用性。

课程目标旨在使学生在掌握C语言基本知识的基础上,通过通讯录程序设计,提高编程实践能力,培养创新意识和团队协作精神。

通过本课程的学习,学生将能够独立设计并实现具有实际应用价值的通讯录程序,为后续计算机专业课程打下坚实基础。

二、教学内容1. C语言基础回顾:数组、结构体、文件操作等知识点复习;- 数组的使用和操作;- 结构体的定义和访问;- 文件读写的基本函数和流程。

2. 通讯录程序设计原理:- 通讯录的功能需求分析;- 程序模块划分和设计;- 数据存储和结构的设计。

3. 编程实践:- 创建和初始化通讯录;- 添加、删除和修改联系人信息;- 查询和显示联系人信息;- 通讯录数据的文件存储和读取。

4. 项目实战:- 分组讨论和设计通讯录程序;- 编写代码,实现通讯录功能;- 调试和优化程序;- 小组展示和评价。

教学内容依据课程目标,结合课本章节进行组织,确保学生能够系统、全面地掌握通讯录程序设计的相关知识。

教学进度安排合理,注重理论与实践相结合,充分调动学生的主观能动性和创新能力。

通过本章节的学习,学生将能够熟练运用C语言编写具有实际意义的通讯录程序。

c语言课程设计通讯录

c语言课程设计通讯录

c语言课程设计通讯录一、课程目标知识目标:1. 理解并掌握C语言中的结构体概念,能够运用结构体创建复杂数据类型;2. 学会使用数组存储结构体数据,实现结构体数组的操作;3. 掌握文件操作的基本方法,实现对通讯录数据的读写和存储。

技能目标:1. 能够编写C程序,设计并实现一个基本的通讯录管理系统;2. 能够运用选择、循环等基本控制结构实现对通讯录的有效管理;3. 能够对程序进行调试和优化,提高代码的执行效率。

情感态度价值观目标:1. 培养学生的编程兴趣,激发他们主动探索问题的积极性;2. 培养学生团队协作意识,提高沟通与协作能力;3. 引导学生认识到编程在生活中的实际应用,增强学以致用的意识。

课程性质分析:本课程为C语言课程设计,旨在通过设计一个通讯录管理系统,让学生将所学C语言知识应用于实际项目中,提高编程实践能力。

学生特点分析:学生已具备基本的C语言知识,熟悉语法和基本控制结构,但可能缺乏实际项目经验,对复杂数据类型和文件操作尚需加强。

教学要求:1. 注重理论与实践相结合,引导学生通过实际操作掌握知识;2. 鼓励学生相互讨论、协作,培养解决问题和团队协作能力;3. 强化代码规范,提高代码质量和可读性。

二、教学内容1. 结构体和结构体数组:- 介绍结构体的定义和使用;- 通过通讯录管理系统的需求,设计联系人结构体;- 引导学生运用结构体数组存储和管理联系人信息。

2. 文件操作:- 讲解文件的基本概念和文件操作函数;- 结合通讯录管理系统,实现数据的读写和存储。

3. 通讯录功能实现:- 添加联系人:实现输入、存储联系人信息的功能;- 删除联系人:实现根据条件删除指定联系人的功能;- 查找联系人:实现根据关键字查找联系人的功能;- 显示所有联系人:实现显示通讯录中所有联系人的功能。

4. 程序调试与优化:- 分析程序可能出现的错误和异常;- 引导学生掌握调试方法,优化代码执行效率。

教材章节关联:本教学内容与教材中关于结构体、数组、文件操作等章节密切相关。

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

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

c课程设计通讯录

c课程设计通讯录

c 课程设计 通讯录一、课程目标知识目标:1. 学生能理解通讯录的基本概念,掌握其组成元素,如姓名、电话号码、地址等。

2. 学生能掌握在特定电子设备或应用中创建、编辑和存储通讯录的步骤。

3. 学生了解通讯录在生活中的重要性,认识到它对个人信息管理的价值。

技能目标:1. 学生能够独立在电子设备上新建通讯录,输入和修改联系人信息。

2. 学生能够利用排序和搜索功能,快速找到通讯录中的联系人。

3. 学生能够理解并使用分类、标签等功能,对通讯录进行有效的整理和优化。

情感态度价值观目标:1. 学生培养良好的信息管理习惯,认识到个人信息保护的重要性。

2. 学生在小组合作中,学会分享和交流,增强团队协作意识。

3. 学生通过学习通讯录的使用,认识到科技在生活中的应用,激发学习兴趣和探索精神。

课程性质:本课程为实践操作课程,结合生活实际,以培养学生的实际操作能力为主。

学生特点:四年级学生已具备一定的信息素养,对电子设备有较高的兴趣,但实际操作能力还需加强。

教学要求:教师应结合学生特点,采用讲解与实操相结合的教学方法,关注学生个体差异,确保每个学生都能掌握通讯录的基本操作。

在教学过程中,注重引导学生培养良好的信息管理习惯,提升学生的团队协作能力。

通过课程评估,确保学生达到预定的学习目标。

二、教学内容1. 通讯录的定义与作用- 介绍通讯录的基本概念- 讲解通讯录在生活中的重要性2. 通讯录的基本组成- 姓名、电话号码、地址等个人信息- 分类、标签、排序等管理功能3. 通讯录的创建与编辑- 在电子设备上新建通讯录- 添加、修改和删除联系人信息4. 通讯录的存储与管理- 保存和备份通讯录- 搜索和筛选联系人5. 通讯录的实用技巧- 设置头像、铃声等个性化选项- 使用共享和导出功能6. 信息安全与隐私保护- 讲解信息安全的基本知识- 强调保护个人隐私的重要性7. 小组合作与分享- 以小组为单位,共同创建一个班级通讯录- 分享创建过程中的经验和心得教学内容根据课本章节进行安排,结合课程目标,确保学生掌握通讯录的相关知识和操作技能。

c语言课程设计通讯录

c语言课程设计通讯录一、教学目标本课程的教学目标是使学生掌握C语言的基本语法和编程技巧,通过编写程序实现简单的通讯录管理系统。

知识目标包括:了解C语言的基本数据类型、运算符、控制结构、函数等基本概念;掌握结构体和指针的使用方法;理解面向对象编程的基本思想。

技能目标包括:能够使用C语言编写简单的程序;能够使用结构体和指针实现数据的有效管理;能够运用面向对象编程思想解决实际问题。

情感态度价值观目标包括:培养学生的编程兴趣和自信心;培养学生的问题解决能力和创新精神;培养学生团队合作和自主学习的意识。

二、教学内容本课程的教学内容主要包括C语言的基本语法、数据结构、函数、面向对象编程等内容。

具体安排如下:1.C语言基本语法:介绍C语言的基本数据类型、运算符、控制结构等,通过编写简单的程序让学生熟悉C语言的编程环境。

2.数据结构:讲解结构体的使用方法,引导学生掌握如何使用结构体来表示通讯录中的信息。

3.函数:介绍函数的定义和调用方法,让学生学会如何编写和使用函数来实现特定的功能。

4.面向对象编程:讲解面向对象编程的基本思想,引导学生掌握如何使用类和对象来实现通讯录管理系统。

三、教学方法本课程采用讲授法、讨论法、案例分析法、实验法等多种教学方法。

通过讲授法,为学生提供系统的知识框架;通过讨论法,激发学生的思考和讨论,培养学生的问题解决能力;通过案例分析法,让学生了解实际应用中的问题解决方法;通过实验法,培养学生的动手能力和创新精神。

四、教学资源本课程的教学资源包括教材、参考书、多媒体资料、实验设备等。

教材选用《C程序设计语言》作为主教材,参考书选用《C Primer Plus》等;多媒体资料包括教学PPT、视频等;实验设备包括计算机、网络等。

教学资源的选择和准备旨在支持教学内容和教学方法的实施,丰富学生的学习体验。

五、教学评估本课程的评估方式包括平时表现、作业和考试三个部分。

平时表现主要评估学生的课堂参与度、提问回答、团队协作等情况,通过观察和记录来评价学生的学习态度和积极性。

c课程设计通讯录

c 课程设计通讯录一、课程目标知识目标:1. 理解通讯录的基本概念,掌握其组成和功能。

2. 学会使用课本中的知识点,设计并制作一个简单的通讯录。

3. 了解通讯录在不同领域和实际生活中的应用。

技能目标:1. 能够运用所学知识,独立设计并完成一个具有基本功能的通讯录。

2. 提高信息整理和数据处理能力,通过制作通讯录,熟练运用电子表格软件。

3. 培养团队协作能力,通过与同学合作完成项目,提高沟通与协作技巧。

情感态度价值观目标:1. 培养学生对信息技术课程的兴趣,激发他们主动探索新知识的精神。

2. 培养学生严谨、细心的学习态度,使他们认识到精确数据处理的重要性。

3. 增强学生的信息伦理观念,让他们明白保护个人隐私的重要性。

分析课程性质、学生特点和教学要求,本课程针对年级为初中二年级的学生,他们在信息技术方面具备一定的知识基础,但实践操作能力有待提高。

本课程旨在通过制作通讯录这一实用性项目,让学生在实践中掌握知识,提高技能,培养正确的情感态度价值观。

课程目标分解为具体学习成果,以便于后续教学设计和评估。

二、教学内容1. 通讯录基础知识:- 通讯录的定义、作用及其在实际生活中的应用。

- 课本第三章第一节的通讯录基本组成部分。

2. 通讯录设计原理:- 课本第三章第二节的数据录入、整理和存储方法。

- 通讯录设计的基本原则,如分类、排序等。

3. 实践操作:- 使用电子表格软件(如Microsoft Excel或WPS表格)制作通讯录。

- 课本第三章第三节中的实际操作步骤及注意事项。

4. 通讯录拓展应用:- 探讨通讯录在不同领域中的应用,如企业管理、社交网络等。

- 引导学生思考如何优化通讯录功能,提高信息管理效率。

5. 课堂讨论与展示:- 分组讨论,每组设计并制作一个具有特色的通讯录。

- 各组展示作品,分享设计思路和经验。

教学内容安排与进度:第一课时:介绍通讯录基础知识,明确学习目标。

第二课时:学习通讯录设计原理,探讨实际应用。

c语言通讯录程序(共5篇)

c语言通讯录程序(共5篇)第一篇:c语言通讯录程序C语言程序设计实践——通讯录管理系统六、程序源代码及注释#include #include #include #include #define SUM 100 #define STOP 1000typedef struct /*结构体,存放通讯录成员信息,重新定义成member型变量*/ { char name[10]; char tel[15]; char cla[5]; char mail[20]; char qq[15]; }member;member info[SUM]; //所有成员空间FILE *fp;//文件指针,用于打开或保存通讯录文件int count=0; //全局变量,用于计数已存入数量/*-----------------------*/int load(char filename[])//打开通讯录文件{ member *p; int i=0; if((fp=fopen(filename,"rb"))==NULL)return i; else{while(!feof(fp)){p=(member *)malloc(sizeof(member));if(fread(p,sizeof(member),1,fp)==1){strcpy(info[i].name,p->name);strcpy(info[i].tel,p->tel);strcpy(info[i].cla,p->cla);strcpy(info[i].mail,p->mail);strcpy(info[i].qq,p->qq);i++;}free(p);}return i;} } /*------------------*/void save(char filename[]) //保存通讯录文件 {int i;member *p;if((fp=fopen(filename,"wb"))==NULL){printf("无法保存!打开文件%s时出错\n",filename); exit(1);}elsefor(i=0;i{p=(member *)malloc(sizeof(member));strcpy(p->name,info[i].name);strcpy(p->tel,info[i].tel);strcpy(p->cla,info[i].cla);strcpy(p->mail,info[i].mail);strcpy(p->qq,info[i].qq);fwrite(p,sizeof(member),1,fp);free(p);}fclose(fp); } /*-----------------*/ void display(void) //分类查看功能 { system("cls");char dis;char way[5];int i,j=0;choice:printf("**********请选择查看分类***********\n");printf("**********1.亲友**********\n");printf("**********2.同学**********\n");printf("**********3.老师**********\n");printf("**********4.其他**********\n");printf("**********5.查看全部**********\n");printf("**********0.返回上一级菜单**********\n");printf("*****************************************\n"); printf("请选择(1~5或0):");dis=getchar();getchar();switch(dis){case '1':strcpy(way,"亲友");break;case '2':strcpy(way,"同学");break;case '3':strcpy(way,"老师");break;case '4':strcpy(way,"其他");break;case '5':printf("*******全部通讯成员*******\n"); for(i=0;iprintf("姓名:%s\n",info[i].name);printf("电话号码:%s\n",info[i].tel);printf("电子邮箱:%s\n",info[i].mail);printf("QQ号:%s\n",info[i].qq);printf("分类:%s\n",info[i].cla);printf("*****************************\n");j++;}if(j==0){printf("************************\n");printf("无任何通讯成员\n");}j=0;Sleep(STOP);goto choice; break;case '0':return; break;default:printf("*************************\n");printf("输入指令有误!\n");printf("*************************\n");Sleep(STOP);goto choice;}printf("********通讯成员之%s*******\n",way); for(i=0;iif(strcmp(info[i].cla,way)==0){printf("****姓名:%s\n",info[i].name);printf("****电话号码:%s\n",info[i].tel);printf("****电子邮箱:%s\n",info[i].mail);printf("****QQ号:%s\n",info[i].qq);printf("****分类:%s\n",info[i].cla);printf("**********************************\n"); j++;}}if(j==0){printf("该分类中无通讯成员\n");printf("******************\n");}j=0;Sleep(STOP);goto choice; }/*------*/ int add(void)//增加新的成员 {member temp;int i;reinput_name:printf("请输入新成员的姓名:");gets();for(i=0;iif(strcmp(info[i].name,)==0){ printf("该姓名已存在!\n");Sleep(STOP);goto reinput_name;}reinput_tel:printf("请输入新成员的电话号码:"); gets(temp.tel);for(i=0;iif(strcmp(info[i].tel,temp.tel)==0){ printf("该电话号码已存在!\n");Sleep(STOP);goto reinput_tel;}printf("请输入新成员的电子邮箱:"); gets(temp.mail);printf("请输入新成员的QQ号:");gets(temp.qq);printf("请输入新成员的分类:");gets(temp.cla);info[count]=temp;count++;return count; }/*-----*/ int search(char sname[]) //查找功能 { int flag=0,i;for(i=0;iif(strcmp(info[i].name,sname)==0){printf("*****************************\n"); printf("****姓名:%s\n",info[i].name);printf("****电话号码:%s\n",info[i].tel);printf("****电子邮箱:%s\n",info[i].mail);printf("****QQ号:%s\n",info[i].qq);printf("****分类:%s\n",info[i].cla);printf("******************************\n"); flag=1;}return flag; }/*---------*/ int rework(char rname[])//修改功能 {int flag=0,i;for(i=0;iif(strcmp(info[i].name,rname)==0){printf("*********************");printf("请输入新的姓名:");gets(info[i].name);printf("请输入新的电话号码:");gets(info[i].tel);printf("请输入新的电子邮箱:");gets(info[i].mail);printf("请输入新的QQ号:");gets(info[i].qq);printf("请输入新的分类:");gets(info[i].cla);printf("********************");flag=1;}return flag; }/*-----------------------------*/ int erase(char ename[]) //删除功能 {int flag=0,i,j;for(i=0;iif(strcmp(info[i].name,ename)==0){for(j=i;jinfo[j]=info[j+1];count--;flag=1;}return flag; } /*-----------------------------*/ int call(void)//拨号功能 {int i,j,flag=0;char cname[10];printf("**************************\n");for(i=0;iprintf("%s ",info[i].name);}putchar('\n');printf("请输入需要拨号的姓名:");gets(cname);for(i=0;iif(strcmp(info[i].name,cname)==0){printf("正在拨号:");for(j=0;info[i].tel[j]!='\0';j++){printf("%c",info[i].tel[j]);Sleep(300);}putchar('\n');flag=1;}return flag; } /*-----------------------*/ int main(void)//主函数{ char filename[40]; char c,save_j; int t; char s_r_e_name[10];printf("欢迎使用通讯录系统!请输入通讯录文件的有效路径(若文件不存在则自动创建新通讯录)\n"); gets(filename); count=load(filename); system("cls");printf("======================================\ n");printf("==========欢迎使用我的通讯录==========\n");printf("============ 制作:石贵清===========\n");begin:printf("★★★★★★★★★★★★★★★★★★★★★★★★★★\n");printf("※※\n");printf("※通迅录※\n");printf("※※\n");printf("※1. 添加新联系人.5. 分类显示查询.※\n");printf("※※\n");printf("※2. 删除联系人.6.拨出电话.※\n");printf("※※\n");printf("※3. 查询通讯成员.7.保存通讯文件.※\n");printf("※※\n");printf("※4. 修改信息.0. 关闭通迅录.※\n");printf("★★★★★★★★★★★★★★★★★★★★★★★★★★\n"); printf("友情提醒:请在退出本程序之前按7保存通讯文件! \n"); printf("请输入您选择的操作:");c=getchar();getchar(); switch(c) {case '1':if(count==SUM){printf("======= 通讯录空间已满,无法继续录入!===\n"); Sleep(STOP);goto begin; break;}t=add();printf("===== 信息已建立,请尽快保存!=====\n");if(t==SUM){printf("===== 通讯录空间已满,无法继续录入!=====\n"); }Sleep(STOP);goto begin;break; case '2': if(count==0){printf("========================\n");printf("=== 通讯录中无任何成员!====\n");printf("======================\n");Sleep(STOP);goto begin;break; }printf("请输入要删除成员的姓名:");gets(s_r_e_name);t=erase(s_r_e_name);if(!t) {printf("=================\n");printf("==== 查无此人====\n");printf("=================\n"); } else {printf("======================\n");printf("======已成功删除======\n");printf("======================\n"); } Sleep(STOP); goto begin;break; case '3':printf("请输入要查找的成员姓名:");gets(s_r_e_name);t=search(s_r_e_name);if(!t){printf("======================\n");printf("===== 查无此人 =======\n");printf("======================\n");}Sleep(STOP);goto begin;break;case '7':save(filename);printf("==============================\n");printf("======保存成功!=======\n");printf("==============================\n"); Sleep(STOP); goto begin;break;case '4':printf("请输入要修改的成员姓名:");gets(s_r_e_name);t=rework(s_r_e_name);if(!t) {printf("=======查无此人====\n"); }else{printf("=========================\n"); printf("====修改成功====\n");}Sleep(STOP);goto begin;break;case '5':display();Sleep(STOP);goto begin;break;case '6':t=call();if(!t){printf("=============================\n"); printf("====== 输入姓名错误! =======\n");printf("============================\n"); }else{printf("=========================\n");printf("======电话已经拨出=====\n");printf("=======================\n");}Sleep(STOP);goto begin;break;case '0':printf("是否保存数据文件?(Y:是/N:否)");save_j=getchar();if(save_j=='Y'||save_j=='y'){save(filename);printf("====== 保存成功!=======\n");printf("======= 感谢您的使用!再见! ======\n");}else{printf("========================\n");printf("=== 感谢您的使用!再见! ===\n");printf("========================\n");}exit(0); default:printf("=====Sleep(STOP);goto begin; } return 0; }输入指令无效!====");第二篇:C语言程序设计学生通讯录管理系统#include "stdio.h" #include "stdlib.h" #include "string.h" #include "conio.h" #include "stdlib.h" #define null 0 struct record { char name[20]; char phone[20]; char adress[40]; char postcode[10]; char e_mail[30]; }student[500]; struct LinkList { struct record US; struct LinkList *next; }a; struct LinkList *head=null; int num=0; FILE *fp; int menu_select(); int adduser(); int list(); int search(); int display(); int add(); int listbyname(); int dele(); int save(); int exit();void main() {system("cls"); for(;;) { switch(menu_select()) { case 0:adduser();break; case 1:list();break; case 2:search();break; case 3:add();break; case 4:dele();break; case 5:save();break; case 6:exit(0); } } } menu_select() { char s[80]; int a; printf("*_* press any key enter menu! *_* \n"); getch(); system("cls"); printf("\t\t********************MENU*********************\n\n"); printf("\t\t 0. 输入记录\n"); printf("\t\t 1. 显示记录 \n"); printf("\t\t 2. 按姓名查找\n"); printf("\t\t 3. 插入记录 \n"); printf("\t\t 4. 删除记录\n"); printf("\t\t 5. 记录保存文件\n"); printf("\t\t 6. Quit\n"); printf("\t\t***********************************************\n");do{ printf("\n Enter you choice(0~11):"); scanf("%s",s); a=atoi(s); } while (a<0||a>11); return a; }adduser() { printf("\n\t\t**************** 请输入用户信息****************\n"); printf("\n\t\t输入姓名:"); scanf("%s",&student[num].name); printf("\n\t\t输入电话号码:"); scanf("%s",&student[num].phone); printf("\n\t\t输入地址:"); scanf("%s",&student[num].adress); printf("\n\t\t输入邮编:"); scanf("%s",&student[num].postcode); printf("\n\t\t输入e-mail:"); scanf("%s",&student[num].e_mail); num++; printf("\n\t\t是否继续添加?(Y/N):"); if (getch()=='y') adduser(); return(0); } list() { int i; system("cls"); if(num!=0) { printf("\n\t\t*************** 以下为通讯录所有信息************"); for (i=0;iprintf("\n\t\t姓名:%s",student[i].name); printf("\n\t\t电话:%s",student[i].phone); printf("\n\t\t地址:%s",student[i].adress); printf("\n\t\t邮编:%s",student[i].postcode); printf("\n\t\te-mail:%s",student[i].e_mail); printf("\t\t"); if (i+1add() { int i; if ((fp=fopen("student.bin","wb"))==NULL) { printf("\n\t\t文件打开失败"); } for (i=0;isave() { int j; FILE*fp; fp=fopen("student.txt","w"); if (fp==NULL) printf("can't open the file."); if(num!=0) { for(j=0;j fwrite(student,sizeof(student),1,fp); } } printf("保存成功!"); fclose(fp); return(0); }第三篇:C语言作业:学通讯录学生通讯录一、语言和环境1.实现语言:C语言。

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

c语言通讯录管理系统课程设计一、教学目标本课程旨在让学生掌握C语言编程基础,通过编写通讯录管理系统,培养学生的实际编程能力和问题解决能力。

具体目标如下:1.知识目标:学生能理解C语言的基本语法、数据类型、运算符、控制结构等,并掌握结构体、文件操作等高级概念。

2.技能目标:学生能运用C语言实现功能齐全的通讯录管理系统,包括但不限于添加、删除、查找、修改联系人信息等功能。

3.情感态度价值观目标:通过课程学习,学生能培养编程思维,增强对计算机科学的兴趣,理解技术对现代社会的重要性。

二、教学内容教学内容围绕C语言通讯录管理系统的设计与实现展开,具体包括:1.C语言基础知识:数据类型、变量、运算符、控制结构。

2.高级数据结构:结构体、指针、数组。

3.文件操作:文件的打开、读写、关闭。

4.通讯录管理系统设计:需求分析、系统设计、功能实现。

三、教学方法结合C语言的特点和学生实际情况,采用以下教学方法:1.讲授法:系统讲解C语言基础知识和编程技巧。

2.案例分析法:分析已有的通讯录管理系统案例,引导学生理解系统设计过程。

3.实验法:学生在实验室环境里动手编写代码,实践所学知识。

四、教学资源为确保教学质量,准备以下教学资源:1.教材:《C程序设计语言》(K&R)、《C Primer Plus》。

2.参考书:《C语言深度剖析》、《C语言编程实践》。

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

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

五、教学评估本课程采用多元化的评估方式,全面客观地评价学生的学习成果:1.平时表现:通过课堂参与、提问、小组讨论等评估学生的积极性与专注度。

2.作业:布置编程作业,评估学生的编程能力和对知识的理解应用。

3.实验:评估学生在实验室的编程实践表现,检查代码质量与创新性。

4.期中期末考试:设置包含选择题、填空题、编程题的试卷,全面测试学生的知识掌握和应用能力。

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