学生选课系统代码评审.docx
- 文档编号:25429109
- 上传时间:2023-06-08
- 格式:DOCX
- 页数:28
- 大小:22.03KB
学生选课系统代码评审.docx
《学生选课系统代码评审.docx》由会员分享,可在线阅读,更多相关《学生选课系统代码评审.docx(28页珍藏版)》请在冰豆网上搜索。
学生选课系统代码评审
一、代码评审检查表:
NO
检查项
是否符合
1
变量生存周期合适
O
2
代码不仅包含单元测试用例,而且测试均已通过。
X
3
代码包含了恰当的注释和代码文档
O
4
代码符合代码格式规范
O
5
代码有健全的出错处理子程序
X
6
删除了多余语句
O
7
编译没有出错
O
8
连接没有出错
O
9
消除了所有警告
O
10
性能问题有考虑
X
11
安全问题有考虑
O
12
不存在溢出
O
13
不存在内存泄露
O
14
优先使用可重用组件或库中相同功能的函数来替换自己的实现
X
15
出现了恰当的转移语句
X
16
变量初始化没有异常,没有引用未初始化变量
O
17
变量类型定义没有出错
O
18
代码逻辑达到最佳编码
X
19
功能要求和代码实现一致
O
20
二、代码评审实验心得:
2.1代码评审定义:
代码评审,是一种静态的软件测试方法。
它针对软件的源代码,通过走查、评审等方式,来有效的发现软件代码缺陷。
2.2代码评审优点:
有利于预防bug,为改善代码质量打下坚实的基础。
在项目的早期发现缺陷,可以将损失降至最低。
评审的过程也是重新梳理开发思路的过程,双方都加深了对系统的理解。
有利于促进团队沟通、促进知识共享、共同提高。
2.3代码评审实现过程及心得体会:
在针对源程序,即学生选课管理系统源代码的基础上,结合代码评审的相关概念、思想,还有参考了相关知识。
有针对性的设计了,一个评审检查表。
按照代码评审的要求,逐步按评审检查表的款项。
逐条,执行检查。
严格的按照审查要求,严肃的将检查结果记录在册。
代码评审的过程中,按照一定的速度执行代码检查。
检查代码的编程风格,书写格式,变量定义、生存周期、初始化,代码注释是否合适等款项。
每一条检查项目严格执行,这个过程十分枯燥。
但必须仔细,认真对待,不容许出现一丝错误。
代码评审,是我们以前重来没有经历过的事情,对于这些事情。
我们既充满了好奇,也有些忐忑不安。
在实验的过程中,我们一边查找资料,一边根据书上所学、以及老师所讲。
一边学,一边用。
在这样的状态下,历经苦难,终于完成了这个过程。
在这个过程中,我学到了很多,在以前都不会注意的东西。
学会了以一种严谨的态度来认真执行,学会了有问题就同伙伴,交流、讨论。
在将来,或许我会从事软件行业。
相信到那个时候,在做软件测试的时候,这个时候的一段经历,会对我很有帮助。
三、源代码:
#include
#include
#include
#defineSCMAX6/*每人选课最大数目-1*/
#defineTEMAX4/*老师能教的最大课程数目-1*/
#defineSTU1000/*最大学生人数*/
#defineCNO200/*课程最大数目*/
#defineTea200/*老师最大编号*/
#defineCPMAX80/*规定每门课人数最大值*/
structCourse{
intCno;/*课程号*/
charCname[20];/*课程名*/
doubletime;/*上课时间*/
charplace[20];/*上课地点*/
charteacher[10];/*上课老师*/
intTno;/*老师编号*/
intpn;/*学生人数*/
}Cou[CPMAX]={
{1,"数学",109.40,"5#5110","张三",1,4},
{2,"语文",210.30,"6#6110","李四",2,1},
{3,"英语",307.30,"15#15217","王五",3,1},
{4,"经济",715.40,"6#6510","张三",1,4},
{5,"防身术",10.00,"8#8321","李四",2,0},
{6,"电脑游戏",10.00,"5#5310","王五",3,0}
};/*课程初始化课程编号、上课时间、上课地点、老师、老师编号、课程人数*/
structSTUDENT{
intno;
charSname[10];
}S[6]={{1,"尹新荣"},{2,"李明"},{3,"李阳"},{4,"刘成立"},{5,"艾斯"},{6,"司丽芳"}};
intStudent[STU][SCMAX]={{1,1,0,0,0},{2,1,0,0,0},{3,3,0,0,0},{4,1,2,3,4},{5,1,0,0,0},{6,0,0,0,0}};
intTeacher[Tea][SCMAX]={{1,1,4,0,0},{2,2,5,0,0},{3,3,6,0,0}};
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++学生++++++++++++++++++++++++++++++++++++++++++++++++++++*/
voidstudent();
voidmanger();
voidjiemian();
voidAdd();
voidchange();
voidselect(intXH);
voidDropC(intXH);
voidteacher();
voidmanger();
voidsearch(intXH)/*课程查询*/
{
intj,i;
chark[10];
printf("您已选择的课程为:
\n");
printf("课程号课程名上课时间上课地点上课老师老师编号课程人数\n");
for(j=1;j<=4;j++)
{
if(Student[XH][j]==0)printf("空\n");
else
{
printf("%3d%10s%9.2f",Cou[Student[XH][j]-1].Cno,Cou[Student[XH][j]-1].Cname,Cou[Student[XH][j]-1].time);
printf("%7s%8s%9d%9d\n",Cou[Student[XH][j]-1].place,Cou[Student[XH][j]-1].teacher,Cou[Student[XH][j]-1].Tno,Cou[Student[XH][j]-1].pn);
}/*输出所查询的课程*/
}
printf("任意键返回\n");
scanf("%s",&k);
system("cls");
printf("%s欢迎回来!
\n",S[XH].Sname);
system("color80");
printf("################################################\n");
printf("##\n");
printf("##\n");
printf("#1选课查询#\n");
printf("##\n");
printf("#2选课#\n");
printf("##\n");
printf("#3选课退选#\n");
printf("##\n");
printf("##\n");
printf("#B返回#\n");
printf("################################################\n");
scanf("%d",&i);
if(i==1){system("cls");search(XH);}
elseif(i==2){system("cls");select(XH);}
elseif(i==3){system("cls");DropC(XH);}
else
{
system("cls");
jiemian();
}
}
voidselect(intXH)/*选课*/
{
leap1:
system("color70");
intcn,i,j,Cn,k;
intp=0;
chart[20];
printf("课程号课程名上课时间上课地点上课老师老师编号课程人数\n");/*添加*/
for(k=0;k<=CPMAX;k++)/*添加*/
{
if(Cou[k].Cno==0)break;
}
for(i=0;i { printf("%3d%10s%9.2f",Cou[i].Cno,Cou[i].Cname,Cou[i].time); printf("%10s%8s%9d%9d\n",Cou[i].place,Cou[i].teacher,Cou[i].Tno,Cou[i].pn); }/*添加*/ printf("请输入课程序号\n"); scanf("%d",&cn); Cn=cn-1; if(Cou[Cn].Cno==0) { printf("该课程不存在\n"); printf("是否继续选课? 1是2否\n"); scanf("%d",&j); if(j==1){system("cls");gotoleap1;} } elseif(Cn { printf("课程号课程名上课时间上课地点上课老师老师编号课程人数\n"); printf("%3d%10s%9.2f",Cou[Cn].Cno,Cou[Cn].Cname,Cou[Cn].time); printf("%10s%8s%9d%9d\n",Cou[Cn].place,Cou[Cn].teacher,Cou[Cn].Tno,Cou[Cn].pn); printf("是否选择该课程? 1是2否\n"); scanf("%d",&j); if(j==1) { for(j=1;j<(SCMAX-1);j++)/*+++++++++++++++++++++++++++*/ { if(Student[XH][j]==cn)p=1; } if(p==1) { printf("该门课程已经选过了\n"); printf("是否重新选课? 1是2否\n"); scanf("%d",&i); if(i==1){system("cls");gotoleap1;} } elseif(Student[XH][SCMAX-1]>0) { printf("你所选课程已满不能再进行选择\n"); } elseif(Cou[Cn].pn==CPMAX) { printf("该门课人数已满"); printf("是否重新选课? 1是2否\n"); scanf("%d",&i); if(i==1){system("cls");gotoleap1;}/*1111*/ } else { if(Student[XH][1]==0)Student[XH][1]=Cou[Cn].Cno; elseif(Student[XH][2]==0)Student[XH][2]=Cou[Cn].Cno; elseif(Student[XH][3]==0)Student[XH][3]=Cou[Cn].Cno; else Student[XH][4]=Cou[Cn].Cno; Cou[Cn].pn=Cou[Cn].pn+1; printf("选课成功! \n"); printf("是否继续选课? 1是2否\n"); scanf("%d",&j); if(j==1){system("cls");gotoleap1;} } } else { printf("是否继续选课? 1是2否\n"); scanf("%d",&j); if(j==1){system("cls");gotoleap1;} } } else { printf("该课程不存在\n"); printf("是否继续选课? 1是2否\n"); scanf("%d",&j); if(j==1){system("cls");gotoleap1;} } printf("任意键返回\n"); scanf("%s",&t); system("cls"); printf("%s欢迎回来! \n",S[XH].Sname); system("color80"); printf("################################################\n"); printf("##\n"); printf("##\n"); printf("#1选课查询#\n"); printf("##\n"); printf("#2选课#\n"); printf("##\n"); printf("#3选课退选#\n"); printf("##\n"); printf("##\n"); printf("#B返回#\n"); printf("################################################\n"); scanf("%d",&i); if(i==1){system("cls");search(XH);} elseif(i==2){system("cls");select(XH);} elseif(i==3){system("cls");DropC(XH);} else { system("cls"); jiemian(); } } voidDropC(intXH)/*课程退选*/ { leap2: inti,j,k; charl[20]; intm=0; printf("您已选择的课程为: \n"); printf("课程号课程名上课时间上课地点上课老师老师编号课程人数\n"); for(j=1;j<=4;j++) { if(Student[XH][j]==0)printf("空\n"); else { printf("%3d%10s%9.2f",Cou[Student[XH][j]-1].Cno,Cou[Student[XH][j]-1].Cname,Cou[Student[XH][j]-1].time); printf("%7s%8s%9d%9d\n",Cou[Student[XH][j]-1].place,Cou[Student[XH][j]-1].teacher,Cou[Student[XH][j]-1].Tno,Cou[Student[XH][j]-1].pn); }/*输出所查询的课程*/ } printf("请输入退选的课程号: \n"); scanf("%d",&i); if(i>CNO||i<0) { printf("输入有误\n"); gotoleap2; } elseif(Cou[i-1].Cno==0){ printf("该课程不存在\n"); printf("是否重新退选课程? 1是2否\n"); scanf("%d",&k); if(k==1){system("cls");gotoleap2;} } else { for(j=1;j<=4;j++) { if(Student[XH][j]==Cou[i-1].Cno){m=1;break;} } if(m==1) { Student[XH][j]=0; Cou[i-1].pn=Cou[i-1].pn-1; printf("退选成功! \n"); printf("是否继续退选课程? 1是2否\n"); scanf("%d",&k); if(k==1){system("cls");gotoleap2;} } else { printf("你还没选择这门课程\n"); printf("是否重新退选课程? 1是2否\n"); scanf("%d",&k); if(k==1){system("cls");gotoleap2;} } } printf("任意键返回\n"); scanf("%d",l); system("cls"); printf("%s欢迎回来! \n",S[XH].Sname); system("color80"); printf("################################################\n"); printf("##\n"); printf("##\n"); printf("#1选课查询#\n"); printf("##\n"); printf("#2选课#\n"); printf("##\n"); printf("#3选课退选#\n"); printf("##\n"); printf("##\n"); printf("#B返回#\n"); printf("################################################\n"); scanf("%d",&i); if(i==1){system("cls");search(XH);} elseif(i==2){system("cls");select(XH);} elseif(i==3){system("cls");DropC(XH);} else { system("cls"); jiemian(); } } voidstudent() { intxh,i; leap7: printf("请输入账号: \n"); scanf("%d",&xh); if(xh>6||xh<1){printf("输入错误请重新输入\n");gotoleap7;} else{ system("cls"); printf("%s欢迎回来! \n",S[xh-1].Sname); system("color80"); printf("################################################\n"); printf("##\n"); printf("##\n"); printf("#1选课查询#\n"); printf("##\n"); printf("#2选课#\n"); printf("##\n"); printf("#3选课退选#\n"); printf("##\n"); printf("##\n"); printf("#B返回#\n"); printf("################################################\n"); scanf("%d",&i); if(i==1){system("cls");search(xh-1);} elseif(i==2){system("cls");select(xh-1);} elseif(i==3){system("cls");DropC(xh-1);} else { system("cls"); jiemian(); } } } /*++++++++++++++++++++++++++++++++++++++++++++++++学生++++++++++++++++++++++++++++++++++++++++++++++++*/ /*++++++++++++++++++++++++++++++++++++++++++++++++老师++++++++++++++++++++++++++++++++++++++++++++++++*/ voidteacher()/*老师*/ {/*f*/ leap3: intBH,bh,i,j,d,m; charl[20]; intk=0; printf("请输入账号: \n"); scanf("%d",&bh); if(bh>6||bh<1){printf("输入错误请重新输入\n");gotoleap3;} else{ BH=bh-1; if(BH>CNO||BH<0) { printf("输入有误\n"); gotoleap3; } else {/*kk*/ printf("您所教的选修课有: \n"); printf("课程号课程名上课时间上课地点上课老师老师编号课程人数\n"); for(i=1;i<=TEMAX;i++) {printf("%3d%10s%9.2f",Cou[Teacher[BH][i]-1].Cno,Cou[Teacher[BH][i]-1].Cname,Cou[Teacher[BH][i]-1].time); printf("%10s%8s%9d%9d\n",Cou[Teacher[BH][i]-1].place,Cou[Teacher[BH][i]-1].teacher,Cou[Teacher[BH][i]-1].Tno,Cou[Teacher[BH][i]-1].pn); } printf("显示所教课程学生名单? 1是2否\n"); scanf("%d",&j); if(j==1) { leap4: printf("请输入课程号\n"); scanf("%d",&j); if(j>CNO
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学生 选课 系统 代码 评审