//信息管理.cpp:Definestheentrypointfortheconsoleapplication.
//作者:史慧智
//开发时间:2012年8月2日19:32:09
#include"stdafx.h"
#include
#include
#include
structstPerson
{
charszName[20];
charszSex[5];
intnAge;
charlPhone[12];
charszAddress[200];
};
voidMenus();
voidInquiry(structstPerson_p,int_n);
intAccurate(structstPerson_p,int_n,bool_true);
intAdd(structstPerson_p,int_n);
voidModifyTheInformation(structstPerson_p,int_n);
intDeleteInformation(structstPerson_p,int_n);
int_tmain(intargc,_TCHARargv[])
{
Menus();
return0;
}
/
主菜单函数
/
voidMenus()
{
charszCh;
intnNum=0;//人员总数
structstPersonstu[300];
structstPersonsp=stu;
while(true)
{
system("CLS");
system("color1b");
printf("欢迎使用信息管理系统\n");
printf("请选择以下功能\n");
printf("1.查看所有人员信息\n");
printf("2.按姓名查找\n");
printf("3.添加人员信息\n");
printf("4.修改人员信息\n");
printf("5.删除人员信息\n");
printf("6.推出程序\n");
printf("请选择:\n");
fflush(stdin);
szCh=_getch();
switch(szCh){
case''1'':
Inquiry(sp,nNum);
break;
case''2'':
Accurate(sp,nNum,false);
break;
case''3'':
nNum=Add(sp,nNum);
break;
case''4'':
ModifyTheInformation(sp,nNum);
break;
case''5'':
nNum=DeleteInformation(sp,nNum);
break;
case''6'':
printf("谢谢使用本软件!\n");
exit(0);
default:
printf("您的选择不是我们服务的内容,请重新选择:\n");
}
}
}
/
查找所有人员信息
/
voidInquiry(structstPerson_p,int_n)
{
system("CLS");
system("color1b");
if(_n==0){
printf("没有任何人员信息!\n");
_getch();
return;
}
printf("姓名\t性别\t年龄\t手机号\t\t地址\n");
for(inti=0;i<_n;i++){
printf("%s\t%s\t%d\t%s\t%s\n",(_p+i)->szName,(_p+i)->szSex,(_p+i)->nAge,(_p+i)->lPhone,(_p+i)->szAddress);
}
_getch();
}
/
根据姓名查找人员
/
intAccurate(structstPerson_p,int_n,bool_true)
{
charName[20];
charszChange[20];
memset(Name,''0'',19);
memset(szChange,''0'',19); //初始化字符串
system("CLS");
system("color1b");
printf("请输入名字:\n");
for(inti=0;i<3;i++){
fflush(stdin);
gets_s(Name);
if(strlen(Name)){
strcpy(szChange,Name);
for(inti=0;i<_n;i++){
if(!strcmp(szChange,(_p+i)->szName)&&_true){ //输入布尔值判断输出还是返回下标
returni;
}
if(!strcmp(szChange,(_p+i)->szName)&&!_true){
printf("姓名\t性别\t年龄\t手机号\t\t地址\n");
printf("%s\t%s\t%d\t%s\t%s\n",(_p+i)->szName,(_p+i)->szSex,(_p+i)->nAge,(_p+i)->lPhone,(_p+i)->szAddress);
}
}
break;
}else{
if(i==2){
printf("您输入的次数查过三次!\n");
break;
}else{
printf("名字不能为空!\n");
printf("请重新输入:\n");
}
}
}
_getch();
return-1;
}
/
添加信息
/
intAdd(structstPerson_p,int_n)
{
charName[20];
charszSex[5];
intnAge=0;
charszPhone[12];
charszChange[4];
memset(Name,''0'',19);
memset(szSex,''a'',4);
memset(szPhone,''0'',11);
memset(szChange,''0'',4);
system("color1b");
while(true)
{
system("CLS");
printf("请按步骤输入人员信息:\n");
printf("需要退出时请在输入姓名时输入no退出!\n");
printf("姓名:\n");
for(inti=0;i<3;i++){
fflush(stdin);
gets_s(Name);
if(!strcmp(Name,"no")||!strcmp(Name,"NO")){ //如果输入no或者NO时停止录入信息
return_n;
}
if(strlen(Name)){
strcpy((_p+_n)->szName,Name);
break;
}else{
if(i==2){
printf("您输入的次数超过三次!\n");
break;
}else{
printf("名字不能为空!\n");
printf("请重新输入:\n");
}
}
}
fflush(stdin);
printf("性别:\n");
for(inti=0;i<3;i++){
gets_s(szSex);
if(!strcmp(szSex,"男")||!strcmp(szSex,"女")){
strcpy((_p+_n)->szSex,szSex);
break;
}else{
if(i==2){
printf("您输入的次数超过三次!\n");
break;
}else{
printf("您输入与要求不符,请重新输入:\n");
}
}
}
printf("年龄:\n");
for(inti=0;i<3;i++){
scanf_s("%d",&nAge);
if(nAge>=0&&nAge<=120){
(_p+_n)->nAge=nAge;
break;
}else{
if(i==2){
printf("您输入的次数超过三次!\n");
break;
}else{
printf("您输入的年龄不在正常范围内,请重新输入:\n");
}
}
}
fflush(stdin);
printf("电话:\n");
for(inti=0;i<3;i++){
gets_s(szPhone);
if(strlen(szPhone)!=11){
printf("输入有无!\n");
printf("请重新输入:\n");
}else{
for(intj=0;j<3;j++){
szChange[j]=szPhone[j];
}
szChange[3]=''\0'';
if(strcmp(szChange,"131")==0||strcmp(szChange,"132")==0||strcmp(szChange,"133")==0||
strcmp(szChange,"134")==0||strcmp(szChange,"136")==0||strcmp(szChange,"137")==0||
strcmp(szChange,"138")==0||strcmp(szChange,"139")==0||strcmp(szChange,"151")==0||
strcmp(szChange,"152")==0||strcmp(szChange,"153")==0||strcmp(szChange,"155")==0||
strcmp(szChange,"156")==0||strcmp(szChange,"158")==0||strcmp(szChange,"159")==0||
strcmp(szChange,"188")==0){
strcpy((_p+_n)->lPhone,szPhone);
break;
}else{
if(i==2){
printf("您输入的次数超过三次!\n");
break;
}else{
printf("您输入的格式不正确!\n");
printf("请重新输入:\n");
}
}
}
}
printf("地址:\n");
fflush(stdin);
gets_s((_p+_n)->szAddress);
printf("添加成功!\n");
_n++;
_getch();
}
return_n;
}
/
修改人员信息
/
voidModifyTheInformation(structstPerson_p,int_n)
{
charName[20];
charszSex[5];
intnAge=0;
charszPhone[12];
charszChange[4];
memset(Name,''0'',19);
memset(szSex,''a'',4);
memset(szPhone,''0'',11);
memset(szChange,''0'',4);
intnNum=Accurate(_p,_n,true);
system("CLS");
system("color1b");
if(nNum==-1){
printf("没有此人信息!\n");
printf("按任意键返回...\n");
_getch();
return;
}else{
printf("需要修改的信息如下:\n");
printf("姓名\t性别\t年龄\t电话\t地址\n");
printf("%s\t%s\t%d\t%s\t\t%s\n",(_p+nNum)->szName,(_p+nNum)->szSex,(_p+nNum)->nAge,(_p+nNum)->lPhone,(_p+nNum)->szAddress);
}
printf("请输入您要修改的信息:\n");
printf("姓名:\n");
for(inti=0;i<3;i++){
fflush(stdin);
gets_s(Name);
if(strlen(Name)){
strcpy((_p+nNum)->szName,Name);
break;
}else{
if(i==2){
printf("您输入的次数超过三次!\n");
break;
}else{
printf("名字不能为空!\n");
printf("请重新输入:\n");
}
}
}
fflush(stdin);
printf("性别:\n");
for(inti=0;i<3;i++){
gets_s(szSex);
if(!strcmp(szSex,"男")||!strcmp(szSex,"女")){
strcpy((_p+nNum)->szSex,szSex);
break;
}else{
if(i==2){
printf("您输入的次数超过三次!\n");
break;
}else{
printf("您输入与要求不符,请重新输入:\n");
}
}
}
printf("年龄:\n");
for(inti=0;i<3;i++){
scanf_s("%d",&nAge);
if(nAge>=0&&nAge<=120){
(_p+nNum)->nAge=nAge;
break;
}else{
if(i==2){
printf("您输入的次数超过三次!\n");
break;
}else{
printf("您输入的年龄不在正常范围内,请重新输入:\n");
}
}
}
fflush(stdin);
printf("电话:\n");
for(inti=0;i<3;i++){
gets_s(szPhone);
if(strlen(szPhone)!=11){
printf("输入有无!\n");
printf("请重新输入:\n");
}else{
for(intj=0;j<3;j++){
szChange[j]=szPhone[j];
}
szChange[3]=''\0'';
if(strcmp(szChange,"131")==0||strcmp(szChange,"132")==0||strcmp(szChange,"133")==0||
strcmp(szChange,"134")==0||strcmp(szChange,"136")==0||strcmp(szChange,"137")==0||
strcmp(szChange,"138")==0||strcmp(szChange,"139")==0||strcmp(szChange,"151")==0||
strcmp(szChange,"152")==0||strcmp(szChange,"153")==0||strcmp(szChange,"155")==0||
strcmp(szChange,"156")==0||strcmp(szChange,"158")==0||strcmp(szChange,"159")==0||
strcmp(szChange,"188")==0){
strcpy((_p+nNum)->lPhone,szPhone);
break;
}else{
if(i==2){
printf("您输入的次数超过三次!\n");
break;
}else{
printf("您输入的格式不正确!\n");
printf("请重新输入:\n");
}
}
}
}
printf("地址:\n");
fflush(stdin);
gets_s((_p+nNum)->szAddress);
printf("添加成功!\n");
_getch();
}
/
删除人员信息
/
intDeleteInformation(structstPerson_p,int_n)
{
charc;
intnNum=Accurate(_p,_n,true);
system("CLS");
system("color1b");
printf("需要删除的信息如下:\n");
printf("姓名\t性别\t年龄\t电话\t地址\n");
printf("%s\t%s\t%d\t%s\t\t%s\n\n",(_p+nNum)->szName,(_p+nNum)->szSex,(_p+nNum)->nAge,(_p+nNum)->lPhone,(_p+nNum)->szAddress);
printf("确定删除?y/n\n");
fflush(stdin); //刷新缓冲区
scanf("%c",&c);
if(c==''y''||c==''Y''){
for(inti=_n;i>nNum;i--){
strcpy((_p+i-1)->szName,(_p+i)->szName);
strcpy((_p+i-1)->szSex,(_p+i)->szSex);
(_p+i-1)->nAge=(_p+i)->nAge;
strcmp((_p+i-1)->lPhone,(_p+i)->lPhone);
strcpy((_p+i-1)->szAddress,(_p+i)->szAddress);
}
_n--;
}elseif(c==''n''||c==''N''){
return_n;
}else{
printf("您输入有误!");
}
_getch();
return_n;
} |
|