c语言成绩查询系统 包含指针,求助 成绩管理系统 指针

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

#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();

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值