配色: 字号:
信息管理系统
2012-09-05 | 阅:  转:  |  分享 
  
//信息管理.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;

}
献花(0)
+1
(本文系我为宇宙首藏)