C++课程设计简易通讯录_第1页
C++课程设计简易通讯录_第2页
C++课程设计简易通讯录_第3页
C++课程设计简易通讯录_第4页
C++课程设计简易通讯录_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

..本程序用VS2013编写,所用语言为C++,为多文件程序,可将源代码复制到VS后简单处理,即可运行。C++课程设计设计题目:简易通讯录管理程序学院名称:信息科学与技术学院专业名称:计算机科学与技术学生__学生__任课教师:设计〔论文成绩目录第1章问题描述1第2章概要设计1第3章详细设计33.1数据写入〔添加到文件的函数算法思想或步骤33.2从文件读取内容到程序的函数算法思想或步骤3第4章测试结果及分析3参考文献6附录:源代码7..第1章问题描述1、实现通讯录的基本功能:录入、删除、查找和修改、显示。2、联系人的基本属性包括姓名、性别、住址、、电子邮件等。为了实现对所有联系人的分组管理,还需添加组别属性3、查找功能的具体要求如下:〔1能够根据姓名、精确查询人员信息;〔2能够根据姓氏进行模糊查询人员信息;〔3根据人员类别查询人员信息4、文件存储通讯录5、提供操作的选择菜单第2章概要设计开发环境系统:windows8.1中文版64位处理器:IntelCorei5-4200H内存:4G开发软件:VisualStudio2013classPER//联系人类数组{public:charname[NAM_LEN];charsex[SEX_LEN];charaddress[ADD_LEN];chartel_no[TEL_LEN];chare_mail[MAIL_LEN];chargroup[GROUP_LEN];};第3章详细设计3.1数据写入〔添加到文件的函数算法思想或步骤〔1声明ofstream类成员函数,打开"message.txt"文件,如果文件有内容则清空,若没有该文件则创建。〔添加新数据到文件,将新数据添加到问价末尾〔2在文件打开正常的情况下,依次写入PER类数组数据。关闭文件,显示"保存成功"。若没有正常打开,显示"保存失败"。3.2从文件读取内容到程序的函数算法思想或步骤〔1声明ifstream类成员函数,打开"message.txt"文件。〔2在文件打开成功〔打开成功,说明文件有内容,读取正常并且没有到文件末尾的情况下,依次把文件内容传递给PER类数组。〔3关闭文件,返回值i为原文件中保存的联系人个数。第4章测试结果及分析添加联系人文件保存〔仅供测试按姓名精确查找按手机号码精确查找按姓氏〔名字第一个字模糊查询按组别查看按性别查看显示所有联系人修改某人信息删除某个联系人信息参考文献[1]C++语言程序设计〔第4版[郑莉董渊何江舟].20XX7月第四版[2]C++程序设计教程〔第二版[钱能].20XX9月第二版附录:源代码源程序要按照编写程序的规范来编写,结构清晰。每个类、类成员函数、普通函数均需要在类名前、函数头前注释说明该类、函数的简要功能,函数中的关键语句需添加注释。示例如下:head.h头文件://头文件,包含PER类数组,每个项目的数组长度常量,所有元素的声明#ifndefHEAD#defineHEAD#include<iostream>#include<fstream>#include<vector>#include<string>#include<iomanip>usingnamespacestd;constintnum=200;constintNAM_LEN=10;constintSEX_LEN=4;constintMAIL_LEN=20;constintADD_LEN=18;constintTEL_LEN=15;constintGROUP_LEN=10;classPER//联系人类数组{public:charname[NAM_LEN];charsex[SEX_LEN];charaddress[ADD_LEN];chartel_no[TEL_LEN];chare_mail[MAIL_LEN];chargroup[GROUP_LEN];};voidadd<PERper[],intn>;//添加新联系人intdel<PERper[],intn>;//删除联系人voidfind1<PERper[],intn>;//按姓名查询联系人voidfind2<PERper[],intn>;//按手机号码查询联系人voidfind3<PERper[],intn>;//按姓氏〔姓名第一个字查询联系人intreadfromFile<PERper[]>;//从文件中读取数据voidchange<PERper[],intn>;//编辑联系人信息voidaddtoFile<PERper[],intn>;//添加新联系人到文件voidwritetoFile<PERper[],intn>;//向文件中写入数据voidshow1<PERper[],intn>;//按组别显示联系人voidshow2<PERper[],intn>;//按性别显示联系人voidshow3<PERper[],intn>;//显示所有联系人#endifmain.cpp文件#include"head.h"//主函数首页intmain<>{intk,m;PERper[num];//声明PER类数组个数charselect1; cout<<endl;while<1>{ TOP:system<"cls">; cout<<"※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※"<<endl <<"※15级计科1班薛皓※"<<endl <<"※※"<<endl <<"※简易通迅录※"<<endl <<"※※"<<endl <<"※1.添加联系人.※"<<endl <<"※※"<<endl <<"※2.查询〔显示联系人.※"<<endl <<"※※"<<endl <<"※3.编辑<删除联系人.※"<<endl <<"※※"<<endl <<"※0.退出※"<<endl <<"※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※"<<endl<<endl <<"\t\t\t选择:"; cin>>select1;switch<select1> {case'1':cout<<"输入添加的资料"<<endl; add<per,1>; cout<<"任意键以返回菜单"; addtoFile<per,1>; system<"pause">;break;case'2':TWO:m=readfromFile<per>; readfromFile<per>; cout<<"<1>根据姓名查找联系人"<<endl; cout<<"<2>根据手机号码查找联系人"<<endl; cout<<"<3>根据姓氏模糊查询<姓名第一个字"<<endl; cout<<"<4>显示同一组别的联系人"<<endl; cout<<"<5>显示同一性别的联系人"<<endl; cout<<"<6>显示所有联系人"<<endl; cout<<"<0>返回菜单"<<endl;charselectsearch; cin>>selectsearch;switch<selectsearch> { m=readfromFile<per>;case'1':find1<per,m-1>; system<"pause">;break;case'2':find2<per,m-1>; system<"pause">;break;case'3':find3<per,m-1>; system<"pause">;break;case'4':show1<per,m-1>; system<"pause">;break;case'5':show2<per,m-1>; system<"pause">;break;case'6':show3<per,m-1>; system<"pause">;break;case'0':gotoTOP;default:cout<<"输入错误请按任意键重新选择:"; system<"pause">;gotoTWO; }break;case'3':m=readfromFile<per>; THREE:cout<<"<1>编辑某个人的信息"<<endl; cout<<"<2>删除某个人的信息"<<endl; cout<<"<0>返回菜单";charselectsearch3; cin>>selectsearch3;switch<selectsearch3> {case'1':change<per,m-1>; writetoFile<per,m-1>; system<"pause">;break;case'2':k=del<per,m-1>; writetoFile<per,m-2>; system<"pause">;break;case'0':gotoTOP;default:cout<<"输入错误,请按任意键重新选择"; system<"pause">;gotoTHREE; }break;case'0':gotobottom;default: cout<<"输入错误请重新输入,请按任意键返回菜单"; system<"pause">;break; } }bottom:cout<<"★★★★★★★★★★★★欢迎使用本软件!★★★★★★★★★★★"<<endl;return0;}add.cpp文件:#include"head.h"//添加联系人voidadd<PERper[],intn>{for<inti=0;i<n;i++> { cout<<"__"; cin>>per[i].name; cout<<"性别:"; cin>>per[i].sex; cout<<"住址:"; cin>>per[i].address; cout<<":"; cin>>per[i].tel_no; cout<<"电子邮箱:"; cin>>per[i].e_mail; cout<<"组别:"; cin>>per[i].group; }}addtoFile.cpp文件#include"head.h"//添加到文件voidaddtoFile<PERper[],intn>{ofstreamoutfile; outfile.open<"message.txt",ios_base::app>;//向文件尾加入新数据if<outfile.is_open<>>//判断文件是否正常打开 {for<inti=0;i<n;i++> { outfile<<setw<NAM_LEN><<per[i].name; outfile<<setw<SEX_LEN><<per[i].sex; outfile<<setw<ADD_LEN><<per[i].address; outfile<<setw<TEL_LEN><<per[i].tel_no; outfile<<setw<MAIL_LEN><<per[i].e_mail; outfile<<setw<GROUP_LEN><<per[i].group<<endl; } outfile.close<>;//关闭文件 cout<<"保存成功!\n"<<endl; }elsecout<<"保存失败";}find.cpp文件:#include"head.h"//按姓名查询联系人voidfind1<PERper[],intn>{inti,find=0;charName[NAM_LEN]; cout<<"输入要查询联系人的__"; cin>>Name;for<i=0;i<n;i++> {if<strcmp<per[i].name,Name>==0> { find=1;break; } }if<find> { cout<<"__"<<per[i].name<<endl; cout<<"性别:"<<per[i].sex<<endl; cout<<"住址:"<<per[i].address<<endl; cout<<":"<<per[i].tel_no<<endl; cout<<"电子邮箱:"<<per[i].e_mail<<endl; cout<<"组别:"<<per[i].group<<endl; }else cout<<"不存在此联系人";}//按手机号码查找联系人voidfind2<PERper[],intn>{inti,find=0;charnumber[TEL_LEN]; cout<<"输入要查询联系人的:"; cin>>number;for<i=0;i<n;i++> {if<strcmp<per[i].tel_no,number>==0> { find=1;break; } }if<find> { cout<<"__"<<per[i].name<<endl; cout<<"性别:"<<per[i].sex<<endl; cout<<"住址:"<<per[i].address<<endl; cout<<":"<<per[i].tel_no<<endl; cout<<"电子邮箱:"<<per[i].e_mail<<endl; cout<<"组别:"<<per[i].group<<endl; }else cout<<"不存在此联系人";}//按姓氏模糊查询联系人voidfind3<PERper[],intn>{inti,find=0;charfirstname[NAM_LEN]; cout<<"输入要查询联系人的姓氏:"; cin>>firstname; cout<<"姓名性别住址电子邮箱组别"<<endl;for<i=0;i<n;i++> {chars1[3]; memcpy<s1,per[i].name,2>;//把per数组的前两个字符〔即姓名第一个字传递给mwmcpy s1[2]='\0';if<strcmp<s1,firstname>==0> { cout<<setiosflags<ios::left><<setw<NAM_LEN><<per[i].name; cout<<setiosflags<ios::left><<setw<SEX_LEN><<per[i].sex; cout<<setiosflags<ios::left><<setw<ADD_LEN><<per[i].address; cout<<setiosflags<ios::left><<setw<TEL_LEN><<per[i].tel_no; cout<<setiosflags<ios::left><<setw<MAIL_LEN><<per[i].e_mail; cout<<setiosflags<ios::left><<setw<GROUP_LEN><<per[i].group<<endl; } }}show.cpp文件:#include"head.h"//显示同一组别联系人voidshow1<PERper[],intn>{inti,find=0;charGROUP[GROUP_LEN]; cout<<"输入要查询的组别:"; cin>>GROUP; cout<<"姓名性别住址电子邮箱组别"<<endl;for<i=0;i<n;i++> {if<strcmp<per[i].group,GROUP>==0> { cout<<setiosflags<ios::left><<setw<NAM_LEN><<per[i].name; cout<<setiosflags<ios::left><<setw<SEX_LEN><<per[i].sex; cout<<setiosflags<ios::left><<setw<ADD_LEN><<per[i].address; cout<<setiosflags<ios::left><<setw<TEL_LEN><<per[i].tel_no; cout<<setiosflags<ios::left><<setw<MAIL_LEN><<per[i].e_mail; cout<<setiosflags<ios::left><<setw<GROUP_LEN><<per[i].group<<endl; } }}//按性别显示联系人voidshow2<PERper[],intn>{inti,find=0;charSEX[SEX_LEN]; cout<<"输入要查询的性别:"; cin>>SEX; cout<<"姓名性别住址电子邮箱组别"<<endl;for<i=0;i<n;i++> {if<strcmp<per[i].sex,SEX>==0> { cout<<setiosflags<ios::left><<setw<NAM_LEN><<per[i].name; cout<<setiosflags<ios::left><<setw<SEX_LEN><<per[i].sex; cout<<setiosflags<ios::left><<setw<ADD_LEN><<per[i].address; cout<<setiosflags<ios::left><<setw<TEL_LEN><<per[i].tel_no; cout<<setiosflags<ios::left><<setw<MAIL_LEN><<per[i].e_mail; cout<<setiosflags<ios::left><<setw<GROUP_LEN><<per[i].group<<endl; } }}//显示所有联系人voidshow3<PERper[],intn>{ cout<<"姓名性别住址电子邮箱组别"<<endl;for<inti=0;i<n;i++> { cout<<setw<NAM_LEN><<per[i].name; cout<<setw<SEX_LEN><<per[i].sex; cout<<setw<ADD_LEN><<per[i].address; cout<<setw<TEL_LEN><<per[i].tel_no; cout<<setw<MAIL_LEN><<per[i].e_mail; cout<<setw<GROUP_LEN><<per[i].group<<endl; }}edit.cpp文件:#include"head.h"//删除联系人intdel<PERper[],intn>{charName[NAM_LEN];inti=0,j,find=0; cout<<"请输入想删除记录中的名字:"; cin>>Name;for<i=0;i<n;i++> {if<strcmp<per[i].name,Name>==0> find=1;if<find==1>break; }if<find==1> {for<j=i;j<n-1;j++> {per[j]=per[j+1]; } cout<<"删除并"; }else cout<<"不存在此联系人";returni;}//修改联系人voidchange<PERper[],intn>{inti,find=0;charj;charName[NAM_LEN]; cout<<"请输入要修改的联系人__"; cin>>Name;for<i=0;i<n;i++> {if<strcmp<per[i].name,Name>==0> find=1;if<find==1>break; }if<find==1> { system<"cls">; cout<<"__"<<per[i].name<<endl; cout<<"性别:"<<per[i].sex<<endl; cout<<"住址:"<<per[i].address<<endl; cout<<":"<<per[i].tel_no<<endl; cout<<"电子邮箱:"<<per[i].e_mail<<endl; cout<<"组别:"<<per[i].group<<endl; cout<<"※※※※※※※"<<endl; cout<<"1.姓名※"<<endl; cout<<"2.性别※"<<endl; cout<<"3.住址※"<<endl; cout<<"4.※"<<endl; cout<<"5.E_MAIL※"<<endl; cout<<"6.组别※"<<endl; cout<<"0.退出※"<<endl; cout<<"※※※※※※※"<<endl; ONE:cout<<"选择修改项:"; cin>>j; cout<<"___________"<<endl;switch<j> {case'1': cout<<"

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论