一、结构体

数组中的各元素是属于同一个类型的。有时需要将不同类型的数据组合成一个整体,以便于引用。如,一个学生的学号、姓名、性别、年龄、成绩、家庭地址等项。这些项都与某一学生相联系。如果分别定义为互相独立的简单变量,是难以反映它们之间的内在联系的。应当把它们组织成一个组合项,在一个组合项中包含若干个类型不同(当然也可以相同)的数据项。C语言提供了这样一种数据结构,它称为结构体(structure)。它相当于其它高级语言中的“记录”。

在定义了结构体变量以后,当然可以引用这个变量。

应遵守以下规则:

1·不能将一个结构体变量作为一个整体进行输入和输出。

例如: 已定义:student1和student2为结构体变量并且它们已有值。不能这样引用:

printf(”%d,%s,%c,%d,%f,%s\n,”,student1);

只能对结构体变量中的各个成员分别输出。

引用方式为:结构体变量名.成员名

student1.num

可以对变量的成员赋值,例如: student.num=10010;

赋值语句的作用是将整数10010赋给student1变量中的成员num。

2·如果成员本身又属一个结构体类型,则要用若干个成员运算符,一级一级地找到最低的一级的成员.

例如,对上面定义的结构体变量student1,可以这样访问各成员:

student1.num

student1.name

student1.birthday.month

student1.birthday.day

student1.birthday.year

注意:不能用student1.birthday来访问student1变量中的成员birthday,因为birthday本身是一个结构体变量。

3.对成员变量可以像普通变量一样进行各种运算(根据其类型决定可以进行的运算)。

例如:

student2.score=student1.score;

sum=student1.score+student2.score;

student1.age++;

++student1.age;

由于'.”运算符的优先级最高,因此student1.age++是对student1.age进行自加运算,而不是先对age进行自加运算。

4.可以引用成员的地址,也可以引用结构体变量的地址。如:

scanf("%d”,&student1.num);

(输入student1.num的值)

printf(”%o”,&student1);

(输出student1的首地址)

但不能用以下语句整体读入结构体变量,如

scanf(“%d,%s,%c,%d,%f,%s”,&student1);

结构体变量的地址主要用于作函数参数,传递结构体的地址。

二、设计:学生考勤系统设计

1.设计方案:

该系统能考察学生的出勤情况,所以包括每个班学生的全部信息。每个学生是一条记录,包括姓名﹑性别﹑学号,对应于某天某门课程的出勤情况等。该系统可模拟考勤过程,记录考勤结果,并能在课程结束后按照设定的考勤评分标准自动给出每个学生的考勤分数。

其中,学生可在本系统在线请假以及查看学期内的上课出勤信息。在线请假中,学生可以随时查看到请假的详细进展情况。同时,学生可以查看本期内上课出勤的详细信息,如:查看某个课程在整个学期内的出勤情况——请假、旷课、迟到、早退了多少次,以及具体的时间、任课老师姓名、第几节可等详细信息。学生还可以查看本人的基本信息,如:所在院系、年级、专业、班级、学号、姓名、性别等,以及修改个人用户密码,查看本班的课表。

对于任课老师,其使用本系统时,管理所教班级学生的上课出勤信息以及查看所教学生的上课出勤信息。老师自动列出还没有在网上公布的学生上课出勤信息,系统依据学生请假系统,决定学生上课出勤的最终结果。并且查看自己所教课程、所教班级学生整个上课出勤统计信息以及详细信息。

2、源程序清单:

#include

#include

#include

#define SIZE 3 /*定义常量SIZE便于以后的修改*/

struct student /*定义一个结构体数组存放学生的信息*/

{

int number; /*学号*/

char name[20];/*名字*/

char xueyuan[20];/*学院*/

int cla;/*班级*/

int score[3];/*分数*/

int sum;/*总分*/

int average;/*平均分*/

}stu[SIZE];

void menu();/*调用菜单函数*/

void write();/*读入信息*/

void save(int x);/*保存stud.dat文件函数*/

void SaveOneStudent(int i);/*保存一个学生信息*/

void SaveAllStudent(int n);/*保存全部学生信息*/

void inturn (struct student c[]);/*用于对学生的信息按学号排序的函数*/

void save2();/*将排序后的信息存入student.dat文件中*/

int AddStudent(int n);/*增加学生信息*/

void InputOnestudent(int i);/*输入一个同学信息*/

int DelStudent(int n);/*删除学生信息*/

void ModifyStudent(int n);/*修改学生信息*/

void OutputOneStudent(int i);/*查询一个学生信息*/

void SearchMenu(int n);/*查询学生信息操作*/

void SearchNumber(int n);/*按学号查询学生信息*/

void SearchName(int n);/*按姓名查询学生信息*/

void SearchXueyuan(int n);/*按所在学院查询学生信息*/

void SearchCla(int n);/*按所在班级查询学生信息*/

void tongji();/*学生信息统计操作*/

void tongji2();/*统计不及格率操作*/

void zfsc();/*总分排序操作*/

void avecz();/*按平均分统计人数操作*/

void avecz();/*按平均分统计人数操作*/

void search();/*查找最高成绩操作*/

void tongji2();/*统计不及格率操作*/

void read();/*读取student.dat文件文件中学生的信息*/

/*主函数************************************************************************************/

int main()

{

int n=SIZE;

int choice;/*用户选择变量*/

printf("*******************************************************************************\n");

printf("*                                                                             *\n");

printf("*          Hwadee            &学生成绩文件管理&          Hwadee               *\n");

printf("*                                                                             *\n");

printf("*******************************************************************************\n\n\n");

printf("******************************●●欢迎使用●●*********************************");

while (1)

{

menu();/*调用菜单函数形成操作界面*/

printf("请选择:");

scanf("%d", &choice);

if ( choice==0 )

{

printf("\t\t\t\t谢谢使用!!!");

break;

}

switch(choice) /*多重选择实现功能不同的功能*/

{

case 1:

write();

inturn(stu);

save(SIZE);

break;

case 2:

AddStudent(n);

break;

case 3:

DelStudent(n);

break;

case 4:

ModifyStudent(n);

break;

case 5:

SearchMenu(n);

break;

case 6:

tongji();

break;

case 0:

printf("\n谢谢使用!再见!\n");

default:

printf("\n按键错误!请重新选择!\n");

}/*结束switch*/

}/*结束while*/

}

/*菜单函数*************************************************************************************/

void menu()

{

printf("************请输入所需操作***********\n");/*选择功能菜单*/

printf("*************************************\n");

printf("1.学生成绩写入及排序\n");

printf("2.增加学生信息\n");

printf("3.删除学生信息\n");

printf("4.修改学生信息\n");

printf("5.查询学生信息\n");

printf("6.学生成绩统计操作\n");

printf("0.退出系统\n");

printf("**************************************\n");

}

/*写入函数*************************************************************************************/

void write()

{

int i;/*计数变量*/

for(i=0;i

{

printf("学号:");

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

printf("姓名:");

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

printf("学院:");

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

printf("班级:");

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

printf("高数:");

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

printf("英语:");

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

printf("C语言:");

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

stu[i].sum=(stu[i].score[0]+stu[i].score[1]+stu[i].score[2]);/*计算总成绩*/

printf("总成绩:%d",stu[i].sum);

stu[i].average=(stu[i].score[0]+stu[i].score[1]+stu[i].score[2])/3;/*计算平均成绩*/

printf("平均成绩:%d\n",stu[i].average);

}

}

/*排序函数**************************************************************************************/

void inturn(struct student m[])

{

int i,j;/*计数变量*/

struct student temp;/*中间变量 类型为结构体*/

for(i=0;i

for (j=i+1;j

{

if(m[i].number>m[j].number)

{

temp=m[i];

m[i]=m[j];

m[j]=temp;

}

}

printf("\n排序后的学生信息:\n\n");

for (i=0;i

{

printf("学号%d\t姓名%s\t学院%s\t班级%d\t高数%d\t英语%d\tC语言%d\t总成绩%d\t平均成绩%d\n\n",i+1,stu[i].number,stu[i].name,stu[i].xueyuan,stu[i].cla,stu[i].score[0],stu[i].score[1],stu[i].score[2],stu[i].sum,stu[i].average);

}/*输出排序后的学生信息*/

}

/*写入文件*************************************************************************************/

void save(int x)

{

FILE *fp;/*定义文件指针用于向文件读入数据*/

int i;

if((fp=fopen("student.dat","rb+"))==NULL)/*以二进制读,写方式打开文件*/

{

printf("cannot open file\n");

exit(1);

}

for(i=0;i

if(fwrite(&stu[i],sizeof(struct student),1,fp)!=1)

printf("file write error\n");

fclose(fp);

printf("\n信息保存成功!恭喜!!\n");

}

/*保存一个学生信息******************************************************************************/

void SaveOneStudent(int i)

{

FILE *fp;

if((fp=fopen("student.dat","rb+"))==NULL)/*以二进制读,写方式打开文件*/

{

printf("文件打开失败!\n");

exit(1);

}

fseek(fp,i,0);/*文件指针定位到第i个学生*/

fwrite(&stu[i],sizeof(struct student),1,fp);/*将第i个学生信息写入文件*/

fclose(fp);

}

/*保存全部学生信息******************************************************************************/

void SaveAllStudent(int n)/*保存全部学生信息*/

{

FILE *fp;

if((fp=fopen("student.dat","wb"))==NULL)/*以二进制写方式打开文件*/

{

printf("文件打开失败!\n");

exit(1);

}

fwrite(stu,sizeof(struct student),n,fp);/*将数组stu中全部学生信息写入文件*/

fclose(fp);

}

/*将排序后的学生信息读入到另外的文件中**********************************************************/

void save2()

{

FILE *fp;

int i;

if((fp=fopen("stud.dat","rb+"))==NULL)/*以二进制读,写方式打开文件*/

{

printf("文件打开失败!\n");

exit(1);

}

for (i=0;i

if (fwrite(&stu[i],sizeof(struct student),1,fp)!=1)

printf("file write error\n");

fclose(fp);/*读取完毕关闭文件*/

}

/*增加学生信息*********************************************************************************/

int AddStudent(int n)

{

char c='y';

FILE *fp;

if((fp=fopen("student.dat","ab"))==NULL)/*以二进制追加方式打开文件*/

{

printf("文件打开失败!\n");

exit(1);

}

while(c=='y')

{

printf("\n请输入要增加的同学的信息:");

InputOnestudent(n);/*调用函数输入第n个学生信息*/

fwrite(&stu[n],sizeof(struct student),1,fp);/*将第n个学生信息保存至文件*/

n++;/*学生数量增加1*/

printf("\n继续输入其他同学信息吗?\n");

printf("确定进行删除请按y;不进行删除请按n\n");

c=getchar();

getchar();

}/*结束while*/

printf("\n按任意键继续!\n");

getchar();

fclose(fp);

return(n);

}

/*输入一个同学信息*****************************************************************************/

void InputOnestudent(int i)

{

printf("学号\t姓名\t学院\t班级\t高数\t英语\tC语言\n");

scanf("%d\t%s\t%s\t%d\t%d\t%d\t%d\t\n",&stu[i].number,stu[i].name,stu[i].xueyuan,&stu[i].cla,&stu[i].score[0],&stu[i].score[1],&stu[i].score[2]);

stu[i].sum=(stu[i].score[0]+stu[i].score[1]+stu[i].score[2]);/*计算总成绩*/

stu[i].average=(stu[i].score[0]+stu[i].score[1]+stu[i].score[2])/3;/*计算平均成绩*/

}

/*删除学生信息*********************************************************************************/

int DelStudent(int n)

{

int i,k=-1,x;

char c1='y',c2;

while(c1=='y')

{

c2='n';

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

scanf("%d",&x);

for(i=0;i

if(x==stu[i].number)

{

k=i;/*找到要删除的同学学号,并用k记下其下标*/

break;

}

if(k<0)/*k<0表示在数组中没有找到输入学号对应的学生*/

printf("\n输入学号有误,请重新输入!");

else

{

printf("\n该同学信息如下:\n");

InputOnestudent(k);

printf("\n确定删除?\n");

printf("确定进行删除请按y;不进行删除请按n\n");

c2=getchar();

getchar();

if(c2=='y')/*c2为y,表示确定进行删除操作*/

{

for(i=k;i

stu[i]=stu[i+1];/*删除第k个学生信息*/

n--;/*学生人数减1*/

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

}

else

printf("\n取消删除!\n");

printf("\n继续删除操作吗?");

printf("\n继续删除请按y;不进行删除请按n\n");

c1=getchar();

getchar();

}

}/*结束while*/

save(n);

printf("\n按任意键继续!\n");

getchar();

return(n);

}

/*修改学生信息********************************************************************************/

void ModifyStudent(int n)

{

struct student temp;

int k=-1,x,i;

char c1='y',c2;

while(c1=='y')

{

c2='y';

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

scanf("%d",&x);

for(i=0;i

if(x==stu[i].number)

{

k=i;/*找到要修改的同学学号,并用k记下其下标*/

break;

}

if(k<0)/*k<0表示在数组中没有找到输入学号对应的学生*/

printf("\n输入学号有误,请重新输入!");

else

{

printf("请输入要修改学生修改后的的信息\n");

printf("学号\t姓名\t学院\t班级\t高数\t英语\tC语言\t\n");

scanf("%d\t%s\t%s\t%d\t%d\t%d\t%d\t\n",&temp.number,stu[i].name,temp.xueyuan,&temp.cla,&temp.score[0],&temp.score[1],&temp.score[2]);

temp.sum=(temp.score[0]+temp.score[1]+temp.score[2]);/*计算总成绩*/

temp.average=(temp.score[0]+temp.score[1]+temp.score[2])/3;/*计算平均成绩*/

stu[k]=temp;/*修改该学生信息*/

printf("\n修改成功!恭喜!!\n");

break;

}

SaveAllStudent(k);/*保存修改后的学生信息*/

printf("\n继续修改操作吗?");

printf("\n继续修改请按y;不进行修改请按n\n");

c1=getchar();

getchar();

}/*结束while*/

printf("\n按任意键继续!\n");

getchar();

}

/*查询一个学生信息**********************************************************************************/

void OutputOneStudent(int i)

{

printf("学号:%d  姓名:%s  学院:%s  班级:%d\n",stu[i].number,stu[i].name,stu[i].xueyuan,stu[i].cla);

printf("高数:%d  英语:%d  C语言:%d  总分:%d  平均分:%d\n",stu[i].score[0],stu[i].score[1],stu[i].score[2],stu[i].sum,stu[i].average);

}

/*查询学生信息操作*********************************************************************************/

void SearchMenu(int n)

{

int selet;

while(1)

{

printf("**********************************************************\n");

printf("******************** 欢迎进入查询系统  *******************\n");

printf("**********************************************************\n");

printf("\n");

printf("*********************  请输入所需操作  *******************\n");/*选择功能菜单*/

printf("**********************************************************\n");

printf("1.按学号查询\n");

printf("2.按姓名查询\n");

printf("3.按学院查询\n");

printf("4.按班级查询\n");

printf("0.返回主菜单\n");

printf("**********************************************************\n");

printf("请输入操作选项:");

scanf("%d",&selet);

getchar();

switch(selet)

{

case 1:

SearchNumber(n);

break;

case 2:

SearchName(n);

break;

case 3:

SearchXueyuan(n);

break;

case 4:

SearchCla(n);

break;

case 0:

return;

default:

printf("输入错误!请重新输入!\n");

}

}/*结束while*/

}

/*按姓名查询学生信息*******************************************************************************/

void SearchName(int n)

{

int i,j,k;

char xname[20],c='y';

while(c=='y')

{

k=-1;

printf("\n请输入学生姓名:");

gets(xname);

for(i=0,j=1;i

if(strcmp(stu[i].name,xname)==0)

{

k=i;/*找到要查询的同学姓名,并用k记下其下标*/

printf("学生%d的信息:\n",j++);

OutputOneStudent(k);

printf("\n按任意键继续!\n");

getchar();

}

if(k==-1)/*k表示没有精确查询结果*/

{

printf("\n模糊查询结果如下:\n");

for(i=0,j=1;i

if(strstr(stu[i].name,xname)!=NULL)/*模糊查询*/

{

k=1;

printf("学生%d的信息:\n",j++);

OutputOneStudent(k);

printf("\n按任意键继续!\n");

getchar();

}

if(j==1)

printf("\n抱歉!没有该学生信息!\n");

}

printf("继续查询其他学生信息吗?");

printf("\n继续修改请按y;不进行修改请按n\n");

c=getchar();

getchar();

}/*结束while*/

printf("\n按任意键继续!\n");

getchar();

}

/*按学号查询学生信息*******************************************************************************/

void SearchNumber(int n)

{

int i,j,k,x;

char c='y';

while(c=='y')

{

k=-1;

printf("\n请输入学生学号:");

scanf("%d",&x);

for(i=0,j=1;i

if(stu[i].number==x)

{

k=i;/*找到要查询的同学学号,并用k记下其下标*/

printf("学生%d的信息:\n",j++);

OutputOneStudent(k);

printf("\n按任意键继续!\n");

getchar();

}

printf("继续查询其他学生信息吗?");

printf("\n继续修改请按y;不进行修改请按n\n");

c=getchar();

getchar();

}/*结束while*/

printf("\n按任意键继续!\n");

getchar();

}

/*按所在学院查询学生信息***************************************************************************/

void SearchXueyuan(int n)

{

int i,j,k;

char xxueyuan[20],c='y';

while(c=='y')

{

k=-1;

printf("\n请输入学生所在学院:");

gets(xxueyuan);

for(i=0,j=1;i

if(strcmp(stu[i].xueyuan,xxueyuan)==0)

{

k=i;/*找到要查询的同学所在学院,并用k记下其下标*/

printf("学生%d的信息:\n",j++);

OutputOneStudent(k);

printf("\n按任意键继续!\n");

getchar();

}

printf("继续查询其他学生信息吗?");

printf("\n继续修改请按y;不进行修改请按n\n");

c=getchar();

getchar();

}/*结束while*/

printf("\n按任意键继续!\n");

getchar();

}

/*按所在班级查询学生信息***************************************************************************/

void SearchCla(int n)

{

int i,j,k,x;

char c='y';

while(c=='y')

{

k=-1;

printf("\n请输入学生所在班级:");

scanf("%d",&x);

for(i=0,j=1;i

if(stu[i].cla==x)

{

k=i;/*找到要查询的同学所在班级,并用k记下其下标*/

printf("学生%d的信息:\n",j++);

OutputOneStudent(k);

printf("\n按任意键继续!\n");

getchar();

}

printf("继续查询其他学生信息吗?");

printf("\n继续修改请按y;不进行修改请按n\n");

c=getchar();

getchar();

}/*结束while*/

printf("\n按任意键继续!\n");

getchar();

}

/*学生信息统计操作*********************************************************************************/

void tongji()

{

int x;

printf("**********************************************************\n");

printf("******************** 欢迎进入统计系统  *****************++\n");

printf("**********************************************************\n");

printf("\n");

printf("************请输入所需操作***********\n");/*选择功能菜单*/

printf("*************************************\n");

printf("1.按总分排序操作\n");

printf("2.按平均分统计人数操作\n");

printf("3.按查找最高成绩操作\n");

printf("4.按统计部及格率操作\n");

printf("0.返回主菜单\n");

printf("**************************************\n");

printf("请输入操作选项:");

scanf("%d",&x);/*用户选择变量*/

while(x>0&&x<6)

{

switch(x)

{

case 1:

zfsc();break;/*选择按总分排序操作*/

case 2:

avecz();break;/*选择按平均分统计人数操作*/

case 3:

search();break;/*选择按查找最高成绩操作*/

case 4:

tongji();break;/*选择按统计部及格率操作*/

case 0:

printf("谢谢使用!再见!\n");

return;/*选择退出操作*/

default:

printf("输入错误!请重新输入\n");/*提示错误信息*/

}

}

}

/*总分排序操作*************************************************************************************/

void zfsc()

{

FILE *wj,*fp;

int i,j;

struct student temp;

if((fp=fopen("student.dat","wb"))==NULL)

{

printf("文件打开失败!\n");

exit(1);

}

for(i=0;i

for(j=0;j

if(stu[i].sum

{

temp=stu[j];

stu[j]=stu[i];

stu[i]=temp;

}

if((wj=fopen("student1.dat","wb+"))==NULL)

{

printf("文件打开失败!\n");

exit(1);

}

else

{

for(i=0;i

fwrite(&stu[i],sizeof(struct student),1,wj);/*写入文件*/

}

fclose(fp);

fclose(wj);

}

/*按平均分统计人数操作*****************************************************************************/

void avecz()

{

int i=0,k,m;

printf("平均分不及格的同学有:\n");

for(i=0;i

{

k=0;

if(stu[i].average<60)

{

m=i;/*找到平均分不及格学生,并用m记下其下标*/

OutputOneStudent(m);

k++;/*k为平均分不及格人数*/

}

printf("             平均分不及格的同学信息输出结束\n");

printf("共%d人\n",k);

printf("  **********************************************************");

}

printf("平均分60~69分的同学有:\n");

for(i=0;i

{

k=0;

if(stu[i].average>59&&stu[i].average<70)

{

m=i;/*找到平均分69~69学生,并用m记下其下标*/

OutputOneStudent(m);

k++;/*k为平均分60~69分人数*/

}

printf("             平均分60~69分的同学信息输出结束\n");

printf("共%d人\n",k);

printf("  **********************************************************");

}

printf("平均分70~79分的同学有:\n");

for(i=0;i

{

k=0;

if(stu[i].average>69&&stu[i].average<80)

{

m=i;/*找到平均分70~79学生,并用m记下其下标*/

OutputOneStudent(m);

k++;/*k为平均分70~79分人数*/

}

printf("             平均分70~79分的同学信息输出结束\n");

printf("共%d人\n",k);

printf("  **********************************************************");

}

printf("平均分80~89分的同学有:\n");

for(i=0;i

{

k=0;

if(stu[i].average>79&&stu[i].average<90)

{

m=i;/*找到平均分80~89学生,并用m记下其下标*/

OutputOneStudent(m);

k++;/*k为平均分80~89分人数*/

}

printf("             平均分80~89分的同学信息输出结束\n");

printf("共%d人\n",k);

printf("  **********************************************************");

}

printf("平均分90~100分的同学有:\n");

for(i=0;i

{

k=0;

if(stu[i].average>89&&stu[i].average<=100)

{

m=i;/*找到平均分90~100学生,并用m记下其下标*/

OutputOneStudent(m);

k++;/*k为平均分90~100分人数*/

}

printf("             平均分90~100分的同学信息输出结束\n");

printf("共%d人\n",k);

printf("  **********************************************************");

}

}

/*查找最高成绩操作****************************************************************************/

void search()

{

int i=0,x,k=0;

printf("********************输入查找选项**********************\n");/*选择功能菜单*/

printf("          查找高数成绩最高学生请按:1\n");

printf("          查找英语成绩最高学生请按:2\n");

printf("          查找C语言成绩最高学生请按:3\n");

scanf("%d",&x);/*用户选择变量*/

if(x==1)

{

for(i=0;i

{   if(stu[i].score[0]>stu[k].score[0])

i=k;

}

printf("高数成绩最高学生信息如下:\n");

OutputOneStudent(k);

printf("                       输出结束\n");

printf("  **********************************************************");

}

if(x==2)

{

for(i=0;i

{   if(stu[i].score[1]>stu[k].score[1])

i=k;

}

printf("英语成绩最高学生信息如下:\n");

OutputOneStudent(k);

printf("                       输出结束\n");

printf("  **********************************************************");

}

if(x==3)

{

for(i=0;i

{   if(stu[i].score[2]>stu[k].score[2])

i=k;

}

printf("C语言成绩最高学生信息如下:\n");

OutputOneStudent(k);

printf("                       输出结束\n");

printf("  **********************************************************");

}

}

/*统计不及格率操作*****************************************************************************/

void tongji2()

{

int x,i,k;

printf("********************输入统计选项**********************\n"); /*选择功能菜单*/

printf("统计高数成绩不及格率请按:1\n");

printf("统计英语成绩不及格率请按:2\n");

printf("统计C语言成绩不及格率请按:3\n");

scanf("%d",&x);/*用户选择变量 */

if(x==1)

{

for(i=0;i

{

k=0;

if(stu[i].score[0]<60)

k++;/*k为高数成绩不及格人数*/

printf("共%d人高数未及格\n",k);

printf("不及格率为%f\n",k/SIZE);

printf("  **********************************************************");

}

}

if(x==2)

{

for(i=0;i

{

k=0;

if(stu[i].score[1]<60)

k++;/*k为英语成绩不及格人数*/

printf("共%d人英语不及格\n",k);

printf("不及格率为%f\n",k/SIZE);

printf("  **********************************************************");

}

}

if(x==3)

{

for(i=0;i

{

k=0;

if(stu[i].score[2]<60)

k++;/*k为C语言成绩不及格人数*/

printf("共%d人C语言不及格\n",k);

printf("不及格率为%f\n",k/SIZE);

printf("  **********************************************************");

}

}

}

c语言结构体编辑学生成绩管理,【C语言】结构体的应用以及学生成绩管理系统的设计...相关推荐

  1. c语言结构体编辑学生成绩管理,C语言基于结构体的学生信息管理系统实现

    宋福英 摘  要: 中国高校为保证学生信息安全,各分院的学生信息都在一个相对封闭的闭环内共享.中国高校在校生人数逐年递增,给高校的信息管理带来不小压力.C语言兼具高级语言和汇编语言的特点,简洁.紧凑. ...

  2. c语言学生学籍管理,c语言:学生学籍管理系统

    #include #include #include #include int n=0,i; struct address_book { char name[20]; int num; int age ...

  3. 学生宿舍管理项目开发计划书_第六组学生宿舍管理系统项目计划书

    组长:高仁英 成员:杨舒婷.连燕婷 1.引言 1.1目的 [1]本章提供整个软件开发计划的综述,主要确定以下内容: [2]软件生存周期的选取及裁剪. [3]软件规范.方法和标准的选择. [4]软件工作 ...

  4. python成绩管理系统设计 gui csdn_用golang简单编写学生信息管理系统

    用golang简单编写学生信息管理系统 发布时间:2020-09-04 11:45:16编辑:三青(参考七米老师的视频)查看次数:187 student.gopackage main import & ...

  5. c语言程序设计学生籍贯管理,c语言编程,将若干名学生的学号、姓名、专业、年级、籍贯等信息保存到名为“xueshenginfo...

    满意答案 fac02 2013.06.24 采纳率:54%    等级:12 已帮助:13365人 #include #include #include struct student { long n ...

  6. c语言课程设计运动会成绩管理,C语言课程设计要求编写一段程序题目是运动会分数..._统计师_帮考网...

    楼主你好,你看看下面这个代码吧   和你的比较相似 : #include #include #include using namespace std; class School{ private: i ...

  7. C语言中怎样编辑混合运算,用C语言编写一个简单的可以进行四则运算混合运算的计算器!...

    满意答案 夏x夕 2013.09.06 采纳率:51%    等级:12 已帮助:11673人 scanf("%c",&c[i]); } for(i=0;c[i]!='=' ...

  8. JSP学生学籍管理系统设计与实现(源代码+论文+开题报告+外文翻译+答辩PPT)

    cc学院 毕业设计(论文)开题报告 题 目: 基于JSP的学生学籍管理系统 学 科 部: 信工学科部 专 业: 计算机科学与技术 班 级: 学 号: 姓 名: 指导教师: 填表日期: 20 年 月 日 ...

  9. (附源码)springboot中学成绩管理 毕业设计100854

    Springboot中学成绩管理系统 摘 要 随着互联网趋势的到来,各行各业都在考虑利用互联网将自己推广出去,最好方式就是建立自己的互联网系统,并对其进行维护和管理.在现实运用中,应用软件的工作规则和 ...

  10. java毕业设计学生生活管理Mybatis+系统+数据库+调试部署

    java毕业设计学生生活管理Mybatis+系统+数据库+调试部署 java毕业设计学生生活管理Mybatis+系统+数据库+调试部署 本源码技术栈: 项目架构:B/S架构 开发语言:Java语言 开 ...

最新文章

  1. 面向对象原则之GOF是招式,九大原则才是精髓
  2. 【NLP】 深入浅出解析BERT原理及其表征的内容
  3. 解决vscode下载速度慢的方法
  4. Linux内核社区迁移到github?
  5. python中构造方法的名字,【填空题】Python提供了名称为 的构造方法,实现让类的对象完成初始化。...
  6. 【MySQL】MySQL Shell 简介与使用
  7. 基于virtualbox安装ubuntu18.04
  8. Window2003 IIS+MySQL+PHP+Zend环境配置
  9. VC++的菜单控制和自绘菜单
  10. php从数据库删除数据,php怎么从数据库中删除数据
  11. padavan路由器固件设置ipv6拨号
  12. AI和人工智能入门级视频
  13. 自然语言处理(3)——形式语言与自动机
  14. 计算机硕士工资一览表 08年各大IT公司薪水行
  15. 如何学习平面设计色彩搭配原理
  16. CSS-盒子模型,标准盒子模型,IE 盒子模型,盒模型之间的转换
  17. JDK官方下载(旧版本,以前老版本)
  18. IOS音乐播放器代码
  19. 商标注册计算机软件app属于第几类,软件商标属于第几类?
  20. springboot2------自定义消息转换器

热门文章

  1. oracle用dual创建临时表,Oracle 学习系列之二(会话与事务级临时表和dual表 )
  2. js MD5的6种实现方式
  3. 2021长安“战疫”网络安全卫士守护赛 misc部分writeup
  4. 智能体温检测系统解决方案
  5. CIDR的IP地址的表示与划分方法(转)
  6. feign.codec.DecodeException 异常原因
  7. GPS模块(GPS-NEO-6M)
  8. robosense 16线激光雷达标定
  9. GPU视频压缩2—Multiple Layer Parallel Motion Estimation on GPU for High Efficiency Video Coding (HEVC)
  10. cuda无法使用nvprof命令,找不到cupti64_2021_3.0.dll