C课程设计简易通讯录.doc

上传人:wj 文档编号:1219402 上传时间:2023-04-30 格式:DOC 页数:17 大小:297KB
下载 相关 举报
C课程设计简易通讯录.doc_第1页
第1页 / 共17页
C课程设计简易通讯录.doc_第2页
第2页 / 共17页
C课程设计简易通讯录.doc_第3页
第3页 / 共17页
C课程设计简易通讯录.doc_第4页
第4页 / 共17页
C课程设计简易通讯录.doc_第5页
第5页 / 共17页
C课程设计简易通讯录.doc_第6页
第6页 / 共17页
C课程设计简易通讯录.doc_第7页
第7页 / 共17页
C课程设计简易通讯录.doc_第8页
第8页 / 共17页
C课程设计简易通讯录.doc_第9页
第9页 / 共17页
C课程设计简易通讯录.doc_第10页
第10页 / 共17页
C课程设计简易通讯录.doc_第11页
第11页 / 共17页
C课程设计简易通讯录.doc_第12页
第12页 / 共17页
C课程设计简易通讯录.doc_第13页
第13页 / 共17页
C课程设计简易通讯录.doc_第14页
第14页 / 共17页
C课程设计简易通讯录.doc_第15页
第15页 / 共17页
C课程设计简易通讯录.doc_第16页
第16页 / 共17页
C课程设计简易通讯录.doc_第17页
第17页 / 共17页
亲,该文档总共17页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

C课程设计简易通讯录.doc

《C课程设计简易通讯录.doc》由会员分享,可在线阅读,更多相关《C课程设计简易通讯录.doc(17页珍藏版)》请在冰点文库上搜索。

C课程设计简易通讯录.doc

本程序用VS2013编写,所用语言为C++,为多文件程序,可将源代码复制到VS后简单处理,即可运行。

C++课程设计

设计题目:

简易通讯录管理程序

学院名称:

信息科学与技术学院

专业名称:

计算机科学与技术

学生姓名:

学生学号:

任课教师:

设计(论文)成绩

目录

第1章问题描述 1

第2章概要设计 1

第3章详细设计 3

3.1数据写入(添加到)文件的函数算法思想或步骤 3

3.2从文件读取内容到程序的函数算法思想或步骤 3

第4章测试结果及分析 3

参考文献 6

附录:

源代码 7

-1-

第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);//按姓氏(姓名第一个字)查询联系人

intreadfromFile(PERper[]);//从文件中读取数据

voidchange(PERper[],intn);//编辑联系人信息

voidaddtoFile(PERper[],intn);//添加新联系人到文件

voidwritetoFile(PERper[],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<<"任意键以返回菜单";

addtoFile(per,1);

system("pause");

break;

case'2':

TWO:

m=readfromFile(per);

readfromFile(per);

cout<<"

(1)根据姓名查找联系人"<

cout<<"

(2)根据手机号码查找联系人"<

cout<<"(3)根据姓氏模糊查询(姓名第一个字)"<

cout<<"(4)显示同一组别的联系人"<

cout<<"(5)显示同一性别的联系人"<

cout<<"(6)显示所有联系人"<

cout<<"(0)返回菜单"<

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)编辑某个人的信息"<

cout<<"

(2)删除某个人的信息"<

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<<"★★★★★★★★★★★★欢迎使用本软件!

★★★★★★★★★★★"<

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;

}

}

addtoFile.cpp文件

#include"head.h"

//添加到文件

voidaddtoFile(PERper[],intn)

{

ofstreamoutfile;

outfile.open("message.txt",ios_base:

:

app);//向文件尾加入新数据

if(outfile.is_open())//判断文件是否正常打开

{

for(inti=0;i

{

outfile<

outfile<

outfile<

outfile<

outfile<

outfile<

}

outfile.close();//关闭文件

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<

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > PPT模板 > 商务科技

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2