c++课程设计通讯录管理系统.docx
《c++课程设计通讯录管理系统.docx》由会员分享,可在线阅读,更多相关《c++课程设计通讯录管理系统.docx(37页珍藏版)》请在冰豆网上搜索。
c++课程设计通讯录管理系统
一、基于DOS下的通讯录管理系统
1.程序需求
用C/C++设计出模拟手机通信录管理系统,实现对手机中的通信录进行管理。
(一) 功能要求
(1) 查看功能:
选择此功能时,列出下列三类选择。
A 办公类 B 个人类C商务类,当选中某类时,显示出此类所有数据中的姓名和电话号码)
(2) 增加功能:
能录入新数据(一个结点包括:
姓名、电话号码、分类(可选项有:
A 办公类 B 个人类C商务类)、电子邮件)。
例如
杨春 13589664454 商务类 chuny@
(3) 修改功能:
选中某个人的姓名时,可对此人的相应数据进行修改
(4) 删除功能:
选中某个人的姓名时,可对此人的相应数据进行删除。
(二)其它要求:
(1)只能使用C/C++语言,源程序要有适当的注释,使程序容易阅读
(2)至少采用文本菜单界面(如果能采用图形菜单界面更好)
(3)建议使用结构和链表等数据结构
说明:
1、使用c++的类设计程序,不用MFC设计,纯dos程序。
2.开发环境
MicrosoftVisualC++6.0
3.总体设计
1)、多文件组织图
2).程序整体流程图
3).主要函数流程图
1、Addrlist:
:
input()
2、Addrlist:
:
search()
3、intAddrlist:
:
load()
{FILE*f_addr;
intcount=0;
if((f_addr=fopen("addr.txt","r"))==NULL)
{printf("无法打开文件!
");exit(0);}
for(count=0;!
feof(f_addr);count++){
fscanf(f_addr,"%9s%12s%20s%10s%30s\n",&p.name,&p.phone,&p.email,&p.sort,&p.addr);
addr[count]=p;
}
fclose(f_addr);
returncount;
}
4、voidAddrlist:
:
write(intcount)
{
FILE*f;
if(count!
=0)
{
inti;
if((f=fopen("addr.txt","w"))==NULL)
{cout<<"无法打开文件!
";exit(0);}
for(i=0;i{if(strcmp(w.name,addr[0].name)==0)continue;
elsefprintf(f,"%9s%12s%20s%10s%30s\n",addr[i].name,addr[i].phone,addr[i].email,addr[i].sort,addr[i].addr);
}
}
fclose(f);
cout<<"\n\t保存成功!
\n\n";
}
4)结构体Addr
structAddr
{charname[25];
charphone[12];
charemail[30];
charsort[20];
charaddr[60];
};
5)、Addrlist类
Addrlis
-Addraddr[1000],p,w;
-load():
int
-write(intcount):
void
+menu():
void
+input():
void
+up():
void
+dele():
void
+search():
void
+show():
void
+Menu_select(intx1,intx2,intn):
int
+gotoxy(intx,inty):
void
4.主要运行界面
欢迎界面:
主界面:
添加用户界面:
当添加的用户已存在时:
修改用户界面:
当修改的用户不存在时
查找用户界面:
按姓名查找:
按电话号码查找:
删除好友界面:
显示用户界面:
办公类显示:
个人类显示:
商务类显示:
全部显示:
帮助界面:
关于界面
退出界面
5.心得体会
通过实验,我明白程序设计应该整体思考,在构思框架时应该多多思考可能出现的异常处理。
在程序整体已经基本完成的情况下发现漏洞,修补起来可能没有一开始就考虑到简单。
二、基于widows下的计算器
1.设计目的:
利用vc6.0设计一个简单的计算器。
2.主要功能:
(1)实现简单的加减乘除功能。
(2)实现倒数,开方的功能。
(3)实现清零的功能。
(4)开发环境
MicrosoftVisualC++6.0
3.主要运行的界面:
1.运行和测试编译无错误,运行得到如下图:
2.对计算器进行测试.对43.45和27.36进行四则运算
(1)输入43.45得到如图
(2)输入+和27.36得到如图
(3)输入等号得图如下
(4)输入c(清零)得到如下图
(5)输入9并输入sqrt得到如下图
(6)输入3再输入1/x得到下图
4.心得体会
通过实验我对MFC有了一定了解,以后要继续学习MFC。
三、附录
基于DOS下的通讯录管理系统源代码
//Addr_list.h
#include
#include
#include
#include
usingnamespacestd;
voidabout();
voidhelp();
structAddr
{charname[25];
charphone[12];
charemail[30];
charsort[20];
charaddr[60];
};
classAddrlist
{private:
Addraddr[1000],p,w;
intload();
voidwrite(intcount);
public:
Addrlist(){
strcpy(w.name,"0");
strcpy(addr[0].name,"0");
};
~Addrlist(){};
voidmenu();
voidinput();
voidup();
voiddele();
voidsearch();
voidshow();
intMenu_select(intx1,intx2,intn);
voidgotoxy(intx,inty);
};
//mian.cpp
#include"Addr_list.h"
intmain()
{system("COLOR1B");
cout<<"\n\n\n";
cout<<"\t\t***********************************\n";
cout<<"\t\t*************************************\n";
cout<<"\t\t**********\n";
cout<<"\t\t********\n";
cout<<"\t\t***欢迎使用通信录管理系统***\n";
cout<<"\t\t********\n";
cout<<"\t\t**********\n";
cout<<"\t\t*************************************\n";
cout<<"\t\t***********************************\n";
cout<<"\n\n\t\t";
cout<<"按Enter进入...";
getch();
AddrlistmyAddrlist;
myAddrlist.menu();
return0;
}
voidAddrlist:
:
menu()
{intcursor;
system("cls");
cout<<"\n\n\n\n\t\t******通信录管理系统******\n\n";
cout<<"\t\t\t>>添加用户信息<<\n\n";
cout<<"\t\t\t修改用户信息\n\n";
cout<<"\t\t\t查找用户信息\n\n";
cout<<"\t\t\t删除用户信息\n\n";
cout<<"\t\t\t浏览用户信息\n\n";
cout<<"\t\t\t帮助\n\n";
cout<<"\t\t\t关于\n\n";
cout<<"\t\t\t退出\n\n";
cursor=Menu_select(25,41,8);
if(cursor==0)
input();
if(cursor==1)
up();
if(cursor==2)
search();
if(cursor==3)
dele();
if(cursor==4)
show();
if(cursor==5)
help();
if(cursor==6)
about();
if(cursor==7)
cout<<"\n\n\t谢谢使用\n";
}
//input.cpp
#include"Addr_list.h"
voidAddrlist:
:
input()
{
inti,t;
charreply;
intcount=0;
count=load();
system("cls");
do
{cout<<"\n\n\n\n\t\t******通信录管理系统******\n\n";
cout<<"\t请输入姓名:
";
cin>>p.name;
for(i=0;i{
if(strcmp(p.name,addr[i].name)==0)
{cout<<"\t该姓名已存在!
请重新输入!
\n";
cout<<"\t是否继续?
(Y/Nory/n):
";
getchar();
cin>>reply;
if((reply=='Y')||(reply=='y'))input();
if((reply=='N')||(reply=='n'))menu();;
}
}
cout<<"\t请输入手机号码:
";
cin>>p.phone;
cout<<"\t请输入电子邮件:
";
cin>>p.email;
cout<<"\t请选择分类:
1.办公类2.个人类3.商务类";
cin>>t;
while(t<0||t>3)
{
cout<<"\t您的输入有误,请重新输入!
\n";
cout<<"\t请选择分类:
1.办公类2.个人类3.商务类";
cin>>t;
}
if(t==1)strcpy(p.sort,"办公类");
if(t==2)strcpy(p.sort,"个人类");
if(t==3)strcpy