c++课程设计通讯录管理系统Word文档下载推荐.docx
《c++课程设计通讯录管理系统Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《c++课程设计通讯录管理系统Word文档下载推荐.docx(37页珍藏版)》请在冰豆网上搜索。
(二)其它要求:
(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("
w"
{cout<
<
;
for(i=0;
i<
count;
i++)
{if(strcmp(w.name,addr[0].name)==0)continue;
elsefprintf(f,"
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():
+dele():
+search():
+show():
+Menu_select(intx1,intx2,intn):
int
+gotoxy(intx,inty):
4.主要运行界面
欢迎界面:
主界面:
添加用户界面:
当添加的用户已存在时:
修改用户界面:
当修改的用户不存在时
查找用户界面:
按姓名查找:
按电话号码查找:
删除好友界面:
显示用户界面:
办公类显示:
个人类显示:
商务类显示:
全部显示:
帮助界面:
关于界面
退出界面
5.心得体会
通过实验,我明白程序设计应该整体思考,在构思框架时应该多多思考可能出现的异常处理。
在程序整体已经基本完成的情况下发现漏洞,修补起来可能没有一开始就考虑到简单。
二、基于widows下的计算器
1.设计目的:
利用vc6.0设计一个简单的计算器。
2.主要功能:
(1)实现简单的加减乘除功能。
(2)实现倒数,开方的功能。
(3)实现清零的功能。
(4)开发环境
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<
iostream>
stdlib.h>
conio.h>
#include<
windows.h>
usingnamespacestd;
voidabout();
voidhelp();
classAddrlist
{private:
Addraddr[1000],p,w;
intload();
voidwrite(intcount);
public:
Addrlist(){
strcpy(w.name,"
0"
strcpy(addr[0].name,"
};
~Addrlist(){};
voidmenu();
voidinput();
voidup();
voiddele();
voidsearch();
voidshow();
intMenu_select(intx1,intx2,intn);
voidgotoxy(intx,inty);
//mian.cpp
#include"
Addr_list.h"
intmain()
{system("
COLOR1B"
\n\n\n"
\t\t***********************************\n"
\t\t*************************************\n"
\t\t**********\n"
\t\t********\n"
\t\t***欢迎使用通信录管理系统***\n"
\n\n\t\t"
按Enter进入..."
getch();
AddrlistmyAddrlist;
myAddrlist.menu();
return0;
voidAddrlist:
menu()
{intcursor;
system("
cls"
\n\n\n\n\t\t******通信录管理系统******\n\n"
\t\t\t>
>
添加用户信息<
\t\t\t修改用户信息\n\n"
\t\t\t查找用户信息\n\n"
\t\t\t删除用户信息\n\n"
\t\t\t浏览用户信息\n\n"
\t\t\t帮助\n\n"
\t\t\t关于\n\n"
\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
inti,t;
charreply;
count=load();
do
{cout<
\t请输入姓名:
cin>
p.name;
for(i=0;
{
if(strcmp(p.name,addr[i].name)==0)
{cout<
\t该姓名已存在!
请重新输入!
\n"
\t是否继续?
(Y/Nory/n):
getchar();
reply;
if((reply=='
Y'
)||(reply=='
y'
))input();
N'
n'
))menu();
\t请输入手机号码:
p.phone;
\t请输入电子邮件:
cin>
p.email;
\t请选择分类:
1.办公类2.个人类3.商务类"
t;
while(t<
0||t>
3)
{
\t您的输入有误,请重新输入!
}
if(t==1)strcpy(p.sort,"
办公类"
if(t==2)strcpy(p.sort,"
个人类"
if(t==3)strcpy