⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 stud.c

📁 C课程设计:(1)学生成绩管理子程序(学生信息录入及修改
💻 C
字号:
#include<stdio.h>
#include<string.h>
struct date
{int year;
 int month;
 int day;
};
struct student
{char num[10];
 char name[8];
 struct date birthday;
 char sex;
 int score[6];
 float ave;
}stu[10];
void main()
{int i,j;
 char k[30];
 FILE *fp;
 for(i=0;i<10;i++)
 {printf("\n请输入第%d个学生的信息:\n",i+1);
  printf("学号:");
  scanf("%s",stu[i].num);
  printf("姓名:");
  scanf("%s",stu[i].name);
  printf("出生年月(XXXX-XX-XX):");
  scanf("%d-%d-%d",&stu[i].birthday.year,&stu[i].birthday.month,&stu[i].birthday.day);
  printf("性别(请选择:1—男,2—女):");
  scanf("%s",k);
  while(strcmp(k,"1")!=0&&strcmp(k,"2")!=0){printf("性别选项代号错误,请重新选择输入!\n");printf("性别(请选择:1—男,2—女):");scanf("%s",k);}
  if(strcmp(k,"1")==0)stu[i].sex='M';
  else stu[i].sex='F';
  printf("语文成绩:");
  scanf("%d",&stu[i].score[0]);
  printf("数学成绩:");
  scanf("%d",&stu[i].score[1]);
  printf("英语成绩:");
  scanf("%d",&stu[i].score[2]);
  printf("物理成绩:");
  scanf("%d",&stu[i].score[3]);
  printf("化学成绩:");
  scanf("%d",&stu[i].score[4]);
  printf("生物成绩:");
  scanf("%d",&stu[i].score[5]);
  printf("以上信息确认无误?(请选择:1—确认无误,2—返回修改):");
  scanf("%s",k);
  while(strcmp(k,"1")!=0&&strcmp(k,"2")!=0){printf("确认选项代号错误,请重新选择输入!\n");printf("以上信息确认无误?(请选择:1—确认无误,2—返回修改):");scanf("%s",k);}
  if(strcmp(k,"1")==0)continue;
  else 
  loop:{ printf("请选择需要修改的信息项(一次只能选择修改一项):\n");
         printf("1—学号       2—姓名       3—出生年月   4—性别        5—语文成绩\n");
         printf("6—数学成绩   7—英语成绩   8—物理成绩   9—化学成绩   10—生物成绩\n");
         scanf("%s",k);
		 while(strcmp(k,"1")!=0&&strcmp(k,"2")!=0&&strcmp(k,"3")!=0&&strcmp(k,"4")!=0&&strcmp(k,"5")!=0&&strcmp(k,"6")!=0&&strcmp(k,"7")!=0&&strcmp(k,"8")!=0&&strcmp(k,"9")!=0&&strcmp(k,"10")!=0)
		 {printf("选择修改的信息项代号错误,请重新选择输入: ");scanf("%s",k);}
         if(strcmp(k,"1")==0){printf("学号:");scanf("%s",stu[i].num);}
         else if(strcmp(k,"2")==0){printf("姓名:");scanf("%s",stu[i].name);}
         else if(strcmp(k,"3")==0){printf("出生年月(XXXX-XX-XX):");scanf("%d-%d-%d",&stu[i].birthday.year,&stu[i].birthday.month,&stu[i].birthday.day);}
         else if(strcmp(k,"4")==0)
		 {printf("性别(请选择:1—男,2—女):");scanf("%s",k);
          while(strcmp(k,"1")!=0&&strcmp(k,"2")!=0){printf("性别选项代号错误,请重新选择输入!\n");printf("性别(请选择:1—男,2—女):");scanf("%s",k);}
          if(strcmp(k,"1")==0)stu[i].sex='M';
          else stu[i].sex='F';}
         else if(strcmp(k,"5")==0){printf("语文成绩:");scanf("%d",&stu[i].score[0]);}
         else if(strcmp(k,"6")==0){printf("数学成绩:");scanf("%d",&stu[i].score[1]);}
         else if(strcmp(k,"7")==0){printf("英语成绩:");scanf("%d",&stu[i].score[2]);}
         else if(strcmp(k,"8")==0){printf("物理成绩:");scanf("%d",&stu[i].score[3]);}
         else if(strcmp(k,"9")==0){printf("化学成绩:");scanf("%d",&stu[i].score[4]);}
         else {printf("生物成绩:");scanf("%d",&stu[i].score[5]);}
         printf("该学生所有需要修改的信息项修改完毕?(请选择:1—是,返回   2—否,继续修改): ");
         scanf("%s",k);
         while(strcmp(k,"1")!=0&&strcmp(k,"2")!=0){printf("确认选项代号错误,请重新选择输入!\n");printf("该学生所有需要修改的信息项修改完毕?(请选择:1—是,返回   2—否,继续修改): ");scanf("%s",k);}
         if(strcmp(k,"1")==0)continue;
         else goto loop;
  }
 }
 for(i=0;i<10;i++)
 {int sum=0;
  for(j=0;j<6;j++)
  {sum=sum+stu[i].score[j];}
  stu[i].ave=sum/6.0;  
 }
fp=fopen("stud","w");
for(i=0;i<10;i++)
 if(fwrite(&stu[i],sizeof(struct student),1,fp)!=1)
   printf("写入学生信息时产生错误!\n");
fclose(fp);
fp=fopen("stud","r");
printf("\n\n输出学生信息列表:\n");
printf("学号\t\t姓名\t\t出生年月\t性别\t语文成绩\t数学成绩\t英语成绩\t物理成绩\t化学成绩\t生物成绩\t平均成绩\n");
for(i=0;i<10;i++)
{fread(&stu[i],sizeof(struct student),1,fp);
 printf("%s\t\t%s\t\t%d-%d-%d\t%c\t%d\t\t%d\t\t%d\t\t%d\t\t%d\t\t%d\t\t%6.2f\n",stu[i].num,stu[i].name,stu[i].birthday.year,stu[i].birthday.month,stu[i].birthday.day,stu[i].sex,stu[i].score[0],stu[i].score[1],stu[i].score[2],stu[i].score[3],stu[i].score[4],stu[i].score[5],stu[i].ave);}
}  




	


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -