河北机电职业技术学院计算机信息工程系
程序设计基础课程设计
设计题目:学生成绩管理系统
班 级: 软件1301班
姓 名: x x x
学 号: 060123130141
指导教师: 李芳
日 期: 2014、1、10
《学生成绩管理系统》设计与实现
课程设计目标
加深对《C语言程序设计》课程中所学知识的理解,进一步巩固C语言语法规则,学会编制结构清晰、风格良好、数据结构适当的C语言程序,培养解决综合性实际问题的能力。
系统功能需求
添加记录:增加记录。
显示记录:显示全部记录。
学号查询记录:按学号查询记录。
姓名查询记录:按姓名查询记录。
按学号删除记录:根据学号删除记录。
删除全部记录:记录全被删除。
按学号排序:根据学号排序。
成绩统计:统计学生成绩(优、良、中、及格、不及格)。
成绩排序:根据成绩由高到低排序。
高低分统计:统计最高分、最低分和不及格人数。
数据写入:将全部记录写入磁盘当中。
数据读取:将全部记录从磁盘中读取出来。
0.退出:退出管理系统。
系统设计及功能实现
关于菜单。
其实菜单的设计挺简单的,只要printf就可以了。然而需要进行选择菜单的操作,所以就需要scanf了,并且只能输入菜单的号码,如果输入其他数字,则提示“重新输入”。所以就运用了if函数,利用if(cn<0||cn>12)来进行判断,如果在范围内,则正常运行,如果没在范围内则提示出错重新输入。
int menu_select()
{
int cn;
printf("\n");
printf("\t********************学生成绩管理********************\n");
printf("\t\t 1. 添加记录\n");
printf("\t\t 2. 显示记录\n");
printf("\t\t 3. 学号查询记录\n");
printf("\t\t 4. 姓名查询记录\n");
printf("\t\t 5. 按学号删除记录\n");
printf("\t\t 6. 删除全部记录\n");
printf("\t\t 7. 按学号排序\n");
printf("\t\t 8. 成绩统计\n");
printf("\t\t 9. 成绩排序\n");
printf("\t\t 10. 高低分统计\n");
printf("\t\t 11. 数据写入\n");
printf("\t\t 12. 数据读取\n");
printf("\t\t 0. 退出\n");
printf("\t****************************************************\n");
printf("\t请选择功能(0~12); ");
scanf("%d",&cn);
for( ; ;){
if(cn<0||cn>12){
printf("\t出错啦,请重新选择功能编号!");
scanf("%d",&cn);
}
else
break;
}
return cn;
}
关于按姓名查找记录。
按姓名查找记录,也许有同名的记录,所以需要将同名的记录同时打印出来。
姓名查找,在我的设计中的位置是在第二位,所以需要运用下标来进行定位,则用到了for(i=0;i<100;i++){
if(strcmp(name,array[i].name)==0){
a[k++]=i;
来进行定位。
接下来则需要判断则用到了if函数。if(k!=0){
printf("\t**************显示学生信息****************\n");
printf("\t学号 姓名 性别 成绩\n");
for(i=0;i
printf("\t%-8d%-8s%-4c%10.1f\n",array[a[i]].num,array[a[i]].name,array[a[i]].sex,array[a[i]].score);
}
printf("\t************************************************\