通讯录系统jdWord格式.docx
- 文档编号:22747291
- 上传时间:2023-02-05
- 格式:DOCX
- 页数:21
- 大小:483.65KB
通讯录系统jdWord格式.docx
《通讯录系统jdWord格式.docx》由会员分享,可在线阅读,更多相关《通讯录系统jdWord格式.docx(21页珍藏版)》请在冰豆网上搜索。
三:
概要设计
四:
详细设计
结构函数代码:
structinformation
{charID[30];
/*编号*/
charname[30];
/*姓名*/
intage;
/*年龄*/
charsex[3];
/*性别*/
charaddress[30];
/*地址*/
chartel[20];
/*电话*/
charmail[30];
/*电子邮箱*/
}person[N];
主函数
intmain()/*主调函数*/
{while(k)
menu();
system("
pause"
);
return0;
}
工作流程图
1:
添加通讯录信息
显示通讯录记录信息
删除通讯录信息
查询通讯录信息
修改通讯录信息
源程序代码
#include<
stdio.h>
stdlib.h>
/*标准库函数*/
string.h>
#defineN500/*最大通讯录的容量,*/
{
charID[30];
charadd[30];
chartel[30];
inth=1,n,m;
voidreadfile();
/*函数声明*/
voidseek();
voidmodify();
voidinsert();
voiddel();
voiddisplay();
voidsave();
voidmenu();
{while(h)
voidreadfile()/*建立通讯录信息*/
char*p="
person.dat"
;
FILE*fp;
inti=0;
if((fp=fopen("
"
r"
))==NULL)
{printf("
Openfile%serror!
pressanykeytoexit!
"
p);
exit(0);
}
while(fscanf(fp,"
%s%s%d%s%s%s%s\n"
person[i].ID,person[i].name,&
person[i].age,
person[i].sex,person[i].add,person[i].tel,person[i].mail)==7)
{
i++;
fclose(fp);
n=i;
printf("
录入完毕!
\n"
voidseek()/*查找通讯录信息*/
{inti,item,flag;
chars1[30];
printf("
------------------\n"
1.按编号查询\n"
2.按姓名查询\n"
3.退出本菜单\n"
while
(1)
{printf("
请选择子菜单编号:
scanf("
%d"
&
item);
flag=0;
switch(item)
{
case1:
请输入要查询该人的编号:
%s"
s1);
for(i=0;
i<
n;
i++)
if(strcmp(person[i].ID,s1)==0)
{flag=1;
该人编号|姓名|年龄|性别|地址|电话|E-mail|分别为:
%s%s%d%s%s%s%s\n"
person[i].ID,person[i].name,person[i].age,
person[i].sex,person[i].add,person[i].tel,person[i].mail);
if(flag==0)
该编号不存在!
break;
case2:
请输入要查询该人的姓名:
if(strcmp(person[i].name,s1)==0)
该人编号|姓名|年龄|性别|地址|电话|E-mail分别为:
%s%s%d%s%s%s%s\n"
该姓名不存在!
case3:
return;
default:
请在1-3之间选择\n"
voidmodify()/*修改通讯录信息*/
{inti,item,num;
charsex1[3],s1[30],s2[30];
请输入要修改的该人的编号:
num=i;
1.修改姓名\n"
2.修改年龄\n"
3.修改性别\n"
4.修改地址\n"
5.修改电话号码\n"
6.修改E-mail地址\n"
7.退出本菜单\n"
请输入新的姓名:
s2);
strcpy(person[num].name,s2);
请输入新的年龄:
person[num].age);
break;
请输入新的性别:
sex1);
strcpy(person[num].sex,sex1);
case4:
请输入新的地址:
strcpy(person[num].add,s2);
case5:
请输入新的电话号码:
strcpy(person[num].tel,s2);
case6:
请输入新的E-mail地址:
strcpy(person[num].mail,s2);
case7:
请在1-7之间选择\n"
voidinsert()/*增加通讯录信息*/
{inti=n,j,flag;
请输入待增加的人数:
m);
do
while(flag)
{flag=0;
请输入第%d个人的编号:
i+1);
person[i].ID);
for(j=0;
j<
i;
j++)
if(strcmp(person[i].ID,person[j].ID)==0)
已有该编号,请检查后重新录入!
flag=1;
/*如有重复立即退出该层循环,提高判断速度*/
请输入第%d个人的姓名:
person[i].name);
请输入第%d个人的年龄:
person[i].age);
请输入第%d个人的性别:
scanf("
person[i].sex);
请输入第%d个人的地址:
person[i].add);
请输入第%d个人的电话:
person[i].tel);
请输入第%d个人的E-mail:
person[i].mail);
if(flag==0)
}while(i<
n+m);
n+=m;
\n\n"
voiddel()/*删除通讯录信息*/
{inti,j,flag=0;
请输入要删除该人的编号:
for(j=i;
n-1;
j++)
person[j]=person[j+1];
if(flag==1)
n--;
删除成功,显示结果请选择菜单6\n"
voiddisplay()/*显示通讯录信息*/
{inti;
所有人的信息为:
%s,%s,%d,%s,%s,%s,%s\n"
voidsave()/*保存通讯录信息*/
{inti,flag=0;
fp=fopen("
w"
{fprintf(fp,"
%s%s%d%s%s%s%s\n"
已保存成功至person.dat!
请查看!
voidmenu()/*界面*/
{system("
cls"
intnum;
\n\n\t\t\t通讯录系统\n\n"
*****系统功能菜单*****\n"
----------------------\n"
1.读入信息\n"
2.查询信息\n"
3.修改信息\n"
4.增加信息\n"
5.按编号查询信息\n"
6.显示当前信息\n"
7.保存当前该人信息\n"
8.退出系统\n"
请选择菜单编号:
num);
switch(num)
readfile();
seek();
modify();
insert();
del();
display();
save();
case8:
h=0;
请在1-8之间选择\n"
}
程序调试
主界面
2:
添加界面
查询界面
显示界面
5:
删除界面
删除前的界面
删除后的界面
6:
修改界面
修改的界面:
修改后的界面:
7:
保存界面
Person.dat截图:
问题思考:
当我进行删除,添加,显示等功能,以显示为例,当我输入信息后,执行显示功能时,自己会自动消失,还没来得及我来看显示的内容,因此上网查找,还是差了一条语句,system(“pause”),语句,加上去了之后果然运行不会自动消失了,感悟颇深!
当我进行每一项操作时,发现都会保留上次的操作内容,这样看起来很杂乱,不干净,之后找同学帮忙,原来在函数之前加上语句system(“cls”),就可以解决这问题,这样看着舒服多了。
六:
课程设计小结
通过本次课程设计,让我找到了c语言学习的好多漏洞和不足之处,期间开头的编辑很难,主要靠自己的深一步的看教材,上网查找,才有点编该系统的思路,这样才慢慢的建立起来整个系统的框架内容。
这次学习之后,发现c语言程序设计奥妙,窍门真的好多,自己需要进一步的加深基础的学习和巩固。
这样才能为更高层次的语言学习打下坚实的基础。
总之,通过这次程序设计,收获真的蛮大,相信为以后的操作也留下了经验和回忆吧!
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 通讯录 系统 jd