c通讯录程序设计
c语言通讯录程序设计

c语言通讯录程序设计在现代社会中,通讯录是人们工作和生活中必不可少的工具之一。
为了方便管理联系人的信息,许多人开始使用电子化的通讯录,并希望能够通过程序来实现通讯录的管理。
本文将以C语言为基础,介绍一个简单但实用的通讯录程序设计。
首先,我们需要定义通讯录的数据结构。
通讯录中每个联系人都应该有姓名、电话号码、电子邮件等基本信息。
为了方便管理,我们可以定义一个结构体来表示联系人的信息。
以下是一个简单的示例:```c#define MAX_CONTACTS 100typedef struct {char name[100];char phone[100];char email[100];} Contact;Contact contacts[MAX_CONTACTS];int numContacts = 0;```上述代码中,我们使用了一个数组来存储联系人的信息,数组的大小可以根据需求进行修改。
同时,我们还定义了一个变量`numContacts`来记录当前通讯录中联系人的数量。
接下来,我们可以设计一些基本的功能,比如添加联系人、查找联系人和删除联系人等。
下面是这些功能的实现示例:```cvoid addContact() {if (numContacts >= MAX_CONTACTS) {printf("通讯录已满,无法添加新的联系人。
\n"); return;}Contact newContact;printf("请输入联系人姓名:");scanf("%s", );printf("请输入联系人电话号码:");scanf("%s", newContact.phone);printf("请输入联系人电子邮件:");scanf("%s", newContact.email);contacts[numContacts] = newContact;numContacts++;printf("联系人添加成功。
c语言课程设计通讯录

c语言课程设计 通讯录一、课程目标知识目标:1. 理解并掌握C语言结构体和数组的使用,能够运用其创建和操作通讯录。
2. 学习并掌握C语言中的文件操作,实现通讯录数据的保存和读取功能。
3. 掌握C语言中的函数定义和应用,实现通讯录各项功能模块的划分和调用。
技能目标:1. 能够编写C程序,实现通讯录的增加、删除、修改和查询功能。
2. 能够运用所学知识,设计出界面友好、操作简便的通讯录管理系统。
3. 能够对程序进行调试和优化,提高代码的可读性和执行效率。
情感态度价值观目标:1. 培养学生主动探索、积极实践的学习态度,增强其解决实际问题的能力。
2. 培养学生的团队协作精神,学会与他人共同分析问题、解决问题。
3. 通过本课程的学习,使学生认识到编程在生活中的应用价值,激发其对计算机科学的兴趣。
分析课程性质、学生特点和教学要求:本课程为C语言课程设计,旨在巩固和拓展学生所学知识,提高其编程能力。
学生已具备一定的C语言基础,能够独立完成简单的程序编写。
课程要求学生通过动手实践,掌握结构体、数组、文件操作等知识,并能够将其应用于实际项目中。
课程目标明确,分解为具体学习成果,便于教学设计和评估。
在教学过程中,注重培养学生的实际操作能力和团队协作能力,提高其综合素质。
二、教学内容根据课程目标,教学内容主要包括以下几部分:1. C语言基础知识回顾:结构体、数组、函数、文件操作等。
- 结构体:定义、声明、初始化、结构体数组。
- 数组:一维数组、二维数组、字符串与字符数组。
- 函数:函数定义、声明、调用、参数传递。
- 文件操作:文件打开、关闭、读写、定位。
2. 通讯录管理系统功能模块设计:- 系统架构设计:功能模块划分、模块间关系。
- 功能实现:增加、删除、修改、查询、排序等。
3. 编程实践与调试:- 编写代码实现通讯录管理系统各项功能。
- 调试程序,优化代码,提高执行效率。
4. 团队协作与项目展示:- 分组进行项目开发,培养学生团队协作能力。
通讯录C语言程序设计

通讯录C语言程序设计通讯录C语言程序设计是一个常见的编程练习项目,它可以帮助初学者熟悉C语言的基本语法和数据结构。
下面是一个简单的通讯录程序设计示例,包括了程序的基本框架、功能实现和代码实现。
程序设计目标设计一个通讯录程序,能够实现以下功能:1. 添加联系人2. 删除联系人3. 修改联系人信息4. 显示所有联系人5. 按姓名查找联系人6. 保存联系人信息到文件7. 从文件加载联系人信息程序设计思路1. 数据结构设计:使用结构体`struct Contact`来存储联系人信息,包括姓名、电话号码、电子邮件等。
2. 功能模块划分:将程序分为多个功能模块,如添加、删除、修改、显示、查找、保存和加载。
3. 用户界面设计:设计一个简单的文本界面,使用循环让用户选择相应的操作。
4. 文件操作:使用C语言的文件操作函数来实现联系人信息的持久化存储。
数据结构定义```c#include <stdio.h>#include <stdlib.h>#include <string.h>#define MAX_CONTACTS 100#define MAX_NAME 50#define MAX_PHONE 20#define MAX_EMAIL 50struct Contact {char name[MAX_NAME];char phone[MAX_PHONE];char email[MAX_EMAIL];};struct Contact contacts[MAX_CONTACTS];int contactCount = 0;```功能实现1. 添加联系人```cvoid addContact() {if (contactCount >= MAX_CONTACTS) {printf("Contact list is full.\n"); return;}printf("Enter name: ");scanf("%49s", contacts[contactCount].name);printf("Enter phone: ");scanf("%19s", contacts[contactCount].phone);printf("Enter email: ");scanf("%49s", contacts[contactCount].email);contactCount++;}```2. 删除联系人```cvoid deleteContact() {int i, index;printf("Enter name of the contact to delete: ");scanf("%49s", contacts[index].name);for (i = 0; i < contactCount; i++) {if (strcmp(contacts[i].name, contacts[index].name) == 0) {index = i;break;}}if (i == contactCount) {printf("Contact not found.\n");} else {for (; i < contactCount - 1; i++) {contacts[i] = contacts[i + 1];}contactCount--;printf("Contact deleted.\n");}}```3. 修改联系人信息```cvoid modifyContact() {// 类似于删除联系人,找到联系人后修改信息}```4. 显示所有联系人```cvoid displayContacts() {for (int i = 0; i < contactCount; i++) {printf("%s, %s, %s\n", contacts[i].name, contacts[i].phone, contacts[i].email);}}```5. 按姓名查找联系人```cvoid findContact() {char name[MAX_NAME];printf("Enter name to find: ");scanf("%49s", name);for (int i = 0; i < contactCount; i++) {if (strcmp(contacts[i].name, name) == 0) { printf("%s, %s, %s\n", contacts[i].name, contacts[i].phone, contacts[i].email);return;}}printf("Contact not found.\n");}```6. 保存联系人信息到文件```cvoid saveContactsToFile() {FILE *file = fopen("contacts.txt", "w");if (file == NULL) {printf("Error opening file.\n");return;}for (int i = 0; i < contactCount; i++) {fprintf(file, "%s,%s,%s\n", contacts[i].name, contacts[i].phone, contacts[i].email);}fclose(file);printf("Contacts saved to file.\n");}```7. 从文件加载联系人信息```cvoid loadContactsFromFile() {FILE *file = fopen("contacts.txt", "r");if (file == NULL) {printf("。
c语言课程设计通讯录

c语言课程设计通讯录好的,我可以帮助您设计一个简单的通讯录程序。
下面是一个示例代码,实现了通讯录的基本功能,包括添加联系人、显示联系人列表、查找联系人、删除联系人和修改联系人信息。
c复制代码:#include <stdio.h>#include <stdlib.h>#include <string.h>#define MAX_CONTACTS 100 // 通讯录最大容量// 定义联系人结构体typedef struct {char name[20]; // 姓名char phone[15]; // 电话号码char email[30]; // 邮箱地址} Contact;// 定义通讯录结构体typedef struct {Contact contacts[MAX_CONTACTS]; // 联系人数组int size; // 当前联系人数量} AddressBook;// 添加联系人void add_contact(AddressBook *book) {if (book->size >= MAX_CONTACTS) {printf("通讯录已满,无法添加联系人。
\n"); return;}printf("请输入联系人姓名:");scanf("%s", book->contacts[book->size].name); printf("请输入联系人电话号码:");scanf("%s", book->contacts[book->size].phone); printf("请输入联系人邮箱地址:");scanf("%s", book->contacts[book->size].email); book->size++;printf("联系人已添加。
c通讯录系统课程设计

c 通讯录系统课程设计一、教学目标本课程旨在通过学习C通讯录系统,使学生掌握C语言编程的基本技能,能够运用C语言实现简单的通讯录管理系统。
具体目标如下:1.掌握C语言的基本语法和数据类型。
2.了解函数的定义和调用。
3.学习结构体和指针的运用。
4.理解程序的编译和调试过程。
5.能够编写简单的C语言程序。
6.学会使用结构体和指针编写复杂的数据结构。
7.掌握函数的调用和递归。
8.学会使用C语言实现简单的通讯录管理系统。
情感态度价值观目标:1.培养学生的编程兴趣,提高学生对计算机科学的热爱。
2.培养学生解决问题的能力,增强学生的自信心。
3.培养学生团队合作的精神,提高学生的沟通协作能力。
二、教学内容本课程的教学内容主要包括C语言的基本语法、数据类型、函数、结构体和指针等。
具体安排如下:1.C语言的基本语法和数据类型(2课时)2.函数的定义和调用(2课时)3.结构体和指针(3课时)4.通讯录管理系统的设计与实现(5课时)三、教学方法为了激发学生的学习兴趣和主动性,本课程将采用多种教学方法,包括讲授法、讨论法、案例分析法和实验法等。
1.讲授法:用于讲解C语言的基本语法、数据类型、函数、结构体和指针等概念。
2.讨论法:通过小组讨论,让学生深入理解编程中的问题,培养学生的沟通能力。
3.案例分析法:分析实际编程案例,让学生学会将理论知识应用于实际问题。
4.实验法:让学生动手编写代码,实现通讯录管理系统,提高学生的实践能力。
四、教学资源为了支持教学内容和教学方法的实施,丰富学生的学习体验,我们将准备以下教学资源:1.教材:《C程序设计语言》2.参考书:《C Primer Plus》、《C和指针》3.多媒体资料:教学PPT、编程案例视频4.实验设备:计算机、编程环境(如Code::Blocks、Visual Studio等)五、教学评估本课程的教学评估将采用多元化的评估方式,以全面、客观、公正地评估学生的学习成果。
评估方式包括:1.平时表现(30%):评估学生在课堂上的参与度、提问回答、小组讨论等,以考察学生的学习态度和积极性。
通讯录程序设计c

通讯录程序设计c通讯录程序设计是计算机编程中的一个常见项目,旨在通过编写代码来实现对联系人信息的存储、查询、修改和删除等功能。
以下是关于通讯录程序设计的详细内容。
一、设计目标通讯录程序的主要目标是提供一个用户界面,允许用户添加、查找、更新和删除联系人信息。
联系人信息通常包括姓名、电话号码、电子邮件地址、住址等。
二、需求分析1. 用户界面:简洁直观,易于操作。
2. 数据存储:能够持久化存储联系人信息。
3. 功能需求:- 添加联系人:允许用户输入并保存新的联系人信息。
- 查询联系人:根据姓名或其他信息搜索联系人。
- 修改联系人:允许用户更新已存在的联系人信息。
- 删除联系人:允许用户删除不再需要的联系人信息。
三、技术选型1. 编程语言:根据项目需求和团队熟悉度选择合适的编程语言,如C、Java、Python等。
2. 数据存储:可以使用文件系统、数据库或内存中的数据结构。
3. 开发环境:选择适合的IDE(集成开发环境)进行编码,如Visual Studio、Eclipse等。
四、系统设计1. 数据结构:设计合适的数据结构来存储联系人信息,如使用结构体或类。
2. 功能模块:- 输入模块:负责接收用户输入的联系人信息。
- 存储模块:负责将联系人信息存储到指定的存储介质。
- 查询模块:提供搜索功能,根据用户输入的关键字查找联系人。
- 修改模块:允许用户修改已存储的联系人信息。
- 删除模块:允许用户删除联系人信息。
五、界面设计1. 主界面:显示所有功能选项,如添加、查询、修改、删除。
2. 输入界面:当用户选择添加或修改联系人时,提供输入界面。
3. 查询结果界面:显示查询结果,可能包括联系人列表或详细信息。
六、实现步骤1. 定义数据结构:根据需求定义联系人的数据结构。
2. 编写功能模块:逐一实现添加、查询、修改和删除功能。
3. 集成测试:将各个模块集成到一起,进行系统测试。
4. 用户测试:让实际用户测试程序,收集反馈并进行优化。
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 通讯录课程设计一、课程目标知识目标:1. 学生能够理解通讯录的基本概念,掌握电子通讯录的基本结构。
2. 学生能够运用所学的编程知识,完成一个简易的通讯录管理系统。
3. 学生了解数据存储和读取的方法,能够对通讯录信息进行保存和加载。
技能目标:1. 学生通过本课程的学习,掌握使用编程语言(如Python)进行简易通讯录管理系统的设计与开发。
2. 学生能够运用所学算法,实现通讯录信息的增加、删除、修改和查询功能。
3. 学生能够运用调试技巧,找出并修复程序中的错误,提高程序稳定性。
情感态度价值观目标:1. 学生培养对计算机编程的兴趣,激发学习主动性和创新精神。
2. 学生通过小组合作,培养团队协作能力和沟通能力。
3. 学生认识到编程在生活中的实际应用,增强学以致用的意识。
课程性质:本课程为信息技术学科,结合编程知识与实际应用,以项目为导向,培养学生的编程能力和实际问题解决能力。
学生特点:学生处于初中年级,具备一定的计算机操作基础,对新鲜事物充满好奇心,喜欢动手实践。
教学要求:教师应注重理论与实践相结合,引导学生主动参与,关注个体差异,鼓励学生创新和思考。
在教学过程中,将课程目标分解为具体的学习成果,便于教学设计和评估。
二、教学内容本课程依据课程目标,结合教材内容,制定以下教学大纲:1. 通讯录基本概念与结构- 通讯录的定义与作用- 电子通讯录的组成与功能- 通讯录信息的存储与读取方式2. 编程语言基础- Python编程环境的搭建与使用- Python基本语法和数据类型- 控制结构与函数的定义3. 简易通讯录管理系统的设计与实现- 系统功能需求分析- 程序设计思路与步骤- 通讯录信息的增加、删除、修改和查询功能实现4. 程序调试与优化- 常见编程错误的识别与修复- 程序性能分析与优化- 用户体验与界面优化5. 项目实践与展示- 小组合作完成通讯录管理系统项目- 项目成果展示与评价- 交流与分享经验教学内容安排和进度:第一周:通讯录基本概念与结构,Python编程环境搭建第二周:Python基本语法与数据类型,控制结构第三周:函数定义,通讯录管理系统需求分析第四周:程序设计,实现通讯录基本功能第五周:程序调试与优化,项目实践第六周:项目展示与评价,交流与分享教学内容与教材紧密关联,注重科学性和系统性,旨在帮助学生掌握通讯录管理系统的设计与实现方法,提高编程能力和实际问题解决能力。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C++程序设计课程设计报告——通讯录管理系统班级:1120551学号:03姓名:一课程设计题目与要求题目通讯录管理系统系统功能要求:(1)录入通讯录(2)修改通讯录(3)查询通讯录(可按姓名、电话、联系人类别查询)(4)删除通讯录(5)按姓名对通讯录进行排序一课程设计题目与要求题目通讯录管理系统系统功能要求:(1)录入通讯录(2)修改通讯录(3)查询通讯录(可按姓名、电话、联系人类别查询)(4)删除通讯录(5)按姓名对通讯录进行排序二需求分析2.1问题描述根据需求,该系统所应包含的信息有以下一些:通讯录的基本信息:姓名、地址、电话根据需求,该系统所应实现的功能有以下一些:各种基本数据的录入。
如:通讯录基本信息录入。
各种基本数据的修改。
即:允许对已经录入的数据重新进行编辑、修改。
例如修改通讯录中张三的电话信息各种基本数据的删除。
例如将张三的信息从通讯录中删除基于各种数据的查询。
例如输入张三姓名,查询张三的电话和地址。
数据导出:将通讯录中信息导出到指定文件。
数据导入:从指定文件导入通讯录信息到。
系统环境采用C++语言实现,开发环境为VC++,可以运行在操作系统windows98及以上皆可。
运行要求能不受限制的录入通讯录信息界面友好,操作方便,例如删除前需要提示用户是否删除三概要设计系统流程设计根据系统要求,设计如下的系统流程。
系统模块设计根据系统的功能设计,如下模块1.主界面模块:完成系统菜单的显示2.功能选择模块:根据用户的选择,完成其相应的功能(1)通讯录信息录入:完成用户从界面输入通讯录,保存入系统的功能(2)通讯录信息修改:完成用户从界面输入通讯录,在系统中查询定位,并将录入的数据保存入系统的功能(3)通讯录信息查询:完成用户从界面输入查询条件,在系统查询符合条件的通讯录信息,并在界面上显示的功能。
(4)通讯录信息导入:完成用户从界面输入需要导入的文件路径名称,读取该文件的内容,保存入系统,并在界面上显示导入内容的功能。
(5)通讯录信息导出:完成用户从界面输入需要导出的文件路径名称,将系统中通讯录信息保存入文件中。
(6)通讯录信息删除:完成用户从界面输入需要的通讯录信息的姓名,并将其从系统中删除。
四详细设计数据结构设计1.主界面:根据系统要求,设计一个字符界面,显示系统的菜单,为了体现友好性,将在每个菜单前显示该菜单项对应的数字用户输入菜单项前面的数字,主菜单消失,进入该模块的相应界面,进行相应的操作,完成后,回到主界面。
2.输入界面:在光标下输入通讯录的信息,用空格将信息隔开3.修改界面:首先输入通讯录的姓名,显示该通讯录的详细信息,输入修改后的信息,将原来信息修改。
4.删除界面:输入需要删除的姓名,将其从通讯录中删除5.导出界面:输入需要导出的文件路径,将通讯录信息导出到文件。
6.列表显示页面:将通讯录中所有记录显示,每页显示10条7.导入页面:相关功能的整合8.查询界面:相关功能的整合模块实现1.主界面实现:调用cout函数,在屏幕上打印需要显示的字符信息,需要在显示之前调用system(“cls”)函数将前面的界面清空。
对应的实现函数menu_show();2.功能选择模块实现:接受从键盘输入的菜单选择,判断并调用相应的功能函数,完成其对应的功能。
实现功能选择。
对应的函数:menu_select();(1)通讯录信息录入模块实现:模块说明:从键盘接收输入的通讯录信息,在动态存储区中创建通讯录的节点,遍历链表,将其插入到通讯录链表的最后位置。
模块流程:对应函数:add(structphone*head)(2)通讯录信息修改模块实现:模块说明:从键盘接收输入的需要修改通讯录的姓名,遍历链表,判断节点的姓名是否输入的姓名相等,如果相等,从键盘输入修改后的信息,保存在该节点中,改变标识变量,最后判断标识变量判断是否在链表中找到该姓名的通讯录。
模块流程:对应函数:update(structphone*head)(3)通讯录信息删除模块实现:模块说明:从键盘接收输入的需要删除通讯录的姓名,遍历链表,判断节点的姓名是否输入的姓名相等,如果相等,从键盘输入删除后的信息,保存在该节点中,改变标识变量,最后判断标识变量判断是否在链表中找到该姓名的通讯录。
模块流程:对应函数:delete(structphone*head)(4)通讯录信息导入模块实现:模块说明:从键盘接收输入的需要删除通讯录的姓名,遍历链表,判断节点的姓名是否输入的姓名相等,如果相等,从键盘输入删除后的信息,保存在该节点中,改变标识变量,最后判断标识变量判断是否在链表中找到该姓名的通讯录。
模块流程:对应函数:load(structphone*head)(5)通讯录信息导出模块实现:模块说明:从键盘接收输入的需要删除通讯录的姓名,遍历链表,判断节点的姓名是否输入的姓名相等,如果相等,从键盘输入删除后的信息,保存在该节点中,改变标识变量,最后判断标识变量判断是否在链表中找到该姓名的通讯录。
模块流程:对应函数:save(structphone*head)(6)通讯录信息查询模块实现:模块说明:从键盘接收输入的需要删除通讯录的姓名,遍历链表,判断节点的姓名是否输入的姓名相等,如果相等,从键盘输入删除后的信息,保存在该节点中,改变标识变量,最后判断标识变量判断是否在链表中找到该姓名的通讯录。
模块流程:对应函数:search(structphone*head)(7)通讯录信息显示模块实现:模块说明:从键盘接收输入的需要删除通讯录的姓名,遍历链表,判断节点的姓名是否输入的姓名相等,如果相等,从键盘输入删除后的信息,保存在该节点中,改变标识变量,最后判断标识变量判断是否在链表中找到该姓名的通讯录。
模块流程:对应函数:list(structphone*head)五测试录入通讯录测试1.测试数据:输入张吴波湖北汽车工业学院,测试结果:程序运行出现错误,如下原因电话输入的长度超过了电话表示的长度2.测试数据:输入张吴波湖北汽车工业学院,测试结果:程序运行正常,正确的插入到链表的最后位置3.测试数据:输入:张吴波湖北汽车工业学院25测试结果:程序运行不正常,可以将张吴波湖北汽车工业学院,8241470插入到链表的最后位置,但是425不能保存原因:使用了scanf(“%s”),将空格作为截止符修改通讯录测试测试数据:在系统中存在4个名称为li的通讯录测试结果:输入修改的姓名li,显示了第一个姓名为li的通讯录信息,输入修改后的信息:张吴波湖北汽车工业学院测试数据:在系统中不存在名称为张三的通讯录,输入后,提示姓名不存在,如下图导入通讯录测试测试数据:输入C:\路径(系统中不存在该文件)测试结果:提示不能打开文件,不能导入回车后程序结束原因:不能打开文件文件使用了exit函数测试数据:输入C:\路径(系统中该文件,格式符合程序要求)测试结果:提示能将文件中的数据正确导入查询模块测试:测试数据:输入C:\路测试结果:提示能将文件中的数据正确查询删除模块测试测试数据:输入C:\路径测试结果:提示能将文件中的数据正确删除六结论及改进设想此通讯录管理系统的程序开发,其亮点主要是引用了类来宏观调运程序,使得程序简单、明了、可读性强,在程序操作上也比较省事、方便。
通讯录程序无节点,这是一个非常大的不足,急需要改进,但由于时间比较紧,就没有想这部分程序。
其实,这部分程序也就是退出,需要一个好的位置来安放此程序。
通讯录程序是我做的第一个比较大的程序,在专业人士看来这不算什么,但对我来说有很大的意义,他的做出激发着我更好的学好c++,更好的学好专业课。
七心得体会对第一次用C++应用程序来做这么大课题的我来说,了解C++语言的概念是非常重要的,C++语言既保留了C语言的有效性、灵活性、便于移植等全部精华和特点,又添加了面向对象编程的支持,具有强大的编程功能,可方便地构造出模拟现实问题的实体和操作;编写出的程序具有结构清晰、易于扩充等优良特性,适合于各种应用软件、系统软件的程序设计。
用C++编写的程序可读性好,生成的代码质量高。
所谓C++语言:是一种使用非常广泛的计算机编程语言。
任何一个优秀的程序,无非有以下几点:效率高,可读性高,可重用性强,可移植性好。
具体到C++程序,如果做面向对象那块,无非是合理的类的设计,在类中合理安排数据和对数据的处理,信息隐藏的特性等等。
从C++应用程序目前的活跃程度,以及应用现状来说是完全能够肯定C++仍然是软件工业的基础,也不会退出历史舞台的。
我们也能够看到C++的发展非常活跃,对于新技术新思维非常激进,C++仍然广泛受到关注。
八.参考文献九附录程序源代码:#include<iostream>#include<string>#include<iomanip>#include<fstream>#include<cstdlib>intn,m;usingnamespacestd;classmsg{public:msg();加新联系人.4.修改信息.※"<<endl<<"\t\t※※"<<endl<<"\t\t※2.删除联系人.5.查询联系人.※"<<endl<<"\t\t※※"<<endl<<"\t\t※3.显示所有联系人.0.关闭通迅录.※"<<endl<<"\t\t※※"<<endl<<"\t\t*****************************************"<<endl<<endl<<"\t\t\t选择:";charchoose;cin>>choose;returnchoose;}加新联系人.4.修改信息.※"<<endl<<"\t\t※※"<<endl<<"\t\t※2.删除联系人.5.查询联系人.※"<<endl<<"\t\t※※"<<endl<<"\t\t※3.显示所有联系人.0.退出通迅录.※"<<endl<<"\t\t※※"<<endl<<"\t\t*****************************************"<<endl<<endl<<"\t\t\t选择你需要的功能:";cin>>n;switch(n){case1:();////添加联系人break;case2:();////删除联系人break;case3:();////显示所有联系人break;case4:();////修改信息break;case5:();////查询联系人break;default:break;}cout<<"\n输入1:继续;输入0:退出\n"; cin>>m;}while(m==1);}。