欢迎光临散文网 会员登陆 & 注册

实验6

2023-06-16 11:57 作者:口袋袋errrrrrrrrr  | 我要投稿

#include <stdio.h>

#include <stdlib.h>

#include <string.h>

#define len 15

#define N 50

#define MAX_LINE 1024

struct Student{

       int q;

   char code[len+1];

   char name[len+1];

   float score[3];

   float average;

   float total; 

}stu[N];

int k=1,n=0,m=0; /*全局变量,n为当前记录的学生人数,m为新增加的学生人数*/

void insert(); //插入信息,并计算总分和平均分 

void modify(); //修改信息

void del(); //删除信息 

void menu(); 

void sort(); 

int main()

{

     while(k) menu();

     system("pause");

return 0; 

}   

void insert(){

     int i=n,j,flag;

printf("请输入新增加的学生数:\n"); 

scanf("%d",&m);

if(m>0){

        do{

     flag=1;

while(flag){

     flag=0;

     printf("请输入第 %d 个学生的学号:\n",i+1);

     scanf("%s",stu[i].code);

     for(j=0;j<i;j++) 

             if(strcmp(stu[i].code,stu[j].code)==0){

         printf("已有该学号,请检查后重新输入!\n");

flag=1;

break;

printf("请输入第 %d 个学生的学号:\n",i+1);

scanf("%s",stu[i].code);

printf("请输入第 %d 个学生的姓名:\n",i+1);

scanf("%d",&stu[i].name);

printf("请输入第 %d 个学生的语文成绩:\n",i+1);

scanf("%f",&stu[i].score[0]);

printf("请输入第 %d 个学生的数学成绩:\n",i+1);

scanf("%f",&stu[i].score[1]);

printf("请输入第 %d 个学生的英语成绩:\n",i+1);

scanf("%f",&stu[i].score[2]); 

stu[i].total=stu[i].score[0]+stu[i].score[1]+stu[i].score[2];

stu[i].average=stu[i].total/3.0; 

if(flag==0) i++;

    }while(i<n+m);

}

n+=m;

printf("信息增加完毕!\n\n");

sort();

system("pause");

void modify(){

         int i,item,num=-1;

char sex1,s1[len+1],s2[len+1]; /*最长长度加1*/

float score1;

printf("请输入要修改的学生的学号:\n");

scanf("%s",s1);

for(i=0;i<n;i++)

         if(strcmp(stu[i].code,s1)==0)

num=i; /*保存要修改学生的序号*/

     if(num!=-1){

     printf("------------------------\n"); 

printf("1.修改姓名\n");

printf("2.修改语文成绩\n"); 

printf("3.修改数学成绩\n");

printf("4.修改英语成绩\n");

printf("5.退出本菜单\n");

printf("------------------------\n");

while(1){

         printf("请选择子菜单编号:"); 

scanf("%d",&item); 

switch(item){

             case 1:

     printf("请输入新的姓名:\n");

     scanf("%s",s2); 

strcpy(stu[num].name,s2);

break;

         case 2:

     printf("请输入新的语文成绩:\n");

scanf("%f",&score1);

stu[num].score[0]=score1; 

break;

case 3:

     printf("请输入新的数学成绩:\n");

scanf("%f",&score1);

stu[num].score[1]=score1; 

break; 

case 4:

     printf("请输入新的英语成绩:\n");

scanf("%f",&score1);

stu[num].score[2]=score1; 

break;

     case 5:

     return;

default:

     printf("请在1-5之间选择\n");

}   

     }

printf("修改完毕!请及时保存!\n");

system("pause");

void del(){

         int i,j,flag=0;

         char s1[len+1];

         printf("请输入要删除学生的学号:\n");

scanf("%s",s1);

for(i=0;i<n;i++)

         if(strcmp(stu[i].code,s1)==0){ //查找学生记录 

     flag=1;

for(j=i;j<n-1;j++)

         stu[j]=stu[j+1];

     }

if(flag==0) printf("该学号不存在!\n"); 

if(flag==1) {

         printf("删除成功!\n");

n--;

}

system("pause");


实验6的评论 (共 条)

分享到微博请遵守国家法律