已阅读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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年乌鲁木齐辅警招聘考试真题含答案详解(达标题)
- 2023年贵港辅警协警招聘考试备考题库含答案详解(完整版)
- 西藏拉萨市那曲第二高级中学2025年高二生物第一学期期末调研试题含解析
- 2025年四川省射洪中学高一生物第一学期期末学业质量监测试题含解析
- 2024年大庆辅警招聘考试真题及答案详解(真题汇编)
- 2024年中卫辅警协警招聘考试真题附答案详解(达标题)
- 泉州第五中学2025年高一上生物期末质量跟踪监视试题含解析
- 湖南省邵阳市洞口四中2025年数学高二上期末统考试题含解析
- 2026届山西省生物高一第一学期期末质量跟踪监视试题含解析
- 2025年河南省驻马店市正阳县高级中学高一上生物期末质量跟踪监视模拟试题含解析
- 安全用电培训课件
- DB51T 2428-2017 高速公路施工标准化技术指南
- 知不足而后进 望远山而力行-期中家长会【课件】
- 2.2单一制和复合制 (教学设计)高二政治(统编版选择性必修1)
- 福建省厦门市厦门第一中学2025届物理高二上期中监测模拟试题含解析
- 按时还款保证书
- 新生儿抚触操课程课件
- 创新方法TRIZ理论入门(高职)全套教学课件
- 染料化学教学大纲
- 《国际散装运输危险化学品船舶构造和设备规则》(《IBC 规则》)
- 关节镜设备及器械
评论
0/150
提交评论