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. 教学大纲:- 第一周:通讯录管理系统概述,学习数据结构基本概念;- 第二周:文件操作,编写通讯录管理系统的基础代码;- 第三周:完善通讯录管理系统,增加功能模块;- 第四周:调试与优化程序,进行项目展示与评价。
- 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--;}。