版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
/XX工业大学《C语言课程设计》实习综合报告课题名称:个人通讯录管理系统实习成员:王刚学号:109074372专业班级:网络工程103班指导教师:郑啸老师目录一.问题描述……………..2TOC\o"1-3"\h\u二.各功能流程图与设计思路…………..32.1显示模块……….……32.2查找模块……………4..2.3添加模块…………..…62.4删除模块………..……82.5修改模块…………..…9三、文件的读取与保存…….11四、程序源代码……….……12五、调试与运行结果…….…18六、计算机学院课程设计评定意见……….24一.问题描述设计通讯录包含以下功能:<1>通讯录的每一条信息包括姓名、单位、固定电话、移动手机、分类〔如同事、朋友、同学、家人等、EMAIL、QQ等。<2>输入功能:可以一次完成若干条信息的输入。<3>显示功能:完成全部通讯录信息的显示。<4>查找功能:可以按姓名等多种方式查找通讯信息。<5>增加、删除、修改功能:完成通讯录信息的多种更新。二.各功能流程图与设计思路Menu菜单:开始开始菜单menu显示查找增加删除修改保存结束运用switch〔进行操作:case'1':显示功能,list〔函数开始For开始For循环输出信息结束YN代码如下://*****************显示通讯录中的内容*************voidlist<>{printf<"编号姓名电话\t手机\t工作单位\tEMAIL\t\tQQ\n">;for<i=0;i<m;i++>{if<rec[i].name[0]>{printf<"%d、%-8s%-10s%-12s%-18s%-18s%-12s\n",rec[i].num,rec[i].name, rec[i].tel,rec[i].celtel,rec[i].dw,rec[i].email,rec[i].qq>;}}printf<"\t\t\tEND\n">;}case'2':查找功能,search〔函数开始输入查找的姓名或开始输入查找的姓名或编号For语句循环IfStrcmp==0输出相关信息结束YNNY代码如下://*****************查找联系人的信息********************voidsearch<>{charxm[10];charch;intd;printf<"→1.按姓名查找\n">;printf<"→2.按编号查找\n">;printf<"请选择...\n">;ch=getchar<>;getchar<>;switch<ch>{case'1':printf<"输入查找的姓名\n">;gets<xm>;for<i=0;i<m;i++> {if<strcmp<xm,rec[i].name>==0> {printf<"\t\t\t☆☆☆☆☆这是您需要查找的联系人的信息☆☆☆☆☆\n\n">; printf<"编号姓名电话\t手机\t工作单位\tEMAIL\t\tQQ\n">;printf<"%d、%-8s%-10s%-12s%-18s%-18s%-12s\n",rec[i].num,rec[i].name, rec[i].tel,rec[i].celtel,rec[i].dw,rec[i].email,rec[i].qq>; break;} }if<i==m> printf<"\t\t\t☆☆☆☆☆通讯录中没有您要查找的联系人☆☆☆☆☆\n">;break;case'2':printf<"输入查找的编号\n">; scanf<"%d",&d>;for<i=0;i<m;i++> {if<d==rec[i].num> {printf<"\t\t☆☆☆☆☆这是您需要查找的联系人的信息☆☆☆☆\n\n">; printf<"编号姓名电话\t手机\t工作单位\tEMAIL\t\tQQ\n">;printf<"%d、%-8s%-10s%-12s%-18s%-18s%-12s\n",rec[i].num,rec[i].name, rec[i].tel,rec[i].celtel,rec[i].dw,rec[i].email,rec[i].qq>; break; } }if<i==m> printf<"\t\t\t☆☆☆☆☆通讯录中没有您要查找的联系人☆☆☆☆☆\n">;break;default:printf<"输入错误!!">;}getchar<>;}case'3':增加功能,app〔函数开始开始输入信息判断是否继续添加结束YN说明:按照屏幕的提示,依次输入要添加联系人的各项信息,并保存到结构体当中,输入完成后,提示是否继续添加,若是,则进入循环,若否,则结束。代码如下://*******************添加联系人*******************voidapp<>{charan;puts<"当前通讯录中的内容\n">;list<>;do{rec[m].num=m+1;printf<"请按照提示输入新添加记录的各项信息\n">;printf<"姓名:">; gets<rec[m].name>; printf<"\n电话:">; gets<rec[m].tel>; printf<"\n手机:">; gets<rec[m].celtel>; printf<"\n工作单位:">; gets<rec[m].dw>; printf<"\nEMAIL:">; gets<rec[m].email>; printf<"\nQQ:">; gets<rec[m].qq>; puts<"\n这是新添加联系人的信息!\n">;printf<"编号姓名电话\t手机\t工作单位\tEMAIL\t\tQQ\n">;printf<"%d、%-8s%-10s%-12s%-18s%-18s%-12s\n",rec[m].num,rec[m].name, rec[m].tel,rec[m].celtel,rec[m].dw,rec[m].email,rec[m].qq>; m++;puts<"\t\t\t☆☆☆☆☆新纪录输入完成!☆☆☆☆☆\n">; puts<"☆继续添加吗?<y/n>">; an=getchar<>; getchar<>;}while<an=='y'>;}case'4':删除功能,dele〔函数;开始开始输入要删除的记录号判断是否存在该信息删除结束YN说明:输入要删除的编号,判断是否存在,若不存在就要重新输入,若存在,则利用循环进行删除操作,从要删除的编号开始,逐个由后一项往前一项覆盖。代码如下://*****************删除联系人的记录********************voiddele<>{inta;intn=0;list<>;do{n++;if<n>1> {printf<"没有此记录,请重新输入...\n">;} printf<"删除几号记录?\n">;scanf<"%d",&a>;}while<a>m&&a>0||a<0>;if<a!=m+1> {for<i=a;i<m;i++>{rec[i-1]=rec[i];rec[i-1].num=i;}m--;list<>;printf<"\t\t\t☆☆☆☆☆完成删除!☆☆☆☆☆\n">;}getchar<>;}case'5':修改功能,correct〔函数;开始开始输入要修改的记录号判断是否存在输入新信息结束YN说明:输入修改的编号,判断是否存在,若存在则输出此人初始信息,再按提示输入修改后的新信息,若不存在,则结束操作。代码如下://*******************修改联系人的信息*****************voidcorrect<>{charxm[10];boolk=1;list<>;printf<"输入要修改联系人的姓名:">;gets<xm>;for<i=0;i<m;i++>{if<strcmp<xm,rec[i].name>==0>{k=0;printf<"\n这是您要修改联系人的初始信息\n\n">; printf<"编号姓名电话\t手机\t工作单位\tEMAIL\t\tQQ\n">;printf<"%d、%-8s%-10s%-12s%-18s%-18s%-12s\n",rec[i].num,rec[i].name, rec[i].tel,rec[i].celtel,rec[i].dw,rec[i].email,rec[i].qq>;printf<"请输入修改后的电话号码:">;gets<rec[i].tel>; printf<"\n请输入修改后的手机:">; gets<rec[i].celtel>; printf<"\n请输入修改后的工作单位:">; gets<rec[i].dw>; printf<"\n请输入修改后的EMAIL:">; gets<rec[i].email>; printf<"\n请输入修改后的QQ:">; gets<rec[i].qq>;list<>; printf<"\t\t\t☆☆☆☆☆修改完成!☆☆☆☆☆\n">; break;}}if<k>printf<"输入有误,通讯录中没有此联系人信息\n">;}三.文件的读取与保存读取://***************从文件读记录到通讯录中*****************voidload<>{FILE*fp;if<<fp=fopen<"tongxunlu.txt","rb">>==NULL>{printf<"Can'topenfile\n">;exit<0>;}for<i=0;i<SIZE;i++>{if<fread<&rec[i],sizeof<structrecord>,1,fp>!=1>{if<feof<fp>>break;printf<"Filereaderror!\n">;}rec[i].num=i+1;m++;}list<>;printf<"\t\t\t☆☆☆☆☆读取成功!☆☆☆☆☆\n">;fclose<fp>;}保存://******************保存通讯录内容到文件中*************voidsave<>{FILE*fp;if<<fp=fopen<"tongxunlu.txt","wb">>==NULL>{printf<"Can'topenfile">;exit<0>;}list<>;for<i=0;i<m;i++> if<fwrite<&rec[i],sizeof<structrecord>,1,fp>!=1> printf<"Filewreteerror!\n">; fclose<fp>; printf<"\t\t\t☆☆☆☆☆保存成功!☆☆☆☆☆\n">;}四.程序源代码#include<stdio.h>#include<stdlib.h>#include<string.h>#defineSIZE100inti,m=0;//m为当前通讯录中的记录数charmenu<>;//选单voidlist<>;//显示voidsearch<>;//查找voidapp<>;//增加voiddele<>;//删除voidcorrect<>;//修改voidsave<>;//保存voidload<>;//读入structrecord//结构体包含的联系人信息{intnum;//在通讯录中的编号charname[10];//联系人姓名chartel[12];//联系人电话号码charceltel[12];//联系人手机号码chardw[20];//联系人工作单位charemail[20];//联系人邮箱charqq[12];//联系人QQ}rec[SIZE];voidmain<>{charchoice;charan;while<1>{choice=menu<>;switch<choice> {case'1':printf<"显示通讯录中的内容\n">; list<>;break; case'2':printf<"查找联系人\n">; search<>;break; case'3':printf<"增加联系人记录\n">; app<>;break; case'4':printf<"删除记录\n">; dele<>;break;case'5':printf<"修改联系人信息\n">; correct<>;break; case'6':printf<"保存通讯录到TXT文件\n">; save<>;break;case'7':printf<"从TXT文件中读取记录\n">; load<>;break;case'8':printf<"即将退出通讯录管理系统...\n">;printf<"是否保存刚才进行的操作y/n?\n">;an=getchar<>; if<an=='y'> {save<>;} printf<"<按任意键退出>">; break;default:printf<"输入错误!!">; } if<choice=='8'>break; printf<"\n按任意键返回\n">;getchar<>;}}//*********************菜单**********************charmenu<>{charc;printf<"☆欢迎使用☆\n\n">;printf<"*************简易通讯录*************\n">;printf<"☆1.显示通讯录\n">;printf<"☆2.查找联系人\n">;printf<"☆3.增加联系人\n">;printf<"☆4.删除联系人\n">;printf<"☆5.修改通讯录\n">;printf<"☆6.保存到文件\n">;printf<"☆7.从文件读取\n">;printf<"☆8.退出此系统\n">;printf<"************************************\n">;printf<"\n请选择………\n\n">;c=getchar<>;getchar<>;returnc;}//*****************显示通讯录中的内容*************voidlist<>{printf<"编号姓名电话\t手机\t工作单位\tEMAIL\t\tQQ\n">;for<i=0;i<m;i++>{if<rec[i].name[0]>{printf<"%d、%-8s%-10s%-12s%-18s%-18s%-12s\n",rec[i].num,rec[i].name, rec[i].tel,rec[i].celtel,rec[i].dw,rec[i].email,rec[i].qq>;}}printf<"\t\t\tEND\n">;}//*******************添加联系人*******************voidapp<>{charan;puts<"当前通讯录中的内容\n">;list<>;do{rec[m].num=m+1;printf<"请按照提示输入新添加记录的各项信息\n">;printf<"姓名:">; gets<rec[m].name>; printf<"\n电话:">; gets<rec[m].tel>; printf<"\n手机:">; gets<rec[m].celtel>; printf<"\n工作单位:">; gets<rec[m].dw>; printf<"\nEMAIL:">; gets<rec[m].email>; printf<"\nQQ:">; gets<rec[m].qq>; puts<"\n这是新添加联系人的信息!\n">;printf<"编号姓名电话\t手机\t工作单位\tEMAIL\t\tQQ\n">;printf<"%d、%-8s%-10s%-12s%-18s%-18s%-12s\n",rec[m].num,rec[m].name, rec[m].tel,rec[m].celtel,rec[m].dw,rec[m].email,rec[m].qq>; m++;puts<"\t\t\t☆☆☆☆☆新纪录输入完成!☆☆☆☆☆\n">; puts<"☆继续添加吗?<y/n>">; an=getchar<>; getchar<>;}while<an=='y'>;}//*****************查找联系人的信息********************voidsearch<>{charxm[10];charch;intd;printf<"→1.按姓名查找\n">;printf<"→2.按编号查找\n">;printf<"请选择...\n">;ch=getchar<>;getchar<>;switch<ch>{case'1':printf<"输入查找的姓名\n">;gets<xm>;for<i=0;i<m;i++> {if<strcmp<xm,rec[i].name>==0> {printf<"\t\t\t☆☆☆☆☆这是您需要查找的联系人的信息☆☆☆☆☆\n\n">; printf<"编号姓名电话\t手机\t工作单位\tEMAIL\t\tQQ\n">;printf<"%d、%-8s%-10s%-12s%-18s%-18s%-12s\n",rec[i].num,rec[i].name, rec[i].tel,rec[i].celtel,rec[i].dw,rec[i].email,rec[i].qq>; break;} }if<i==m> printf<"\t\t\t☆☆☆☆☆通讯录中没有您要查找的联系人☆☆☆☆☆\n">;break;case'2':printf<"输入查找的编号\n">; scanf<"%d",&d>;for<i=0;i<m;i++> {if<d==rec[i].num> {printf<"\t\t☆☆☆☆☆这是您需要查找的联系人的信息☆☆☆☆\n\n">; printf<"编号姓名电话\t手机\t工作单位\tEMAIL\t\tQQ\n">;printf<"%d、%-8s%-10s%-12s%-18s%-18s%-12s\n",rec[i].num,rec[i].name, rec[i].tel,rec[i].celtel,rec[i].dw,rec[i].email,rec[i].qq>; break; } }if<i==m> printf<"\t\t\t☆☆☆☆☆通讯录中没有您要查找的联系人☆☆☆☆☆\n">;break;default:printf<"输入错误!!">;}getchar<>;}//*****************删除联系人的记录********************voiddele<>{inta;intn=0;list<>;do{n++;if<n>1> {printf<"没有此记录,请重新输入...\n">;} printf<"删除几号记录?\n">;scanf<"%d",&a>;}while<a>m&&a>0||a<0>;if<a!=m+1> {for<i=a;i<m;i++>{rec[i-1]=rec[i];rec[i-1].num=i;}m--;list<>;printf<"\t\t\t☆☆☆☆☆完成删除!☆☆☆☆☆\n">;}getchar<>;}//*******************修改联系人的信息*****************voidcorrect<>{charxm[10];boolk=1;list<>;printf<"输入要修改联系人的姓名:">;gets<xm>;for<i=0;i<m;i++>{if<strcmp<xm,rec[i].name>==0>{k=0;printf<"\n这是您要修改联系人的初始信息\n\n">; printf<"编号姓名电话\t手机\t工作单位\tEMAIL\t\tQQ\n">;printf<"%d、%-8s%-10s%-12s%-18s%-18s%-12s\n",rec[i].num,rec[i].name, rec[i].tel,rec[i].celtel,rec[i].dw,rec[i].email,rec[i].qq>;
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年度农业保险代理与服务合同
- 2025年度高端制造装备研发股权投资及市场拓展合同
- 二零二五年度南昌商品房买卖合同2025版标准文本
- 2025年度个人门面出租合同附赠增值服务范本3篇
- 2025年度钢材运输服务合同模板
- 二零二五年度跨境电商进口生鲜食品采购合同范本4篇
- 华为认证智能协作中级 HCIP-Collaboration H11-861考试题库及答案
- 2025年度汽车租赁车辆租赁价格调整合同6篇
- 2025年度模具行业学徒培养用工合同示范4篇
- 2025年度南汇工商行政管理志编纂服务合同4篇
- 农村自建房安全合同协议书
- 《教科版》二年级科学下册全册课件(完整版)
- 杜仲叶药理作用及临床应用研究进展
- 4S店售后服务6S管理新规制度
- 高性能建筑钢材的研发与应用
- 无线广播行业现状分析
- 汉语言沟通发展量表(长表)-词汇及手势(8-16月龄)
- 高速公路相关知识讲座
- 儿科关于抗生素使用的PDCA
- 小学生必备古诗
- 手术室护理实践指南2023年
评论
0/150
提交评论