C语言程序设计实验指导书_第1页
C语言程序设计实验指导书_第2页
C语言程序设计实验指导书_第3页
C语言程序设计实验指导书_第4页
C语言程序设计实验指导书_第5页
已阅读5页,还剩90页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

学生成绩管理系统V1.0参考例7.5~例7.10,用一维数组作函数参数编程实现下面的成绩管理功能:*************************************Menu**4.Sortinascending**********************************************************排序、学号排序、查找、统计、显示学生考2)平均分floatGetAverage(intintReadScore(inta[],long{inti=-1;/*i初始化为-1,循环体内增1后可保证数组下标从0开始,i可做学生数*/printf("Inputscores:\n");{//学生数增1//输入一个学生的学号和成绩}floatGetAverage(inta[],intn){{//计算总分}//输出总分//返回平均分}voidSortScore(inta[],longnum[],intn){//定义学号临时变量temp2{{{}{//coding//coding}}voidSortNum(inta[],longnum[],intn){//定义学号临时变量temp2{{{}{//coding//coding}}voidPrintInfo(inta[],longnum[],intn){{//依次显示学号、成绩}//显示课程总分、平均分printf("\n");}intLinearSearch(longnum[],longx,intn){{{/*若找到返回x在数组中的下标*/}}/*若循环结束仍未找到,则返回-1*/}/*函数功能:统计每个等级的人数及其所占的百voidStatAnalysis(inta[],intcount[],intn){{//初始化成绩等级数组count,count[i]分别表示每个等级的}{//优秀人数累加elseif(成绩超过某个范围)//良好人数累加elseif(成绩超过某个范围)//中等人数累加elseif(成绩超过某个范围)//及格人数累加//不及格人数累加}printf("优秀人数:%d\t,优秀率为%.2f%%\n",?,?);printf("良好人数:%d\t,良好率为%.2f%%\n",?,?);printf("中等人数:%d\t,中等率为%.2f%%\n",?,?);printf("及格人数:%d\t,及格率为%.2f%%\n",?,?);printf("不及格人数:%d\t,不及格率为%.2f%%\n",?,?);}{printf("\nPleaseenteryourchoice:");//定义成绩数组score,学生数变量n,数组下标变量pos//定义学号数组num[N],待查找学号变量x;printf("\nWelcometoUseTheStudent'while(1){{break;//调用平均分函数//显示平均分break;//调用按成绩排序函数printf("SortedScores:\n");//显示按成绩排序后的学生信息break;//调用按学号排序函数printf("SortedNum:\n");//显示按学号排序后的学生信息break;printf("pleaseinputthesearchedstudent'snum:'");//输入待查找的学号//调用查找函数printf("score=%d\tnum=%ld",?,?);break;//调用统计分析成绩函数break;//显示所有学生成绩和学号信息//课程总分、平均分break;printf("endoftheprogram!");break;printf("inputerror!");break;}}}/*系统界面*/{printf("TheStudent'sGradeManagementSystem\printf("*****************************Menu****************************\n//按菜单格式输入提示功能选择printf("**************************************************************\nprintf("\nPleaseenteryourc//输入你的功能选择//返回你的功能选择;}{printf("\nPleaseenteryourchoice:");//定义成绩数组score,学生数变量n,数组下标变量pos//定义学号数组num[N],待查找学号变量x;printf("\nWelcometoUseTheStudent'while(1){{break;//调用平均分函数//显示平均分break;//调用按成绩排序函数printf("SortedScores:\n");//显示按成绩排序后的学生信息break;//调用按学号排序函数printf("SortedNum:\n");//显示按学号排序后的学生信息break;printf("pleaseinputthesearchedstudent'snum:'");//输入待查找的学号//调用查找函数printf("score=%d\tnum=%ld",?,?);break;//调用统计分析成绩函数break;//显示所有学生成绩和学号信息break;printf("endoftheprogram!");break;printf("inputerror!");break;}}}学生成绩管理系统V2.0参考例8.7,用一维数组、指针作函数参数编程实现下面*************************************Menu**5.Caculatemin&it’snumber*********************************************************不同类型的值,故最高分/最低分及其学号分别用两个指针做intReadScore(inta[],long{inti=-1;/*i初始化为-1,循环体内增1后可保证数组下标从0开始,i可做学生数*/printf("Inputscores:\n");{//学生数增1//输入一个学生的学号和成绩}floatGetAverage(inta[],intn){{//计算总分}//输出总分//返回平均分}voidSortScore(inta[],longnum[],intn){//定义学号临时变量temp2{{{}{//coding//coding}}voidGetMaxScore(intscore[],longnum[],intn,int*pmaxscore,long*pmaxnum){//定义循环变量i//score[0]的成绩赋值给pmaxscore//num[0]的学号赋值给pmaxnufor(i=0;i<n;i++){if(某个学生成绩大于pmaxscore{//更新pmaxscore指针所指}}voidGetMinScore(intscore[],longnum[],intn,int*pminscore,long*pminnum){//定义循环变量i//score[0]的成绩赋值给pminscore//num[0]的学号赋值给pminnfor(i=0;i<n;i++){if(某个学生成绩小于pminscor{//更新pminscore指针所指向}}/*函数功能:统计高于平均分的人数及其所占的百分voidStatAverage(intscore[],intn){//定义平均分变量av;//调用计算平均分函数{//平均分人数增1}printf(“高于平均分人数=%d\t所占百分比=%.2f\n”,?,?);}/*函数功能:打印学生学号及成绩、课程总分、平均voidPrintInfo(inta[],longnum[],intn){{//依次显示学号、成绩}//显示课程总分、平均分printf("\n");}/*函数功能:统计每个等级的人数及其所占的百voidStatAnalysis(inta[],intcount[],intn){{//初始化成绩等级数组count,count[i]分别表示每个等级的}{//优秀人数累加elseif(成绩超过某个范围)//良好人数累加elseif(成绩超过某个范围)//中等人数累加elseif(成绩超过某个范围)//及格人数累加//不及格人数累加}printf("优秀人数:%d\t,优秀率为%.2f%%\n",?,?);printf("良好人数:%d\t,良好率为%.2f%%\n",?,?);printf("中等人数:%d\t,中等率为%.2f%%\n",?,?);printf("及格人数:%d\t,及格率为%.2f%%\n",?,?);printf("不及格人数:%d\t,不及格率为%.2f%%\n",?,?);}{printf("\nPleaseenteryourchoice:");//定义成绩数组score,学生数变量n,数组下标变量pos,//定义学号数组num[N],待查找学号变量x;printf("\nWelcometoUseTheStudent'while(1){{break;//调用平均分函数//显示平均分break;//调用按成绩排序函数printf("SortedScores:\n");//显示按成绩排序后的学生信息break;//调用最高分函数printf("TheMaxScore&it’sN//显示学生的最高分及其学号break;//调用最低分函数printf("TheMinScore&it’s//显示学生的最低分及其学号break;//调用成绩高于平均分人数函数break;//调用统计分析成绩函数break;break;printf("endoftheprogram!");break;printf("inputerror!");break;}}}/*系统界面*/{printf("TheStudent'sGradeManagementSystem\printf("*****************************Menu****************************\n//按菜单格式输入提示功能选择printf("**************************************************************\nprintf("\nPleaseenteryourc//输入你的功能选择//返回你的功能选择;}{printf("\nPleaseenteryourchoice:");//定义成绩数组score,学生数变量n,数组下标变量pos//定义学号数组num[N],待查找学号变量x;printf("\nWelcometoUseTheStudent'while(1){{break;//调用平均分函数//显示平均分break;//调用按成绩排序函数printf("SortedScores:\n");//显示按成绩排序后的学生信息break;//调用最高分函数printf("TheMaxScore&it’sN//显示学生的最高分及其学号break;//调用最低分函数printf("TheMinScore&it’s//显示学生的最低分及其学号break;//调用成绩高于平均分人数函数break;//调用统计分析成绩函数break;break;printf("endoftheprogram!");break;printf("inputerror!");break;}}}学生成绩管理系统V3.0*************************************Menu***********************************************************成绩等级统计分析voidStatAnalysis(int/*函数功能:输入n个学生的一门课成绩、学号和姓名*/intReadScore(inta[],longnum[],charname[][N{inti=-1;/*i初始化为-1,循环体内增1后可保证数组下标从0开始,i可做学生数*/printf("Inputscores:\n");{//学生数增1//输入一个学生的学号、成绩和姓名}floatGetAverage(inta[],intn){{//计算总分}//输出总分//返回平均分}voidSortScore(inta[],longnum[],charname[][N],intn){//定义学号临时变量temp2//定义学生姓名临时变量temp3{{{}{//coding//coding//coding}}voidSortNum(inta[],longnum[],charname[][N],intn){//定义学号临时变量temp2//定义学生姓名临时变量temp3{{{}{//coding//coding//coding}}voidSortName(inta[],longnum[],charname[][N],intn){//定义学号临时变量temp2//定义学生姓名临时变量temp3{{if(姓名i小于姓名j)//字符串比较,不能用关系运算符{}}/*函数功能:按学号查找学生的排名及intLinearSearch(longnum[],longx,intn){{{/*若找到返回x在数组中的下标*/}}/*若循环结束仍未找到,则返回-1*/}/*函数功能:按姓名查找学生的排名及intSearch(charname[][N],char*x,intn){{{/*若找到返回x在数组中的下标*/}}/*函数功能:统计高于平均分的人数及其所占的百分比*/voidStatAverage(intscore[],intn){//定义平均分变量av;//调用计算平均分函数{//平均分人数增1}printf(“高于平均分人数=%d\t所占百分比=%.2f\n”,?,?);}/*函数功能:打印学生学号及成绩、课程总分、平均voidPrintInfo(inta[],longnum[],intn){{//依次显示学号、成绩}//显示课程总分、平均分printf("\n");}/*函数功能:统计每个等级的人数及其所占的百voidStatAnalysis(inta[],intcount[],intn){{//初始化成绩等级数组count,count[i]分别表示每个等级的}{//优秀人数累加elseif(成绩超过某个范围)//良好人数累加elseif(成绩超过某个范围)//中等人数累加elseif(成绩超过某个范围)//及格人数累加//不及格人数累加}printf("优秀人数:%d\t,优秀率为%.2f%%\n",?,?);printf("良好人数:%d\t,良好率为%.2f%%\n",?,?);printf("中等人数:%d\t,中等率为%.2f%%\n",?,?);printf("及格人数:%d\t,及格率为%.2f%%\n",?,?);printf("不及格人数:%d\t,不及格率为%.2f%%\n",?,?);}{printf("\nPleaseenteryourchoice:");//定义成绩数组score,学生数变量n,数组下标变量pos//定义学号数组num[N],待查找学号变量x;//定义姓名数组name[][N],待查找姓名变量y;printf("\nWelcometoUseTheStudent'while(1){{break;//调用平均分函数//显示平均分break;//调用按成绩排序函数printf("SortedScores:\n");//显示按成绩排序后的学生信息break;//调用按学号排序函数//显示按学号排序后的学生信息break;//调用按姓名字典顺序排序函数//显示按姓名字典顺序排序后的学生信息break;//调用按学号查找学生排名和成绩函数printf("pleaseinputthesearchedstudent'snum:'");//输入待查找的学号//调用查找函数printf("score=%d\tnum=%ld\tname=%s",?,?,?);break;//调用按姓名查找学生排名和成绩函数printf("pleaseinputthesearchedstudent'sname:'");//输入待查找的姓名//调用查找函数printf("score=%d\tnum=%ld\tname=%s",?,?,?);break;//调用成绩高于平均分人数函数break;//调用统计分析成绩函数break;break;printf("endoftheprogram!");break;printf("inputerror!");break;}}}/*用户登录*/{{printf("\nPleaseenteryourchoice:");//定义成绩数组score,学生数变量n,数组下标变量pos,//定义学号数组num[N],待查找学号变量x;//定义姓名数组name[][N],待查找姓名变量y;printf("\nWelcometoUseTheStudent'while(icheck<3){//登录次数增1break;}{printf("\nLogginginthreetimesinarowwa}while(1){{break;//调用平均分函数//显示平均分break;//调用按成绩排序函数printf("SortedScores:\n");//显示按成绩排序后的学生信息break;//调用按学号排序函数//显示按学号排序后的学生信息break;//调用按姓名字典顺序排序函数//显示按姓名字典顺序排序后的学生信息break;//调用按学号查找学生排名和成绩函数printf("pleaseinputthesearchedstudent'snum:'");//输入待查找的学号//调用查找函数printf("score=%d\tnum=%ld\tname=%s",?,?,?);break;//调用按姓名查找学生排名和成绩函数printf("pleaseinputthesearchedstudent'sname:'");//输入待查找的姓名//调用查找函数printf("score=%d\tnum=%ld\tname=%s",?,?,?);break;//调用成绩高于平均分人数函数break;//调用统计分析成绩函数break;break;printf("endoftheprogram!");break;printf("inputerror!");break;}}}学生成绩管理系统V4.0指针数组等作函数参数编程实现如下成绩管***********************************Menu*************************************************************************sum[],floataver[],intn);3)每floataver1[],floatsum2[],floataver2[],intn)/*函数功能:输入n个学生的一门课成绩、学号和姓名*/voidReadScore(float(*p)[COL],longnum[],char*name[],intn){inti,j;printf("Inputscores:\n");{/*依次输入一个学生的学号、姓名*/{/*依次输入一个学生的各门课成绩*/}/*计算n个学生成绩的总分、平均分*/floatAverforStud(float(*p)[COL],floatsum[],floataver[],intn){{{}}floatAverforCourse(float(*p)[COL],floatsum[],floataver[],intn){{{}}voidSortScore(float(*p)[COL],longnum[],char*name[],floatsum{//定义循环变量i,j和成绩临时变量temp1、总成绩临时变量temp2、平均分临时变量{{{}{}}/*函数功能:按学号查找学生的排名及各科成绩*/intSearchbyNum(float(*p)[COL],longnum[],longx,intn){inti,j;{{/*若找到返回x在数组中的下标*/}/*若循环结束仍未找到,则返回-1*/}/*函数功能:按姓名查找学生的排名及成绩intSearchbyName(float(*p)[COL],char*name[]),char*x,intn){inti,j;{{/*若找到返回x在数组中的下标*/}/*若循环结束仍未找到,则返回-1*/}sum2[],floataver2[],intn){inti,j;{/*依次显示每个学生的学号、姓名、{}printf("\n");{}printf("\n");}/*函数功能:统计各科课程每个等级的人数及其所占的百voidStatAnalysis(float(*p)[COL],int(*count)[5],intn,intm){inti,j;for(i=0;i<n;i++)//n{{//初始化各科成绩等级行指针count,*(*(count+i)+j)表示每科课程每个等级的}}for(i=0;i<n;i++)//依次统{for(j=0;j<m;j++)//m{//优秀人数累加elseif(某课程某人的成绩超过某个范围)//良好人数累加elseif(某课程某人的成绩超过某个范围)//中等人数累加elseif(某课程某人的成绩超过某个范围)//及格人数累加//不及格人数累加}printf("优秀人数:%d\t,优秀率为%.2f%%\n",?,?);printf("良好人数:%d\t,良好率为%.2f%%\n",?,?);printf("中等人数:%d\t,中等率为%.2f%%\n",?,?);printf("及格人数:%d\t,及格率为%.2f%%\n",?,?);printf("不及格人数:%d\t,不及格率为%.2f%%\n",?,?);}/*用户登录*/{printf("\nPleaseenterusername:");while((i>=0)&&(password[i++]=getch())!=13){if(password[i-1]=='{printf("%c%c%c",'\b','\0','\b');}printf("*");}password[--i]='\0';if(用户名为"zhang"同时密码为"12345{printf("\nLoggingsuccess!");}}/*系统界面*/{printf("\n\n");printf("TheStudent'sGradeManagementprintf("\n\n");printf("*****************************Menu****************************\n");//按菜单格式输入提示功能选择printf("**************************************************************\n");printf("\nPleaseenteryourchoice:");}{printf("\nPleaseenteryourchoice:");//定义成绩数组score,学生总分数组sum1,课程总分数组sum2,学生数变量n,数组下标//定义学号数组num[N],待查找学号变量x;//定义姓名数组name[][N],待查找姓名变量y;//定义学生平均分数组aver1,课程平均分数组aver2printf("\nWelcometoUseTheStudent'while(icheck<3){//登录次数增1break;}{printf("\nLogginginthreetimesinarowwa}while(1){{break;//调用每科课程总分、平均分函数//显示每科的总分、平均分break;//调用每个学生总分、平均分函数//显示每个学生的总分、平均分break;//调用按总成绩排序函数printf("SortedScores:\n");//显示按总成绩排序后的学生信息break;//调用按学号查找学生排名和成绩函数printf("pleaseinputthesearchedstudent'snum:'");//输入待查找的学号//调用查找函数printf("score=%d\tnum=%ld\tname=%s",?,?,?);break;//调用按姓名查找学生排名和成绩函数printf("pleaseinputthesearchedstudent'sname:'");//输入待查找的姓名//调用查找函数printf("score=%d\tnum=%ld\tname=%s",?,?,?);break;//调用统计分析成绩函数break;break;printf("endoftheprogram!");break;printf("inputerror!");break;}}}学生成绩管理系统V6.0用结构体数组或结构体指针作函数参数编程实现如下成绩管理***********************************Menu*************************************************************************息、将学生信息写入文件、从文件中读取每个学生的记录信息并显示信息voidPrintInfo(STUDENTstu[],intm,intn);8)将学生信息写入文件void{}DATE;{voidReadScore(STUDENTstu[],intm,intn){inti,j;printf("Inputscores:\n");{/*依次输入一个学生的学号、姓名、出生年月*/{/*依次输入一个学生的各门课成绩*/}}/*计算n个学生成绩的总分、平均分*/floatAverforStud(STUDENTstu[],intm,intn){{{}}voidSortScore(STUDENTstu[],intm,intn){//定义循环变量i,j和结构体临时变量temp1{{if(第i个学生的总成绩小于第j个学生的总成绩){}}}/*函数功能:按学号查找学生的排名及各科intSearchbyNum(STUDENTstu[],longx,intm,intn){inti,j;{{/*若找到返回x在数组中的下标*/}/*若循环结束仍未找到,则返回-1*/}/*函数功能:按姓名查找学生的排名及成绩intSearchbyName(STUDENTstu[],char*x,intm,intn){inti,j;{{/*若找到返回x在数组中的下标*/}/*若循环结束仍未找到,则返回-1*/}voidPrintInfo(STUDENTstu[],intm,intn){inti,j;{{}printf("\n");}/*函数功能:统计各科课程每个等级的人数及其所占的百voidStatAnalysis(STUDENTstu[],intm,intn){inti,j;for(i=0;i<n;i++)//n{{}for(i=0;i<n;i++)//依次统{for(j=0;j<m;j++)//m{//优秀人数累加elseif(某人某课程的成绩超过某个范围)//良好人数累加elseif(某人某课程的成绩超过某个范围)//中等人数累加elseif(某人某课程的成绩超过某个范围)//及格人数累加//不及格人数累加}printf("优秀人数:%d\t,优秀率为%.2f%%\n",?,?);printf("良好人数:%d\t,良好率为%.2f%%\n",?,?);printf("中等人数:%d\t,中等率为%.2f%%\n",?,?);printf("及格人数:%d\t,及格率为%.2f%%\n",?,?);printf("不及格人数:%d\t,不及格率为%.2f%%\n",?,?);}/*函数功能:将每个学生信息格式化voidSavetoFile(STUDENTstu[],intm,intn){{/*按照结构体类型写入每个学生的具体信息*/{}}/*函数功能:将每个学生信息以数据块方式写入voidSavetoFile(STUDENTstu[],intm){/*调用fwrite()以数据块方式写}/*函数功能:从文件中读取每个学生的记录信息并显示在屏幕intReadfromFile(STUDEN{{}}/*用户登录*/{printf("\nPleaseenterusername:");while((i>=0)&&(password[i++]=getch())!=13){if(password[i-1]=='{printf("%c%c%c",'\b','\0','\b');}printf("*");}password[--i]='\0';if(用户名为"zhang"同时密码为"12345{printf("\nLoggingsuccess!");}}/*系统界面*/{printf("\n\n");printf("TheStudent'sGradeManagementprintf("\n\n");printf("*****************************Menu****************************\n");//按菜单格式输入提示功能选择printf("**************************************************************\n");printf("\nPleaseenteryourchoice:");}{printf("\nPleaseenteryourchoice:");//定义学号数组num[N],待查找学号变量x;//定义姓名数组name[][N],待查找姓名变量y;//定义被查找目标在数组中的下标变量posprintf("\nWelcometoUseTheStudent'while(icheck<3){//登录次数增1break;}{printf("\nLogginginthreetimesinarowwa}while(1){{break;//调用每个学生总分、平均分函数//显示每个学生的总分、平均分break;//调用按总成绩排序函数printf("SortedScores:\n");//显示按总成绩排序后的学生信息break;//调用按学号查找学生排名和成绩函数printf("pleaseinputthesearchedstudent'snum:'");//输入待查找的学号//调用查找函数printf("score=%d\tnum=%ld\tname=%s",?,?,?);break;//调用按姓名查找学生排名和成绩函数printf("pleaseinputthesearchedstudent'sname:'");//输入待查找的姓名//调用查找函数printf("score=%d\tnum=%ld\tname=%s",?,?,?);break;//调用统计分析成绩函数break;/*显示每个学生的学号、姓名、各科考试成绩、课程总分、平break;break;/*从文件中读取每个学生的记录信息并显示在屏幕上break;printf("endoftheprogram!");break;printf("inputerror!");break;}}}学生成绩管理系统V5.0用结构体数组或结构体指针作函数参数编程实现如下成绩管理***********************************Menu*************************************************************************{}DATE;{voidReadScore(STUDENTstu[],intm,intn){inti,j;printf("Inputscores:\n");{/*依次输入一个学生的学号、姓名、出生年月*/{/*依次输入一个学生的各门课成绩*/}}/*计算n个学生成绩的总分、平均分*/floatAverforStud(STUDENTstu[],intm,intn){{{}}voidSortScore(STUDENTstu[],intm,intn){//定义循环变量i,j和结构体临时变量temp1{{if(第i个学生的总成绩小于第j个学生的总成绩){}}}/*函数功能:按学号查找学生的排名及各科intSearchbyNum(STUDENTstu[],longx,intm,intn){inti,j;{{/*若找到返回x在数组中的下标*/}/*若循环结束仍未找到,则返回-1*/}/*函数功能:按姓名查找学生的排名及成绩intSearchbyName(STUDENTstu[],char*x,intm,intn){inti,j;{{/*若找到返回x在数组中的下标*/}/*若循环结束仍未找到,则返回-1*/}voidPrintInfo(STUDENTstu[],intm,intn){inti,j;{{}printf

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论