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课程设计(通讯录管理系统)
for (w = 0; w < num - 1; w++) for (j = w + 1; j < num; j++) { if (people[w].get_name() > people[j].get_name()) { temp = people[w]; people[w] = people[j]; people[j] = temp; } }
people[w] = people[j];
people[j] = temp;
}
}
cout << "排序完成!" << endl;
for (w = 0; w < num; w++)
people[w].show();
break;
}
default: break;}
break;
}
case 3:
break;
outfile << setw(10) << people[i].get_name() << setw(15) << people[i].get_phone() << setw(15) << people[i].get_address() << setw(15) << people[i].get_remark() << endl;
通讯录管理系统c语言课程设计代码
通讯录管理系统C语言课程设计代码
一、引言
在现代社会中,通讯方式多样化且频繁,通讯录管理系统应运而生。
本文将介
绍一个基于C语言设计的通讯录管理系统的代码实现。
通讯录管理系统可以帮助
用户有效地管理联系人信息,实现增删改查等操作。
二、系统功能设计
通讯录管理系统主要包括以下功能: 1. 添加联系人:用户可以输入联系人姓名、电话号码等信息,将联系人信息添加到通讯录中。
2. 删除联系人:用户可以根据
姓名或电话号码删除指定联系人信息。
3. 修改联系人:用户可以修改已有联系人
的信息,包括姓名、电话号码等。
4. 查询联系人:用户可以根据姓名或电话号码
查询联系人信息。
5. 显示所有联系人:用户可以查看通讯录中所有联系人的信息。
三、代码实现
```c #include <stdio.h> #include <string.h>
#define MAX_CONTACTS 100 #define MAX_NAME_LENGTH 50 #define
MAX_PHONE_LENGTH 15
struct Contact { char name[MAX_NAME_LENGTH]; char
phone[MAX_PHONE_LENGTH]; };
struct Contact contacts[MAX_CONTACTS]; int numContacts = 0;
void addContact() { if (numContacts < MAX_CONTACTS) { printf(。
通讯录系统c课程设计
通讯录系统c 课程设计一、课程目标知识目标:1. 学生能理解通讯录系统的基本概念,掌握其功能结构和设计原理。
2. 学生能掌握运用编程语言(如C语言)实现通讯录系统的基本功能,如添加、删除、查找和修改联系人信息。
3. 学生了解数据结构在通讯录系统中的应用,如链表、结构体等。
技能目标:1. 学生能运用所学知识,独立完成一个简单的通讯录系统设计与实现。
2. 学生通过实践操作,提高编程能力和解决问题的能力。
3. 学生能够运用调试工具进行程序调试,找出并修复程序中的错误。
情感态度价值观目标:1. 学生通过课程学习,培养对计算机编程的兴趣和热情。
2. 学生在学习过程中,养成合作、分享、探究的良好学习习惯。
3. 学生能够认识到编程在生活中的应用价值,激发其进一步学习的动力。
分析课程性质、学生特点和教学要求:本课程为计算机编程课程,以C语言为载体,结合实际生活中的通讯录系统,让学生在实践中掌握编程知识。
学生处于高年级阶段,已具备一定的编程基础,求知欲强,喜欢挑战性任务。
教学要求注重培养学生的动手能力和实际应用能力,将理论知识与实际操作相结合,提高学生的综合素养。
将目标分解为具体的学习成果:1. 学生能够自主设计并实现一个简单的通讯录系统,包括基本功能模块。
2. 学生能够运用所学知识解决实际编程问题,如优化程序性能、修复程序错误等。
3. 学生在学习过程中,能够积极与同学交流合作,分享学习心得和经验。
4. 学生能够通过课程学习,提高自己的编程水平和实际应用能力,为后续学习奠定基础。
二、教学内容1. 通讯录系统基本概念:介绍通讯录系统的定义、功能、应用场景等,使学生对其有一个全面的了解。
2. C语言基础知识回顾:回顾结构体、指针、函数等C语言基础知识,为后续编程打下基础。
3. 数据结构:讲解链表、结构体等数据结构在通讯录系统中的应用,使学生掌握如何利用数据结构组织数据。
4. 编程实现通讯录功能:详细讲解如何用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语言课程设计》课程设计报告题目通讯录管理系统学号姓名年级专业指导教师完成日期年月日安徽师范大学物理与电子信息学院College of Physics and Electronic Information, Anhui Normal University通讯录管理系统一、问题描述本程序是非数值计算型算法设计,我设计出了通讯录管理系统的基本功能,并设计了简单的界面。
本程序主要考察对自定义函数的熟悉程度,本程序主要使用的是数组的相关操作,包括结构体数组的输入、输出、查找、删除等。
我设计的这个通讯录系统也初步实现了人员信息的显示、删除、查找、修改、添加等必要的功能。
二、基本要求1)每条记录包括:学号、姓名、专业、家庭住址、联系电话;2)能够实现添加、删除、修改功能;3)能够实现按学号、姓名、专业等内容进行查找三、系统分析和设计【需求分析】根据题目要求,通讯录数据以文本文件存储,故应提供文件的输入、输出等操作;还应提供显示、查找、删除等操作;另外还应提供键盘式选择菜单实现功能选择。
【总体设计】通过对整个系统的分析,根据上述要求,可以将这个系统的设计分为三个模块(见图1):文件导入、通讯录编辑和退出。
图1 系统功能模块四、主要流程图(1)主菜单函数此函数功能为提供键盘式选择菜单以调用不同函数。
其流程如图2所示。
图2 主菜单函数流程图(2) 新建菜单函数该函数的功能是用户需要新建联系人记录,从键盘输入并逐条写到原来的通讯录文件中,注意采用新建而不是覆盖的方式。
其流程如图3所示。
图3 新建函数流程图(3) 浏览菜单函数此函数功能为提供浏览所有联系人记录。
其流程如图4所示。
图4 浏览模块流程图(4)查找菜单函数此模块的功能是用户可根据姓名或电话号码查询联系人信息。
△查询菜单函数功能为提供键盘式选择菜单选择查找方法。
其流程如图5所示。
图5 查找函数流程图△按姓名查找函数其流程如图6 所示。
图6 按姓名查找函数流程图△按电话查找函数其流程如图7所示。
通讯录系统课程设计c
通讯录系统课程设计 c一、教学目标本课程的目标是让学生了解和掌握通讯录系统的基本原理和实现方法。
知识目标要求学生掌握通讯录系统的数据结构、算法和界面设计;技能目标要求学生能够使用编程语言实现一个简单的通讯录系统;情感态度价值观目标要求学生培养对计算机科学的兴趣和热情,提高他们解决实际问题的能力。
二、教学内容教学内容主要包括通讯录系统的数据结构、算法和界面设计。
首先,介绍通讯录系统的数据结构,如数组、链表等,以及如何实现数据的增删查改操作。
然后,讲解通讯录系统的算法,如排序、查找等,以及如何运用这些算法优化通讯录系统的性能。
最后,介绍通讯录系统的界面设计,如如何使用图形用户界面库设计一个美观易用的通讯录界面。
三、教学方法本课程采用讲授法、讨论法和实验法相结合的教学方法。
首先,通过讲授法向学生传授基本概念和理论知识;然后,通过讨论法引导学生深入思考和探讨问题,提高他们的分析和解决问题的能力;最后,通过实验法让学生动手实践,巩固所学知识,提高他们的编程技能。
四、教学资源教学资源包括教材、多媒体资料和实验设备。
教材选用《计算机科学导论》作为主教材,辅助以《C程序设计》等参考书。
多媒体资料包括PPT、视频教程等,用于生动展示课程内容和案例。
实验设备包括计算机、网络设备等,用于学生动手实践和实验教学。
五、教学评估教学评估主要通过平时表现、作业和考试等方式进行。
平时表现主要包括课堂参与度、提问回答等,占总评的20%;作业包括编程练习和小项目等,占总评的30%;考试包括期中和期末考试,占总评的50%。
评估方式力求客观、公正,全面反映学生的学习成果。
六、教学安排教学安排如下:本课程共32课时,每周2课时,共计16周。
教学地点安排在计算机实验室,以便学生动手实践。
教学进度安排合理紧凑,确保在有限的时间内完成教学任务,同时考虑学生的实际情况和需要。
七、差异化教学根据学生的不同学习风格、兴趣和能力水平,本课程采用差异化教学策略。
c通讯录管理系统课程设计
c 通讯录管理系统课程设计一、课程目标本课程为“通讯录管理系统课程设计”,针对初中年级信息技术学科,旨在通过实践操作,使学生能够:知识目标:1. 理解通讯录管理系统的基本功能与需求;2. 掌握使用编程语言(如Python)实现简单数据结构,如列表、字典;3. 学会使用文件操作保存和读取通讯录信息。
技能目标:1. 能够运用所学知识设计并实现一个基本的通讯录管理系统;2. 掌握基本的程序调试技巧,提高解决问题的能力;3. 学会对程序进行优化,提高代码的可读性和可维护性。
情感态度价值观目标:1. 培养学生的团队协作精神,提高沟通与表达能力;2. 激发学生对编程的兴趣,鼓励创新思维和动手实践能力;3. 增强学生对信息技术的认识,培养其信息安全意识。
课程性质:本课程为实践性课程,注重培养学生的动手能力和实际操作技能。
学生特点:初中年级学生具有一定的信息技术基础,对新事物充满好奇,但编程经验有限。
教学要求:结合学生特点,以实际操作为主,注重引导和激发学生的学习兴趣,培养其解决问题的能力。
通过课程学习,使学生能够将所学知识运用到实际项目中,提高其信息技术素养。
教学过程中,将课程目标分解为具体的学习成果,以便进行教学设计和评估。
二、教学内容本章节教学内容依据课程目标,紧密结合教材,确保科学性和系统性。
具体安排如下:1. 理论知识学习:- 简介通讯录管理系统的作用和功能;- 数据结构基本概念:列表、字典的使用;- 文件操作:读写文件,保存和加载通讯录信息。
2. 实践操作:- 设计通讯录管理系统需求分析;- 编程实现通讯录管理系统功能模块:添加、删除、查询、修改联系人信息;- 调试与优化程序,提高系统稳定性。
3. 教学大纲:- 第一周:通讯录管理系统概述,学习数据结构基本概念;- 第二周:文件操作,编写通讯录管理系统的基础代码;- 第三周:完善通讯录管理系统,增加功能模块;- 第四周:调试与优化程序,进行项目展示与评价。
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语言课程设计--学生通讯录管理系统设计
一、题目内容的描述学生通讯录管理系统设计设计一个学生通信录,学生通迅录数据信息构成内容可自行设计(如:姓名、家庭地址、邮政编码、电话号码等等),通信录数据类型定义为结构体类型。
由键盘输入数据(最好要考虑输入数据输入的格式及输入数据的有效性),然后进行以下的功能实现。
程序要求主函数是一个功能选择菜单,其它各功能都用各自的函数实现。
功能要求如下:1、能建立、修改和增删学生通讯录2、能够按多种方式进行查询,例如按姓名、按电话号码等。
3、通讯录的数据保存在文件中,运行程序时将通讯录数据从文件读取到内存中。
对通讯录进行增加、删除、修改学生数据后,提供功能菜单,可以将内存中修改过的通讯录重新保存至文件。
二、应用程序功能的详细说明1、应用程序实现了可视化的系统操作界面。
2、对学生通讯录形成了系统化的管理,操作简便明了。
3、程序具有系统帮助,添加、显示、查询、刷新、删除、排序、保存、修改、读取学生通讯录的功能。
各项功能均可按照文字提示操作,浅显易懂。
4、系统的各个功能模块都用函数的形式来实现(readfile()、seek()、modify()、sort()、insert()、del()、save()、menu())方便查看。
5.可以将信息保存在文件("student.txt")中,亦可将信息从文件中读取出来,灵活方便。
三、主要模块的算法描述模块一:头文件,变量定义,函数的声明对系统所使用的变量进行定义,对函数进行声明。
模块二:录入学生信息声明函数void readfile(),说明一个文件指针FILE *fp打开文件"student.txt"。
模块三:学生信息的查找声明void seek()为查找函数,通过switch(item)设定用学号查找,用姓名查找两个分支。
模块四:学生信息的修改声明void modify()为学生信息修改函数,通过switch(item)设定所要修改的项目。
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语言课程设计___手机通讯录管理系统-CAL-FENGHAI-(2020YEAR-YICAI)_JINGBIANC语言课程设计手机通信录管理系统院系:姓名:学号:班号:指导教师:2014年12月目录一题目要求 ....................................................................................................错误!未定义书签。
二需求分析 ....................................................................................................错误!未定义书签。
三总体设计 ....................................................................................................错误!未定义书签。
四详细设计 ....................................................................................................错误!未定义书签。
1.主函数..................................................................................................错误!未定义书签。
2.各功能模块设计..................................................................................错误!未定义书签。
(1)查看模块..............................................................................错误!未定义书签。
学生通讯录管理系统c语言编程
学生通讯录管理系统c语言编程以下是一个简单的C语言程序,用于管理学生通讯录。
该程序可以添加、显示、查找和删除学生信息。
c复制代码:#include <stdio.h>#include <stdlib.h>#include <string.h>#define MAX_STUDENTS 100#define MAX_NAME_LENGTH 50// 学生结构体struct Student {char name[MAX_NAME_LENGTH];int age;char gender;char phone[15];char email[50];};// 学生数组struct Student students[MAX_STUDENTS];int num_students = 0;// 添加学生信息void add_student() {if (num_students >= MAX_STUDENTS) {printf("Error: Reached maximum number of students\n");return;}struct Student new_student;printf("Enter name: ");scanf("%s", new_);printf("Enter age: ");scanf("%d", &new_student.age);printf("Enter gender (M/F): ");scanf(" %c", &new_student.gender);printf("Enter phone number: ");scanf("%s", new_student.phone);printf("Enter email: ");scanf("%s", new_student.email);students[num_students] = new_student;num_students++;}// 显示所有学生信息void display_students() {printf("Name\tAge\tGender\tPhone\tEmail\n");for (int i = 0; i < num_students; i++) {printf("%s\t%d\t%c\t%s\t%s\n", students[i].name, students[i].age, students[i].gender, students[i].phone, students[i].email);}}// 查找学生信息void find_student() {char name[MAX_NAME_LENGTH];printf("Enter student name: ");scanf("%s", name);for (int i = 0; i < num_students; i++) {if (strcmp(students[i].name, name) == 0) {printf("Name: %s\n", students[i].name);printf("Age: %d\n", students[i].age);printf("Gender: %c\n", students[i].gender); printf("Phone: %s\n", students[i].phone); printf("Email: %s\n", students[i].email); return;}}printf("Error: Student not found\n");}// 删除学生信息void delete_student() {char name[MAX_NAME_LENGTH];printf("Enter student name: ");scanf("%s", name);int found = 0;for (int i = 0; i < num_students; i++) {if (strcmp(students[i].name, name) == 0) { found = 1;for (int j = i; j < num_students - 1; j++) { students[j] = students[j+1];}num_students--;break;}}if (!found) {printf("Error: Student not found\n");} else {printf("Student deleted successfully\n"); }}int main() {int choice;do {printf("\nMenu:\n");printf("1. Add student\n");printf("2. Display students\n");printf("3. Find student\n");printf("4. Delete student\n");printf("5. Exit\n");printf("Enter choice: ");scanf("%d", &choice);switch (choice) {case 1: add_student(); break;case 2: display_students(); break;case 3: find_student(); break;case 4: delete_student(); break;case 5: printf("Exiting...\n"); break; default: printf("Invalid choice\n"); break; }} while (choice != 5);return 0。
c课程设计之通讯录
c课程设计之通讯录一、教学目标本节课的教学目标是让学生掌握通讯录的基本知识和技能,能够使用编程语言实现一个简单的通讯录管理系统。
具体来说,知识目标包括了解通讯录的定义、结构和常见的形式;技能目标包括掌握基本的编程语言语法,能够编写简单的函数和模块;情感态度价值观目标包括培养学生的团队合作意识,提高他们解决问题的能力。
二、教学内容本节课的教学内容主要包括通讯录的基本概念、通讯录的编程实现和通讯录的管理系统设计。
具体来说,首先介绍通讯录的定义、结构和常见的形式,让学生了解通讯录的基本知识;然后讲解如何使用编程语言实现一个简单的通讯录管理系统,包括基本的函数和模块的编写;最后通过案例分析,让学生了解通讯录管理系统的设计和实现过程。
三、教学方法本节课的教学方法主要包括讲授法、案例分析法和实验法。
首先通过讲授法,向学生介绍通讯录的基本概念和编程实现方法;然后通过案例分析法,让学生了解通讯录管理系统的设计和实现过程;最后通过实验法,让学生动手编写代码,实现一个简单的通讯录管理系统。
四、教学资源本节课的教学资源主要包括教材、参考书、多媒体资料和实验设备。
教材和参考书用于提供通讯录的基本知识和编程实现方法的文字描述和示例代码;多媒体资料用于辅助讲解和展示通讯录的图形界面和功能实现;实验设备用于让学生动手编写代码,实现一个简单的通讯录管理系统。
五、教学评估本节课的教学评估主要包括平时表现、作业和考试三个部分。
平时表现主要评估学生在课堂上的参与程度、提问回答和团队合作的积极性;作业主要评估学生的编程实践能力,要求学生按时提交代码并符合基本规范;考试则是对学生通讯录知识掌握和编程能力的全面考察,包括理论知识和实践操作两部分。
评估方式应客观、公正,能够全面反映学生的学习成果。
六、教学安排本节课的教学安排共分为十个课时,每个课时45分钟。
第一课时用于介绍通讯录的基本概念,第二课时讲解通讯录的编程实现方法,第三课时进行案例分析,后续课时用于学生实验实践和课堂讨论。
(完整word版)c语言课程设计学生通讯录管理系统
题目:学生通讯录管理系统任务说明:主要利用c语言的文件操作能力设计开发一个小型的通讯录管理系统,至少具有如下功能:①记录通讯录内的人员的学号、姓名、地址、电话号码。
②显示所有人员的信息。
③通过输入姓名查找人员信息。
④通过输入姓名查找到要删除的人员信息,然后可以进行删除。
⑤通过输入姓名查找到要修改的人员信息,然后可以进行修改。
⑥添加人员信息。
系统功能描述:本程序的功能是为用户提供简单的通讯录进行管理,通过该程序存储联系人信息,提供关键字(只能是英文关键字进行查找)查找功能,可以对数据进行修改、删除、添加等操作。
各按钮的功能如下:查找记录:以姓名为关键字,查找并显示该记录。
若查找不到,则显示“好象没有”;添加记录:将当前记录按姓名序加入通讯录,然后显示第一条记录;修改记录:修改当前记录,显示当前记录。
姓名为关键字,不允许修改;删除记录:删除当前记录,然后显示第一条记录;第一条记录:将当前记录指针移动至首节点,若已为首节点,则不移动;前一条记录:将当前记录指针向前移动一个节点,若已为首节点,则不移动;后一条记录:将当前记录指针向后移动一个节点,若已为尾节点,则不移动;最后一条记录:将当前记录指针移动至尾节点,若已为尾节点,则不移动;加载:从文件中掉入已保存的通讯录数据;保存:保存通讯录数据;退出:退出系统;设计思路:根据要求,电话录数据以文本文件存放在文件中,故需要提供文件的输入、输出等操作;还需要保存记录以进行修改,删除,查找等操作;另外还应提供键盘式选择菜单实现功能选择。
图1 系统功能模块图软件中使用的结构体和结构体数组,如:struct callmember{char name[20];char address[20];char code[20];char callnumber[20];};对用户的信息进行保存,他们都以二进制的形式读写。
其中:char name[20];char address[20];char code[20];char callnumber[20]分别对姓名、地址、邮编、电话号码进行储存在子函数中还使用了结构体数组:struct callmember one[100];还使用了exit()、 fclose()等库函数。
学生通讯录管理c语言课程设计
学生通讯录管理c语言课程设计一、课程目标知识目标:1. 掌握C语言中结构体的定义和使用,能够利用结构体创建并管理学生通讯录信息。
2. 学会使用一维数组和指针操作结构体数组,实现对通讯录信息的增加、删除、查找和排序等基本操作。
3. 理解文件读写的基本原理,能够将通讯录信息保存到文件,并从文件中读取通讯录信息。
技能目标:1. 培养学生运用C语言进行小型信息管理系统开发的能力。
2. 能够运用逻辑思维,解决通讯录管理中的实际问题,如排序算法的应用等。
3. 提高学生的代码编写和调试能力,形成良好的编程习惯。
情感态度价值观目标:1. 培养学生积极探究信息技术领域的兴趣,激发学习C语言的积极性。
2. 增强学生的团队合作意识,培养在项目开发过程中沟通协作的能力。
3. 引导学生认识到编程在解决实际问题中的重要作用,提高学生的信息素养。
本课程针对高年级学生,在学生已掌握C语言基本语法和编程技巧的基础上,通过设计学生通讯录管理系统,将所学知识应用于实际项目中,提高学生的编程能力和解决问题的能力。
课程注重培养学生的实践操作技能和团队协作精神,使学生在完成课程学习后,能够独立完成类似项目的设计与开发。
二、教学内容1. 结构体和结构体数组的基本概念和使用方法,关联教材第六章。
- 结构体的定义和声明- 结构体变量的初始化和赋值- 结构体数组的创建和管理2. 指针与数组的关系及其应用,关联教材第七章。
- 指针与数组的基本操作- 指针数组的使用- 指针与结构体的结合3. 文件操作基础,关联教材第十章。
- 文件打开和关闭- 文件的读写操作- 结构体数据的文件存储4. 通讯录管理系统功能实现,结合教材实例进行拓展。
- 用户界面设计- 信息的增加、删除、查找、排序功能实现- 系统的测试与优化5. 项目实践与团队协作。
- 项目的需求分析- 功能模块划分与实现- 团队合作与代码整合教学内容按照由浅入深的顺序进行安排,每部分内容均与教材章节紧密相关。
C语言课程设计-通讯录管理系统
C语言通讯录管理系统课程设计报告通讯录管理系统题目学号姓名09级电子信息工程年级专业指导教师完成日期年月日1设计题目的内容、任务及具体要求本程序是非数值计算型算法设计,我设计出了通讯录管理系统的基本功能,并设计了简单的界面。
本程序主要考察对自定义函数的熟悉程度,本程序主要使用的是数组的相关操作,包括结构体数组的输入、输出、查找、删除等。
我设计的这个通讯录系统也初步实现了人员信息的显示、删除、查找、修改、添加等必要的功能。
①记录通讯录内的人员的姓名、地址、邮编、电话号码。
②显示所有人员的信息。
③通过输入姓名查找人员信息。
④通过输入姓名查找到要删除的人员信息,然后可以进行删除。
⑤通过输入姓名查找到要修改的人员信息,然后可以进行修改。
⑥添加人员信息。
2总体设计思路本系统首先设计出了主函数,然后根据去要实现的功能分别设计拉,显示、删除、查找、修改、添加功能的子函数。
在显示的函数设计过程中首先运用拉文件的读取等必要的知识通过把文件的内容读取到内存然后打印出来。
删除函数的设计是首先从文件内找到要删除的人,然后通过写一个实现删除目的的FOR循环将该人从内存里删除,然后再用写的方式打开文件,将内存内的信息写入文件,实现删除。
查找也是先打开文件,用一个字符串对比的方法找出用户要查找的人,然后打印出来。
修改也大体和删除相同,添加函数在设计时通过申请一片空间,然后通过指针将需要添加的信息添加进去,从而实现添加功能。
下面就是总的程序流程图:3功能模块的具体设计3.1 界面分析3.1.1开始界面开始执行printf()函数选择(a )调用ou tp ut() 函数调用 de l() 函数调用 find()函数调用 mod ify() 函数调用 appe nd() 函数执行print f() 退出系统3.1.2显示功能的界面:选择1后系统出现现有的所有人员名单:3.1.3 显示删除功能的界面3.1.4 查找功能:通过5:find—by—name 用姓名来查找个人的通讯录信息通过6:find—by—tel 用电话号码来查找个人的通讯录信息3.1.5 修改功能的界面:输入姓名后的系统界面:输入修改信息后的系统界面:3.1.6添加功能的界面:选择1后的系统界面:3.2 程序设计主要内容#include<stdio.h>struct student{char name[8]; /*声明一个结构体结构*/char num[10];char dis[8];char tel[20];char addr[20];};char filename[20];FILE *fp;void creat();void output();void find_by_name();void find_by_tel(); /*定义了六个函数和一个指针完成相应的功能*/void delete();void append();void modify();main(){int m;printf(" ***************************************************\n\n\n"); printf(" ********* Welcome to use yufeng's ***************\n\n\n"); printf(" ************** addressbook **********************\n\n\n");creat(); /*主界面*/while(1){ printf(" ******************************\n\n");printf(" 0 exit, press 0\n\n");printf(" 1 append,press 1\n\n");printf(" 2 modify,press 2\n\n");printf(" 3 output,press 3\n\n");printf(" 4 delete,press 4\n\n");printf(" 5 find by name,press 5\n\n");printf(" 6 find by tel,press 6\n\n"); /*功能菜单*/printf(" ******************************\n");scanf("%d",&m);if(m>=0&&m<=6){switch(m){case 1: append();break;case 2: modify();break;case 3: output();break;case 4: delete();break;case 5: find_by_name();break;case 6: find_by_tel();break;case 0: exit();}printf("\n\nHave finished,select again!\n");}elseprintf("\n\nError,select again!\n");}}void creat(){struct student one;printf("\nInput the name of addressbook:");gets(filename);if((fp=fopen(filename,"w"))==NULL){printf("\nCann't creat addressbook!");exit();}/*fprintf(fp,"%-10s%-8d%-20s%-20s%-20s\n",,one.num,one.dis,one.tel,one.addr);*/printf("\nInput name,num,dis,tel,addr(end press #)\n");gets();while(strcmp(,"#")){gets(one.num);gets(one.dis);gets(one.tel);gets(one.addr);fprintf(fp,"%-10s%-10s%-10s%-20s%-20s\n",,one.num,one.dis,one.tel,one.addr);gets();}fclose(fp);}void find_by_name(){int k=0;char namekey[8];struct student one;printf("\nInput name:");scanf("%s",namekey);if((fp=fopen(filename,"rb"))==NULL){printf("\nCann't open this addressbook!!!");exit();}while(!feof(fp)){fscanf(fp,"%s%s%s%s%s\n",,one.num,one.dis,one.tel,one.addr);if(!strcmp(namekey,)){printf("\n\nHave finded,as follow:\n");printf(" name num dis tel addr ");printf("\n%-10s%-10s%-10s%-20s%-20s\n",,one.num,one.dis,one.tel,one.addr);k=1;}}if(!k)printf("\n\nSorry,there is no this student!!");fclose(fp);}void find_by_tel(){int k=0;char telkey[8];struct student one;printf("\nInput tel:");scanf("%s",telkey);if((fp=fopen(filename,"rb"))==NULL){printf("\nCann't open this addressbook!!!");exit();}while(!feof(fp)){fscanf(fp,"%s%s%s%s%s\n",,one.num,one.dis,one.tel,one.addr);if(!strcmp(telkey,one.tel)){printf("\n\nHave finded,as follow:\n");printf(" name num dis tel addr");printf("\n%-10s%-10s%-10s%-20s%-20s\n",,one.num,one.dis,one.tel,one.addr);k=1;}}if(!k)printf("\n\nSorry,there is no this student!!");fclose(fp);}void output(){struct student one;if((fp=fopen(filename,"r"))==NULL){printf("\nCann't open this addressbook!!!");exit(0);}/* printf("\n\n%20s\n"," \nCann't open this addressbook\n");*/while(!feof(fp)){fscanf(fp,"%s%s%s%s%s\n",,one.num,one.dis,one.tel,one.addr);if(strcmp(,"hello"))printf("\n%-10s%-10s%-10s%-20s%-20s\n",,one.num,one.dis,one.tel,one.addr);}fclose(fp);}void append(){struct student one;if((fp=fopen(filename,"a"))==NULL){printf("\nCann't open this addressbook!!");exit();}printf("\nInput new name,num,dis,tel,addr\n");scanf("%s%s%s%s%s",,one.num,one.dis,one.tel,one.addr);fprintf(fp,"%-10s%-10s%-10s%-20s%-20s\n",,one.num,one.dis,one.tel,one.addr);fclose(fp);}void modify(){int m,k=0;long offset;char namekey[8];struct student one;printf("\nInput name:");scanf("%s",namekey);if((fp=fopen(filename,"r+"))==NULL){printf("\nCann't open this addressbook!!!");exit();}while(!feof(fp)){offset=ftell(fp);fscanf(fp,"%s%s%s%s%s\n",,one.num,one.dis,one.tel,one.addr);if(!strcmp(namekey,)){k=1;break;}}if(k){printf("\nHave finded,as follow:");printf("\n%-10s%-10s%-10s%-20s%-20s\n",,one.num,one.dis,one.tel,one.addr);printf("\nInput new name,num,dis,tel,addr:");scanf("%s%s%s%s%s",,one.num,one.dis,one.tel,one.addr);fseek(fp,offset,SEEK_SET);printf("%1d",ftell(fp));fprintf(fp,"%-10s%-10s%-10s%-20s%-20s\n",,one.num,one.dis,one.tel,one.addr);}elseprintf("\nSorry,there is no this student!!");fclose(fp);}void delete(){int m,k=0,flag;long offset1;char namekey[8];struct student one;printf("\nInput name:");scanf("%s",namekey);if((fp=fopen(filename,"r+"))==NULL){printf("\nCann't open this addressbook!!");exit();}while(!feof(fp)){ offset1=ftell(fp);fscanf(fp,"%s%s%s%s%s\n",,one.num,one.dis,one.tel,one.addr);if(!strcmp(namekey,)){k=1;break;}}if(k){printf("\nHave finded,as follow:");printf("\n%-10s%-10s%-10s%-20s%-20s\n",,one.num,one.dis,one.tel,one.addr);printf("\n delete,press1:\n not delete,press0:");scanf("%d",&m);if(m){fseek(fp,offset1,SEEK_SET);strcpy(,"hello");fprintf(fp,"%-10s%-10s%-10s%-20s%-20s\n",,one.num,one.dis,one.tel,one.addr);}}elseprintf("\nSorry,there is no this student!!");fclose(fp);}通过对这些资源的合理利用使系统初步实现了通讯录管理系统的基本功能。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
#include <stdio.h>#include <conio.h>#include <string.h>#include <stdlib.h>#define N 100int M=5;struct student{ char num[10];char name[10];char tel[10];};void myprint();void mycreat(struct student *p,int);void mydisplay(struct student *p,int);void mysearch(struct student *p,int);void mymodify(struct student *p,int);void mydelete(struct student *p,int);void myadd(struct student *p,int);void main(){char choose='\0',yes_no='\0';struct student record[N]={0};do{myprint();printf("请选择(0-6):");choose=getche();switch(choose){case '1':mycreat(record,M);break;case '2':mydisplay(record,M);break;case '3':mysearch(record,M);break;case '4':mymodify(record,M);break;case '5':myadd(record,M);break;case '6':mydelete(record,M);break;case '0':exit(0);default :printf("\nerror...\n");}printf("\n继续选择吗(y/n)?\n");do{yes_no=getch();}while(yes_no!='Y'&&yes_no!='y'&&yes_no!='N'&&yes_no!='n'); }while(yes_no=='Y'||yes_no=='y');}void myprint(){system("cls");printf(" 请输入选项编号(0-6): \n");printf("1--创建通讯录\n");printf("2--显示通讯录\n");printf("3--查询通讯录\n");printf("4--修改通讯录\n");printf("5--添加通讯录\n");printf("6--删除通讯录\n");printf("0--退出\n");}void mycreat(struct student *p,int n){struct student *q=p;FILE *fp=NULL;fp=fopen("d:\\jilu.dat","w");if(fp==NULL){printf("error"); return;}for(p=q;p-q<n;p++){printf("\n");printf("第%d条记录:\n",p-q+1);printf("学号:");do{gets(p->num);}while(strcmp(p->num,"")==0);printf("姓名:");gets(p->name);printf("电话:");gets(p->tel);fprintf(fp,"%23s%15s%15s\n",p->num,p->name,p->tel); }}void mydisplay(struct student *p,int n){FILE *fp=NULL;fp=fopen("d:\\jilu.dat","r");if(fp==NULL){printf("error"); return;}system("cls");printf(" 学号姓名电话\n");while(n>0){fscanf(fp,"%23s%15s%15s",p->num,p->name,p->tel); printf("%23s%15s%15s\n",p->num,p->name,p->tel);p++;n--;}}void mysearch(struct student *p,int n){struct student *q=p;int flag=0;char c='\0',nm[10]="",nam[10]="";printf("\n按照学号查询(h)或姓名查询(m):\n");c=getche();if(c=='h'||c=='H'){printf("请输入要查询记录的学号:");gets(nm);for(p=q;p-q<n;p++)if(strcmp(nm,p->num)==0){printf(" 学号姓名电话\n");printf("%23s%15s%15s\n",p->num,p->name,p->tel); flag=1;}if(flag==0) printf("wrong...\n");}else if(c=='m'||c=='M'){printf("请输入要查询记录的姓名:");gets(nam);for(p=q;p-q<n;p++)if(strcmp(nam,p->name)==0){printf(" 学号姓名电话\n");printf("%23s%15s%15s\n",p->num,p->name,p->tel); flag=1;}if(flag==0) printf("wrong...\n");}else printf("wrong...\n");}void mymodify(struct student *p,int n){struct student *q=p;FILE *fp=NULL;char nam[10]="";mydisplay(p,n);printf("请输入您想要修改记录的姓名:\n");gets(nam); for(p=q;p-q<n;p++)if(strcmp(nam,p->name)==0) break;if(p-q==n)printf("wrong...");else{printf("请输入正确的学号:");dogets(p->num);while(strcmp(p->num,"")==0);printf("请输入正确的姓名:");gets(p->name);printf("请输入正确的电话:");gets(p->tel);}fp=fopen("d:\\jilu.dat","w");if(fp==NULL){printf("error"); exit(0);}for(p=q;p-q<n;p++)fprintf(fp,"%23s%15s%15s\n",p->num,p->name,p->tel); fclose(fp);}void myadd(struct student *p,int n){FILE *fp=NULL;struct student *q=p;char c='\n',tempnum[10]="",tempname[10]="",temptel[10]=""; printf("\n");while(strcmp(p->num,"")!=0){printf("%23s%15s%15s\n",p->num,p->name,p->tel);p++;}n=p-q;do{printf("请输入新纪录的学号:");dogets(tempnum);while(strcmp(tempnum,"")==0);printf("请输入新纪录的姓名:");gets(tempname);printf("请输入新纪录的电话:");gets(temptel);for(p=q;p-q<n;p++)if(strcmp(tempnum,p->num)==0||strcmp(temptel,p->tel)==0) {printf("学号或电话号码需要重新输入吗(Y/N)?");c=getche();putchar('\n');break;}if(p-q==n){strcpy(p->num,tempnum);strcpy(p->name,tempname);strcpy(p->tel,temptel);break;}}while(c=='y'||c=='Y');fp=fopen("d:\\jilu.dat","w");if(fp==NULL){printf("error"); return;}for(p=q;p-q<=n;p++)fprintf(fp,"%23s%15s%15s\n",p->num,p->name,p->tel);fclose(fp);M++;}void mydelete(struct student *p,int n){FILE *fp=NULL;struct student *q=p;char c[10]="",tempnum[10]="",tempname[10]="",temptel[10]="",choose='\0'; mydisplay(p,n);printf("选择删除记录的方式:学号(h)姓名(m)");choose=getche();printf("\n");if(choose=='m'||choose=='M'){printf("删除的记录:");gets(c);for(;p-q<n;p++)if(strcmp(c,p->name)==0) break;if(p-q<n)for(;p-q<n-1;p++){strcpy(p->num,(p+1)->num);strcpy(p->name,(p+1)->name);strcpy(p->tel,(p+1)->tel);}else printf("no\n");}else if(choose=='h'||choose=='H'){printf("删除的记录:");gets(c);for(;p-q<n;p++)if(strcmp(c,p->num)==0) break;if(p-q<n)for(;p-q<n-1;p++){strcpy(p->num,(p+1)->num);strcpy(p->name,(p+1)->name);strcpy(p->tel,(p+1)->tel);}else printf("no");}else printf("wrong\n");fp=fopen("d:\\jilu.dat","w");if(fp==NULL){printf("error"); return;}for(p=q;p-q<n-1;p++)fprintf(fp,"%23s%15s%15s\n",p->num,p->name,p->tel); fclose(fp);M--;}。