#include<stdio.h>
#include<string.h>
#include<conio.h>
#include <stdlib.h>
struct sts
{
int num;
char name[20];
int score;
}st1[10];
void IDkey();
void Input();
void Sselect();
void Modfile();
void Output();
void Delete();
void MainMenu();
void WriteStu();
void ReadStu();
void main()
{
IDkey();
MainMenu();
}
/*****************************************功能模块函数*************************************************/
//登陆界面
void IDkey()
{
int a,name,pwd,n,i=0,j;
char name1[10],Name1[10]="1",pwd1[16],Pwd1[16]="1";
char name2[10],Name2[10]="student",pwd2[16],Pwd2[16]="student";
char Select1[5]="1",Select2[5]="2",Select3[5]="3";
char ch,select[5];
printf("________________________________________________________________________________\n\n\n");
printf("\t\t\t欢迎进入学生信息成绩管理系统中心\n\n");
printf(" \t 制作人:南阳理工学院-计算机科学与技术系-计科一班-欧阳建华\n\n"); printf(" \t\t\t|----------请按键选择----------|\n");
printf(" \t\t\t| |\n");
printf(" \t\t\t| 1、管理员进入 |\n");
printf(" \t\t\t| 2、普通用户进入 |\n");
printf(" \t\t\t| 3、退出该系统 |\n");
printf(" \t\t\t| |\n");
printf(" \t\t\t|------------------------------|\n");
printf("请选择(1-3)...\n");
for(i=0;;i++)
{
gets(select);
if((strcmp(Select1,select)==0) || (strcmp(Select2,select)==0) (strcmp(Select3,select)==0))
break;
else
{
printf("输入有误,请输入1\\2\\3进行选择...\n");
continue;
}
}
if((strcmp(Select1,select)==0))
for(i=1;;i++)
{
printf("请输入您的帐号:");
//getchar();
gets(name1);
printf("请输入您的密码:");
gets(pwd1);
if ( (strcmp(Name1,name1)==0) && (strcmp(Pwd1,pwd1)==0))
{
printf("登陆验证成功,按Enter键确认后进入...");
getchar();
MainMenu();
}
else
{
if(i==3)
{
printf("您输入错误信息已达3次,系统强制您退出!\n"); printf("--------------------------------------\n");
return 0; ||
} } else { printf("你输入的账号或密码错误(%d),请重试!\n",i); printf("----------------------------------\n"); } } } if((strcmp(Select2,select)==0)) for(i=1;;i++) { printf("请输入您的帐号:"); //getchar(); gets(name2); printf("请输入您的密码:"); gets(pwd2); if ( (strcmp(Name2,name2)==0) && (strcmp(Pwd2,pwd2)==0)) { printf("登陆验证成功,按Enter键确认后进入..."); getchar(); ReadStu(); } else { if(i==3) { printf("您输入错误信息已达3次,系统强制您退出!\n"); printf("--------------------------------------\n"); return 0; } else { printf("你输入的账号或密码错误(%d),请重试!\n",i); printf("----------------------------------\n"); } } } if((strcmp(Select3,select)==0)) { printf("按任意键退出!等待请求中...\n"); exit(0); }
// 输入函数
void Input()
{
int i,s,n=0;
char ch,go_back;
system("cls");
printf("\n__________________________________成绩录入界面
__________________________________");
for(i=0;i<10;i++)
{
if(st1[i].num!=0)
n++;
}
do
{
printf("\n\n\n 系统已有%d个学生的信息 \n",n);
printf(" 请输入第%d个学生的信息 \n\n",n+1);
printf("请输入第%d个学生的学号:",n+1);
scanf("%ld",&st1[n].num);
printf("请输入第%d个学生的姓名:",n+1);
getchar();
gets(st1[n].name);
printf("请输入第%d个学生的成绩:",n+1);
scanf("%d",&st1[n].score);
if(st1[n].score>100)
{
printf("所输入的分值不能大于100,请重新输入! \n");
continue;
}
printf("----------------------------------------------\n");
printf("学号:%-10ld\n姓名:%-10s\n成绩:%d",st1[n].num ,st1[n].name,st1[n].score );
printf("\n\n您是否还要录入下一个学生的信息?(Y/N) ");
n++;
sc: scanf("%s",&ch);
if(ch=='N' || ch == 'n')
{
break;
}
else if(ch!='Y' && ch != 'y')
{
printf("您输入的不是有效的选择值!请重新输入...\n");
goto sc;
}
}while(ch=='Y' || ch == 'y');
look: system("cls");
getchar();
printf("\n\n--------------------------------------------------------------------------------\n"); printf("\t\t\t您本次操作录入的全部信息如下:\n");
for( i=0;i<10;i++)
{
if(st1[i].num==0)
continue;
printf("--------------------------------------------------------------------------------\n");
printf("学号:%-10ld\n姓名:%-10s\n成绩:%d",st1[i].num ,st1[i].name,st1[i].score); printf("\n--------------------------------------------------------------------------------\n"); }
printf("您是否要返回主菜单选项卡界面?(Y\\N) ");
goback: scanf("%s",&go_back);
if(go_back=='Y' || go_back == 'y')
{
MainMenu();
}
else if(go_back=='N' && go_back == 'n')
{
goto look;
}
else
{
printf("您输入的不是有效的选择值!请重新输入...\n");
goto goback;
}
//_______________________________________________________________________________
// MainMenu();
}
// 主菜单选项卡界面 void MainMenu() { int select; system("cls"); printf("________________________________________________________________________________\n\n\n"); printf("\t\t\t欢迎进入学生信息成绩管理系统中心\n\n"); printf(" \t 制作人:南阳理工学院-计算机科学与技术系-计科一班-欧阳建华\n\n"); printf(" \t\t\t|----------请按键选择----------|\n"); printf(" \t\t\t| printf(" \t\t\t| 1、信息输入 printf(" \t\t\t| 2、信息修改 printf(" \t\t\t| 3、信息删除 printf(" \t\t\t| 4、信息输出 printf(" \t\t\t| 5、信息存取 printf(" \t\t\t| 6、信息查询 printf(" \t\t\t| 7、退出该系统 printf(" \t\t\t| printf(" \t\t\t|------------------------------|\n"); printf("请选择(1-7)...\n"); scanf("%d",&select); if(select==1) Input(); else if(select==2) Modfile(); else if(select==3) Delete(); else if(select==4) Output(); else if(select==5) WriteStu(); else if(select==6) Sselect(); else if(select==7) IDkey(); }
//修改函数 void Modfile()
|\n"); |\n"); |\n"); |\n"); |\n"); |\n"); |\n"); |\n"); |\n");
{
int i,a,scor,l,f,num,c;
char ch1,ch2;
lop: printf("您是否要修改信息? (Y\\N)\n");
selectt: scanf("%s",&ch1);
if(ch1=='N' || ch1=='n')
MainMenu();
else if(ch1=='Y' || ch1=='y')
{
printf("请输入要修改的学号:");
scanf("%d",&num);
for(f=1,i=0;i<5;i++)
if(num==st1[i].num )
{
f=0;
l=i;
break;
}
if(f==1 )
{
printf("对不起您输入的信息有错误!请重新输入!\n\n"); goto lop;
}
do{
printf("请输入你要修改的内容:\n");
printf("\n< 一 > 修改姓名请按 1 操作\n"); printf("< 二 > 修改成绩请按 2 操作\n");
printf("< 三 > 修改姓名和成绩请按 3 操作\n"); scanf("%d",&c);
if(c==1)
{
printf("请输入您要更正的姓名:");
scanf("%s",st1[l].name );
}
if(c==2)
{
printf("请输入您要更正的成绩:");
scanf("%d",&scor);
st1[l].score =scor;
}
if(c==3)
{
printf("请输入您要更正的姓名:");
scanf("%s",st1[l].name );
printf("请输入您要更正的成绩:");
scanf("%d",&scor);
st1[l].score =scor;
}
printf("你修改过的信息如下:\n");
printf("学号:%d\n姓名:%s\n成绩:%d\n",st1[l].num ,st1[l].name ,st1[l].score );
printf("还要继续进行修改吗? (Y\\N)");
scanf("%s",&ch2);
if(ch2=='N' || ch2=='n')
MainMenu();
else
continue;
}while(ch2=='Y' || ch2=='y');
}
else
{
printf("输入的不是有效的选择值!请重新选择...\n");
goto selectt;
}
}
// 查询函数
void Sselect()
{
int xuehao,flag=1,j=1,mi,k=1,select,ch,i;
char Name[20];
struct sts *p1;
do
{
printf("请输入查找方式:\n键入(0)按姓名查询\n键入(1)按学号查询\n按Enter键结束\n请选择...\n");
scanf("%d",&select);
getchar();
if(select==1)
{
printf("请输入您要查找的学号,按Enter键结束:\n");
scanf("%d",&xuehao);
p1=st1;
do
{
if(xuehao==p1->num)
{
flag=1;
printf("No\tName\t\tScore\t\n");
printf("%d\t%s\t\t%d\n",p1->num,p1->name,p1->score); break;
}
else
{
flag=0;
p1++;
}
}while(p1->num!='\n');
if(flag==0)
{
printf("doesn't exit!\n");
}
}
if(select==0)
{
printf("请输入您要查找的姓名,按Enter键结束:\n"); gets(Name);
p1=st1;
do
{
if(strcmp(Name,p1->name)==0)
{
flag=1;
printf("No\tName\t\tScore\t\n");
printf("%d\t%s\t\t%d\n",p1->num,p1->name,p1->score); break;
}
else
{
flag=0;
p1++;
}
}while(p1->num!='\n');
if(flag==0)
printf("doesn't exit!\n");
}
printf("还要继续进行查询吗?(Y\\N)\n");
scanf("%s",&ch);
if(ch=='N' || ch=='n')
{
exit(0);
}
}while(ch=='Y' || ch=='y');
}
//删除函数--
void Delete()
{
int xuehao,i,flag;
char shan,ch;
do
{
printf("请输入你要删除的学号:");
scanf("%d",&xuehao);
i=-1;flag=1;
do
{
i++;
if(xuehao==st1[i].num)
{
flag=0;
break;
}
}while(st1[i].num!=0);
if(flag)
{
printf("对不起,您查询的信息不存在,请重新查询!\n"); continue;
}
else
{
looop: printf("\t\t学生信息管理列表\n");
printf("\t\t学号\t姓名\t成绩\n");
printf("\t\t%ld\t%s\t%d\n",st1[i].num,st1[i].name,st1[i].score); printf("你确定要要删除此学号?(Y\\N)");
scanf("%s",&shan);
if(shan=='Y'||shan=='y')
{
printf("\t\t系统提示您:学号为%d的信息已删除!\n",st1[i].num); do
{
// printf("%d",i);
st1[i].num=st1[i+1].num;
strcpy(st1[i].name,st1[i+1].name);
st1[i].score=st1[i+1].score;
i++;
}while(st1[i].num!=0);
}
if(shan!='n'&&shan!='N'&&shan!='y'&&shan!='Y')
{
printf("您的输入有误,请重新输入!\n");
goto looop;
}
}
printf("您是否还要继续进行删除操作吗?(Y\\N)\n");
scanf("%s",&ch);
if(ch=='N' || ch=='n')
MainMenu();
}while(ch=='Y' || ch=='y');
}
// 输出函数---
void Output()
{
char select;
struct sts *p1;
p1=st1;
printf("No\tName\t\tScore\t\n");
while(p1->num!=0)
{
printf("%d\t%s\t\t%d\n",p1->num,p1->name,p1->score);
p1++;
}
printf("是否进入主菜单界面?(Y\\N)\n");
scanf("%s",&select);
if(select=='Y' || select=='y')
MainMenu();
else if(select=='N' || select== 'n')
return 0;
else
printf("输入的不是有效的选择值!请重新选择...\n"); }
//文件写入---
void WriteStu()
{
FILE *Fp=NULL;
Fp=fopen("student.txt","w");
if(Fp==NULL)
{
printf("Can not open student.txt");
exit(0);
}
fwrite(&st1,sizeof(st1),1,Fp);
fclose(Fp);
}
//文件读出---
void ReadStu()
{
int i;
FILE *Fp=NULL;
Fp=fopen("student.txt","r");
if(Fp==NULL)
{
printf("Can not open student.txt");
exit(0);
}
fread(&st1,sizeof(st1),1,Fp);
Sselect();
fclose(Fp);
}