📄 app1.cpp
字号:
{
printf("当前教育状况编码表中数据为空!\n");
}
else
{
printf("请输入需要检索的编码(1-5个字符):");
scanf("%s",Fec_sEStatusCode);
while( Fec_pNode!=NULL && strcmp(Fec_pNode->sEStatusCode,Fec_sEStatusCode)!=0 )
Fec_pNode=Fec_pNode->next;
if( Fec_pNode==NULL )
{
printf("没有对应的编码!\n");
}
else
{
printf("对应编码\t\t\t\t教育状况\n");
printf("%s\t\t\t\t\t%s\n",Fec_pNode->sEStatusCode,Fec_pNode->sEStatus);
}
}
}
//添加教育状况编码
void AppendEStatusCode()
{
EStatusNode *Aec_pNode;
char Aec_sEStatus[20];
char Aec_sEStatusCode[5];
//判断当前编码表对象是否存在
if( pMyEStatusList->head==NULL )
{
printf("当前性别编码表为空!\n");
}
else
{
printf("请输入教育状况(1-20个字符或者1-10个汉字):");
scanf("%s",Aec_sEStatus);
printf("请输入编码:(1-4个字符):");
scanf("%s",Aec_sEStatusCode);
if( isEStatusCodeExisted(Aec_sEStatus)==1 )
{
//将新的教育状况编码添加到链表
Aec_pNode=(EStatusNode*)malloc(sizeof(EStatusNode));
if( Aec_pNode==NULL )
{
printf("Memory assign fail\n");
ErrorReport("AppendEStatusCode","Memory assign fail");
}
else
{
strcpy(Aec_pNode->sEStatus,Aec_sEStatus);
strcpy(Aec_pNode->sEStatusCode,Aec_sEStatusCode);
Aec_pNode->next=pMyEStatusList->head->next;
pMyEStatusList->head->next=Aec_pNode;
}
//将新的教育状况编码表重新写入Sex.Dat文件
FILE *fp;
if( (fp=fopen("EducationStatus.dat","a"))!=NULL ) //打开教育状况编码表文件
{
fwrite(Aec_pNode,sizeof(EStatusNode)-4,1,fp);
fclose(fp);
}
else
{
printf("不能打开EducationStatus.dat!!\n");
ErrorReport("AppendEStatusCode","不能打开EducationStatus.dat文件!!");
exit(0);
}
printf("已成功添加此编码!!\n");
}
}
}
//修改教育状况编码
void ModifyEStatusCode()
{
EStatusNode *Mec_pNode=pMyEStatusList->head->next;
char Mec_sEStatus[20];
char Mec_sEStatusCode[5];
printf("请输入需要修改编码的教育状况:");
scanf("%s",Mec_sEStatus);
printf("请输入新的编码:");
scanf("%s",&Mec_sEStatusCode);
//扫描用户信息表查找相符合的用户名:
while( Mec_pNode!=NULL && ( strcmp(Mec_pNode->sEStatus,Mec_sEStatus)!=0 ) )
Mec_pNode=Mec_pNode->next;
//若Mec_pNode==NULL 则
if( Mec_pNode==NULL )
{
printf("没有该编码的信息!!\n");
}
else
{
strcpy(Mec_pNode->sEStatusCode,Mec_sEStatusCode);
printf("该教育状况编码已经更改!!\n");
//更新文件
Mec_pNode=pMyEStatusList->head->next;
FILE *fp;
if( (fp=fopen("EducationStatus.dat","w"))!=NULL ) //打开用户信息表文件
{
while( Mec_pNode!=NULL )
{
fwrite(Mec_pNode,sizeof(EStatusNode)-4,1,fp);
Mec_pNode=Mec_pNode->next;
}
free(Mec_pNode);
fclose(fp);
}
}
}
//删除教育状况编码
void DelEStatusCode()
{
EStatusNode *Dec_pNode=pMyEStatusList->head->next;
EStatusNode *Dec_pPreNode=pMyEStatusList->head;
char Dec_sEStatusCode[5];
printf("请输入需要删除的教育状况编码(1-5个字符):");
scanf("%s",Dec_sEStatusCode);
//扫描用户信息表查找相符合的用户名:
while( Dec_pNode!=NULL && ( strcmp(Dec_pNode->sEStatusCode,Dec_sEStatusCode)!=0 ) )
{
Dec_pPreNode=Dec_pNode;
Dec_pNode=Dec_pNode->next;
}
//若Del_pNode==NULL 则
if(Dec_pNode==NULL )
{
printf("没有该编码的信息!!\n");
}
else
{
//从链表中删除该用户
Dec_pPreNode->next=Dec_pNode->next;
//重新写入用户信息文件
Dec_pNode=pMyEStatusList->head->next;
FILE *fp;
if( (fp=fopen("EducationStatus.dat","w"))!=NULL ) //打开用户信息表文件
{
while( Dec_pNode!=NULL )
{
fwrite(Dec_pNode,sizeof(EStatusNode)-4,1,fp);
Dec_pNode=Dec_pNode->next;
}
free(Dec_pNode);
fclose(fp);
}
printf("该编码信息已经删除!!\n");
}
}
//显示教育状况编码表
void DispEStatusCode()
{
EStatusNode *Diec_pCurrentNode=pMyEStatusList->head->next;
printf("对应编码\t\t\t\t教育状况\n");
while( Diec_pCurrentNode!=NULL)
{
printf("%s\t\t\t\t\t",Diec_pCurrentNode->sEStatusCode );
printf("%s\n",Diec_pCurrentNode->sEStatus );
Diec_pCurrentNode=Diec_pCurrentNode->next;
}
}
//最后毕业学校编码管理
void LastSchoolCodeManagement()
{
//iFlag为循环控制变量,iFunItem为操作识别变量
int iFunItem,iFlag=1;
while(iFlag==1)
{
printf("1)检索最后毕业学校编码表;\n");
printf("2)添加最后毕业学校编码;\n");
printf("3)修改最后毕业学校编码;\n");
printf("4)删除最后毕业学校编码;\n");
printf("5)显示最后毕业学校编码表;\n");
printf("0)退出;\n");
printf("请选择操作:");
scanf("%d",&iFunItem);
switch(iFunItem)
{
case 1:
{
FindLastSchoolCode();
}
break;
case 2:
{
AppendLastSchoolCode();
}
break;
case 3:
{
ModifyLastSchoolCode();
}
break;
case 4:
{
DelLastSchoolCode();
}
break;
case 5:
{
DispLastSchoolCode();
}
break;
case 0:
{
iFlag=0;
}
break;
default:
{
printf("错误的操作选择!!!\n");
ErrorReport("CodeControl","选择错误!!");
}
break;
}
}
}
//判断最后毕业学校编码是否重复
int isLastSchoolCodeExisted(char *sLastSchool)
{
LastSchoolNode *pNode;
if( pMyLastSchoolList->head->next!=NULL )
{
pNode=pMyLastSchoolList->head->next;
while( pNode!=NULL && strcmp(pNode->sLSchool,sLastSchool)!=0 )
pNode=pNode->next;
if( pNode==NULL )
return 1;
else
{
printf("该编码信息已经存在!!\n");
return 0;
}
}
else
return 1;
}
//检索最后毕业学校编码表
void FindLastSchoolCode()
{
LastSchoolNode *Flc_pNode=pMyLastSchoolList->head->next;
char Flc_sLastSchoolCode[5];
if( pMyLastSchoolList->head->next==NULL )
{
printf("当前最后毕业学校编码表中数据为空!\n");
}
else
{
printf("请输入需要检索的编码(1-5个字符):");
scanf("%s",Flc_sLastSchoolCode);
while( Flc_pNode!=NULL && strcmp(Flc_pNode->sLSchoolCode,Flc_sLastSchoolCode)!=0 )
Flc_pNode=Flc_pNode->next;
if( Flc_pNode==NULL )
{
printf("没有对应的编码!\n");
}
else
{
printf("对应编码\t\t\t\t最后毕业学校\n");
printf("%s\t\t\t\t\t%s\n",Flc_pNode->sLSchoolCode,Flc_pNode->sLSchool);
}
}
}
//添加最后毕业学校编码
void AppendLastSchoolCode()
{
LastSchoolNode *Alc_pNode;
char Alc_sLastSchool[20];
char Alc_sLastSchoolCode[5];
//判断当前编码表对象是否存在
if( pMyLastSchoolList->head==NULL )
{
printf("当前性别编码表为空!\n");
}
else
{
printf("请输入最后毕业学校(1-20个字符或者1-10个汉字):");
scanf("%s",Alc_sLastSchool);
printf("请输入编码:(1-4个字符)");
scanf("%s",Alc_sLastSchoolCode);
if( isLastSchoolCodeExisted(Alc_sLastSchool)==1 )
{
//将新的最后毕业学校编码添加到链表
Alc_pNode=(LastSchoolNode*)malloc(sizeof(LastSchoolNode));
if( Alc_pNode==NULL )
{
printf("Memory assign fail\n");
ErrorReport("AppendLastSchoolCode","Memory assign fail");
}
else
{
strcpy(Alc_pNode->sLSchool,Alc_sLastSchool);
strcpy(Alc_pNode->sLSchoolCode,Alc_sLastSchoolCode);
Alc_pNode->next=pMyLastSchoolList->head->next;
pMyLastSchoolList->head->next=Alc_pNode;
}
//将新的最后毕业学校编码表重新写入Sex.Dat文件
FILE *fp;
if( (fp=fopen("LastSchool.dat","a"))!=NULL ) //打开最后毕业学校表文件
{
fwrite(Alc_pNode,sizeof(LastSchoolNode)-4,1,fp);
fclose(fp);
}
else
{
printf("不能打开LastSchool.dat!!\n");
ErrorReport("AppendLastSchoolCode","不能打开LastSchool.dat文件!!");
exit(0);
}
printf("已成功添加此编码!!\n");
}
}
}
//修改最后毕业学校编码
void ModifyLastSchoolCode()
{
LastSchoolNode *Mlc_pNode=pMyLastSchoolList->head->next;
char Mlc_sLastSchool[20];
char Mlc_sLastSchoolCode[5];
printf("请输入需要修改编码的教育状况:");
scanf("%s",Mlc_sLastSchool);
printf("请输入新的编码:");
scanf("%s",&Mlc_sLastSchoolCode);
//扫描用户信息表查找相符合的用户名:
while( Mlc_pNode!=NULL && ( strcmp(Mlc_pNode->sLSchool,Mlc_sLastSchool)!=0 ) )
Mlc_pNode=Mlc_pNode->next;
//若Mlc_pNode==NULL 则
if( Mlc_pNode==NULL )
{
printf("没有该编码的信息!!\n");
}
else
{
strcpy(Mlc_pNode->sLSchoolCode,Mlc_sLastSchoolCode);
printf("该教育状况编码已经更改!!\n");
//更新文件
Mlc_pNode=pMyLastSchoolList->head->next;
FILE *fp;
if( (fp=fopen("LastSchool.dat","w"))!=NULL ) //打开用户信息表文件
{
while( Mlc_pNode!=NULL )
{
fwrite(Mlc_pNode,sizeof(LastSchoolNode)-4,1,fp);
Mlc_pNode=Mlc_pNode->next;
}
free(Mlc_pNode);
fclose(fp);
}
}
}
//删除最后毕业学校编码
void DelLastSchoolCode()
{
LastSchoolNode *Delc_pNode=pMyLastSchoolList->head->next;
LastSchoolNode *Delc_pPreNode=pMyLastSchoolList->head;
char Delc_sLastSchoolCode[5];
printf("请输入需要删除的最后毕业学校编码:");
scanf("%s",Delc_sLastSchoolCode);
//扫描最后毕业学校编码表查找相符合的用户名:
while( Delc_pNode!=NULL && ( strcmp(Delc_pNode->sLSchoolCode,Delc_sLastSchoolCode)!=0 ) )
{
Delc_pPreNode=Delc_pNode;
Delc_pNode=Delc_pNode->next;
}
//若Del_pNode==NULL 则
if(Delc_pNode==NULL )
{
printf("没有该编码的信息!!\n");
}
else
{
//从链表中删除该用户
Delc_pPreNode->next=Delc_pNode->next;
//重新写入用户信息文件
Delc_pNode=pMyLastSchoolList->head->next;
FILE *fp;
if( (fp=fopen("LastSchool.dat","w"))!=NULL ) //打开用户信息表文件
{
while( Delc_pNode!=NULL )
{
fwrite(Delc_pNode,sizeof(LastSchoolNode)-4,1,fp);
Delc_pNode=Delc_pNode->next;
}
free(Delc_pNode);
fclose(fp);
}
printf("该编码信息已经删除!!\n");
}
}
//显示最后毕业学校编码表
void DispLastSchoolCode()
{
LastSchoolNode *Dilc_pCurrentNode=pMyLastSchoolList->head->next;
printf("对应编码\t\t\t\t最后毕业学校\n");
while( Dilc_pCurrentNode!=NULL)
{
printf("%s\t\t\t\t\t",Dilc_pCurrentNode->sLSchoolCode );
printf("%s\n",Dilc_pCurrentNode->sLSchool );
Dilc_pCurrentNode=Dilc_pCurrentNode->next;
}
}
//编码管理模块
void CodeManagement()
{
//iFlag为循环控制变量,iFunItem为操作识别变量
int iFunItem,iFlag=1;
while(iFlag==1)
{
printf("1)输入编码表;\n");
printf("0)退出;\n");
printf("请选择操作:");
scanf("%d",&iFunItem);
switch(iFunItem)
{
case 1:
{
CodeControl();
}
break;
case 0:
{
iFlag=0;
}
break;
default:
{
printf("错误的操作选择!!!\n");
ErrorReport("CodeManagement","选择错误!!");
}
break;
}
}
}
//主控模块
void main()
{
//iFlag为循环控制变量,iFunItem为操作识别变量
int iFunItem,iFlag=1;
char sPermission[20];
//调用系统初始化
Initialization();
while(iFlag==1)
{
printf("1)用户登录;\n");
printf("0)系统退出;\n");
printf("请选择操作:");
scanf("%d",&iFunItem);
switch(iFunItem)
{
case 1:
{
//调用“用户登录”模块
UserLogin();
//调用JudgePermission()返回用户权限信息
if( JudgePermission()!=NULL )
{
strcpy(sPermission,JudgePermission());
//权限识别
if( strcmp(sPermission,"Administrator")==0 )
{
AdmModule();
}
else if( strcmp(sPermission,"Operator")==0 )
{
//操作员
printf("Your permission is Operator!!!\n");
}
else if( strcmp(sPermission,"Guest")==0 )
{
//游客
printf("Your permission is Guest!!!\n");
}
}
else
{
printf("sPermission is NULL\n");
}
}
break;
case 0:
{
//调用系统退出模块
ExitApp();
iFlag=0;
}
break;
default:
{
printf("错误的操作选择!!!\n");
ErrorReport("main","选择错误!!");
}
break;
}
}
exit(0);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -