C++课程设计简易通讯录.docx
- 文档编号:5551684
- 上传时间:2022-12-19
- 格式:DOCX
- 页数:23
- 大小:232.37KB
C++课程设计简易通讯录.docx
《C++课程设计简易通讯录.docx》由会员分享,可在线阅读,更多相关《C++课程设计简易通讯录.docx(23页珍藏版)》请在冰豆网上搜索。
C++课程设计简易通讯录
本程序用VS2013编写,所用语言为C++,为多文件程序,可将源代码复制到VS后简单处理,即可运行。
C++课程设计
设计题目:
简易通讯录管理程序
学院名称:
信息科学与技术学院
专业名称:
计算机科学与技术
学生姓名:
学生学号:
任课教师:
设计(论文)成绩
第1章问题描述
1、实现通讯录的基本功能:
录入、删除、查找和修改、显示。
2、联系人的基本属性包括姓名、性别、住址、联系电话、电子邮件等。
为了实现对所有联系人的分组管理,还需添加组别属性
3、查找功能的具体要求如下:
(1)能够根据姓名、电话精确查询人员信息;
(2)能够根据姓氏进行模糊查询人员信息;
(3)根据人员类别查询人员信息
4、文件存储通讯录
5、提供操作的选择菜单
第2章概要设计
开发环境
系统:
windows8.1中文版64位
处理器:
IntelCorei5-4200H
内存:
4G
开发软件:
VisualStudio2013
classPER//联系人类数组
{
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版)[郑莉董渊何江舟].2010年7月第四版
[2]C++程序设计教程(第二版)[钱能].2005年9月第二版
附录:
源代码
源程序要按照编写程序的规范来编写,结构清晰。
每个类、类成员函数、普通函数均需要在类名前、函数头前注释说明该类、函数的简要功能,函数中的关键语句需添加注释。
示例如下:
head.h头文件:
//头文件,包含PER类数组,每个项目的数组长度常量,所有元素的声明
#ifndefHEAD
#defineHEAD
#include
#include
#include
#include
#include
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);//按姓氏(姓名第一个字)查询联系人
intreadfromper[]);//从文件中读取数据
voidchange(PERper[],intn);//编辑联系人信息
voidaddtoper[],intn);//添加新联系人到文件
voidwritetoper[],intn);//向文件中写入数据
voidshow1(PERper[],intn);//按组别显示联系人
voidshow2(PERper[],intn);//按性别显示联系人
voidshow3(PERper[],intn);//显示所有联系人
#endif
main.cpp文件
#include"head.h"
//主函数首页
intmain()
{
intk,m;
PERper[num];//声明PER类数组个数
charselect1;
cout< while (1){ TOP: system("cls"); cout<<"※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※"< <<"※15级计科1班薛皓※"< <<"※※"< <<"※简易通迅录※"< <<"※※"< <<"※1.添加联系人.※"< <<"※※"< <<"※2.查询(显示)联系人.※"< <<"※※"< <<"※3.编辑(删除)联系人.※"< <<"※※"< <<"※0.退出※"< <<"※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※"< <<"\t\t\t选择: "; cin>>select1; switch(select1) { case'1': cout<<"输入添加的资料"< add(per,1); cout<<"任意键以返回菜单"; addto,1); system("pause"); break; case'2': TWO: m=readfrom); readfrom); cout<<" (1)根据姓名查找联系人"< cout<<" (2)根据手机号码查找联系人"< cout<<"(3)根据姓氏模糊查询(姓名第一个字)"< cout<<"(4)显示同一组别的联系人"< cout<<"(5)显示同一性别的联系人"< cout<<"(6)显示所有联系人"< cout<<"(0)返回菜单"< charselectsearch; cin>>selectsearch; switch(selectsearch) { m=readfrom); 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=readfrom); THREE: cout<<" (1)编辑某个人的信息"< cout<<" (2)删除某个人的信息"< cout<<"(0)返回菜单"; charselectsearch3; cin>>selectsearch3; switch(selectsearch3) { case'1': change(per,m-1); writeto,m-1); system("pause"); break; case'2': k=del(per,m-1); writeto,m-2); system("pause"); break; case'0': gotoTOP; default: cout<<"输入错误,请按任意键重新选择"; system("pause"); gotoTHREE; } break; case'0': gotobottom; default: cout<<"输入错误请重新输入,请按任意键返回菜单"; system("pause"); break; } } bottom: cout<<"★★★★★★★★★★★★欢迎使用本软件! ★★★★★★★★★★★"< return0; } add.cpp文件: #include"head.h" //添加联系人 voidadd(PERper[],intn) { for(inti=0;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; } } addto文件 #include"head.h" //添加到文件 voidaddtoper[],intn) { ofstreamoutfile; out("message.txt",ios_base: : app);//向文件尾加入新数据 if(out())//判断文件是否正常打开 { for(inti=0;i { outfile< outfile< outfile< outfile< outfile< outfile< } out();//关闭文件 cout<<"保存成功! \n"< } elsecout<<"保存失败"; } find.cpp文件: #include"head.h" //按姓名查询联系人 voidfind1(PERper[],intn) { inti,find=0; charName[NAM_LEN]; cout<<"输入要查询联系人的姓名: "; cin>>Name; for(i=0;i { if(strcmp(per[i].name,Name)==0) { find=1; break; } } if(find) { cout<<"姓名: "< cout<<"性别: "< cout<<"住址: "< cout<<"电话: "< cout<<"电子邮箱: "< cout<<"组别: "< } else cout<<"不存在此联系人"; } //按手机号码查找联系人 voidfind2(PERper[],intn) { inti,find=0; charnumber[TEL_LEN]; cout<<"输入要查询联系人的电话: "; cin>>number; for(i=0;i { if(strcmp(per[i].tel_no,number)==0) { find=1; break; } } if(find) { cout<<"姓名: "< cout<<"性别: "< cout<<"住址: "< cout<<"电话: "< cout<<"电子邮箱: "< cout<<"组别: "< } else cout<<"不存在此联系人"; } //按姓氏模糊查询联系人 voidfind3(PERper[],intn) { inti,find=0; charfirstname[NAM_LEN]; cout<<"输入要查询联系人的姓氏: "; cin>>firstname; cout<<"姓名性别住址电话电子邮箱组别"< for(i=0;i { chars1[3]; memcpy(s1,per[i].name,2);//把per数组的前两个字符(即姓名第一个字)传递给mwmcpy s1[2]='\0'; if(strcmp(s1,firstname)==0) { cout< : left)< cout< : left)< cout< : left)< cout< : left)< cout< : left)< cout< : left)< } } } show.cpp文件: #include"head.h" //显示同一组别联系人 voidshow1(PERper[],intn) { inti,find=0; charGROUP[GROUP_LEN]; cout<<"输入要查询的组别: "; cin>>GROUP; cout<<"姓名性别住址电话电子邮箱组别"< for(i=0;i { if(strcmp(per[i].group,GROUP)==0) { cout< : left)< cout< : left)< cout< : left)< cout< : left)< cout< : left)< cout< : left)< } } } //按性别显示联系人 voidshow2(PERper[],intn) { inti,find=0; charSEX[SEX_LEN]; cout<<"输入要查询的性别: "; cin>>SEX; cout<<"姓名性别住址电话电子邮箱组别"< for(i=0;i { if(strcmp(per[i].sex,SEX)==0) { cout< : left)< cout< : left)< cout< : left)< cout< : left)< cout< : left)< cout< : left)< } } } //显示所有联系人 voidshow3(PERper[],intn) { cout<<"姓名性别住址电话电子邮箱组别"< for(inti=0;i { cout< cout< cout< cout< cout< cout< } } edit.cpp文件: #include"head.h" //删除联系人 intdel(PERper[],intn) { charName[NAM_LEN]; inti=0,j,find=0; cout<<"请输入想删除记录中的名字: "; cin>>Name; for(i=0;i { if(strcmp(per[i].name,Name)==0) find=1; if(find==1) break; } if(find==1) { for(j=i;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 { if(strcmp(per[i].name,Name)==0) find=1; if(find==1) break; } if(find==1) {
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 课程设计 简易 通讯录
![提示](https://static.bdocx.com/images/bang_tan.gif)