




已阅读5页,还剩31页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C语言程序设计课程设计报告个人通讯录管理系统设计专 业_网络工程_ _ 班 级_(3)班_学 号_3148119322 姓 名_吴道金 _学 号_ 3148119319 _姓 名_ 林东垚 _学 号_ 3148119359 _姓 名_ 林家勇 _学 号_3149119349_姓 名_上官景铨_ _福建工程学院软件学院2015年 月 日(正文部分)一、需求分析建立一通讯录,输入姓名、电话号码、住址等信息,然后对通信簿进行显示、查找、添加、修改及删除。功能要求(1) 通讯录的每一条信息包括姓名、单位、固定电话、移动手机、分类(如同事、朋友、同学、家人等)、EMAIL、QQ等。(2) 输入功能:可以一次完成若干条信息的输入。(3) 显示功能:完成全部通讯录信息的显示(一屏最多显示10条,超过十条应能够自动分屏显示)(4) 查找功能:可以按姓名等多种方式查找通讯信息(5) 增加、删除、修改功能:完成通讯录信息的多种更新二、总体设计三、详细设计void menu(); /*菜单*/ void Add(); /*添加记录*/ void print(); /*输出记录*/ void Find(); /*查找记录( 按姓名 )*/ void Delete(); /*删除记录*/ void SaveFree(); /*保存到文件*/ void Creat(); /*打开文件*/ 四、程序源代码#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(); /*删除记录*/ 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;/*输出删除后的结果*/ case 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=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(head=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=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电话ttemailn); 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) printf(%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-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() LIST *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-next=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(LIST); temp=p2; p2-next=p1; p2=p1; fread(p1,sizeof(LIST),1,fp); temp-next=NULL; fclose(fp); /*关闭文件*/ 五、程序运行结果测试六、结论与心得通过为期一周的课程设计,我们对C语言这门课程有了更深一步的了解。它是计算机程序设计的重要理论技术基础,在我们信息与计算科学专业的学习中占据着十分重要的地位。同时也使我们知道,要学好这门课程,仅学习书本上的知识是不够的,还要有较强的实践能力。因为我
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 消防百科题目及答案
- 测井车司机培训考试题及答案
- 现在进行时题目及答案
- 曹县社工考试题型分布及答案
- 葡萄病虫害防法知识培训课件
- 2025采购合同承包方式
- 农村循环经济合作模式设计协议
- 新能源动力电池极片冲切模具研发生产项目可行性研究报告模板-立项备案
- 物联概论试题及答案
- 2025年搅拌车租赁合同范本
- 项目检查汇报报告(52张)课件
- 新版人教版八年级上册道德与法治全册课件(新版教材)
- 直螺纹套筒现场平行检查及记录表
- 精选芭蕾舞男女演员之间的潜规则汇总
- JJG 856-2015 工作用辐射温度计检定规程-(高清现行)
- 新人教版小学美术五年级上册教学设计(全册)
- 益美高引风式冷却塔特点介绍
- 1沥青混合料生产工艺
- 相亲相爱 简谱
- 考考你的反应能力(说出字体颜色)(课堂PPT)
- 中油即时通信安装手册(二厂)
评论
0/150
提交评论