【精品】设计一个电子通讯录程序课程设计

合集下载

通讯录管理课程设计

通讯录管理课程设计

通讯录管理 课程设计一、课程目标知识目标:1. 让学生理解通讯录的基本概念,掌握通讯录的基本结构和管理方法。

2. 学会使用电子设备或软件进行通讯录的录入、查询、修改和删除操作。

3. 了解通讯录在日常生活和工作中的应用场景,认识到通讯录管理的重要性。

技能目标:1. 培养学生运用电子设备或软件进行通讯录管理的能力,提高信息处理效率。

2. 培养学生独立解决通讯录管理过程中遇到的问题,提升问题解决能力。

3. 培养学生团队协作能力,通过小组讨论和分享,优化通讯录管理方法。

情感态度价值观目标:1. 培养学生认真负责的态度,对待通讯录管理任务严谨细致,确保信息准确无误。

2. 增强学生的信息保护意识,学会保护个人隐私和信息安全。

3. 培养学生分享和帮助他人的精神,乐于与同学交流通讯录管理的心得体会。

课程性质:本课程属于信息技术与日常生活相结合的实践性课程,注重培养学生的实际操作能力和信息素养。

学生特点:学生具备基本的电子设备操作技能,对信息技术有一定了解,但通讯录管理方面可能缺乏系统学习和实践经验。

教学要求:教师需结合学生特点,采用任务驱动、小组合作等教学方法,引导学生掌握通讯录管理的基本知识和技能,培养良好的信息素养。

在教学过程中,关注学生的个体差异,提供个性化指导,确保课程目标的实现。

通过课程学习,使学生能够达到上述具体的学习成果。

二、教学内容1. 通讯录基本概念:介绍通讯录的定义、作用和基本结构,引导学生了解通讯录的组成元素,包括姓名、电话、邮箱、地址等。

2. 通讯录管理方法:讲解通讯录的录入、查询、修改和删除等基本操作,结合实际案例,让学生掌握各种操作的具体步骤。

3. 通讯录管理软件及应用:介绍常见的通讯录管理软件(如Outlook、Google联系人等),分析其功能特点,指导学生如何使用这些软件进行高效管理。

4. 通讯录信息安全:讲解通讯录信息安全的重要性,引导学生了解信息安全的基本知识,提高信息保护意识。

2023年程序设计通讯录管理系统 通讯录管理系统python课程设计(五篇)

2023年程序设计通讯录管理系统 通讯录管理系统python课程设计(五篇)

2023年程序设计通讯录管理系统通讯录管理系统python课程设计(五篇)范文为教学中作为模范的文章,也经常用来指写作的模板。

经常用于文秘写作的参考,也可以作为演讲材料编写前的参考。

那么我们该如何写一篇较为完善的范文呢?下面是我为大家收集的优秀范文,供大家参考借鉴,盼望可以关心到有需要的伴侣。

cout“(2)删除:” cout“(2)按姓名排序:” void inter::add(char no[13],char name[20],char address[100],char tel_no[12],char post_code[7],char e_mail[40]){ int x=1;for(int i=0;i35;i++)return 0;} {} if(!strcmp(st[i].no,“0”)){}if(x==0)break;strcpy(st[i].address,address);strcpy(st[i].e_mail,e_mail);strc py(st[i].name,name);strcpy(st[i].no,no);strcpy(st[i].post_code,post_code) ;strcpy(st[i].tel_no,tel_no);x=0;//删除联系人void inter::del(char name[20]){int x=1;for(int i=0;i35;i++){ if(!strcmp(st[i].name,name)){strcpy(st[i].address,“0”);strcpy(st[i].e_mail,“0”);strcpy(st[i].name,“0”);strcpy(st[i].no,“0”);strcpy(st [i].post_code,“0”);strcpy(st[i].tel_no,“0”);}} } else x=0;if(x==0)cout“error:输入姓名错误!” 输入要修改的学号:”;char no1[13];cinno1;strcpy(st[i].no,no1);cout“修改胜利!” cins[h]-kind;箱:“ }cout“想连续修改吗(y/n)”c; }case '6':{存在!请检查输入的正确性!”;“ cout”指令错误!请重新输入!cinc;} }while(c=='y');break;char name[20];bool flag3=0;char c;do{cout“请输入您要删除的人的姓名:” cinname;for(int h=0;h {if(strcmp(name,s[h]-name)==0){flag3=1;i--;do{s[h]=s[h+1];h++;}while(h=i);}}if(flag3==0)cout“您要求删除的对象原来就不cout”要连续删除吗?(y/n)“ cinc;if(c!='y'c!='n'){cout”指令错误!请重新输入!cinc;}}while(c=='y');break;}case '0':{exit(0);break;}}cout“您想连续进行其他操作吗?(y/n)” bool flag4=0; docinw;if(w!='y'w!='n')cout“指令错误!请重新输入!” elseflag4=1;}while(flag4==0);if(w=='y'){cout“※※※※※※※※※※n”“2 按姓名查找n”“3 按类别查找n”“4 插入n”“5 修改n”“6 删除n”“0 退出n”;cinp;}else exit(0);}while(w=='y');for(int x=0;x delete s[x];cout“delete all members!” }</endl;}</i;x++){</endl;</endl;</endl;</i;h++)</endl;</endl;</endl;</endl;</endl;</endl;</i;h++)</endl;</endl;</endl;</endl;break;}</endl;</i;u++)</endl;</i;y++)</name<<“电话号码”<<tel<<“类别”<<kind<<“电子邮箱”<<email<<endl; </endl;</endl;</endl;</endl;</endl;</endl;</endl;</endl<<“类别</endl;</endl;</endl;</endl;</endl;</endl<<“类别</endl;</i;j++)</endl;</endl;</endl;</endl;</endl;</i;u++)</endl;</i;y++)</name<<“电话号码”<<tel<<“类别”<<kind<<“电子邮箱”<<email<<endl; </endl;</endl;</endl;</endl;</endl;</endl;</endl;cout<<“-------”<<endl;print(k);x=1;</endl;</endl;cout<<“---------------”</st[i].e_mail<<endl;</st[i].post_code<<endl;</st[i].tel_no<<endl;</st[i].address<<endl;</st[i].name<<endl;</st[i].no<<endl;</endl;if(!strcmp(st[i].name,name)){</endl;</endl;</endl;return</endl;return</endl;return</endl;return</endl;return</en dl;cout<<“</endl;cout<<“</endl;cout<<“</endl;cout<<“</endl;cout<<“</endl;cout<<“</endl;</endl;}</endl;cout<<“</endl;</endl;char</endl;</endl;</endl;</endl;char</endl;char</endl;cout<<“</endl;</endl<<endl</endl</endl</endl</endl</endl</endl</endl</endl</endl;top:cout<<“tt</st[i].tel_no<<endl;cout<<“邮编:”<<st[i].post_code<<endl;cout<<“e_mail:”<<st[i].e_mail<<endl;</n){< /n)i++;if(i==n){</n)i++;if(i==n){</n)i++;if(i==n){</n)i++;if(i==n){</n-1;j++){</n)i++;if(i==n){</n+1;i++)。

通讯录课程设计总体设计

通讯录课程设计总体设计

通讯录课程设计总体设计一、课程目标知识目标:1. 让学生掌握通讯录的基本概念,了解其在生活中的实际应用;2. 使学生掌握如何在电子设备上创建、编辑和存储联系人信息;3. 帮助学生了解通讯录管理的相关规定及礼仪。

技能目标:1. 培养学生运用电子设备进行通讯录操作的能力;2. 提高学生整理和归类信息的能力,培养良好的信息管理习惯;3. 培养学生团队协作和沟通能力,学会在现实生活中运用通讯录。

情感态度价值观目标:1. 培养学生对通讯录课程的学习兴趣,激发主动探究的欲望;2. 培养学生尊重他人隐私,养成良好的道德素养;3. 培养学生关爱家人、朋友,学会珍惜人际关系。

课程性质:本课程以实践操作为主,结合理论讲解,注重培养学生的实际应用能力和信息素养。

学生特点:考虑到学生所在年级的特点,课程设计将结合学生的认知水平、操作能力和兴趣,以提高学生的学习积极性。

教学要求:教师应关注学生的个体差异,因材施教,确保每个学生都能掌握通讯录的基本知识和操作技能。

同时,注重培养学生的团队协作和沟通能力,使学生在实际生活中能够运用所学知识。

在教学过程中,关注学生的学习成果,及时调整教学策略,提高课程效果。

二、教学内容1. 通讯录基本概念:介绍通讯录的定义、作用及其在生活中的重要性;教材章节:第一章第一节2. 通讯录操作方法:讲解如何在电子设备上创建、编辑、删除和查找联系人信息;教材章节:第一章第二节3. 通讯录分类与整理:教授如何对通讯录进行分类、排序和备份;教材章节:第一章第三节4. 通讯录礼仪与规定:阐述在通讯录使用过程中应遵守的礼仪和相关规定;教材章节:第一章第四节5. 实践操作:安排实际操作环节,让学生动手实践所学知识;教材章节:第二章6. 团队协作与沟通:设置小组活动,培养学生团队协作和沟通能力;教材章节:第三章教学进度安排:第一课时:通讯录基本概念、操作方法;第二课时:通讯录分类与整理、礼仪与规定;第三课时:实践操作与小组活动。

c程序通讯录课程设计

c程序通讯录课程设计

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

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

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

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

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

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

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

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

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

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

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

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

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

手机通讯录系统课程设计

手机通讯录系统课程设计

手机通讯录系统课程设计一、课程目标知识目标:1. 让学生理解手机通讯录系统的基本概念,掌握其数据结构及存储方式;2. 使学生掌握编程语言中与手机通讯录系统相关的常用语法和功能;3. 引导学生了解手机通讯录系统的实际应用场景,认识到其重要性。

技能目标:1. 培养学生运用所学知识设计和实现一个简单的手机通讯录系统的能力;2. 提高学生分析问题、解决问题的能力,使其能够针对手机通讯录系统进行优化和改进;3. 培养学生的团队协作能力,使其能够在小组合作中发挥自己的优势,共同完成任务。

情感态度价值观目标:1. 培养学生对计算机科学和编程的兴趣,激发其学习热情;2. 引导学生认识到手机通讯录系统在生活中的广泛应用,增强其实用主义价值观;3. 培养学生的创新意识,使其敢于尝试新思路,勇于挑战困难。

课程性质:本课程为实践性较强的课程,结合理论教学和实际操作,使学生能够在实践中掌握知识。

学生特点:学生处于高年级阶段,已具备一定的编程基础,对手机通讯录系统有一定了解。

教学要求:教师应注重理论与实践相结合,关注学生的个体差异,提高学生的动手实践能力。

在教学过程中,将目标分解为具体的学习成果,便于后续教学设计和评估。

二、教学内容1. 手机通讯录系统概述:介绍手机通讯录系统的基本概念、功能及在实际应用中的重要性。

- 教材章节:第3章 数据结构与应用,第4节 手机通讯录系统2. 数据结构及存储方式:讲解手机通讯录系统中常用的数据结构(如链表、二叉树等)及其存储方式。

- 教材章节:第2章 线性表与树,第3章 数据结构与应用3. 编程语言实现:运用所学编程语言(如C语言、Python等)实现手机通讯录系统的功能。

- 教材章节:第1章 程序设计基础,第5章 编程语言实例分析4. 手机通讯录系统功能设计:- 添加、删除、查找和修改联系人信息- 教材章节:第4章 算法设计与分析,第6章 数据库原理与应用5. 系统优化与改进:分析现有手机通讯录系统的不足,提出优化方案并进行改进。

通讯录系统c课程设计

通讯录系统c课程设计

通讯录系统c 课程设计一、课程目标知识目标:1. 学生能理解通讯录系统的基本概念,掌握其功能结构和设计原理。

2. 学生能掌握运用编程语言(如C语言)实现通讯录系统的基本功能,如添加、删除、查找和修改联系人信息。

3. 学生了解数据结构在通讯录系统中的应用,如链表、结构体等。

技能目标:1. 学生能运用所学知识,独立完成一个简单的通讯录系统设计与实现。

2. 学生通过实践操作,提高编程能力和解决问题的能力。

3. 学生能够运用调试工具进行程序调试,找出并修复程序中的错误。

情感态度价值观目标:1. 学生通过课程学习,培养对计算机编程的兴趣和热情。

2. 学生在学习过程中,养成合作、分享、探究的良好学习习惯。

3. 学生能够认识到编程在生活中的应用价值,激发其进一步学习的动力。

分析课程性质、学生特点和教学要求:本课程为计算机编程课程,以C语言为载体,结合实际生活中的通讯录系统,让学生在实践中掌握编程知识。

学生处于高年级阶段,已具备一定的编程基础,求知欲强,喜欢挑战性任务。

教学要求注重培养学生的动手能力和实际应用能力,将理论知识与实际操作相结合,提高学生的综合素养。

将目标分解为具体的学习成果:1. 学生能够自主设计并实现一个简单的通讯录系统,包括基本功能模块。

2. 学生能够运用所学知识解决实际编程问题,如优化程序性能、修复程序错误等。

3. 学生在学习过程中,能够积极与同学交流合作,分享学习心得和经验。

4. 学生能够通过课程学习,提高自己的编程水平和实际应用能力,为后续学习奠定基础。

二、教学内容1. 通讯录系统基本概念:介绍通讯录系统的定义、功能、应用场景等,使学生对其有一个全面的了解。

2. C语言基础知识回顾:回顾结构体、指针、函数等C语言基础知识,为后续编程打下基础。

3. 数据结构:讲解链表、结构体等数据结构在通讯录系统中的应用,使学生掌握如何利用数据结构组织数据。

4. 编程实现通讯录功能:详细讲解如何用C语言实现通讯录的添加、删除、查找和修改联系人信息等功能,让学生动手实践。

通讯录系统课程设计

通讯录系统课程设计

通讯录系统课程设计一、课程目标知识目标:1. 让学生掌握通讯录系统的基本概念,了解其在日常生活和工作中的应用。

2. 使学生了解并掌握通讯录系统中数据的存储、检索和更新等基本操作。

3. 帮助学生理解通讯录系统的数据结构及其优势。

技能目标:1. 培养学生运用所学知识设计和实现一个简单的通讯录系统。

2. 培养学生运用编程语言实现通讯录系统中数据的增删改查等操作。

3. 提高学生分析问题、解决问题的能力,能够针对通讯录系统提出优化建议。

情感态度价值观目标:1. 培养学生主动探索新知识、积极思考的学习态度,增强他们对信息技术的兴趣和热情。

2. 培养学生的团队协作精神,学会在项目合作中发挥个人优势,共同完成任务。

3. 增强学生的信息素养,使他们意识到信息技术在生活中的重要性,并能够遵守相关法律法规,保护个人隐私。

分析课程性质、学生特点和教学要求:1. 课程性质:本课程为信息技术课程,注重实践操作和理论知识相结合。

2. 学生特点:学生为初中年级,已具备一定的计算机操作基础,对新鲜事物充满好奇心。

3. 教学要求:教师应注重启发式教学,引导学生主动参与课堂,关注学生个体差异,提高教学效果。

二、教学内容1. 通讯录系统基本概念:介绍通讯录的定义、作用及其在生活中的应用。

教材章节:第一章第二节2. 通讯录系统数据结构:讲解通讯录中数据的组织方式,如列表、树等。

教材章节:第二章第一节3. 通讯录系统功能设计:分析通讯录系统所需实现的基本功能,如增加、删除、修改和查询联系人信息。

教材章节:第三章第一节4. 编程语言实现通讯录系统:运用所学编程语言(如Python、C++等),实现通讯录系统的基本功能。

教材章节:第四章5. 通讯录系统优化与扩展:探讨如何优化通讯录系统性能,如提高查询效率、扩展系统功能等。

教材章节:第五章6. 项目实践:分组进行项目实践,设计并实现一个简易的通讯录系统。

教材章节:第六章教学内容安排与进度:第一周:通讯录系统基本概念、数据结构第二周:通讯录系统功能设计第三周:编程语言实现通讯录系统第四周:通讯录系统优化与扩展第五周:项目实践与展示、评价三、教学方法1. 讲授法:针对通讯录系统基本概念、数据结构等理论知识,采用讲授法进行教学,帮助学生建立完整的知识体系。

C语言课程设计报告电子通讯录

C语言课程设计报告电子通讯录

C语言课程设计设计报告题目:电子通讯录学院:姓名:学号:专业:班级:设计日期:指导教师:成绩:一、选题背景本例实现一个综合的电子通讯录信息数据管理系统,用户可以在已建立的数据记录链表中输入数据信息、查看数据信息以及删除数据信息。

输入、查看和删除的操作都是通过对链表的操作完成的。

二、设计思想编程思路:用顺序表设计电子通讯录的结构,为了表示复杂的数据内容,选用结构这种数据类型,在结构中定义所需要的信息。

例如建立函数,定义数据类型:typedef struct{char post_num[20];/*邮编*/char name[20];/*姓名*/char telephone[20];/*号码*/char birth[20];/*生日*/char sex[20];/*性别*/char adds[20];/*住址*/}Person;三.主要解决问题的方法及技术关键定义主函数main()和一系列的功能函数,通过这些函数才可实现程序的功能,且主函数主要是利用switch语句对数据进行处理。

四.程序流程图添加联系人流程图修改联系人流程图查找联系人流程图删除联系人流程图五、程序清单#include<stdio.h> #include<stdlib.h> #include<string.h> #include<conio.h> struct record{char post_num[20];//*邮编*// char name[20];//*姓名*// char sex[20];//**性别// char birth[20]; //*生日*//char telephone[20]; //*电话*// char adress[40]; //*地址*// }contact[500];int NO=0; FILE *fp; void mainmenu(); void newrecord(); void browsemenu(); void searchmenu(); void searchname(); void searchbirth(); void modifymenu(); void deletemenu(); void deleteall(); void deletesingle(); void deletename(); void deletephone(); int loadfile(); void savefile(); void main(){printf("\n\t\t:)欢迎使用通讯录管理系统beta");printf("\n\t\t文件导入中……请稍后……\n\n\n\n\n ");system("cls");loadfile();while(1){mainmenu();}}void mainmenu(){char choice;system("cls");printf("\n\t\t********************主菜单********************"); printf("\n\t\t******************1-新建菜单******************"); printf("\n\t\t******************2-浏览菜单******************"); printf("\n\t\t******************3-查找菜单******************"); printf("\n\t\t******************4-修改菜单******************"); printf("\n\t\t******************5-删除菜单******************"); printf("\n\t\t******************6-退出******************"); printf("\n\t\t************************************************"); printf("\n\t\t请选择:");choice=getch();switch(choice){case'1':newrecord();break;case'2':browsemenu();break;case'3':searchmenu();;break;case'4':modifymenu();break;case'5':deletemenu();break;case'6':exit(0);default:mainmenu();}}void newrecord(){printf("\n\t\t****************请输入联系人信息****************\n"); printf("\n\t\t输入姓名:");scanf("%s",&contact[NO].name);printf("\n\t\t输入性别:");scanf("%s",&contact[NO].sex);printf("\n\t\t输入电话号码:");scanf("%s",&contact[NO].telephone);printf("\n\t\t输入家庭住址:");scanf("%s",&contact[NO].adress);printf("\n\t\t输入生日:");scanf("%s",&contact[NO].birth);printf("\n\t\t输入邮编:");scanf("%s",&contact[NO].post_num);NO++;savefile();printf("\n\t\t是否继续添加?(y/n):");if(getch()=='y')newrecord();return;}void browsemenu(){int i;system("cls");if(NO!=0){printf("\n\t\t***************以下为通讯录所有信息************"); for(i=0;i<NO;i++){printf("\n\t\t姓名:%s",contact[i].name);printf("\n\t\t性别:%s",contact[i].sex);printf("\n\t\t联系电话:%s",contact[i].telephone);printf("\n\t\t家庭住址:%s",contact[i].adress);printf("\n\t\t生日:%s",contact[i].birth);printf("\n\t\t邮编:%s",contact[i].post_num);printf("\t\t");if(i+1<NO){printf("\n\t\t__________________________");system("pause");}}printf("\n\t\t************************************************"); }elseprintf("\n\t\t通讯录中无任何纪录");printf("\n\t\t按任意键返回主菜单:");getch();return;}void searchmenu(){char choice;system("cls");printf("\n\t\t*******************查找菜单*******************"); printf("\n\t\t*****************1-按姓名查找*****************"); printf("\n\t\t*****************2-按电话查找*****************"); printf("\n\t\t*****************3-返回主菜单*****************"); printf("\n\t\t**********************************************"); printf("\n\t\t请选择:");choice=getch();switch(choice){case'1':searchname();break;case'2':searchbirth();break;case'3':mainmenu();break;}}void searchname(){int mark=0;int i;int a=0;char name[20];printf("\n\t\t*****************按姓名查找*******************"); printf("\n\t\请输入联系人姓名: ");scanf("%s",name);for(i=a;i<NO;i++){if(strcmp(contact[i].name,name)==0){printf("\n\t\t************以下是您查找的联系人信息**********"); printf("\n\t\t姓名:%s",contact[i].name);printf("\n\t\t性别:%s",contact[i].sex);printf("\n\t\t联系电话:%s",contact[i].telephone);printf("\n\t\t家庭住址:%s",contact[i].adress);printf("\n\t\t生日:%s",contact[i].birth);printf("\n\t\t邮编:%s",contact[i].post_num);printf("\n\t\t************************************************"); printf("\n\t\t按任意键返回主菜单:");mark++;getch();return;return;}}if(mark==0){printf("\n\t\t没有该姓名的联系人纪录");printf("\n\t\t按任意键返回主菜单");getch();return;}}void searchbirth(){int mark=0;int i;int a=0;char birth[20];printf("\n\t\t******************按生日查找******************"); printf("\n\t\t请输入联系人生日:");scanf("%s",birth);for(i=0;i<NO;i++){if(strcmp(contact[i].birth,birth)==0){printf("\n\t\t*************以下是您查找的联系人信息*********"); printf("\n\t\t姓名:%s",contact[i].name);printf("\n\t\t性别:%s",contact[i].sex);printf("\n\t\t联系电话:%s",contact[i].telephone);printf("\n\t\t家庭住址:%s",contact[i].adress);printf("\n\t\t生日:%s",contact[i].birth);printf("\n\t\t邮编:%s",contact[i].post_num);printf("\n\t\t************************************************"); printf("\n\t\t按任意键返回主菜单:");mark++;getch();return;}}if(mark==0){printf("\n\t\t没有该联系人信息");printf("\n\t\t按任意键返回主菜单");getch();return;}}void modifymenu(){int mark=0;int i,k;int a=0;int t=0;char choice;char name[20];struct record modify;system("cls");printf("\n\t\t请输入您要修改的姓名:");scanf("%s",name);for(i=a;i<NO;i++){if(strcmp(contact[i].name,name)==0){k=i;mark=1;modify=contact[i];printf("\n\t\t**********以下是您将修改的联系人信息**********"); printf("\n\t\t姓名:%s",contact[i].name);printf("\n\t\t性别:%s",contact[i].sex);printf("\n\t\t联系电话:%s",contact[i].telephone); printf("\n\t\t家庭住址:%s",contact[i].adress); printf("\n\t\t生日:%s",contact[i].birth); printf("\n\t\t邮编:%s",contact[i].post_num); printf("\n\t\t是否继续?y/n");if(getch()=='n')modifymenu();else{printf("\n\t\t选择您要修改的选项:");printf("\n\t\t\t(1).姓名:");printf("\n\t\t\t(2).性别:");printf("\n\t\t\t(3).联系电话:");printf("\n\t\t\t(4).家庭住址:");printf("\n\t\t\t(5).生日:");printf("\n\t\t\t(7).返回:");printf("\n\t\t请选择:");choice=getch();switch(choice){case'1':printf("姓名:");scanf("%s",contact[i].name);break;case'2':printf("性别:");scanf("%s",contact[i].sex);break;case'3':printf("联系电话:");scanf("%s",contact[i].telephone);break;case'4':printf("家庭住址:");scanf("%s",contact[i].adress);break;case'5':printf("生日:");scanf("%s",contact[i].birth);break;case'6':printf("邮编:");scanf("%s",contact[i].post_num);break;case'7':mainmenu();break;default:modifymenu();}printf("\n\t\t您的修改结果为:");printf("\n\t\t姓名:%s",contact[i].name); printf("\n\t\t性别:%s",contact[i].sex); printf("\n\t\t联系电话:%s",contact[i].telephone); printf("\n\t\t家庭住址:%s",contact[i].adress);printf("\n\t\t生日:%s",contact[i].birth);printf("\n\t\t邮编:%s",contact[i].post_num);printf("\n\t\t确认修改?y/n");if(getch()=='n'){contact[i]=modify;printf("\n\t\t修改未保存!");}elseprintf("\n\t\t修改成功!");savefile();mark=0;printf("\n\t\t是否继续修改?(y/n)");if(getch()=='y')modifymenu();}}}if(mark==0){printf("\n\t\t没有该联系人的纪录");printf("\n\t\t是否继续修改?(y/n)");if(getch()=='y')modifymenu();}return;}void deletemenu(){char choice;if(NO==0){printf("\n\t\t对不起,文件中无任何纪录");printf("\n\t\t按任意键返回主菜单");getch();return;}system("cls");printf("\n\t\t*******************删除菜单*******************"); printf("\n\t\t******************1-删除所有******************"); printf("\n\t\t******************2-删除单个******************"); printf("\n\t\t******************3-返回主菜单****************"); printf("\n\t\t**********************************************"); printf("\n\t\t请选择:");choice=getch();switch(choice){case'1':deleteall();break;case'2':deletesingle();break;case'3':mainmenu();break;default:mainmenu();}}void deleteall(){printf("\n\t\t确认删除?(y/n)");if(getch()=='y'){if((fp=fopen("contact","w"))==0){printf("\n\t\t不能打开文件,删除失败");loadfile();}NO=0;printf("\n\t\t纪录已删除,按任意键返回主菜单"); getch();fclose(fp);return;}elsereturn;}void deletesingle(){char choice;printf("\n\t\t\t1-按姓名删除:");printf("\n\t\t\t2-按生日删除:");printf("\n\t\t\t3-返回删除菜单:");printf("\n\t\t请选择:");choice=getch();switch(choice){case'1':deletename();break;case'2':deletephone();break;case'3':deletemenu();break;}}void deletename(){int i,j;int mark=0;char name[20];printf("\n\t\t请输入要删除联系人姓名:");scanf("%s",name);if(NO==0){printf("\n\t\t对不起,文件中无任何纪录");printf("\n\t\t按任意键返回主菜单");getch();return;}for(i=0;i<NO;i++){if(strcmp(contact[i].name,name)==0){printf("\n\t\t以下是您要删除的联系人纪录:"); printf("\n\t\t姓名:%s",contact[i].name); printf("\n\t\t性别:%s",contact[i].sex); printf("\n\t\t联系电话:%s",contact[i].telephone); printf("\n\t\t家庭住址:%s",contact[i].adress); printf("\n\t\t生日:%s",contact[i].birth); printf("\n\t\t邮编:%s",contact[i].post_num); printf("\n\t\t是否删除?(y/n)");if(getch()=='y'){for(j=i;j<NO-1;j++)contact[j]=contact[j+1];NO--;mark++;printf("\n\t\t删除成功");savefile();printf("\n\t\t是否继续删除?(y/n)");if(getch()=='y')deletename();return;}elsereturn;}continue;}if(mark==0){printf("\n\t\t没有该联系人的纪录");printf("\n\t\t是否继续删除?(y/n)");if(getch()=='y')deletename();return;}}void deletephone(){int i,j;int mark=0;char birth[20];printf("\n\t\t请输入要删除联系人生日:"); scanf("%s",birth);if(NO==0){printf("\n\t\t对不起,文件中无任何纪录"); printf("\n\t\t按任意键返回主菜单");getch();return;}for(i=0;i<NO;i++){if(strcmp(contact[i].birth,birth)==0){printf("\n\t\t以下是您要删除的联系人纪录:"); printf("\n\t\t姓名:%s",contact[i].name); printf("\n\t\t性别:%s",contact[i].sex); printf("\n\t\t联系电话:%s",contact[i].telephone); printf("\n\t\t家庭住址:%s",contact[i].adress); printf("\n\t\t生日:%s",contact[i].birth); printf("\n\t\t邮编:%s",contact[i].post_num); printf("\n\t\t是否删除?(y/n)");if(getch()=='y'){for(j=i;j<NO-1;j++)contact[j]=contact[j+1];NO--;mark++;printf("\n\t\t删除成功");savefile();printf("\n\t\t是否继续删除?(y/n)");if(getch()=='y')deletephone();return;}elsereturn;}continue;}if(mark==0){printf("\n\t\t没有该联系人的纪录");printf("\n\t\t是否继续删除?(y/n)");if(getch()=='y')deletephone();return;}}int loadfile(){int NO=0;FILE *fp;if((fp=fopen("contact.txt","b"))==0){printf("\n\n\n\n\n\t\t\t电话簿文件不存在");if((fp=fopen("contact.txt","wb"))==0){printf("\n\t\t\t\t建立失败");exit(0);}else{printf("\n\t\t\t电话簿已建立");printf("\n\t\t\t按任意键进入主菜单");getch();return(NO);}exit(0);}fseek(fp,0,2);if(ftell(fp)>0){rewind(fp);for(NO=0;!feof(fp)&&fread(&contact[NO],sizeof(struct record),1,fp);NO++);printf("\n\n\n\n\t\t\t\t:)文件导入成功");printf("\n\t\t\t\t按任意键返回主菜单");getch();return(NO);}printf("\n\n\n\n\t\t\t:)文件导入成功");printf("\n\t\t\t电话簿文件中无任何纪录");printf("\n\t\t\t按任意键返回主菜单");getch();return(NO);}void savefile(){int i;if((fp=fopen("student.txt","wb"))==0){printf("\n\t\t文件打开失败!\n");}for(i=0;i<NO;i++){if(fwrite(&contact[i],sizeof(struct record),1,fp)!=1){printf("\n\t\t写入文件错误!\n");}}printf("\n\t\t已成功保存至文件!\n");fclose(fp);}六.总结、设计结果说明通过本程序的练习,使我们进一步熟悉C语言的基本知识,并掌握数据结构的一些基本算法思想,掌握C语言的文件操作,进一步熟悉指针的用法,数组的建立运用和函数的调用等。

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

长沙学院
课程设计说明书
题目设计一个电子通讯录程序系(部) 计算机科学与技术系
专业(班级)
姓名
学号
指导教师
起止日期2010年1月4日到2010年1
月8日
- 0 -
程序设计基础课程设计任务书
一、题目:设计一个电子通讯录程序
二、目的与要求
1.目的:
(1)使学生更加系统地理解和掌握C++语言的基本概念、语言特点和编程技巧。

(2)使学生应用C++语言在程序设计方面得到系统锻炼,为将来VC进行软件开发打下良好基础。

(3)提高学生建立程序文档、归纳总结的能力。

2.基本要求:
(1)要求用C++模块化设计的思想来完成程序的设计;
(2)培养上机动手能力,巩固分支结构和循环结构,应用函数和数据结构的知识。

(3)在VC++6.0环境中,学会调试程序的方法,及时查究错误,独立调试完成。

(4)程序调试通过后,完成程序文档的整理,加必要的注释。

3.创新要求
在基本达到题目要求外,进行创新设计,如界面优美、功能更加完善(如增加按生日先后排序的功能),用不同的cpp文件来实现等。

4.书写设计报告的要求
设计报告中包含以下几个方面:
1、设计题目
2、总体设计
1)用自顶而下或自底而上的方法,划分功能模块。

2)确定各模块的算法
3、根据算法画出流程图
4、列出程序清单,并加以必要的注释
5、写出调试程序的方法
6、指出所设计问题的不足和改进方案
5.课程设计材料的装订顺序为:
1)设计说明书封面
2)课程设计任务书
3)课程设计鉴定表
4)目录
5)设计报告书正文
三、设计内容及其基本原理和设计方法
1.问题描述:
电子通讯录功能如下:1.Read
2.Append
3.Delete
4.Search
5.Isert。

说明:上图是电子通讯录的主菜单,利用它,将能够轻松地录入一个朋友的性别、出生日期、通讯地址、电话号码,而且它还提供了浏览、删除、检索和插入功能。

1)添加:在原有数据资料的基础上按顺序增加记录;2)删除:给出删除位置,执行删除后,查询是否被删除,显示通讯录的内容;3)查询:给出姓名,列出该记录的信息。

4)插入:给出插入位置,执行插入后,查询是否被插入,显示通讯录的内容;
2.解决方案:
用线性表顺序表设计电子通讯录的结构,为了表示较为复杂的数据内容,一般用结构这种数据类型,第一步就是在结构中定义所需要的各项信息。

一般的通讯录都包括姓名,性别,出生年月,通讯地址和联系电话这几项,而在这几项中,出生年月又包括年份,月份和日期三项,通讯地址包括邮编和家庭地址二项,我们把这些联系较为紧密的内容又用单独的结构表示,这样就产生了电子通讯录的基本结构。

四、主要技术问题的描述
对于电子通讯录这样一张线性表来说,内容的录入和显示是必不可少的操作。

可构造函数Data_Input()完成了信息的录入工作:可以构造Data_Show()完成信息的显示工作。

五、课程设计时间:18周
六、课程设计的考核方式及评分方法
1.考核方式
课程设计结束时,在机房当场验收。

1)教师提供测试数据,检查运行结果是否正确。

2)回答教师提出的问题。

3)学生提交课程设计文档(A4纸打印)
2.评分方法
上机检查:书面报告=7:3,没有通过上机检查的其成绩直接记录不及格指导教师签名:日期:
教研室主任签名:日期:
系主任签名:日期:
长沙学院课程设计鉴定表
摘要
本程序是一个电子通讯录。

用于实现对好友通讯信息的记录以及基本的管理。

本程序在完美实现改程序应有的功能的同时还增加了很多的人性化设计,比如温馨的提示。

本程序在界面上改变了程序执行时的单一色彩的缺陷,做到了丰富多彩,美观大方!
关键词:电子通讯录;人性化设计;美观
目录
1设计内容与要求 (5)
2.设计说明 (7)
2.1问题描述与功能设计 (7)
2.2算法与数据结构 (7)
2.3函数定义 (10)
2.4界面设计 (10)
2.5编码 (10)
2.6测试 (10)
3总结 (12)
参考文献 (13)
附录A源代码 (14)
附录B流程图 (27)
1设计内容与要求
我设计的是一个电子通讯录程序,用于管理通讯信息。

本程序的要求分为“基本要求”和“创新要求”部分,具体如下:
基本要求:
(1)要求用C++模块化设计的思想来完成程序的设计;
(2)培养上机动手能力,巩固分支结构和循环结构,应用函数和数据结构的知识。

(3)在VC++6.0环境中,学会调试程序的方法,及时查究错误,独立调试完成。

(4)程序调试通过后,完成程序文档的整理,加必要的注释。

创新要求
在基本达到题目要求外,进行创新设计,如界面优美、功能更加完善(如增加按生日先后排序的功能),用不同的cpp文件来实现等。

2.设计说明
2.1问题描述与功能设计
本程序是一个电子通讯录,主要实现对朋友的通讯信息的记录和管理。

能够轻松地录入一个朋友的性别、出生日期、通讯地址、电话号码,而且它还提供了浏览、删除、检索和插入功能。

1)添加:在原有数据资料的基础上按顺序增加记录;2)删除:给出删除位置,执
行删除后,查询是否被删除,显示通讯录的内容;3)查询:给出姓名,列出该记录的信息。

4)插入:给出插入位置,执行插入后,查询是否被插入,显示通讯录的内容。

对于该问题我用线性表顺序表设计电子通讯录的结构,为了表示较为复杂的数据内容,一般用结构这种数据类型,第一步就是在结构中定义所需要的各项信息。

一般的通讯录都包括姓名,性别,出生年月,通讯地址和联系电话这几项,而在这几项中,出生年月又包括年份,月份和日期三项,通讯地址包括邮编和家庭地址二项,我们把这些联系较为紧密的内容又用单独的结构表示,这样就产生了电子通讯录的基本结构。

该通讯录功能如下清单
1.建立通讯录
对通讯录进行录入,实现通讯录最基本的功能建立一个通讯录,进行信息的记忆。

2.查看通讯录
对已有的通讯信息进行查看,读取信息。

3.查找联系人
当通讯录中信息太多时,用户可以使用该功能进行对联系人的查找。

方便快捷!
4.修改联系人
当联系人的信息有所更改、变动。

用户可以使用该功能进行更改联系人信息。

5.删除联系人
如果联系人的信息因某种原因,用户不再需要,可以使用该功能删除!
6.增加联系人
该功能用于解决在建立通讯录后,要增加新的联系人信息。

2.2算法与数据结构
本程序的算法可以根据程序要实现功能进行算法说明。

1.建立通讯录
建立通讯录是在函数person*create(int)中实现的。

本质上是一个链表的建立。

首先我们需要三个指针person*head,*tail=NULL,*temp=NULL进行链表数据的保存。

建立表头对指针head分配内存,head=newperson。

对分配内存是否成功进行判断if成功,进行数据的输入。

else内存分配不成功,结束程序!
然后进行表体的建立,因为要输入多次,而且次数是清楚地,所以我用for循环为主体结构,进行表体的建立及朋友信息的录入。

2.查看通讯录
查看通讯录实质是对链表的遍历。

并且是在函数voidoutPut(person*curPer)中实现。

循环次数不确定,我选择while循环对数据进行输出。

while(curPer)及当curPer不为空(NULL)时,一直循环。

当当前指针为空(curPer==NULL)时,跳出循环体。

这样就实现了通讯录的查看功能。

3.查找联系人
本功能的实质就是传入一个关键词(及朋友姓名),然后在链表中进行查找。

找到后对该节点进行输出。

具体算法是:同时传入两个参数进入person*search(person*curPer,charx[20])函数。

如果curPer 不为空,就进入while循环,if(strcmp(x,curPer->name)==0)就对curPer保存的数据进行输出。

如果直到curPer==NULL还没有得到(strcmp(x,curPer->name)==0),那么就输出“无此朋友信息!”
该功能算法解说完毕!!
4.修改联系人
本功能的实质和“查找联系人”的功能相同。

就是传入一个关键词(及朋友姓名),然后在链表中进行查找。

找到后对相应数据进行修改!。

相关文档
最新文档