代码拉取完成,页面将自动刷新
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<math.h>
#include <direct.h>
#include<Windows.h>
#define M 100
//函数声明;
void makefile(); //创建文件夹
void in(); //文件数据导入
void password(); //登录密码
void first(); //首次登录
void last(); //非首次登录
void mima(); //密码验证
void amend(); //密码修改
int home(); //首页界面函数
void choose(int p1 );//功能选择函数
void look(); //查看函数
void Remove(); //删除数据
void look1(); //查看全部联系人
void look2(); //查看特定联系人
void look3(); //查看联系人群组
void entry(); //录入信息
void newfile(); //新建储存文件
//全局变量声明
FILE *fp,*fp1,*fp2,*fp3,*fp4; //储存文件的文件指针
int n=0; //目前录入人数
int m=0; //登录次数
char ss[20]; //密码数组
struct friend{ //联系人结构体
char a[20]; //姓名
int b; //性别
int c; //年龄
int y1; //生日(年)
int y2; //生日(月)
int y3; //生日(日)
char r[10]; //星座
int d; //关系
char e[15]; //QQ号码
char f[20]; //手机号码
char g[200]; //备注
}num[M];
int main(int argc,char*argv[])
{
int p1;
system("color 5B");
password();
in(); //导入数据
p1=home();
choose(p1);
newfile(); //更新文件,保存数据
}
//创建文件夹
void makefile()
{
_mkdir("D:\\systemfile");
//_rmdir("D:\\myd");
}
//导入数据到结构体数组
void in()
{
if((fp2=fopen("D:\\systemfile\\number","r"))!=NULL)
{
n=getc(fp2);
if(fclose(fp2)==EOF)
printf("请关闭文件“number”。\n\n");
}
if((fp=fopen("D:\\systemfile\\my_system","a+b"))!=NULL)
fread(num,sizeof(struct friend),n,fp);
}
//登录密码验证
void password()
{
printf("\n===============================================================================\n");
printf("\n= =\n");
printf("\n= C 语言 * 程序设计 =\n");
printf("\n= =\n");
printf("\n= =\n");
printf("\n= --小黑编程 =\n");
printf("\n===============================================================================\n\n");
if((fp4=fopen("D:\\systemfile\\pass","rb"))!=NULL){
fread(ss,sizeof(char),20,fp4);
}
if((fp3=fopen("D:\\systemfile\\passnumber","rb"))!=NULL)
fread(&m,sizeof(int),1,fp3);
if(m==0){
m++;
makefile();
first();
}
else{
m++;
last();
}
}
//首次登录
void first()
{
int i=0;
char *p;
char s1[20];
p=s1;
printf("\n请设置密码:");
scanf("%s",s1);
if(strlen(p)<6){
printf("\n\n密码长度过短!请重新设置!\n\n");
first();
}
else if(strlen(p)>20){
printf("\n\n密码长度过长!请重新设置!\n\n");
first();
}
while(s1[i]!='\0'){
ss[i]=s1[i];
i++;
}
printf("\n\n设置密码成功!\n\n");
system("CLS");
last();
}
//非首次登录
void last()
{
int i;
printf("\n\n--请选择功能:\n\t1.登录 2.修改密码 3.忘记密码 0.退出\n\n");
printf("您的选择是:");
scanf("%d",&i);
switch(i){
case 0:exit(0);
case 1:
mima();break;
case 2:
amend();last();break;
case 3:printf("\n忘记就忘记了吧~~问设计者怎么处理O(∩_∩)O哈哈~\n程序即将退出...\n\n");Sleep(500);exit(0);
default :
{
printf("\n\n--选择有误!请重新选择!\n\n");
fflush(stdin);
last();
}
break;
}
}
//密码验证
void mima()
{
char s1[20];
static int i=0;
printf("\n请输入密码:");
scanf("%s",s1);
if(strcmp(ss,s1)==0){
printf("\n密码正确!\n\n");
printf("正在跳转...");
Sleep(1000);
system("CLS");
}
else{
i++;
if(i==5){
printf("\n\n密码错误!即将退出!\n");
Sleep(800);
exit(0);
}
printf("\n\n密码错误!还有%d次机会。\n",5-i);
mima();
}
}
//密码修改
void amend()
{
int i=0;
char s2[20];
char s3[20];
mima();
Q13:printf("\n\n请输入新密码:");
scanf("%s",s2);
printf("\n\n请再次输入新密码:");
scanf("%s",s3);
if(strcmp(s2,s3)==0){
printf("\n\n恭喜您,密码修改成功!\n\n");
while(s2[i]!='\0'){
ss[i]=s2[i];
i++;
}
Sleep(1000);
}
else{
printf("\n\n两次密码输入不一致,请再次输入~\n\n");
goto Q13;
}
}
//首页界面函数
int home()
{
int i;
printf("\n===============================================================================\n");
printf("\n= =\n");
printf("\n= ┈ 人脉管理系统 ┈ =\n");
printf("\n= =\n");
printf("\n= 欢迎使用~ =\n");
printf("\n= 联系人数:%d =\n",n);
printf("\n= 您已登录%d次 =\n",m);
printf("\n===============================================================================\n");
printf("--①查看联系人\t\t②录入联系人\t\t0.退出\n\n");
printf("请选择功能:");
scanf("%d",&i);
return i;
}
//功能选择函数
void choose(int p1)
{
switch(p1)
{
case 0:newfile();exit(1);
case 1:look();break;
case 2:entry();break;
default :printf("\n\n--选择有误!请重新选择!\n\n");
fflush(stdin);
choose(home());break;
}
}
//查看联系人
void look()
{
int i;
system("CLS");
printf("\n\n--请选择功能:\n\t1.查看全部联系人 2.查看特定联系人 3.查看群组 4.返回上一级 0.退出\n\n");
printf("您的选择是:");
scanf("%d",&i);
switch(i)
{
case 0:newfile();exit(1);
case 1:look1();break;
case 2:look2();break;
case 3:look3();break;
case 4:system("CLS");choose(home());break;
default:printf("\n\n--选择有误!请重新选择!\n\n");
fflush(stdin);
look();
}
}
//删除数据
void Remove()
{
int i,i1,j,j1;
char s4[20];
printf("输入需删除联系人姓名:");
scanf("%s",s4);
for(i=0;i<n;i++)
{
if(strcmp(s4,num[i].a)==0){
// n=n-1;
for(j=i;j<n-1;j++){
for(i1=0;;i1++){
if(num[j+1].a[i1]!='\0')
num[j].a[i1]=num[j+1].a[i1];
else{
num[j].a[i1]='\0';
break;
}
}
num[j].b=num[j+1].b;
num[j].c=num[j+1].c;
num[j].y1=num[j+1].y1;
num[j].y2=num[j+1].y2;
num[j].y3=num[j+1].y3;
for(i1=0;;i1++){
if(num[j+1].r[i1]!='\0')
num[j].r[i1]=num[j+1].r[i1];
else{
num[j].r[i1]='\0';
break;
}
}
num[j].d=num[j+1].d;
for(i1=0;;i1++){
if(num[j+1].e[i1]!='\0')
num[j].e[i1]=num[j+1].e[i1];
else{
num[j].e[i1]='\0';
break;
}
}
for(i1=0;;i1++){
if(num[j+1].f[i1]!='\0')
num[j].f[i1]=num[j+1].f[i1];
else{
num[j].f[i1]='\0';
break;
}
}
for(i1=0;;i1++){
if(num[j+1].g[i1]!='\0')
num[j].g[i1]=num[j+1].g[i1];
else{
num[j].g[i1]='\0';
break;
}
}
}
n=n-1;
}
}
printf("\n\n删除联系人%s成功!\n\n",s4);
printf("\n\n--请选择功能:\n\t1.返回 0.退出\n\n");
printf("您的选择是:");
Q23: scanf("%d",&j1);
switch(j1)
{
case 0:newfile();break;
case 1:system("CLS");look();break;
default :printf("\n\n--选择有误!请重新选择!\n\n");
fflush(stdin);
printf("您的选择是:");
goto Q23;
}
}
//查看全部联系人
void look1()
{
int i,i1,i2,j,j1,j2,k=0,k1=0,k2;
system("CLS");
printf("\n\n--请选择功能:\n\t1.查看联系人名单 2.查看联系人详细信息 3.返回 0.退出\n\n");
printf("您的选择是:");
scanf("%d",&i1);
system("CLS");
switch(i1){
case 0:newfile();exit(0);break;
case 1:
for(k2=0;k2<n;k2++){
if(k2==0){
printf("\n全部联系人名单如下:\n\n");
}
printf("%s\t",num[k2].a);
}
if(n==0)
printf("\n暂无联系人~\n\n");
printf("\n\n--请选择功能:\n\t1.查看指定联系人 2.删除指定联系人 3.返回 0.退出\n\n您的选择是:");
Q14: scanf("%d",&j2);
switch(j2){
case 0:newfile();exit(0);
case 1:look2();break;
case 2:Remove();break;
case 3:look();break;
default:printf("\n\n--选择有误!请重新选择!\n\n");
fflush(stdin);
printf("您的选择是:");
goto Q14;break;
}
break;
case 2:
{
printf("\n\n--请选择功能:\n\n1.横向排列 2.纵向排列 3.返回上一级 0.退出\n\n");
printf("您的选择是:");
scanf("%d",&i2);
system("CLS");
printf("\n");
switch(i2)
{
case 0:newfile();exit(1);
case 1:
for(i=0;i<n;i++)
{
if(i==0)
printf("\n全部联系人如下:\n\n");
k++;
printf("姓名:%2s ",num[i].a);
switch(num[i].b)
{
case 0:printf("性别:女 ");break;
case 1:printf("性别:男 ");break;
}
printf("年龄:%3d\n",num[i].c);
printf("生日:%3d年%d月%d日\n",num[i].y1,num[i].y2,num[i].y3);
printf("星座:%s\n",num[i].r);
switch(num[i].d)
{
case 0:printf("关系:家人\n");break;
case 1:printf("关系:恋人\n");break;
case 2:printf("关系:好朋友\n");break;
case 3:printf("关系:同学\n");break;
case 4:printf("关系:其他\n");break;
}
printf("QQ号码:%s \n手机号码:%s \n备注:%s \n\n",num[i].e,num[i].f,num[i].g);
}
if(k==0)
printf("\n暂无联系人~\n");
printf("\n\n--请选择功能:\n 1.删除指定联系人 2.返回 0.退出 \n\n您的选择是:");
Q19: scanf("%d",&j);
switch(j){
case 0:newfile();exit(0);
case 1:Remove();break;
case 2: system("CLS");look();break;
default:printf("\n\n--选择有误!请重新选择!\n\n");
fflush(stdin);
printf("您的选择是:");
goto Q19;break;
}
break;
case 2:
for(j1=0;j1<n;j1++){
if(j1==0)
printf("\n全部联系人如下:\n\n");
k1++;
printf("姓名:%2s\n",num[j1].a);
switch(num[j1].b)
{
case 0:printf("性别:女\n");break;
case 1:printf("性别:男\n");break;
}
printf("年龄:%3d\n",num[j1].c);
printf("生日:%3d年%d月%d日\n",num[j1].y1,num[j1].y2,num[j1].y3);
printf("星座:%s\n",num[j1].r);
switch(num[j1].d)
{
case 0:printf("关系:家人\n");break;
case 1:printf("关系:恋人\n");break;
case 2:printf("关系:好朋友\n");break;
case 3:printf("关系:同学\n");break;
case 4:printf("关系:其他\n");break;
}
printf("QQ号码:%s\n手机号码:%s\n备注:%s \n\n",num[j1].e,num[j1].f,num[j1].g);
printf("\n");
}
if(k1==0)
printf("\n暂无联系人~\n");
printf("\n\n--请选择功能:\n\t1.删除指定联系人 2.返回 0.退出 \n\n您的选择是:");
Q21: scanf("%d",&j);
switch(j){
case 0:newfile();exit(0);
case 1:Remove();break;
case 2: system("CLS");look();break;
default:printf("\n\n--选择有误!请重新选择!\n\n");
fflush(stdin);
printf("您的选择是:");
goto Q21;break;
}
break;
case 3:
look();break;
default:printf("\n\n--选择有误!请重新选择!\n\n");
fflush(stdin);
look1();break;
}
case 3:
look();break;
default:printf("\n\n--选择有误!请重新选择!\n\n");
fflush(stdin);
look1();break;
}
}
// system("pause");
}
//查看特定联系人
void look2()
{
char s[15];
int i,i1,i2=1,j,j1,j2;
system("CLS");
printf("\n\n请输入查询联系人姓名:");
scanf("%s",s);
printf("\n");
for(i=0;i<n;i++)
{
if(strcmp(num[i].a,s)==0)
{
printf("\n此联系人信息如下:\n\n");
printf("姓名:%s\n",s);
switch(num[i].b)
{
case 0:printf("性别:女\n");break;
case 1:printf("性别:男\n");break;
}
printf("年龄:%d\n",num[i].c);
printf("生日:%d年%d月%d日\n",num[i].y1,num[i].y2,num[i].y3);
printf("星座:%s\n",num[i].r);
switch(num[i].d)
{
case 0:printf("关系:家人\n");break;
case 1:printf("关系:恋人\n");break;
case 2:printf("关系:好朋友\n");break;
case 3:printf("关系:同学\n");break;
case 4:printf("关系:其他\n");break;
}
printf("QQ号码:%s\n手机号码:%s\n备注:%s\n\n",num[i].e,num[i].f,num[i].g);
printf("\n\n--请选择功能:\n\t1.修改 2.返回 3.继续 0.退出\n\n您的选择是:");
Q18: scanf("%d",&i1);
if(i1==1){
while(i2==1){
strcpy(num[i].a,s);
Q22: printf("姓名:%s\n",s);
printf("性别(0.女 1.男):");
Q9: scanf("%d",&num[i].b);
if(num[i].b!=0&&num[i].b!=1){
printf("\n请正确选择!\n");
fflush(stdin);
goto Q9;
}
printf("年龄:");
scanf("%d",&num[i].c);
printf("生日(年):");
scanf("%d",&num[i].y1);
printf(" 月:");
scanf("%d",&num[i].y2);
printf(" 日:");
scanf("%d",&num[i].y3);
printf("星座:");
scanf("%s",&num[i].r);
printf("关系(0.家人 1.恋人 2.好朋友 3.同学 4.其他):");
Q10: scanf("%d",&num[i].d);
if(num[i].d<0||num[i].d>4){
printf("\n请正确输入!\n");
fflush(stdin);
goto Q10;
}
printf("QQ::");
Q11: scanf("%s",num[i].e);
for(j=0,j1=0;;j++){
if(num[i].e[j]!='\0')
j1++;
else
break;
}
if(j1>10){
printf("\n请输入正确的QQ号码!\n");
fflush(stdin);
goto Q11;
}
printf("手机号码:");
Q12: scanf("%s",num[i].f);
for(j=0,j1=0;;j++){
if(num[i].f[j]!='\0')
j1++;
else
break;
}
if(j1>11){
printf("\n请输入正确的手机号码!\n");
fflush(stdin);
goto Q12;
}
printf("备注:");
scanf("%s",num[i].g);
printf("\n\n--重新录入成功,是否再次修改?\n\t1.是 2.返回 3.继续查询 0.退出\n\n您的选择是:");
Q23: scanf("%d",&i2);
switch(i2)
{
case 0:newfile();break;
case 1:
goto Q22;break;
case 2:look();break;
case 3:look2();break;
default :
printf("\n\n--选择有误!请重新选择!\n\n");
fflush(stdin);
printf("您的选择是:");
goto Q23;
break;
}
}
}
else if(i1==2){
look();
}
else if(i1==3)
look2();
else if(i1==0){
newfile();
exit(0);
}
else
{
printf("\n\n--选择有误!请重新选择!\n\n您的选择是:");
fflush(stdin);
goto Q18;
}
}
}
printf("\n\n--此联系人不存在!是否录入?\n\t1.好的 0.不了\n\n");
printf("您的选择是:");
Q16: scanf("%d",&j);
if(j==1){
strcpy(num[n].a,s);
printf("姓名:%s\n",s);
printf("性别(0.女 1.男):");
Q5: scanf("%d",&num[n].b);
if(num[n].b!=0&&num[n].b!=1){
printf("\n请正确选择!\n");
fflush(stdin);
goto Q5;
}
printf("年龄:");
scanf("%d",&num[n].c);
printf("生日(年):");
scanf("%d",&num[n].y1);
printf(" 月:");
scanf("%d",&num[n].y2);
printf(" 日:");
scanf("%d",&num[n].y3);
printf("星座:");
scanf("%s",&num[n].r);
printf("关系(0.家人 1.恋人 2.好朋友 3.同学 4.其他):");
Q6: scanf("%d",&num[n].d);
if(num[n].d<0||num[n].d>4){
printf("\n请正确选择!\n");
fflush(stdin);
goto Q6;
}
printf("QQ:");
Q7: scanf("%s",num[n].e);
for(j=0,j1=0;;j++){
if(num[n].e[j]!='\0')
j1++;
else
break;
}
if(j1>10){
printf("\n请输入正确的QQ号码!\n");
fflush(stdin);
goto Q7;
}
printf("手机号码:");
Q8: scanf("%s",num[n].f);
for(j=0,j1=0;;j++){
if(num[n].f[j]!='\0')
j1++;
else
break;
}
if(j1>11){
printf("\n请输入正确的手机号码!\n");
fflush(stdin);
goto Q8;
}
printf("备注:");
scanf("%s",num[n].g);
n++;
}
else if(j==0){
printf("\n\n--请选择功能:\n\t1.返回 0.退出\n\n您的选择是:");
Q15: scanf("%d",&j2);
switch(j2){
case 1:look();break;
case 0:newfile();exit(0);
default:printf("\n\n--选择有误!请重新选择!\n\n");
fflush(stdin);
printf("您的选择是:");
goto Q15;break;
}
}
else{
printf("\n\n--选择有误!请重新选择!\n\n");
fflush(stdin);
printf("您的选择是:");
goto Q16;
}
}
//查看联系人群组
void look3()
{
int i,j,k,i1;
system("CLS");
printf("\n\n--选择查看群组\n\t0.家人 1.恋人 2.好朋友 3.同学 4.其他 5.返回 6.退出\n\n");
printf("您的选择是:");
scanf("%d",&i);
switch(i){
case 0:for(j=0,k=0;j<n;j++){
if(num[j].d==0){
k++;
if(k==1){
printf("\n家人:\n\n");
}
printf("%s\n",num[j].a);
}
}
if(k==0)
printf("\n“家人”群组暂无联系人~\n");
break;
case 1:for(j=0,k=0;j<n;j++){
if(num[j].d==1){
k++;
if(k==1)
printf("\n恋人:\n\n");
printf("%s\n",num[j].a);
}
}
if(k==0)
printf("\n“恋人”群组暂无联系人~\n");
break;
case 2:for(j=0,k=0;j<n;j++){
if(num[j].d==2){
k++;
if(k==1)
printf("\n好朋友:\n\n");
printf("%s\n",num[j].a);
}
}
if(k==0)
printf("\n“好朋友”群组暂无联系人~\n");
break;
case 3:for(j=0,k=0;j<n;j++){
if(num[j].d==3){
k++;
if(k==1)
printf("\n同学:\n\n");
printf("%s\n",num[j].a);
}
}
if(k==0)
printf("\n“同学”群组暂无联系人~\n");
break;
case 4:for(j=0,k=0;j<n;j++){
if(num[j].d==4){
k++;
if(k==1)
printf("\n其他:\n\n");
printf("%s\n",num[j].a);
}
}
if(k==0)
printf("\n“其他”群组暂无联系人~\n");
break;
case 5:look();break;
case 6:newfile();exit(0);
default:printf("\n\n--选择有误!请重新选择!\n\n");
fflush(stdin);
look3();
break;
}
printf("\n\n--请选择功能:\n\t1.继续 2.返回 0.退出\n\n您的选择是:");
scanf("%d",&i1);
switch(i1){
case 0:newfile();exit(0);
case 1:look3();break;
case 2:look();break;
default :printf("\n\n--选择有误!请重新选择!\n\n");
fflush(stdin);
look3();break;
}
}
//录入联系人
void entry()
{
int i,j,j1,i1;
system("CLS");
printf("请录入联系人信息(姓名输入“0”则录入终止!):\n");
for(i=n;;i++)//从n的一个结构体元素开始录入。
{
printf("姓名:");
scanf("%s",num[i].a);
if(strcmp(num[i].a,"0")!=0)
{
printf("性别(0.女 1.男):");
Q1: scanf("%d",&num[i].b);
if(num[i].b!=0&&num[i].b!=1){
printf("请正确选择!\n");
fflush(stdin);
goto Q1;
}
printf("年龄:");
scanf("%d",&num[i].c);
///////////////////////////////////////
printf("生日(年份):");
scanf("%d",&num[i].y1);
printf(" 月:");
scanf("%d",&num[i].y2);
printf(" 日:");
scanf("%d",&num[i].y3);
printf("星座:");
scanf("%s",&num[i].r);
//////////////////////////////////////
printf("关系(0.家人 1.恋人 2.好朋友 3.同学 4.其他):");
Q2: scanf("%d",&num[i].d);
if(num[i].d<0||num[i].d>4){
printf("请正确选择!\n");
fflush(stdin);
goto Q2;
}
printf("QQ:");
Q3: scanf("%s",num[i].e);
for(j=0,j1=0;;j++){
if(num[i].e[j]!='\0')
j1++;
else
break;
}
if(j1>10){
printf("请输入正确的QQ号码!\n");
fflush(stdin);
goto Q3;
}
printf("手机号码:");
Q4: scanf("%s",num[i].f);
for(j=0,j1=0;;j++){
if(num[i].f[j]!='\0')
j1++;
else
break;
}
if(j1>11){
printf("请输入正确的手机号码!\n");
fflush(stdin);
goto Q4;
}
printf("备注:");
scanf("%s",num[i].g);
n++;
printf("\n");
}
else{
printf("录入信息结束!\n\n");
Q17: printf("\n\n--请选择功能:\n\t1.返回上一级 0.退出\n\n您的选择是:");
scanf("%d",&i1);
switch(i1){
case 0:newfile();exit(0);break;
case 1:choose(home());break;
default:printf("\n\n--选择有误!请重新选择!\n\n");
fflush(stdin);
goto Q17;break;
}
}
}
}
//新建储存文件
void newfile()
{
fwrite(num,sizeof(struct friend),n,fp);
if(fclose(fp)==EOF)
printf("请关闭文件“my_system”。\n\n");
if((fp1=fopen("D:\\systemfile\\my_system","w+b"))!=NULL)
{
fwrite(num,sizeof(struct friend),n,fp1);
if(fclose(fp1)==EOF)
printf("请关闭文件“my_system”。\n\n");
}
else
printf("不能正常打开文件“my_system”。\n\n");
if((fp2=fopen("D:\\systemfile\\number","w"))!=NULL)
{
putc(n,fp2);
if(fclose(fp2)==EOF)
printf("请关闭文件“my_system”。\n\n");
}
if((fp3=fopen("D:\\systemfile\\passnumber","wb"))!=NULL)
{
fwrite(&m,sizeof(int),1,fp3);
if(fclose(fp3)==EOF)
printf("请关闭文件“passnumber”。\n\n");
}
if((fp4=fopen("D:\\systemfile\\pass","wb"))!=NULL)
{
fwrite(ss,sizeof(char),20,fp4);
if(fclose(fp4)==EOF)
printf("请关闭文件“pass”。\n\n");
}
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。