进入大学写的第一个程序,这个是大学进入工作室的考核
虽然效果不错,但是现在看来作为一个程序还是很失败的
做这个程序我完全是在闭门造车,所以最后易读性和可拓展性都很低,大家写程序一定不要步入这样的误区
登录或者注册,账号分为老师账号和学生账号
学生的功能相比老师会少一些
程序运行时会在程序的目录创建两个文件
分别保存学生数据和账号信息
我还偷偷在程序里加了一个大风车,,,c语言的初学者肯定都被大风车折磨过我就不多说了
具体看程序
#include<stdio.h>
#include<string.h>
#include<windows.h> //使用了sleep函数
#include<stdlib.h>
//主函数
int main()
{
void jiemian(int x); //界面
int zhuce(int quanxianxuanze);//注册(权限选择)
int denglu();//登录
void fengche1(int x);
void fengche2(int x);
void fengche3(int x);
void kaifazhexinxi();
int cuowu=0,shujuliang=0,changdu=0,j=0,k=0,yunxingcishu=0,shanchucishu=0,xiugaicishu=0,num=0;//j为删除时的参数,’添加‘的运行次数
/*此处开始用链表读取之前保存的文件*/
printf("链表读取文件中..."); //文件过大时出现此页面
struct shuju
{
char name[500];
char number[500];
char sex[100];
char age[100];
char mark[100];
struct shuju *jiedian;
};
struct shuju*head=NULL;//头指针
struct shuju*p1=NULL;//初始读取链表时所用指针,有传递功能
struct shuju*p2=NULL;//无传递功能,全局都使用
struct shuju*p3=NULL;//无传递功能,全局都使用
struct shuju*p4=NULL;//无传递功能,全局都使用
struct shuju*p5=NULL;
struct shuju*pd=NULL;//删除时所用中间指针(包括初始时的删除结尾)无传递功能,全局都使用
head=(struct shuju*)malloc(sizeof(struct shuju));
FILE*sj=fopen("shuju.txt","a+");
if(fscanf(sj,"%s",head->name)==EOF)
{
goto biaoji2;
}
changdu=strlen(head->name);
head->name[changdu]=' ';
head->name[changdu+1]='\0';
fscanf(sj,"%s",head->number);
changdu=strlen(head->number);
head->number[changdu]=' ';
head->number[changdu+1]='\0';
fscanf(sj,"%s",head->sex);
changdu=strlen(head->sex);
head->sex[changdu]=' ';
head->sex[changdu+1]='\0';
fscanf(sj,"%s",head->age);
changdu=strlen(head->age);
head->age[changdu]=' ';
head->age[changdu+1]='\0';
fscanf(sj,"%s",head->mark);
changdu=strlen(head->mark);
head->mark[changdu]='\n';
head->mark[changdu+1]='\0';
head->jiedian=NULL;
shujuliang+=1;//数据量+1
p1=head;
while(1)
{
p2=(struct shuju*)malloc(sizeof(struct shuju));
p1->jiedian=p2;
pd=p1;
p1=p2;
if(fscanf(sj,"%s",p1->name)==EOF)
{
goto biaoji2;
}
changdu=strlen(p1->name);
p1->name[changdu]=' ';
p1->name[changdu+1]='\0';
fscanf(sj,"%s",p1->number);
changdu=strlen(p1->number);
p1->number[changdu]=' ';
p1->number[changdu+1]='\0';
fscanf(sj,"%s",p1->sex);
changdu=strlen(p1->sex);
p1->sex[changdu]=' ';
p1->sex[changdu+1]='\0';
fscanf(sj,"%s",p1->age);
changdu=strlen(p1->age);
p1->age[changdu]=' ';
p1->age[changdu+1]='\0';
fscanf(sj,"%s",p1->mark);
changdu=strlen(p1->mark);
p1->mark[changdu]='\n';
p1->mark[changdu+1]='\0';
p1->jiedian=NULL;
shujuliang+=1;
};
printf("非正常读取,程序可能会出现严重问题");
system("pause");
//读取任务已完成,此处删除多读取的结尾
biaoji2: //goto标记点
if(shujuliang==0)
{
free(head);
head=NULL;
p1=NULL;
}
else
{
pd->jiedian=NULL;
free(p1);
p1=pd;
p2=NULL;
}
fclose(sj);
//此处开始显示初始页面,要求登录
fflush(stdin); //清除键盘缓冲区
int quanxianxuanze,denglupanduan=0,i=0;//i是运行所需
char xuanze,xuanze1,xuanze2;
jiemian(1);
scanf("%c",&xuanze);
//选择登录进入,注册,退出
if(xuanze=='1') //登录
{
jiemian(2);
fflush(stdin); //清除键盘缓冲区
denglupanduan=denglu();
}
else
{
if(xuanze=='3')//退出
{
if(shujuliang==0)
{
printf("退出中\n");
exit(1);
}
else
{
i=0;
printf("退出中\nfree");
while(1)
{
printf(".");
if(i==0)
{
p2=head;
i=1;
}
else
{
if(p2->jiedian==NULL)
{
break;
}
p3=p2->jiedian;
p2=p3;
}
free(p2);
}
Sleep(700);
exit(1);
}
}//注册
jiemian(3);
fflush(stdin); //清除键盘缓冲区
xuanze=getchar();
if(xuanze!='1'&&xuanze!='2')
{
jiemian(0);
goto biaoji2;
}
if(xuanze=='1')
{
quanxianxuanze=1;
}
else
{
quanxianxuanze=2;
}
jiemian(4);
fflush(stdin);//清除键盘缓冲区
denglupanduan=zhuce(quanxianxuanze);
jiemian(5);
}
//防止暴力破解密码
biaoji1: //goto标记点
system("color 1f");
if(denglupanduan==0)
{
cuowu+=1;
jiemian(6);
if(cuowu>=5)
{
printf("\n\n你已经输错次数达到最大限制,再见\n");
system("pause");
exit(1);
}
else
{
printf("\n\n你已经输错了%d次了,还剩%d次机会哦\n",cuowu,5-cuowu);
system("pause");
goto biaoji2;
}
}
//登陆成功,进入主页面
biaoji3:
if(denglupanduan==1)//权限为学生
{
jiemian(9);
}
if(denglupanduan==2)//权限为老师
{
jiemian(8);
}
fflush(stdin); //清除键盘缓冲区
scanf("%c",&xuanze);
if(xuanze<='0'||xuanze>='6')//防止乱输
{
jiemian(0);
goto biaoji3;
}
char chaxunshuju1[50],chaxunshuju2[50];//以后查询可用
if(denglupanduan==1)//为学生
{
switch(xuanze)//主选择
{
case '1'://选择查询
jiemian(12);
fflush(stdin); //清除键盘缓冲区
scanf("%c",&xuanze);
if(xuanze=='1')//选择单个查询
{
if(shujuliang==0)
{
printf("无数据,请添加\n");
system("pause");
goto biaoji3;
break;
}
else
{
printf("请输入查询学生的姓名:");
scanf("%s",&chaxunshuju1);
changdu=strlen(chaxunshuju1);
chaxunshuju1[changdu]=' ';
chaxunshuju1[changdu+1]='\0';
printf("请输入查询学生的学号:");
scanf("%s",&chaxunshuju2);
changdu=strlen(chaxunshuju2);
chaxunshuju2[changdu]=' ';
chaxunshuju2[changdu+1]='\0';
i=0;
while(1)
{
if(i==0)
{
p2=head;
i=1;
}
else
{
if(p2->jiedian==NULL)
{
break;
}
p3=p2->jiedian;
p2=p3;
}
if((!strcmp(p2->name,chaxunshuju1))&&(!strcmp(p2->number,chaxunshuju2)))
{
printf("\n查询%s信息成功\n--------------------------\n",&p2->name);
printf("姓名:%s\n",&p2->name);
printf("学号:%s\n",&p2->number);
printf("性别:%s\n",&p2->sex);
printf("年龄:%s\n",&p2->age);
printf("成绩:%s",&p2->mark);
system("pause");
goto biaoji3;
break;
}
}
}
}
else
{
if(xuanze=='2')//选择全部查看,权限不足
{
jiemian(7);
goto biaoji3;
}
else
{
if(xuanze=='3')//返回上一个页面
{
goto biaoji3;
}
jiemian(0);//乱输入
goto biaoji3;
}
}
jiemian(14);//查询不到学生信息
goto biaoji3;
break;
case '2'://无权限
jiemian(7);
goto biaoji1;
break;
case '3'://无权限
jiemian(7);
goto biaoji1;
break;
case '4'://无权限
kaifazhexinxi();
goto biaoji1;
break;
case '5'://退出软件,释放所占的内存
jiemian(17);
if(shujuliang==0)
{
printf("退出中\n");
exit(1);
break;
}
else
{
i=0;
printf("释放内存中");
while(1)
{
printf(".");
if(i==0)
{
p2=head;
i=1;
}
else
{
if(p2->jiedian==NULL)
{
break;
}
p3=p2->jiedian;
p2=p3;
}
free(p2);
}
printf("\n退出中...");
exit(1);
break;
}
}
goto biaoji3;
}
if(denglupanduan==2)//教师权限
{
switch(xuanze)//选择
{
case '1'://选择查询信息
jiemian(13);
fflush(stdin); //清除键盘缓冲区
scanf("%c",&xuanze);
if(xuanze=='1')
{
if(shujuliang==0)
{
printf("无数据,请添加\n");
system("pause");
goto biaoji3;
break;
}
else
{
printf("请输入查询学生的姓名:");
scanf("%s",&chaxunshuju1);
changdu=strlen(chaxunshuju1);
chaxunshuju1[changdu]=' ';
chaxunshuju1[changdu+1]='\0';
printf("请输入查询学生的学号:");
scanf("%s",&chaxunshuju2);
changdu=strlen(chaxunshuju2);
chaxunshuju2[changdu]=' ';
chaxunshuju2[changdu+1]='\0';
i=0;
while(1)
{
if(i==0)
{
p2=head;
i=1;
}
else
{
if(p2->jiedian==NULL)
{
break;
}
p3=p2->jiedian;
p2=p3;
}
if((!strcmp(p2->name,chaxunshuju1))&&(!strcmp(p2->number,chaxunshuju2)))
{
printf("\n查询%s信息成功\n--------------------------\n",&p2->name);
printf("姓名:%s\n",&p2->name);
printf("学号:%s\n",&p2->number);
printf("性别:%s\n",&p2->sex);
printf("年龄:%s\n",&p2->age);
printf("成绩:%s",&p2->mark);
system("pause");
goto biaoji3;
break;
}
}
}
}
else
{
if(xuanze=='2')//选择查询全部学生信息
{
if(shujuliang==0)
{
printf("无数据,请添加\n");
system("pause");
goto biaoji3;
}
else
{
i=0;
system("cls");
printf(" 数据库\n==================================================\n");
while(1)
{
if(shujuliang==0)
{
printf("\n\n\n无数据\n\n");
break;
}
if(i==0)
{
p2=head;
i=1;
}
else
{
if(p2->jiedian==NULL)
{
break;
}
p3=p2->jiedian;
p2=p3;
}
printf("-------------------------------------------------\n");
printf("姓名:%s\n",&p2->name);
printf("学号:%s\n",&p2->number);
printf("性别:%s\n",&p2->sex);
printf("年龄:%s\n",&p2->age);
printf("成绩:%s\n",&p2->mark);
}
if(yunxingcishu==0)//查询本次是否添加数据
{
printf("本次运行未添加数据\n");
}
printf("==================================================\n");
printf("包含本次修改的全部数据,包括未保存的\n");
system("pause");
goto biaoji3;
}
}
else
{
if(xuanze=='3')//返回上一个页面
{
goto biaoji3;
}
jiemian(0);
goto biaoji3;
}
}
jiemian(15);//查询不到信息
goto biaoji3;
break;
case '2'://添加学生信息
biaoji4:
jiemian(11);
fflush(stdin); //清除键盘缓冲区
char name1[50],number1[50],sex1[10],age1[10],mark1[10];
printf("请输入学生姓名:");
scanf("%s",&name1);
changdu=strlen(name1);
name1[changdu]=' ';
name1[changdu+1]='\0';
printf("请输入学生学号:");
scanf("%s",&number1);
changdu=strlen(number1);
number1[changdu]=32;
number1[changdu+1]='\0';
printf("请输入学生性别:");
scanf("%s",&sex1);
changdu=strlen(sex1);
sex1[changdu]=32;
sex1[changdu+1]='\0';
printf("请输入学生年龄:");
scanf("%s",&age1);
changdu=strlen(age1);
age1[changdu]=32;
age1[changdu+1]='\0';
printf("请输入学生成绩:");
scanf("%s",&mark1);
changdu=strlen(mark1);
mark1[changdu]='\n';
mark1[changdu+1]='\0';
i=0;
if(shujuliang!=0)
{
while(1)
{
if(i==0)//检测头指针
{
p2=head;
i=1;
}
else
{
if(p2->jiedian==NULL)
{
break;
}
p3=p2->jiedian;
p2=p3;
}
if(!strcmp(p2->number,number1))//重复检测
{
printf("\n此学生已存在\n");
system("pause");
goto biaoji4;
}
}
}
if(shujuliang==0)//本次打开没有添加过
{
head=(struct shuju*)malloc(sizeof(struct shuju));
strcpy(head->name,name1);
strcpy(head->number,number1);
strcpy(head->sex,sex1);
strcpy(head->age,age1);
strcpy(head->mark,mark1);
head->jiedian=NULL;
p1=head;
yunxingcishu+=1;
shujuliang+=1;
k=1;
}
else
{
p2=(struct shuju*)malloc(sizeof(struct shuju));
p1->jiedian=p2;
p1=p2;
strcpy(p1->name,name1);
strcpy(p1->number,number1);
strcpy(p1->sex,sex1);
strcpy(p1->age,age1);
strcpy(p1->mark,mark1);
p1->jiedian=NULL;
yunxingcishu+=1;
shujuliang+=1;
k=1;
}//若保存则关闭软件时不会提示保存
printf("现在就要保存吗?(Yes/No)\n暂不保存继续输入(Continue)\n不保存和不选择重启应用后将丢失\n");//输入Y,y,Yes,YES,yes等均可
fflush(stdin);//清除键盘缓冲区
scanf("%c",&xuanze);
if(xuanze=='y'||xuanze=='Y')
{
printf("\n保存中");
i=0;
FILE*sj=fopen("shuju.txt","w");//清空以前的
while(1)
{
printf(".");
if(i==0)
{
p2=head;
i=1;
}
else
{
if(p2->jiedian==NULL)
{
break;
}
p3=p2->jiedian;
p2=p3;
}
fputs(p2->name,sj);
fputs(p2->number,sj);
fputs(p2->sex,sj);
fputs(p2->age,sj);
fputs(p2->mark,sj);
}
fclose(sj);
printf("\n保存成功!!!\n");
k=0;
system("pause");
break;
}
if(xuanze=='n'||xuanze=='N')//不保存
{
break;
}
if(xuanze=='C'||xuanze=='c')//不管保存不保存,先继续输入
{
goto biaoji4;
}
jiemian(0);
break;
case '3':
biaoji6:
jiemian(18);
fflush(stdin); //清除键盘缓冲区
scanf("%c",&xuanze);
if(xuanze=='1')//修改单独的学生
{
if(shujuliang==0)
{
printf("无数据,请添加\n");
system("pause");
goto biaoji3;
}
else
{
printf("请输入修改学生的姓名:");
scanf("%s",&chaxunshuju1);
changdu=strlen(chaxunshuju1);
chaxunshuju1[changdu]=' ';
chaxunshuju1[changdu+1]='\0';
printf("请输入修改学生的学号:");
scanf("%s",&chaxunshuju2);
changdu=strlen(chaxunshuju2);
chaxunshuju2[changdu]=' ';
chaxunshuju2[changdu+1]='\0';
i=0;
while(1)//检测该学生
{
if(i==0)
{
p2=head;
i=1;
}
else
{
if(p2->jiedian==NULL)
{
break;
}
p3=p2->jiedian;
p2=p3;
}
if((!strcmp(p2->name,chaxunshuju1))&&(!strcmp(p2->number,chaxunshuju2)))
{
system("cls");
fflush(stdin); //清除键盘缓冲区
printf(" 请修改\n");
printf("------------------------------------------------------\n");
printf("请输入修改后学生姓名:");
scanf("%s",&name1);
changdu=strlen(name1);
name1[changdu]=' ';
name1[changdu+1]='\0';
printf("请输入修改后学生性别:学号不允许更改!\n");
printf("请输入修改后学生性别:");
scanf("%s",&sex1);
changdu=strlen(sex1);
sex1[changdu]=32;
sex1[changdu+1]='\0';
printf("请输入修改后学生年龄:");
scanf("%s",&age1);
changdu=strlen(age1);
age1[changdu]=32;
age1[changdu+1]='\0';
printf("请输入修改后学生成绩:");
scanf("%s",&mark1);
changdu=strlen(mark1);
mark1[changdu]='\n';
mark1[changdu+1]='\0';
strcpy(p2->name,name1);
strcpy(p2->sex,sex1);
strcpy(p2->age,age1);
strcpy(p2->mark,mark1);
printf("更改成功!\n");
k=1;
xiugaicishu+=1;
system("pause");
goto biaoji6;
}
}
printf("无该学生\n");
system("pause");
goto biaoji6;
break;
}
}
if(xuanze=='2')//删除学生
{
if(shujuliang<2)
{
printf("不足两个数据,无法删除\n");
system("pause");
goto biaoji3;
}
else
{
printf("请输入要删除的学生信息\n");
printf("请输入删除学生的姓名:");
scanf("%s",&chaxunshuju1);
changdu=strlen(chaxunshuju1);
chaxunshuju1[changdu]=' ';
chaxunshuju1[changdu+1]='\0';
printf("请输入删除学生的学号:");
scanf("%s",&chaxunshuju2);
changdu=strlen(chaxunshuju2);
chaxunshuju2[changdu]=' ';
chaxunshuju2[changdu+1]='\0';
i=0;
while(1)//检测该学生
{
j+=1;
if(i==0)
{
p2=head;
i=1;
}
else
{
if(p2->jiedian==NULL)
{
break;
}
pd=p2;
p3=p2->jiedian;
p2=p3;
}
if((!strcmp(p2->name,chaxunshuju1))&&(!strcmp(p2->number,chaxunshuju2)))
{
if(p2->jiedian==NULL)
{
pd->jiedian=NULL;
free(p2);
printf("删除成功\n");
k=1;
shujuliang-=1;
shanchucishu+=1;
system("pause");
goto biaoji3;
break;
}
else
{
pd->jiedian=p2->jiedian;
free(p2);
shujuliang-=1;
printf("删除成功\n");
k=1;
shanchucishu+=1;
shujuliang-=1;
system("pause");
goto biaoji3;
break;
}
}
}
printf("无该学生\n");
system("pause");
goto biaoji3;
break;
}
}
if(xuanze=='3')//若修改过或删除未保存,提示保存
{
if(k==1)
{
jiemian(10);
printf("(Yes/No)\n不保存和不选择重启应用时将丢失数据\n");
fflush(stdin); //清除键盘缓冲区
scanf("%c",&xuanze);
if(xuanze=='y'||xuanze=='Y')
{
i=0;
FILE*sj=fopen("shuju.txt","w");//清空以前的
while(1)
{
if(i==0)
{
p2=head;
i=1;
}
else
{
if(p2->jiedian==NULL)
{
break;
}
p3=p2->jiedian;
p2=p3;
}
fputs(p2->name,sj);
fputs(p2->number,sj);
fputs(p2->sex,sj);
fputs(p2->age,sj);
fputs(p2->mark,sj);
}
printf("\n保存成功!!!\n");
k=0;
}
fclose(sj);
Sleep(700);
}
goto biaoji3;
break;
}
jiemian(0);
goto biaoji3;
break;
case '4'://其他
jiemian(19);
fflush(stdin); //清除键盘缓冲区
scanf("%c",&xuanze);
if(xuanze=='1')
{
system("dfc.mp3");
for(int m=6; m<=30; m++)
{
system("cls");
fengche1(m);
fengche2(m);
fengche3(m);
Sleep(100);
}
for(int n=29; n>=6; n--)
{
system("cls");
fengche1(n);
fengche2(n);
fengche3(n);
Sleep(100);
}
break;
}
if(xuanze=='2')
{
kaifazhexinxi();
break;
}
if(xuanze=='3')
{
goto biaoji3;
}
break;
case '5'://退出,此时若存在任何的更改未保存会提示
if(k==1)
{
jiemian(10);
printf("(Yes/No不保存或不选择重启应用后将丢失n\n");
fflush(stdin); //清除键盘缓冲区
scanf("%c",&xuanze);
if(xuanze=='y'||xuanze=='Y')
{
i=0;
FILE*sj=fopen("shuju.txt","w");//清空以前的
while(1)
{
if(i==0)
{
p2=head;
i=1;
}
else
{
if(p2->jiedian==NULL)
{
break;
}
p3=p2->jiedian;
p2=p3;
}
fputs(p2->name,sj);
fputs(p2->number,sj);
fputs(p2->sex,sj);
fputs(p2->age,sj);
fputs(p2->mark,sj);
}
fclose(sj);
printf("\n保存成功!!!\n");
k=0;
Sleep(700);
}
else
{
if(xuanze=='n'||xuanze=='N')
{
printf("\n释放内存中...\n");
Sleep(700);
}
else
{
jiemian(0);
goto biaoji3;
break;
}
}
}
else
{
jiemian(16);
printf("\n释放内存中...\n");
Sleep(700);
}
if(shujuliang==0)
{
printf("退出中");
exit(1);
break;
}
i=0;
printf("退出中");
while(1)
{
printf(".");
if(i==0)
{
p2=head;
i=1;
}
else
{
if(p2->jiedian==NULL)
{
break;
}
p3=p2->jiedian;
p2=p3;
}
free(p2);
}
exit(1);
break;
}
goto biaoji3;
}
}
//界面
void jiemian(int x)
{
switch(x)
{
case 0:
system("cls");
system("color 4f");
printf("******************************************************\n");
printf(" 亲爱的 哥哥 欢迎来到学生成绩管理系统\n");
printf("------------------------------------------------------\n\n\n\n");
printf(" >哥,好好的输入不香吗<\n");
printf(" 错误原因:非法输入\n\n\n\n");
printf("******************************************************\n");
system("pause");
break;
case 1:
system("color 1f");
system("cls");
printf("******************************************************\n");
printf(" 欢迎来到学生成绩管理系统\n");
printf("------------------------------------------------------\n\n\n\n");
printf(" >欢迎使用<\n\n\n\n\n");
printf("******************************************************\n");
system("pause");
system("cls");
printf("******************************************************\n");
printf(" 欢迎来到学生成绩管理系统\n");
printf("------------------------------------------------------\n\n\n\n");
printf(" >1登录<\n");
printf(" >2注册<\n");
printf(" >3退出<\n\n\n");
printf("******************************************************\n\n除选'1''3'外任何操作都为‘2’\n");
break;
case 2:
system("cls");
printf("******************************************************\n");
printf(" 欢迎来到学生成绩管理系统\n");
printf("------------------------------------------------------\n\n\n\n");
printf(" >请输入账号密码<\n\n\n\n\n");
printf("******************************************************\n");
break;
case 3:
system("cls");
printf("******************************************************\n");
printf(" 欢迎来到学生成绩管理系统\n");
printf("------------------------------------------------------\n\n\n\n");
printf(" 你的身份是?\n");
printf(" >1学生<\n");
printf(" >2教师<\n\n\n\n");
printf("******************************************************\n");
break;
case 4:
system("cls");
printf("******************************************************\n");
printf(" 欢迎来到学生成绩管理系统\n");
printf("------------------------------------------------------\n\n\n\n");
printf(" >请输注册的账号和密码<\n\n\n\n\n");
printf("******************************************************\n");
break;
case 5:
system("cls");
printf("\a");
printf("******************************************************\n");
printf(" 欢迎来到学生成绩管理系统\n");
printf("------------------------------------------------------\n\n\n\n");
printf(" >注册成功<\n\n\n\n\n");
printf("******************************************************\n\n自动登录中,请稍后...\n");
Sleep(1000); //停顿2.5秒
break;
case 6:
system("cls");
system("color 4f");
printf("\a");
printf("******************************************************\n");
printf(" 欢迎来到学生成绩管理系统\n");
printf("------------------------------------------------------\n\n\n\n");
printf(" >登录失败<\n\n\n\n\n");
printf("******************************************************\n");
break;
case 7:
system("cls");
system("color 4f");
printf("\a");
printf("******************************************************\n");
printf(" 亲爱的 学生 欢迎来到学生成绩管理系统\n");
printf("------------------------------------------------------\n\n\n\n");
printf(" >你还没有资格这么做哦<\n");
printf(" 错误原因:权限不足\n\n\n\n\n");
printf("******************************************************\n");
system("pause");
break;
case 8:
system("cls");
system("color 1f");
printf("******************************************************\n");
printf(" 亲爱的 老师 欢迎来到学生成绩管理系统\n");
printf("------------------------------------------------------\n\n\n\n");
printf(" >1查询数据类<\n");
printf(" >2添加数据<\n");
printf(" >3修改数据类<\n");
printf(" >4其他类<\n");
printf(" >5跑路<\n\n");
printf("******************************************************\n");
break;
case 9:
system("color 1f");
system("cls");
printf("******************************************************\n");
printf(" 亲爱的 同学 欢迎来到学生成绩管理系统\n");
printf("------------------------------------------------------\n\n\n\n");
printf(" >1查询数据类<\n");
printf(" 2添加数据 !权限不足!\n");
printf(" 3修改数据类 !权限不足!\n");
printf(" 4开发者信息\n");
printf(" >5跑路<\n\n");
printf("******************************************************\n");
break;
case 10:
system("color 1f");
system("cls");
printf("\a");
printf("******************************************************\n");
printf(" 欢迎来到学生成绩管理系统\n");
printf("------------------------------------------------------\n\n\n\n");
printf(" >本次有修改未保存<\n\n\n\n\n");
printf("******************************************************\n\n是否保存后再离开?\n");
break;
case 11:
system("color 1f");
system("cls");
printf("******************************************************\n");
printf(" 亲爱的 老师 欢迎来到学生成绩管理系统\n");
printf("------------------------------------------------------\n\n\n\n");
printf(" 请输入添加的数据(禁填空格)\n\n\n\n\n");
printf("******************************************************\n");
break;
case 12:
system("color 1f");
system("cls");
printf("******************************************************\n");
printf(" 亲爱的 同学 欢迎来到学生成绩管理系统\n");
printf("------------------------------------------------------\n\n\n\n");
printf(" >1查询信息<\n");
printf(" 2整体查看 !权限不足\n");
printf(" >3上一界面<\n\n\n\n\n");
printf("******************************************************\n");
break;
case 13:
system("color 1f");
system("cls");
printf("******************************************************\n");
printf(" 亲爱的 老师 欢迎来到学生成绩管理系统\n");
printf("------------------------------------------------------\n\n\n\n");
printf(" >1查询信息<\n");
printf(" >2整体查看<\n");
printf(" >3上一界面<\n\n\n\n\n");
printf("******************************************************\n");
break;
case 14:
system("cls");
printf("\a");
printf("******************************************************\n");
printf(" 亲爱的 同学 欢迎来到学生成绩管理系统\n");
printf("------------------------------------------------------\n\n\n\n");
printf(" >无该学生信息<\n\n\n\n\n");
printf("******************************************************\n");
system("pause");
break;
case 15:
system("cls");
printf("\a");
printf("******************************************************\n");
printf(" 亲爱的 老师 欢迎来到学生成绩管理系统\n");
printf("------------------------------------------------------\n\n\n\n");
printf(" >无该学生信息<\n\n\n\n\n");
printf("******************************************************\n");
system("pause");
break;
case 16:
system("color 1f");
system("cls");
printf("******************************************************\n");
printf(" 欢迎来到学生成绩管理系统\n");
printf("------------------------------------------------------\n\n\n\n");
printf(" >本次无未保存修改<\n\n\n\n\n");
printf("******************************************************\n");
break;
case 17:
system("color 1f");
system("cls");
printf("******************************************************\n");
printf(" 亲爱的 同学 欢迎来到学生成绩管理系统\n");
printf("------------------------------------------------------\n\n\n\n");
printf(" >退出中<\n\n\n\n\n");
printf("******************************************************\n");
break;
case 18:
system("color 1f");
system("cls");
printf("******************************************************\n");
printf(" 亲爱的 老师 欢迎来到学生成绩管理系统\n");
printf("------------------------------------------------------\n\n\n\n");
printf(" >1修改学生<\n");
printf(" >2删除学生<\n");
printf(" >3退出<\n\n\n");
printf("******************************************************\n");
break;
case 19:
system("cls");
system("color 1f");
printf("******************************************************\n");
printf(" 亲爱的 老师 欢迎来到学生成绩管理系统\n");
printf("------------------------------------------------------\n\n\n\n");
printf(" >1大风车<\n");
printf(" >2关于<\n");
printf(" >3返回<\n\n\n\n");
printf("******************************************************\n");
break;
}
}
//注册
int zhuce(int quanxianxuanze)
{
int changdu,changdu1,fanhui=0;
char quanxian1[]= {"1\n"},quanxian2[]= {"2\n"},name[100],password[100];
FILE*zhanghao1=fopen("zhanghao.txt","a+");
printf("请输入账号:");
scanf("%s",&name);
changdu=strlen(name);//获得长度后对输入txt文件中的字符串添加回车
name[changdu]='\n';
name[changdu+1]='\0';
printf("请输入密码:");
scanf("%s",&password);
changdu1=strlen(password);
password[changdu1]='\n';
password[changdu1+1]='\0';
if(quanxianxuanze==1)
{
fputs(quanxian1,zhanghao1);
fanhui=1;
};
if(quanxianxuanze==2)
{
fputs(quanxian2,zhanghao1);
fanhui=2;
}
fputs(name,zhanghao1);
fputs(password,zhanghao1);
fclose(zhanghao1);
return fanhui;
}
//登录
int denglu()
{
int TorF=0,fanhui=0,quanxianfanhuizhi=0; //登录判断,返回值,权限返回值
char name[100]= {0},password[100]= {0},dengluname1[100],name1[100],password1[100],quanxian[100];
printf("请输入账号:");
scanf("%s",&name);
printf("请输入密码:");
scanf("%s",&password);
FILE*denglu=fopen("zhanghao.txt","r");
while(1)
{
TorF=0;
if(fscanf(denglu,"%s",quanxian)==EOF)//判断是否结束
{
break;
}
else
{
if(strcmp(quanxian,"1")==0)
{
quanxianfanhuizhi=1;
}
if(strcmp(quanxian,"2")==0)
{
quanxianfanhuizhi=2;
}
}
fscanf(denglu,"%s",name1);
fscanf(denglu,"%s",password1);
if(strcmp(name1,name)==0)
{
TorF+=1;
};
if(strcmp(password1,password)==0)
{
TorF+=1;
break;
};
}
if(TorF==2)
{
fanhui=quanxianfanhuizhi;
}
else
{
fanhui=0;
};
return fanhui;
}
//开发者信息
void kaifazhexinxi()
{
system("cls");
printf(" 初始设计图纸(后期会有其他功能) \n");
printf(" |-查询信息 \n");
printf(" |-学生端-|-查询信息-|-返回 \n");
printf(" |-登录-| |- \n");
printf(" | | |-退出 \n");
printf(" | | |-查询信息 \n");
printf(" 主页面 |-注册-| |-查询信息-|-整体查看 \n");
printf(" | | | |-返回 \n");
printf(" | | |-添加信息 \n");
printf(" | |-教师端-| |-修改信息--|-均为修改单独学生 \n");
printf(" | |-更改信息-|-删除信息--| \n");
printf(" |-退出 | |-返回 \n");
printf(" |-退出 \n");
printf(" 核心方法:链表 \n");
printf(" 实现功能:1单独查询学生信息2删除单独学生信息 \n");
printf(" 3查询所有数据4智能化的保存系统5添加单独学生信息 \n");
printf(" 6修改单独学生信息 \n");
system("pause");
}
void fengche1(int x)
{
int a,a1,b=0,b1,c=1,c1;
a=x-1;
while(a--)
{
b1=b;
while(b1--)
{
printf(" ");
};
a1=x;
while(a1--)
{
printf("*");
};
for( int i=x-2; i>0; i--)
{
printf(" ");
};
c1=c;
while(c1--)
{
printf("*");
};
printf("\n");
x=x-1;
c=c+1;
b=b+1;
}
}
void fengche2(int x)
{
int a=2*x-1;
while(a--)
{
printf("*");
};
printf("\n");
}
void fengche3(int x)
{
int a,b,b1,c=0,c1,d=2,d1;
a=x-1;
b=x-1;;
while(a--)
{
b1=b;
d1=d;
c1=c;
while(b1--)
{
printf("*");
};
while(c1--)
{
printf(" ");
};
while(d1--)
{
printf("*");
};
for(int j=x-2; j>0; j--)
{
printf(" ");
};
printf("\n");
b=b-=1;
c=c+1;
d=d+1;
}
}
很长吧