您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > C语言课程设计-学生成绩管理系统-奖学金评定
#includestdio.h#includestring.h#includestdlib.h#defineCH20//最大字符#defineN100//学生的最大个数typedefstructstudent//学生的结构体{charname[CH];//姓名charno[CH];//学号floatSignal_System;//信号floatiEn;//英语floatDigit_circuit;//数字电路floatC_language;//C语言floatfAvage;//平均分数floatS_all;//总分数}student;students[N];//学生数组intnum;//学生个数/*程序辅助函数*//*欢迎界面*/voidwelcome(){printf(\n\n\n\n\n);printf(\t\t╭═══════┤成绩管理系统├═══════╮\n);printf(\t\t║\t║\n);printf(\t\t║\t║\n);printf(\t\t║欢迎使用该成绩管理系统\t║\n);printf(\t\t║\t║\n);printf(\t\t║作者:某某\t║\n);printf(\t\t║\t║\n);printf(\t\t║按任意键继续……\t║\n);printf(\t\t║\t║\n);printf(\t\t║\t║\n);printf(\t\t╰═══════════════════════╯\n);getchar();}/*菜单*/voidmeun(){system(cls);//屏幕清空printf(\n\n\n\n\n);printf(\t\t╭═══════┤成绩管理系统├═══════╮\n);/*菜单选择*/printf(\t\t║…………某某制作\t║\n);printf(\t\t║学生成绩管理系统\t║\n);printf(\t\t║主菜单\t║\n);printf(\t\t║1.录入学生数据\t║\n);printf(\t\t║2.删除学生数据\t║\n);printf(\t\t║3.修改学生数据\t║\n);printf(\t\t║4.显示学生数据\t║\n);printf(\t\t║5.排序输出\t║\n);printf(\t\t║6.显示符合奖学金的学生\t║\n);printf(\t\t║7.成绩排序\t║\n);printf(\t\t║8.退出成绩管理系统\t║\n);printf(\t\t║\t║\n);printf(\t\t╰═══════════════════════╯\n);printf(\t\t\1选择菜单选项(1-8):);}voidread_from_file()//从文件中读取学生的信息{FILE*fp;inti=0;fp=fopen(data.db,rb);if(!fp){printf(打开文件data.db失败!\n);return;}fread(&num,1,sizeof(num),fp);//先读取学生的个数for(i=0;inum;i++)fread(&s[i],1,sizeof(student),fp);//读取每个学生的信息存放到结构体fclose(fp);//关闭文件}voidwrite_to_file()//从文件中读取学生的信息{FILE*fp;inti=0;fp=fopen(data.db,wb+);if(!fp){printf(打开文件data.db失败!\n);return;}fwrite(&num,1,sizeof(num),fp);//先写入学生的个数for(i=0;inum;i++)fwrite(&s[i],1,sizeof(student),fp);//写入每个学生的信息fclose(fp);//关闭文件}voidAdd()//添加学生信息{inti=num;printf(请输入姓名:);scanf(%s,s[i].name);printf(请输入学号:);scanf(%s,s[i].no);printf(请输入信号:);scanf(%f,&s[i].Signal_System);printf(请输入英语:);scanf(%f,&s[i].iEn);printf(请输入数字电路:);scanf(%f,&s[i].Digit_circuit);printf(请输入C语言:);scanf(%f,&s[i].C_language);s[i].S_all=s[i].Signal_System+s[i].iEn+s[i].Digit_circuit+s[i].C_language;//计算出总分数s[i].fAvage=s[i].S_all/4;//计算出平均分num++;}voidDelete()//删除学生信息{inti=0,j=0;charno[CH];//学号printf(请输入你要删除的学生学号:);scanf(%s,no);for(i=0;inum;i++)//先找到该学号对应的序号if(strcmp(s[i].no,no)==0){for(j=i;jnum-1;j++)s[j]=s[j+1];num--;//数量减少1return;}printf(没有这个学号!);}voidDelete_infor()//修改学生信息{inti=0;charno[CH];//学号printf(请输入你要修改的学生学号:);scanf(%s,no);for(i=0;inum;i++)//先找到该学号对应的序号if(strcmp(s[i].no,no)==0){printf(请输入姓名:);scanf(%s,s[i].name);printf(请输入学号:);scanf(%s,s[i].no);printf(请输入信号:);scanf(%f,&s[i].Signal_System);printf(请输入英语:);scanf(%f,&s[i].iEn);printf(请输入数字电路:);scanf(%f,&s[i].Digit_circuit);printf(请输入C语言:);scanf(%f,&s[i].C_language);s[i].S_all=s[i].Signal_System+s[i].iEn+s[i].Digit_circuit+s[i].C_language;//计算出总分数s[i].fAvage=s[i].S_all/4;//计算出平均分return;}printf(没有这个学号!);}voidShow_s(){inti=0;printf(姓名学号信号英语数字电路C语言总分数平均分\n);for(i=0;inum;i++)printf(%10s%12s%10.2f%9.2f%9.2f%9.2f%9.2f%9.2f\n,s[i].name,s[i].no,s[i].Signal_System,s[i].iEn,s[i].Digit_circuit,s[i].C_language,s[i].S_all,s[i].fAvage);}voidSort_s(){inti=0,j=0;studentt;//用于排序交换的临时变量students1[N];//学生数组,用来排序的临时数组for(i=0;inum;i++)s1[i]=s[i];for(i=0;inum;i++)for(j=i+1;jnum;j++)if(s1[i].fAvages1[j].fAvage){t=s1[i];s1[i]=s1[j];s1[j]=t;}printf(姓名学号信号英语数字电路C语言总分数平均分\n);for(i=0;inum;i++)printf(%10s%12s%10.2f%9.2f%9.2f%9.2f%9.2f%9.2f\n,s1[i].name,s1[i].no,s1[i].Signal_System,s1[i].iEn,s1[i].Digit_circuit,s1[i].C_language,s1[i].S_all,s1[i].fAvage);}intis_scholarship(student*stu)//判断是否符合讲学金,0表示不符合,1表示符合{if(stu-Signal_System60||stu-iEn60||stu-Digit_circuit60||stu-C_language60)return0;if(stu-fAvage80)return0;return1;}voidScholarship()//显示符合奖学金学生//符合奖学金的学生的条件如下//1)各个科目都及格,2)平均分大于80分3)平均分排序输出,一等为1个名额,二等为2个名额,三等为3个名额{students1[N];//学生数组,用来存放符合奖学金条件的学生intnum1=0;//符合奖学金学生的数目inti=0,j=0;studentt;//用于排序交换的临时变量for(i=0;inum;i++)if(is_scholarship(&s[i])==1){s1[num1]=s[i];num1++;}//对符合讲学金的同学进行排序for(i=0;inum1;i++)for(j=i+1;jnum1;j++)if(s1[i].fAvages1[j].fAvage){t=s1[i];s1[i]=s1[j];s1[j]=t;}if(num1==0){printf(没有符合奖学金的学生!\n);return;}printf(姓名等级\n);for(i=0;inum1;i++){printf(%10s,s1[i].name);if(i==0)printf(一等\n);elseif(i=1&&i=2)printf(二等\n);elseif(i=3&&i=5)printf(三等\n);elsebreak;}}voidSearch()//查询学生成绩{inti=0;charno[CH];//学号printf(请输入你要查询的学生学号:);scanf(%s,no);for(i=0;inum;i++)//先找到该学号对应的序号if(strcmp(s[i].no,no)==0){printf(姓名学号信号英语数字电路C语言总分数平均分\n);printf(%10s%12s%10.2f%9.2f%9.2f%9.2f%9.2f%9.2f\n,s[i].name,s[i].no,s[i].Signal_System,s[i].iEn,s[i].Digit_circuit,s[i].C_language,s[i].S_all,s[i].fAvage);return;}printf(没有这个学号!);}voidmain(){intchoose=0;num=0;//初始化学生个数为0//read_from_file();//读取文件welcome();meun();scanf(%d,&choose);printf(\n);while(choose0&&choose8){switch(choose){case1:Add();system(pause);break;case2:Delete();system(pause);break;case3:Delete_infor();system(pause);break;case4:Show_s();system(pause);break;case5:Sort_s();system(pause);break;case6:Scholarship();system(pause);break;case7:Search();system(pause);break;}printf(\n);meun();scanf(%d,&choose);printf(\n);}write_to_file();//写入文件printf(谢谢使用学生成绩评定系统!再见!\n);getchar();}
本文标题:C语言课程设计-学生成绩管理系统-奖学金评定
链接地址:https://www.777doc.com/doc-7217731 .html