该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
#include
#include
#include
#include
#include
#define LEN sizeof(struct student)
struct student
{
char id [10];
char name[50];
char sex[2];
float maths;
float english;
float computer;
}stu[500];
int num=0;
void adduser()/*成绩录入*/
{ struct student *p=stu;
FILE *fp;
fp=fopen("2.txt","a+");
system("cls");
printf(" *******************学生成绩录入*******************\n");
printf("\t\t\t\t请输入学生学号:");
scanf("%s",p->id);
printf("\t\t\t\t请输入学生姓名:");
scanf("%s",p->name);
printf("\t\t\t\t请输入学生性别:");
scanf("%s",p->sex);
printf("\t\t\t\t请输入学生数学成绩:");
scanf("%f",&p->maths);
printf("\t\t\t\t请输入学生英语成绩:");
scanf("%f",&p->english);
printf("\t\t\t\t请输入学生电脑成绩:");
scanf("%f",&p->computer);
fwrite(p,sizeof(struct student),1,fp);
fclose(fp);
p++;
printf("是否继续添加?y/n\n");
if (getch()=='y' || getch()=='Y')
adduser();
else
fclose (fp);
}
void query()/*浏览所有信息*/
{ int i;
struct student *p=stu;
int num=0;
FILE *fp;
fp=fopen("2.txt","r+");
system("cls");
p=(struct student *)malloc(100000*sizeof(struct student));
while(!feof(fp))
{
fread(p+num++,sizeof(struct student),1,fp);
}
if(num!=0)
{
printf("\t\t************以下是所有学生全部信息*****************\n");
for(i=0;i
{
printf("\t\t\t 学号:%s\n",(p+i)->name);
printf("\t\t\t 姓名:%s\n",(p+i)->name);
printf("\t\t\t 性别:%s\n",(p+i)->sex);
printf("\t\t\t 数学成绩:%f\n",(p+i)->maths);
printf("\t\t\t 英语成绩:%f\n",(p+i)->english);
printf("\t\t\t 电脑成绩:%f\n",(p+i)->computer);
}
system("pause");
}
else
{ printf("系统中没有信息!!!\n");
printf("按任意键返回主菜单");
getch();
}
free(p);
fclose(fp);
system("cls");
}
void modify ()/*查询*/
{
struct student *p;
char id[20];
int i,j=0;
FILE *fp;
system("cls");
fp=fopen("2.txt","r+");
p=(struct student *)malloc(100*sizeof(struct student));
while(!feof(fp))
{
fread(p+j++,sizeof(struct student),1,fp);
}
printf("请输入需要查询学生的学号:");
scanf("%s",&id);
for(i=0;i
if(strcmp((p+i)->id,id)==0)
{
break;
}
if(i
{
printf("\t\t以下是该学生信息:\n");
printf("\t\t此学生的姓名为:%s\n",(p+num)->name);
printf("\t\t此学生的性别为:%s\n",(p+num)->sex);
printf("\t\t此学生的数学成绩为:%f\n",(p+num)->maths);
printf("\t\t此学生的英语成绩为:%f\n",(p+num)->english);
printf("\t\t此学生的电脑成绩为:%f\n",(p+num)->computer);
printf("是否继续查询 y/n?\n");
if (getch()=='y' || getch()=='Y')
modify ();
else
fclose (fp);
}
free(p);
}
void xg()/*修改*/
{
struct student *p;
char id[20];
int i,j=0;
FILE *fp;
system("cls");
fp=fopen("2.txt","r+");
p=(struct student *)malloc(100*sizeof(struct student));
while(!feof(fp))
{
fread(p+j++,sizeof(struct student),1,fp);
}
printf("请输入需要修改学生的学号:");
scanf("%s",&id);
for(i=0;i
if(strcmp((p+i)->id,id)==0)
{
break;
}
if(i
{ printf("\t\t此学生的姓名为:%s\n",p->name);
printf("\t\t请输入修改后数学成绩");
scanf("%f",(p+num)->maths);
printf("\t\t请输入修改后的英语成绩");
scanf("%f",(p+num)->english);
printf("\t\t请输入修改后的电脑成绩");
scanf("%f",(p+num)->computer);
fseek(fp,i*sizeof(struct student),0);
fwrite((p+i),sizeof(struct student),1,fp);
fclose(fp);
printf("信息修改成功!!!!\n");
system("pause");
}
else
{
printf("系统中无此条记录。");
}
}
void sortbygrade()/*排序*/
{}
void del()/*删除*/
{}
void kx() /*开心一刻*/
{
int magic;
int guess;
int counter;
system("cls");
srand(time(NULL));
magic=rand()%100+1;
counter=0;
do
{
printf("请输入你要猜的数字:");
scanf("%d",&guess);
counter ++;
if(guess>magic)
printf("错,你输入的数字太大了!\n");
else if(guess
printf("错,你输入的数字太小了!\n");
else
printf("太棒了,你猜对了!\n");
}while((guess!=magic) && (counter<10));
printf("counter=%d\n", counter);
}
void index()/*主界面*/
{ int select;
while(1)
{ system("cls");
printf("\n\t 学生成绩管理系统 ");
printf("\n\t=============================");
printf("\n\t 1.录入学生成绩 ");
printf("\n\t 2.查询所有学生成绩记录 ");
printf("\n\t 3.查询学生成绩 ");
printf("\n\t 4.按成绩进行排序 ");
printf("\n\t 5.修改学生成绩记录 ");
printf("\n\t 6.删除学生成绩记录 ");
printf("\n\t 7.开心一刻 ");
printf("\n\t 0.退出 ");
printf("\n\t=============================");
printf("\n\t 请选择<1-8>\n");
scanf("%d",&select);
switch(select)
{ case 1:{adduser();break;}
case 2:{query();break;}
case 3:{modify ();break;}
case 4:{modify ();break;}
case 5:{xg();break;}
case 6:{del ();break;}
case 7:{kx(); break;}
case 0:
{ printf("bay bay\n");
system("pause");
getchar();
exit(0);
}
}
}
}
void login()
{
int i=0,count=0;
char sz1[20]="123",sz2[20];
char ch;
system("cls");
while(1)
{
printf("请输入密码:");
while((ch=getch())!=13)
{sz2[i++]=ch;
printf("*");
if(i>=20)
break;
}
sz2[i]='\0';
if(strcmp(sz1,sz2)==0)
{
printf("密码正确!");
getch();
index();
break;
}
else
{count++;
printf("密码错误,请重新输入:");
if(count>=3)
{printf("密码错误超过3次");
break;}}
}
}
void welcome ()
{
printf("\t************************************************************\n");
printf("\t ★★★ ★★★ ★★★ \n");
printf("\t ★ 欢 ★ ★ ★ ★ 迎 ★ \n");
printf("\t ★ 进 ★ ★ ★ ★ 入 ★ \n");
printf("\t ★ 学 生 成 绩 管 理 系 统 ★ \n");
printf("\t ★ ★ ★ \n");
printf("\t ★ ★ ★ ★ \n");
printf("\t ★ ★ ★ ★ \n");
printf("\t ★ ★ ★ ★ \n");
printf("\t ★ ★ \n");
printf("\t************************************************************\n");
system("pause");
}
void main()
{
welcome();
login();
getch();
}