?? student.c
字號:
#include<string.h>
#include<stdio.h>
void denglu();void save();void zhuce0();int cherk(char shuzi[]); //函數聲明
int cherk1(char zimu[]);int cherk2(char zimushuzi[]);
int cherk3(char youxiang[]);void save1();void guanli();void jiemian();
void daying();void chaxun();void printall();void tongji();void xiugaipw();
void xiugai();void shanchu();
struct zhuce
{
char name[16];
char password[16];}zhuce,zhuce1[30],jiancha;
struct xinxi
{
char number[13],name[21],banji[21],dormphone[9],
quhao[5],familyphone[9],mobilephone[12],
email[31],address[51],youbian[7];
}xinxi,jiancha0,xinxi0[30];
main()
{
int xuhao;
printf("\n\n**********************@^_^@歡迎使用學生通訊錄管理系統@^_^@**********************\n");
printf("\n\n\n\n");
printf("\n 1:登 陸\n\n");
printf("\n 2:注冊新用戶\n\n");
printf("\n\n\n\n");
printf("\n**********************@@@@@歡迎使用學生通訊錄管理系統@@@@@**********************\n");
printf("請選擇你需要服務的序號:");
scanf("%d",&xuhao);
getchar();
while(xuhao>2)
{
printf("\n你輸入有誤 請重新輸入:");
scanf("%d",&xuhao);
getchar();
}
switch(xuhao)
{
case 1:denglu();break;
case 2:zhuce0();break;
}
}
void save() //保存數據
{
FILE*fp;
if((fp=fopen("stu_list","ab"))==NULL)
{
printf("不能打開這個文件\n");
return;
}
if(fwrite(&zhuce,sizeof(struct zhuce),1,fp)!=1)
printf("文件寫入錯誤\n");
fclose(fp);
}
void zhuce0() //注冊函數
{
char password[16];
int leap=0,leap1=0,i,str=0,str1=0;
do
{
printf("請輸入一個用戶名('a-z,0-9'16個字符內):\n");
gets(zhuce.name);
while((strlen(zhuce.name))>17)
{
printf("\n你輸入的字符超過限制,請重新輸入:\n\n");
gets(zhuce.name);
}
str=0;
str=strlen(zhuce.name);
for(i=0,str1=0;i<=str;i++)
{
if((zhuce.name[i]>='a'&&zhuce.name[i]<='z')||(zhuce.name[i]>='0'&&zhuce.name[i]<='9'))
str1++;
}
if(str1!=str||str1==0)
{printf("你輸入的用戶名為空或含有非法字符,請重新輸入\n\n");leap=1;}
else leap=0;
}
while(leap==1);
do
{
printf("\n請輸入一個密碼('a-z,0-9')16個字符內:\n");
gets(zhuce.password);
printf("\n請再輸入一次:\n");
gets(password);
if(strcmp(zhuce.password,password)==0)
{system("cls");printf("注冊成功\n");
printf("你的用戶名為:%s\n\n你的密碼為:%s\n\n請牢記你的用戶名及密碼\n\n登陸:\n",
zhuce.name,zhuce.password);save();denglu(); break;}
else {printf("\n很抱歉 兩次輸入的密碼不同 請重新輸入\n");leap1=1;}
}while(leap1==1);
}
void denglu() //登陸函數
{
int i=0,j;
FILE*fp;
do
{
printf("\n請輸入用戶名:\n");
gets(zhuce.name);
printf("\n請輸入密碼:\n");
gets(zhuce.password);
fp=fopen("stu_list","rb");
rewind(fp);
do
{
fread(&jiancha,sizeof(struct zhuce),1,fp);
if(strcmp(zhuce.name,jiancha.name)==0&&
strcmp(zhuce.password,jiancha.password)==0)
{i=0;system("cls");jiemian();break;}
else i=1;
}while(!feof(fp));
if(i==1) {printf("\n你輸入的用戶名或密碼有誤\n");
printf("\n1:重新輸入? 2:注冊新用戶?\n");
do
{
scanf("%d",&j);getchar();
if(j==1) i=1;
else if(j==2) zhuce0();
else printf("\n你選擇有誤 請重新輸入:\n");
}while(j>2);
}
}while(i==1);
fclose(fp);
}
int cherk(char shuzi[])//管理
{
int leap,str,str1=0,i;
for(i=0;i<(str=strlen(shuzi));i++)
{
if((shuzi[i]>='0')&&(shuzi[i]<='9')) str1++;
}
if(str!=str1)
{
printf("\n對不起,你僅能輸入數字\n");
leap=1;
return(leap);
}
else {leap=0;return(leap);}
}
int cherk1(char zimu[])
{
int leap,str,str1=0,i;
for(i=0;i<(str=strlen(zimu));i++)
{
if((zimu[i]>='a')&&(zimu[i]<='z')) str1++;
}
if(str!=str1)
{
printf("\n對不起,你僅能輸入字母\n");
leap=1;
return(leap);
}
else {leap=0;return(leap);}
}
int cherk2(char zimushuzi[])
{
int leap,str,str1=0,i;
for(i=0;i<(str=strlen(zimushuzi));i++)
{
if(((zimushuzi[i]>='a')&&(zimushuzi[i]<='z'))||
((zimushuzi[i]>='0')&&(zimushuzi[i]<='9'))||zimushuzi[i]==' ') str1++;
}
if(str!=str1)
{
printf("\n對不起,你僅能輸入字母或數字\n");
leap=1;
return(leap);
}
else {leap=0;return(leap);}
}
int cherk3(char youxiang[])
{
int leap,str,str1=0,i;
for(i=0;i<(str=strlen(youxiang));i++)
{
if(((youxiang[i]>='a')&&(youxiang[i]<='z'))||
((youxiang[i]>='0')&&(youxiang[i]<='9'))||
youxiang[i]=='.'||youxiang[i]=='@') str1++;
}
if(str!=str1)
{
printf("\n對不起,你僅能輸入字母,數字,'.','@'\n");
leap=1;
return(leap);
}
else {leap=0;return(leap);}
}
void save1()
{
FILE*fp;
if((fp=fopen("stu_xinxi","ab"))==NULL)
{
printf("不能打開文件\n");
return;
}
if(fwrite(&xinxi,sizeof(struct xinxi),1,fp)!=1)
printf("文件寫入錯誤\n");
fclose(fp);
}
void guanli() //建立 增加學生通訊錄函數
{
int leap,xuhao;
do
{
printf("\n請輸入學號(12位):\n");
gets(xinxi.number);
while(strlen(xinxi.number)!=12)
{
printf("\n你輸入的學號位數不符合12位的要求,請重新輸入:\n");
gets(xinxi.number);
}
leap=cherk(xinxi.number);
}
while(leap==1);
do
{
printf("\n請輸入姓名(20個字符內,a~z):\n");
gets(xinxi.name);
while(strlen(xinxi.name)>20)
{
printf("\n你輸入的姓名長度超過限制,請重新輸入:\n");
gets(xinxi.name);
}
leap=cherk1(xinxi.name);
}
while(leap==1);
do
{
printf("\n請輸入所在班級:\n");
gets(xinxi.banji);
while(strlen(xinxi.banji)>20)
{
printf("\n你輸入的長度超過限制,請重新輸入:\n");
gets(xinxi.banji);
}
leap=cherk2(xinxi.banji);
}while(leap==1);
do
{
printf("\n請輸入宿舍電話(8位以內):\n");
gets(xinxi.dormphone);
while(strlen(xinxi.dormphone)>8)
{
printf("\n你輸入的號碼長度超過限制,請重新輸入:\n");
gets(xinxi.dormphone);
}
leap=cherk(xinxi.dormphone);
}while(leap==1);
do
{
printf("\n請輸入家庭所在地的電話區號(4位以內):\n");
gets(xinxi.quhao);
while(strlen(xinxi.quhao)>4)
{
printf("\n你輸入的電話區號長度超過限制,請重新輸入:\n");
gets(xinxi.quhao);
}
leap=cherk(xinxi.quhao);
}while(leap==1);
do
{
printf("\n請輸入家庭電話號碼(8位以內):\n");
gets(xinxi.familyphone);
while(strlen(xinxi.familyphone)>8)
{
printf("\n你輸入的電話號碼長度超過限制,請重新輸入:\n");
gets(xinxi.familyphone);
}
leap=cherk(xinxi.familyphone);
}while(leap==1);
do
{
printf("\n請輸入手機號碼(11位):\n");
gets(xinxi.mobilephone);
while(strlen(xinxi.mobilephone)>11)
{
printf("\n你輸入的手機號碼長度超過限制,請重新輸入:\n");
gets(xinxi.mobilephone);
}
leap=cherk(xinxi.mobilephone);
}while(leap==1);
do
{
printf("\n請輸入電子郵箱(30個字符以內,a~z,0~9,'.','@'):\n");
gets(xinxi.email);
while(strlen(xinxi.email)>30)
{
printf("\n你輸入的郵箱長度超過限制,請重新輸入:\n");
gets(xinxi.email);
}
leap=cherk3(xinxi.email);
}while(leap==1);
do
{
printf("\n請輸入家庭地址:\n");
gets(xinxi.address);
while(strlen(xinxi.address)>50)
{
printf("\n你輸入的地址長度超過限制,請重新輸入:\n");
gets(xinxi.address);
}
leap=cherk2(xinxi.address);
}while(leap==1);
do
{
printf("\n請輸入家庭所在地的郵政編碼(6位):\n");
gets(xinxi.youbian);
while(strlen(xinxi.youbian)!=6)
{
printf("\n你輸入的郵政編碼不符合要求(6位),請重新輸入:\n");
gets(xinxi.youbian);
}
leap=cherk(xinxi.youbian);
}while(leap==1);
daying();
save1();
system("cls");
printf("\n請選擇你需要服務的序號:1:繼續錄入 2:返回管理界面\n");
scanf("%d",&xuhao);
getchar();
while(xuhao>2)
{
printf("\n你輸入有誤 請重新輸入:");
scanf("%d",&xuhao);
getchar();
}
switch(xuhao)
{
case 1:system("cls");guanli();break;
case 2:system("cls");jiemian();break;
}
}
void jiemian() //管理界面
{
int xuhao;
printf("\n**********************@^_^@學生通訊錄管理系統管理頁面@^_^@**********************\n");
printf("\n\n");
printf("\n 1:錄入通訊信息\n");
printf("\n 2:查詢通訊信息\n");
printf("\n 3:顯示所有通訊信息\n");
printf("\n 4:學生地區分布統計\n");
printf("\n 5:修改密碼\n");
printf("\n\n\n");
printf("\n**********************@@@@@歡迎使用學生通訊錄管理系統@@@@@**********************\n");
printf("請選擇你需要服務的序號:");
scanf("%d",&xuhao);
getchar();
while(xuhao>5)
{
printf("\n你輸入有誤 請重新輸入:");
scanf("%d",&xuhao);
getchar();
}
switch(xuhao)
{
case 1:system("cls");guanli();break;
case 2:system("cls");chaxun();break;
case 3:system("cls");printall();break;
case 4:system("cls");tongji();break;
case 5:system("cls");xiugaipw();break;
}
}
void daying() //輸出信息
{
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -