ImageVerifierCode 换一换
格式:DOCX , 页数:14 ,大小:181.64KB ,
资源ID:5997187      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/5997187.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(个人通讯录管理系统课程研究与设计开发报告.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

个人通讯录管理系统课程研究与设计开发报告.docx

1、个人通讯录管理系统课程研究与设计开发报告C语言程序设计课程设计报告个人通讯录管理系统设计专 业_网络工程_班 级_(3)班_学 号_3148119322 姓 名_吴道金 _学 号_ 3148119319 _姓 名_ 林东垚 _学 号_ 3148119359 _姓 名_ 林家勇 _学 号_3149119349_姓 名_上官景铨_福建工程学院软件学院2015年 月 日(正文部分)一、需求分析建立一通讯录,输入姓名、电话号码、住址等信息,然后对通信簿进行显示、查找、添加、修改及删除。功能要求(1) 通讯录的每一条信息包括姓名、单位、固定电话、移动手机、分类(如同事、朋友、同学、家人等)、EMAIL、

2、QQ等。(2) 输入功能:可以一次完成若干条信息的输入。(3) 显示功能:完成全部通讯录信息的显示(一屏最多显示10条,超过十条应能够自动分屏显示)(4) 查找功能:可以按姓名等多种方式查找通讯信息(5) 增加、删除、修改功能:完成通讯录信息的多种更新二、总体设计三、详细设计void menu()。 /*菜单*/ void Add()。 /*添加记录*/ void print()。 /*输出记录*/ void Find()。 /*查找记录( 按姓名 )*/ void Delete()。 /*删除记录*/ void SaveFree()。 /*保存到文件*/ void Creat()。 /*打开

3、文件*/ 四、程序源代码#include #include #include struct list char name20。 char addr20。 char num20。 char qq10。 char phnum20。 char email30。 struct list *next。 。 typedef struct list LIST。 LIST *head=NULL。 void menu()。 /*菜单*/ void Add()。 /*添加记录*/ void print()。 /*输出记录*/ void Find()。 /*查找记录( 按姓名 )*/ void Delete()。

4、/*删除记录*/ void SaveFree()。 /*保存到文件*/ void Creat()。 /*打开文件*/ void main() char c。 Creat()。 /*打开文件*/ while(1) menu()。 /*显示菜单*/ scanf( %c,&c)。 switch(c) case 1:Add()。break。 /*添加记录*/ case 2:print()。 break。/*输出条目*/ case 3:Find()。 break。/*查找条目1.按姓名*/ case 4:Delete()。 /*删除信息*/ print()。 break。/*输出删除后的结果*/ cas

5、e 0:SaveFree()。 /*保存并释放内存*/ exit(0)。 /*退出*/ break。 default: printf(选择错误!)。 break。 /*菜单*/ void menu() printf(n*通讯录系统*n)。 printf(*t1.添加记录 *n)。 printf(*t2.输出记录 *n)。 printf(*t3.查询记录 *n)。 printf(*t4.删除记录 *n)。 printf(*t0.保存并退出! *n)。 printf(*n)。 printf(t请选择将要进行的操作:n)。 /*添加记录*/ void Add() LIST *p1=NULL,*p2=

6、NULL。 p1=(LIST *)malloc(sizeof(LIST)。 /*申请结点*/ printf(输入姓名:n)。 /*添加信息*/ scanf(%s,p1-name)。 printf(输入地址:n)。 scanf(%s,p1-addr)。 printf(输入学号:n)。 scanf(%s,p1-num)。 printf(请输入qq号:n)。 scanf(%s,p1-qq)。 printf(输入电话:n)。 scanf(%s,p1-phnum)。 printf(请输入email:n)。 scanf(%s,p1-email)。 p1-next=NULL。 /*保存到链表*/ if(he

7、ad=NULL) head=(LIST *)malloc(sizeof(LIST)。 /*申请空间*/ head-next=p1。 else for(p2=head。p2-next!=NULL。p2=p2-next)。 /*找到结点尾*/ p2-next=p1。 printf(此记录已添加!)。 /*输出学生信息*/ void print() LIST *p=NULL。 if(head=NULL) printf(这是一个新记录,请添加记录n)。 return。 printf(*通讯录系统*n)。 /*输出信息*/ printf(姓名tt地址t学号ttqqtt电话ttemailn)。 for(p

8、=head-next。p!=NULL。p=p-next) printf(%stt%st%st%st%st%sn,p-name,p-addr,p-num,p-qq,p-phnum,p-email)。 /*查找信息1.按姓名、2、按学号*/ void Find() LIST *p。 char name120,num120。 int i。 printf(请输入查找方式1、按姓名;2、按学号)。 scanf(%d,&i)。 if(i=1) printf(请输入要查找的姓名:n)。 scanf(%s,name1)。 printf(*通讯录系统*n)。 printf(姓名tt地址t学号tqqt电话ttem

9、ailn)。 for(p=head-next。p!=NULL。p=p-next) if(strcmp(p-name,name1)=0) printf(%stt%st%st%st%st%sn,p-name,p-addr,p-num,p-qq,p-phnum,p-email)。 else if(i=2) printf(请输入要查找人的学号:n)。 scanf(%s,num1)。 printf(*通讯录系统*n)。 printf(姓名tt地址t学号tqqt电话temailn)。 for(p=head-next。p!=NULL。p=p-next) if(strcmp(p-num,num1)=0) pr

10、intf(%stt%st%st%st%st%sn,p-name,p-addr,p-num,p-qq,p-phnum,p-email)。 else printf(请选择1和2两哥数字n)。/*删除信息*/ void Delete() char name120。 /*先查找 后删除*/ LIST *p = head-next, *pr = head-next。 printf(请输入要删除的姓名:n)。 scanf( %s,name1)。 if (head-next = NULL) printf(无此节点!n)。 return。 while (strcmp(p-name,name1)!=0 )& p

11、-next != NULL) pr =p。 p =p-next。 if (strcmp(name1, p-name)=0) /*输出删除信息*/ printf(%stt%st%st%st%st%sn,p-next-name,p-next-addr, p-next-num,p-next-qq,p-next-phnum,p-next-email)。 if (p = head-next) head-next = p-next。 else pr-next = p-next。 free(p)。 printf(此记录已删除!)。 /*保存链表信息到文件并释放内存空间 */void SaveFree() L

12、IST *p=NULL。 FILE *fp。 char *Book=list.txt。 if(head=NULL) printf(n记录为空!n)。 return。 else p=head-next。 if(fp=fopen(Book,wb+)=NULL) printf(n打不开文件!n)。 return。 while(p!=NULL) /*保存信息*/ fwrite(p,sizeof(LIST),1,fp)。 p=p-next。 printf(保存完毕!)。 fclose(fp)。 /*释放链表空间*/ for(。head-next!=NULL。) p=head-next。 head-nex

13、t=head-next-next。 free(p)。 free(head)。 /*文件信息输出到链表 */void Creat() FILE *fp。 LIST *p1=NULL,*p2=NULL,*temp=NULL。 if(fp=fopen(address list.txt,rb+)=NULL) printf(n*这是一个新的通讯录管理系统*n)。 return。 head=(LIST *)malloc(sizeof(LIST)。 head-next=NULL。 temp=p2=head。 while(! feof(fp) /*循环读取*/ p1=(LIST *)malloc(sizeof

14、(LIST)。 temp=p2。 p2-next=p1。 p2=p1。 fread(p1,sizeof(LIST),1,fp)。 temp-next=NULL。 fclose(fp)。 /*关闭文件*/ 五、程序运行结果测试六、结论与心得通过为期一周的课程设计,我们对C语言这门课程有了更深一步的了解。它是计算机程序设计的重要理论技术基础,在我们信息与计算科学专业的学习中占据着十分重要的地位。同时也使我们知道,要学好这门课程,仅学习书本上的知识是不够的,还要有较强的实践能力。因为我们学习知识就是为了实践。而只有多实践,多编写程序,才能更好的理解与掌握书本上的东西。运用C语言中的算法思想作数据结构,结合C语言基本知识,编写一个通讯录管理系统。通过完成本课题,进一步熟悉C语言的基本知识,并掌握数据结构的一些基本算法思想,掌握C语言的文件操作(包括从磁盘读入和向磁盘写入内容),进一步熟悉指针的用法,数组的建立运用和函数的调用等吴道金:文本排版及构图林家勇:程序程序运行测试林东垚:程序分析上官景铨:程序注释七、致谢

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1