通讯录设计设计一个“通讯录”程序vb
通讯录设计 时间:2021-10-17 阅读:(
)
Windows程序设计课程设计:设计一个简单的通讯录应用程序
1. 了解Windows编程的基础知识,掌握MFC应用程序的基本知识;
2. 基本掌握面向对象程序设计的基本思路和方法;
3. 掌握用VC++开发应用程序的的一般步骤和方法;
4. 能够利用所学的基本知识,设计一个简单的通讯录应用程序,具有以下功能:①用文件来保存通讯录信息(必须实现的功能)②编程实现通讯录记录的添加、删除、修改、浏览和查询(必须实现的功能)。
二,设计要求:
3. 用VC++进行编码,实现应用程序的功能。
注重编码质量,代码要有适当的注释;设计一个同学通讯录管理系统,实现对同学通讯录的管理
系统设计背景:
假设现在要建立一个包含多个班同学信息的同学通讯录,同学通讯录中的每个记录包含:记录编号(num)、班别(group)、姓名(name)、性别(sex)、生日(birthday)、家庭住址(address)、家庭联系电话(home_phone)、移动电话(move_phone)、电子邮箱(email)等数据内容,要求以文件的方式保存录入的同学通讯录数据,供用户查询和使用同学通讯录信息。
系统功能要求:
要求系统包含以下功能,
(1)添加记录:操作添加一条新的记录项;
(2)删除记录:删除一条已经存在的记录项;
(3)修改记录:改变记录项的一个或多个属性,并用新的记录项覆盖已经存在的记录项;
(4)查找记录:根据用户输入的属性值查找并输出符合条件的记录项,要求可以“按记录编号”、“按姓名”、“按电话号码”等多种关键字进行记录查询(查询结果可以包含多条满足条件的记录,如多人姓名相同,而又按该姓名查询时);
(5)打印输出通讯录:以一定的格式打印出当前同学通讯录的所有内容列表;系统设计要求:
(1)要求平时通讯录数据以文件形式存储在磁盘上,根据实际需要定义文件的存储格式(文本文件或二进制文件),在系统运行中需要对文件进行读写操作;
(2)系统执行需要对数据进行处理时,将文件中的记录读取到结构体数组中,对结构体数组内的数据进行处理,所有处理完毕后,要结束程序时,将该结构体数组的内容重新写回到文件中保存;
(3)程序中要包含有对输入数据的容错性检查,保证通讯录数据的合法性
(4)结构体数组的长度要求使用动态分配方式进行定义(即根据文件中记录的个数来定义结构体数组长度,或根据添加数据记录的需要来修改结构体数组长度);手机通讯录的制作
用91手机助手的备份功能即可,在主界面选“功能大全”--->"数据安全(备份/还原)"--->选择要备份的资料(联系人、短信、通话记录等)--->指定备份路径--->“开始备份”即可; 在备份路径下会有“BackupSetting.ini、BackupInfo.ini、日期+序号的文件夹”,其中文件夹中会有“AddressBook”文件夹,里面就是vcard文件(扩展名为.vcf);设计通讯录管理系统 可以添加,删除,修改信息和查询的功能。并保存在文件中,能按表格方式输出。
#include"stdio.h"
#include"stdlib.h"
#include"string.h"
struct student
{
int no; /*学号*/
char name[20]; /*姓名*/
char acdamic[20]; /*院系*/
char major[20]; /*专业*/
char province[20]; /*籍贯*/
char address[40]; /*家庭地址*/
long phone; /*联系电话*/
struct student *next;
};
struct student *input();
void print(struct student *h);
struct student *insert(struct student *h);
struct student *del(struct student *h);
void find4(struct student *h);
void find3(struct student *h);
void find2(struct student *h);
void find1(struct student *h);
struct student *head=NULL;
char ch,*menu[]={"------------------通讯录菜单------------",
"1.----------建立学生通讯录---------------",
"2.----------输出全部学生通讯录---------------",
"3.----------增加的学生的个数---------------",
"4.----------删除指定学号的学生--------------",
"5.----------按系别查找学生信息-------------",
"6.----------按专业查找学生信息-------------",
"7.----------按姓名查找学生信息-------------",
"8.----------按学号查找学生信息--------------",
"9.----------退出通讯录-----------------------"};
struct student *input() /*输入函数*/
{
int n;
printf("请输入你要建立的学生通讯录的学生个数:
");
scanf("%d",&n);
struct student *h=NULL,*p,*q;
int i;
for(i=1;i<=n;i++)
{
printf("请依次输入第%d个学生的学号,姓名,系别,专业,籍贯,家庭住址和联系电话:
",i);
p=(struct student *)malloc(sizeof(struct student));
if(p==NULL)
{
printf("内存不足!
");
exit(0);
}
scanf("%d%s%s%s%s%s%ld",&p->no,p->name,p->acdamic,p->major,p->province,p->address,&p->phone);
if(i==1)h=p;
else q->next=p;
q=p;
}
q->next=NULL;
return h;
}
void print(struct student *h) /*输出函数*/
{
struct student *p=h;
while(p)
{
printf("学生信息:
%d,%s,%s,%s,%s,%s,%ld
",p->no,p->name,p->acdamic,p->major,p->province,p->address,p->phone);
p=p->next;
}
}
struct student *insert(struct student *h) /*增加学生信息*/
{
int n;
printf("请输入你要增加的学生的个数:
");
scanf("%d",&n);
struct student *p,*r;
int i;
for(i=1;i<=n;i++)
{
r=(struct student *)malloc(sizeof(struct student));
printf("请输入第%d个你要插入的学生的信息:
",i);
scanf("%d%s%s%s%s%s%ld",&r->no,r->name,r->acdamic,r->major,r->province,r->address,&r->phone);
p=h;
h=r;
r->next=p;
}
return h;
}
struct student *del(struct student *h) /*按学号进行删除*/
{
int n;
printf("请输入要删除的学生的学号:
");
scanf("%d",&n);
struct student *p,*q;
if(h=NULL)printf("empty list!
");
else
{
p=h;
while(p->no!=n&&p->next)
{q=p;p=p->next;}
if(p->no==n)
{
if(h==p)h=p->next;
else q->next=p->next;
}
else printf("%d is not found!
");
}
return h;
}
void find1(struct student *h) /*按院系查找学生信息*/
{
char s[40];
printf("请输入要查找的学生的院系:
");
scanf("%s",s);
struct student *p;
if(h==NULL)printf("empty list!
");
else
{
p=h;
while(p)
{
if(strcmp(p->acdamic,s)==0)
printf("学生信息:
%d %s %s %s %s %s %ld
",p->no,p->name,p->acdamic,p->major,p->province,p->address,p->phone);
p=p->next;
}
}
}
void find2(struct student *h) /*按专业查找*/
{
char s[20];
printf("请输入要查找的学生的专业名:
");
scanf("%s",s);
struct student *p;
if(h==NULL)printf("empty list!
");
else
{
p=h;
while(p)
{
if(strcmp(p->major,s)==0)
printf("学生信息:
%d %s %s %s %s %s %ld
",p->no,p->name,p->acdamic,p->major,p->province,p->address,p->phone);
p=p->next;
}
}
}
void find3(struct student *h) /*按姓名查找*/
{ char ss[10];
printf("请输入要查找的学生的姓名:
");
scanf("%s",ss);
struct student *p;
if(h==NULL)printf("empty list!
");
else
{
p=h;
while(p)
{
if(strcmp(p->name,ss)==0)
printf("学生信息:
%d %s %s %s %s %s %ld
",p->no,p->name,p->acdamic,p->major,p->province,p->address,p->phone);
p=p->next;
}
}
}
void find4(struct student *h) /*按学号查找*/
{
int num;
printf("请输入要查找的学生的学号:
");
scanf("%d",&num);
struct student *p;
if(h==NULL)printf("empty list!
");
else
{
p=h;
while(p)
{
if(p->no==num)
printf("学生信息:
%d %s %s %s %s %s %ld
",p->no,p->name,p->acdamic,p->major,p->province,p->address,p->phone);
else
printf("没有你要查找的学生信息!
");
p=p->next;
}
}
}
int menu_select()
{
int i,s;
char c[3];
for(i=0;i<10;i++)
printf("%s
",menu[i]);
do
{
scanf("%s",c);
s=atoi(c);
}while(s<0||s>9);
return s;
}
main()
{
for(;;)
{
switch(menu_select())
{
case 1:head=input();break;
case 2:print(head);break;
case 3:head=insert(head);break;
case 4:head=del(head);break;
case 5:find1(head);break;
case 6:find2(head);break;
case 7:find3(head);break;
case 8:find4(head);break;
case 9:exit(0);
}
}
} 一一,错的地方自己改哈。
。
。
。
。
。
呵呵.........没人回答,太可怜了。
设计一个“通讯录”程序vb
首先 在窗体上添加控件 组合框控件命名为:ComboName
显示单位控件:Chkdanwei
显示地址控件:Chkdizhi
电话文本框:TxtTel
单位文本框:Txtdanwei
地址文本框:Txtdizhi
添加人员按钮:默认
然后直接复制下面的代码就OK了
Option Explicit
Private Type tongxunlu
MunName As String
tel As String
danwei As String
dizhi As String
End Type
Dim a(100) As tongxunlu
Dim n As Integer
Dim x As Integer
Private Sub Chkdanwei_Click()
If Chkdanwei.Value = 1 Then
Txtdanwei.Text = a(x).danwei
Else
Txtdanwei.Text = ""
End If
End Sub
Private Sub Chkdizhi_Click()
If Chkdizhi.Value = 1 Then
Txtdizhi.Text = a(x).dizhi
Else
Txtdizhi.Text = ""
End If
End Sub
Private Sub ComboName_Click()
x = ComboName.ListIndex
TxtTel.Text = a(x).tel
End Sub
Private Sub Command1_Click()
a(n).MunName = InputBox("请输入姓名")
a(n).tel = InputBox("请输入电话号码")
a(n).danwei = InputBox("请输入工作单位")
a(n).dizhi = InputBox("请输入家庭地址")
If a(n).MunName = "" Or a(n).tel = "" Or a(n).danwei = "" Or a(n).dizhi = "" Then GoTo 99
ComboName.AddItem a(n).MunName
ComboName.ListIndex = n
n = n + 1
99 End Sub
Private Sub Form_Load()
n = 0
End Sub
快快云怎么样?快快云是一家成立于2021年的主机服务商,致力于为用户提供高性价比稳定快速的主机托管服务,快快云目前提供有香港云服务器、美国云服务器、日本云服务器、香港独立服务器、美国独立服务器,日本独立服务器。快快云专注为个人开发者用户,中小型,大型企业用户提供一站式核心网络云端服务部署,促使用户云端部署化简为零,轻松快捷运用云计算!多年云计算领域服务经验,遍布亚太地区的海量节点为业务推进提供强大...
一年一度的黑色星期五和网络星期一活动陆续到来,看到各大服务商都有发布促销活动。同时RAKsmart商家我们也是比较熟悉的,这次是继双十一活动之后的促销活动。在活动产品中基本上沿袭双11的活动策略,比如有提供云服务器七折优惠,站群服务器首月半价、还有新人赠送红包等活动。如果我们有需要RAKsmart商家VPS、云服务器、独立服务器等产品的可以看看他们家的活动。这次活动截止到11月30日。第一、限时限...
BlueHost 主机商在以前做外贸网站的时候还是经常会用到的,想必那时候有做外贸网站或者是选择海外主机的时候还是较多会用BlueHost主机商的。只不过这些年云服务器流行且性价比较高,于是大家可选择商家变多,但是BlueHost在外贸主机用户群中可选的还是比较多的。这次年中618活动大促来袭,毕竟BLUEHOST商家目前中文公司设立在上海,等后面有机会也过去看看。他们也会根据我们的国内年中促销发...
通讯录设计为你推荐
恒大北京公司官网恒大地产集团总部在哪里?开模式win10游戏模式怎么开曝光查询iTV资讯交通违章查询业务介绍?吉林省建设厅网站吉林省建设厅的内设机构董姑娘金牛男和巨蟹女配吗?网上秘书私人秘书多少钱一个月?唐骏老婆为什么叫唐骏唐县长?痒是谁写的痒黄龄歌词什么意思小米云小米云服务新掌柜俗称掌柜的是指哪种人
备案域名 linuxvps 免费二级域名申请 中国万网域名 winscp php免费空间 个人空间申请 howfile 服务器维护方案 百度云1t 重庆双线服务器托管 hdd 如何注册阿里云邮箱 网购分享 中国电信测速网站 华为云建站 永久免费空间 lamp兄弟连 乐视会员免费领取 免费主页空间 更多