部分代码实例
界面图4-1 分数统计系统程序主界面 4.2模块(或子程序)1(标识符)源码正文宋体小四号,正文段落和标题都是1.5倍行距,正文段落首行缩进2字符 这段程序的作用是检验输入的信息是否满足字长的条件,例如在录入院系名时,已知参赛院系的名称至少为六个字节,当用户输入的字节数少于六个或多余最大值(20个)时,程序会在检验后输出文字提醒用户重新录入。 int gainchar(char A[],int min,int max)//长度在[min,max] <闭区间> 之间时函数结束返回字符串A的长度 { int B,C; do { A[max]=B=C=0; while((A[B++]=getchar())!='\n'&&B<max); if(A[B-1]!='\n')while(getchar()!='\n'&&++C); else A[--B]=0; if(C||B&&B<min) printf("您录入的字符串长度:%d字节\n请录入(%d--%d)个字节\n",B+C,min,max); } while(C||B<min); return B; } 这段程序的作用是输出用户提示,在用户输入参赛院系数目和比赛项目数目后计算出剩余可录入的院系数量和项目数量。此外,当用户已经进入函数输入过一次后院系个数和项目个数下限将被改为0,这样一来当用户在主界面输入选项编号时误入“添加参赛院系 比赛项目”时只要填入“0”即可退出至主界面。 char choose[][13]= {"录入几个院系","总共几个项目","男生多少项目"}; //提示用户输入内容 int scope[][3]= {{3,1,0},{M,Q,M}}; //输入的各个内容的范围 int i,j,k,pan,cun,choice,man; scope[1][0]=M-b[0];//剩余可录入的院系的数量 scope[1][1]=Q-b[1];//剩余可录入的项目的数量 if(b[0])scope[0][0]=scope[0][1]=0;//当用户已经进入此函数输入过一次后,改变条件将院系个数和项目个数下限改为0 这段程序的作用是录入比赛项目,确定项目是男子项目还是女子项目,输出用户提示,在用户输入比赛项目的名称后反馈用户已完成该项目的录入。 for(i=Q-scope[1][1]; i<b[1]+Q-scope[1][1]; i++) //录入项目 { temp->sex[ i]=(b[1]+Q-scope[1][1]-i)<=b[3];//确定性别,0为男,1为女 do { k=0; printf("请输入第%d个项目(%s)名称:\n",i+1,sex[temp->sex],4,N); //输入项目名称 gainchar(game,4,N); for(j=0; j<i; j++) if(BF(game[j],game)) k++; if(k) printf("该项目已完成录入");//情况同院系 4.3测试用例假设共有五个参赛院系,分别为信息系、经管系、建工系、电气系和体育系;共有5个比赛项目,分别为跳高、跳远、铅球、1000米跑和4x100米接力跑;其中跳高、跳远为男子项目,铅球、1000米跑和4x100米接力跑为女子项目。跳高、跳远和铅球取前三名,1000米跑和4x100米接力跑取前五名,每个项目都由各个参赛院系分别派出两名学生参加。比赛结果如下表: 表4-1 各项目排名表 打开分数统计系统,依次录入参赛院系数量、比赛项目数量、男子项目数量和参赛院系名称如图4-2。 
图4-2 录入参赛院系 输入跳高项目的获奖情况如图4-3。 
图4-3 录入跳高成绩 输入跳远项目的获奖情况如图4-4。 
图4-4 录入跳远成绩 输入铅球项目的获奖情况如图4-5。 
图4-5 录入铅球成绩 输入1000米跑项目的获奖情况如图4-6。 图4-6 录入1000米跑成绩 输入4x100米跑项目的获奖情况如图4-7。 图4-7 录入4x100米跑成绩 完成所有项目的成绩录入后系统返回主界面,输入“2”后系统可按男子项目总分排序输出排名,如图4-8。 图4-8 按男子项目总分排序输出排名 输入“3” 后系统可按女子项目总分排序输出排名,如图4-9。 图4-9 按女子项目总分排序输出排名 输入“4”后系统可按各院系总分排序输出排名,如图4-10。 图4-10 按院系总分排序输出排名 输入“5”后系统可按输入的院系编号输出该院系各个项目的排名情况,以信息系为例,查询结果如图4-11。 图4-11 查询信息系各个项目的排名情况
|