学生通讯录C语言课程设计源代码Word格式文档下载.docx
《学生通讯录C语言课程设计源代码Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《学生通讯录C语言课程设计源代码Word格式文档下载.docx(23页珍藏版)》请在冰豆网上搜索。
}stu[50];
voidmenu()
{
intwenjian();
intn;
while
(1)//循环使用此函数//
{system("
cls"
);
//每次循环此函数都清屏//
wenjian();
//存入文件//
printf("
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^"
\n★→菜单←★\n"
\n1.添加学生信息2.修改学生信息\n"
\n3.删除学生信息4.查询学生信息\n"
\n5.学生信息排序6.浏览学生信息\n"
\n7.帮助菜单8.退出系统\n"
\n★→学生通讯录←★\n"
\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^"
\n"
请选择序号(1~8):
[]\b\b"
scanf("
%d"
&
n);
if(n>
0&
&
n<
9)
{
switch(n)
{
case1:
add();
break;
case2:
alter();
case3:
delet();
case4:
search();
case5:
order();
case6:
scan();
case7:
help();
case8:
exit(0);
}
}
else
{
printf("
您输入的序号不在范围内:
system("
pause"
//暂停,不直接执行后续操作//
}
voidmain()//主函数,运行菜单函数//
menu();
voidadd()//添加函数,添加通讯录中的信息//
inti,n,j,k;
charw,m;
请输入所需添加信息条数(请输入数字1~50):
"
//输入信息的条数,决定添加多少信息//
for(j=0;
;
j++)
if(n<
1||n>
50)//判断输入的数是否在存储空间中,不满足,则重新选择//
printf("
输入错误,请选择:
1.重新输入2.退出输入返回主菜单:
\n输入您的选择(1or2):
k);
if(k==1)add();
//返回添加函数//
if(k==2)menu();
//返回主菜单//
elsebreak;
}
for(i=0;
i<
n;
i++)//输入信息//
\n请输入学号:
scanf("
%s"
stu[rshu+i].num);
请输入姓名:
stu[rshu+i].name);
请输入性别(morw):
stu[rshu+i].sex);
for(j=0;
if(strcmp(stu[rshu+i].sex,"
w"
)!
=0&
strcmp(stu[rshu+i].sex,"
m"
=0)
{//进行性别录入判断,只能为m或者w,否则重新输入//
输入错误,请重新输入:
\n请输入性别(morw):
elsebreak;
请输入通讯地址:
//判断后继续输入//
stu[rshu+i].address);
请输入电话:
stu[rshu+i].phone);
请输入QQ号:
stu[rshu+i].qq);
rshu+=n;
//总人数增加添加的条数//
\n添加成功!
voidalter()//修改通讯录中的信息//
inti,j,k,n;
charm,w;
if(rshu==0)//当人数为0时,没有数据删除,用户选择是否添加数据//
暂无通讯录数据,是否添加通讯录:
1.是(按其它数字则返回主菜单):
请选择:
if(n==1)add();
elsemenu();
\n请输入要修改学生的姓名:
namekey);
rshu;
i++)
if(strcmp(namekey,stu[i].name)==0)//比较字符串//
\n已查询到,记录为:
\n\n学号,姓名,性别,通讯地址,电话,QQ号:
\n%s,%s,%s,%s,%s,%s\n"
stu[i].num,stu[i].name,stu[i].sex,stu[i].address,stu[i].phone,stu[i].qq);
break;
if(i==rshu)//当i=rshu时,证明整个通讯录中的学生都查询到了,没有符合的//
\n没有该同学记录,请继续选择操作:
\n请选择:
1.重新输入(其它数字键则返回主菜单)"
if(n==1)alter();
else
\n%s,%s,%s,%s,%s,%s"
\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^"
\n\n请选择要修改的信息且一次操作只能修改一次:
"
\n\n1.学号2.姓名"
//满足各种需要修改的信息//
\n\n3.通讯地址4.电话号码"
\n\n5.QQ号码6.全部信息"
\n请选择(1~6):
if(k<
1||k>
6)
输入有误,请选择1.重新输入2.退出修改返回主菜单"
scanf("
if(n==2)menu();
if(k==1)//修改学号//
\n请输入新数据:
stu[i].num);
if(k==2)
stu[i].name);
if(k==3)//修改通讯地址//
stu[i].address);
if(k==4)//修改电话//
stu[i].phone);
if(k==5)//修改QQ号//
stu[i].qq);
if(k==6)//修改全部信息//
stu[i].sex);
if(strcmp(stu[i].sex,"
strcmp(stu[i].sex,"
{
}
修改成功!
是否需要查看修改后的信息?
:
是(按1)or否(按2):
if(k==1)
\n学号,姓名,性别,通讯地址,电话,QQ号:
\n可返回主菜单\n"
if(k==2)
menu();
voiddelet()//删除函数//
inti,k,n;
char*s;
//定义一个字符指针变量//
1.是(按其它数字键则返回主菜单):
elsemenu();
}
\n请输入要删除学生的姓名:
if(strcmp(namekey,stu[i].name)==0)//判断输入名字是否在通讯录中有记录,进行字符串比较//
\n学号,姓名,性别,通讯地址,电话,QQ号:
//显示查询到的信息//
\n%s,%s,%s,%s,%s,%s\n"
if(i==rshu)
if(n==1)delet();
else
\n*******************************************************************************"
\n\n请选择需要删除的信息:
\n\n******************1.学号2.通讯地址**********************"
\n\n******************3.电话4.QQ号**************************"
\n\n****************************5.全部信息***********************************"
\n\n按其它数字键则不删除信息且返回主菜单,请选择:
if(k==1)
\n是否删除该学生<
学号>
信息?
删除(按1)or不删除(按其它任意数字键):
if(n==1)
s=stu[i].num;
//将所查询到的姓名所在地址赋给s//
*s=0;
//s所指的值为0,原值将被删除//
已删除!
else
{
1.重新选择(按其它数字键则返回主菜单)\n"
if(n==1)alter();
elsemenu();
if(k==2)
通讯地址>
s=stu[i].address;
//将所查询到的通讯地址所在地址赋给s//
*s=0;
if(k==3)
电话>
*(stu[i].phone)=0;
//将地址所指函数的值赋为,则原值删除//
if(k==4)
QQ号>
*(stu[i].qq)=0;
if(k==5)
全部>
stu[i]=stu[i+1];
if(k==5&
n==1)//当删除全部信息后,人数才减,其它删除操作不改变人数个数//
rshu-=1;
voidsearch()//查询函数//
voidxm();
voidxh();
voiddh();
//清屏,把主菜单的目录覆盖掉,只显示查询界面//
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
\n★→查询界面←★\n"
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄| ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄\n"
1.按姓名查询|2.按学号查询\n"
―――――――――――――――――――|――――――――――――――――――――\n"
3.按电话查询|4.返回主菜单\n"
__________________|___________________\n"
while
(1)
请选择序号(1~4):
5)
switch(n)
xm();
xh();
dh();
menu();
您输入的序号不在范围内,请输入[1~4]:
voidxm()//按姓名查询函数//
inti,n;
if(rshu==0)//当人数为0时,没有数据查询,用户选择是否添加数据//
\n请输入要查询的姓名:
if(strcmp(namekey,stu[i].name)==0)
\n姓名,学号,性别,通讯地址,电话,QQ号:
stu[i].name,stu[i].num,stu[i].sex,stu[i].address,stu[i].phone,stu[