程序设计基础专周报告.doc
成都电子机械高等专科学校专 周 报 告课程名称程序设计基础专周专周题目学生成绩管理系统姓 名班 级学 号指导教师设计时间成都电子机械高等专科学校计算机工程系一、题目和设计要求一、题目学生成绩管理系统二、功能说明1、学生成绩信息包括:学号、姓名、4门课程的成绩、总分及平均分;2、能完成对学生成绩的录入、修改;3、能计算总分及平均分4、成绩排序(1)能根据学生平均分排序;(2)能根据指定科目成绩排序;5、查询功能 (1)能按指定学号和姓名显示学生成绩 (2)能按指定科目显示不及格学生信息(学号、姓名、指定科目成绩)(3)显示全部学生的全部成绩。三、设计要求1、学生成绩信息可用数组存储(可初始化部分数据)。2、提供菜单选择功能。3、程序结构合理,各功能通过函数调用实现。4、必须要有必要的注释信息。程序源代码#include <stdio.h>#include <string.h>void shuru();void chakan();void jisuan();void xiougai();void paixu();int num100=1,2,3,4;char name10020="A","B","C","D"int score1006=97,84,93,95,89,97,88,91,95,91,86,94,93,95,93,94;int i,j,y;void main(void)printf(" 学生成绩管理系统n");for (i=0;i<100;i+)printf("*n");printf("功能表:n");printf("1 输入学生成绩n");printf("2 查看学生成绩n");printf("3 修改学生成绩n");printf("4 计算平均成绩n");printf("5 学生成绩排序n");/菜单项/printf("*n");printf("请选择你想要的功能:n");int a;scanf("%d",&a);switch(a)case 1:printf("输入学生成绩,n");shuru();break;case 2:printf("查看学生成绩n");chakan();break;case 3:printf("修改学生成绩n");xiougai();break;case 4:printf("计算平均成绩n");jisuan();break;case 5:printf("学生成绩排序n");paixu();break;/switch语句执行选定项目/int x;void shuru()for(x=4;x<100;x+)printf("请输入学号(当输入成绩小于0时退出录入):n");scanf("%d",&numx);if(numx<0)break;printf("请输入姓名(请不要使用空格):n");scanf("%s",&namex);printf("请输入学生语文、数学、英语、计算机成绩:n");scanf("%d",&scorex0);scanf("%d",&scorex1);scanf("%d",&scorex2);scanf("%d",&scorex3);/输入学生成绩/void chakan()printf("*n");printf("功能表:n");printf("1 查看全部学生成绩n");printf("2 指定姓名查看成绩n");printf("3 指定学号查看成绩n");printf("4 查看指定科目不及格学生信息n");/查询菜单项/printf("*n");printf("请选择你想要的功能:n");int b=0;scanf("%d",&b);switch(b)case 1:printf("姓名 学号 语文 数学 英语 计算机 总分 平均分n");for(j=0;j<100;j+)if(numj>0)printf("%2s %4d %4d %4d %4d %4d %4d %4d n",namej,numj,scorej0,scorej1,scorej2,scorej3,scorej4,scorej5);/查询所有学生成绩/break;case 2:printf("指定姓名查看成绩n");break;case 3:printf("请输入你要查看学生的学号:");scanf("%d",&y);printf("姓名 学号 语文 数学 英语 计算机 总分 平均分n");printf("%2s %4d %4d %4d %4d %4d %4d %4d n",namey-1,numy-1,scorey-10,scorey-11,scorey-12,scorey-13,scorey-14,scorey-15);break;/输入学号查看成绩/case 4:printf("1 语文n");printf("2 数学n");printf("3 英语n");printf("4 计算机n");int z ;scanf("%d",&z);switch(z)case 1:printf("姓名 学号 语文n");for(j=0;j<100;j+)if(scorej0>0&&scorej0<60)printf("%2s %4d %4dn",namej,numj,scorej0);break;/查看语文科目不及格学生/case 2:printf("姓名 学号 数学n");for(j=0;j<100;j+)if(scorej1>0&&scorej1<60)printf("%2s %4d %4dn",namej,numj,scorej1);break;/查看数学科目不及格学生/case 3:printf("姓名 学号 英语n");for(j=0;j<100;j+)if(scorej2>0&&scorej2<60)printf("%2s %4d %4dn",namej,numj,scorej2);break;/查看英语科目不及格学生/case 4:printf("姓名 学号 计算机n");for(j=0;j<100;j+)if(scorej3>0&&scorej3<60)printf("%2s %4d %4dn",namej,numj,scorej3);break;/查看计算机科目不及格学生/break;/查询科目成绩不及格学生信息/switch语句执行选定项目/void jisuan()for(j=0;j<100;j+)scorej4=scorej0+scorej1+scorej2+scorej3;scorej5=scorej4/4;/计算总分和平均分/void xiougai()printf("1 输入学号修改n2 输入姓名修改n");int m;printf("请选择:");scanf("%d",&m);switch(m)case 1:printf("请输入需要修改成绩学生的学号:");int xuehao;scanf("%d",&xuehao);for(j=0;j<100;j+)if(numj=xuehao)printf("1 语文n2 数学n3 英语n4 计算机n");int xue;printf("请输入需要修改的科目:");scanf("%d",&xue);printf("请输入新的成绩:");scanf("%d",&scorejxue-1);break;break;/输入学号修改学生成绩/void paixu()printf("1 按语文成绩排序n");printf("2 按数学成绩排序n");printf("3 按英语成绩排序n");printf("4 按计算机成绩排序n");printf("5 按总分和平均分排序n");int n,k;char nam20;scanf("%d",&n);switch(n)case 1:printf("姓名 学号 语文 数学 英语 计算机 总分 平均分n");for(i=99;i>=0;i-)for(j=0;j<i;j+)if(scorej0<scorej+10)k=scorej0;scorej0=scorej+10;scorej+10=k;k=scorej1;scorej1=scorej+11;scorej+11=k;k=scorej2;scorej2=scorej+12;scorej+12=k;k=scorej3;scorej3=scorej+13;scorej+13=k;k=scorej4;scorej4=scorej+14;scorej+14=k;k=scorej5;scorej5=scorej+15;scorej+15=k;k=numj;numj=numj+1;numj+1=k;strcpy(nam,namej);strcpy(namej,namej+1);strcpy(namej+1,nam);for(j=0; j<100; j+)if(numj>0)printf("%2s %4d %4d %4d %4d %4d %4d %4d n",namej,numj,scorej0,scorej1,scorej2,scorej3,scorej4,scorej5);break;/按语文成绩排序/case 2:printf("姓名 学号 语文 数学 英语 计算机 总分 平均分n");for(i=99;i>=0;i-)for(j=0;j<i;j+)if(scorej1<scorej+11)k=scorej1;scorej1=scorej+11;scorej+11=k;k=scorej0;scorej0=scorej+10;scorej+10=k;k=scorej2;scorej2=scorej+12;scorej+12=k;k=scorej3;scorej3=scorej+13;scorej+13=k;k=scorej4;scorej4=scorej+14;scorej+14=k;k=scorej5;scorej5=scorej+15;scorej+15=k;k=numj;numj=numj+1;numj+1=k;strcpy(nam,namej);strcpy(namej,namej+1);strcpy(namej+1,nam);for(j=0;j<100;j+)if(numj>0)printf("%2s %4d %4d %4d %4d %4d %4d %4d n",namej,numj,scorej0,scorej1,scorej2,scorej3,scorej4,scorej5);break;/按数学成绩排序/case 3:printf("姓名 学号 语文 数学 英语 计算机 总分 平均分n");for(i=99;i>=0;i-)for(j=0;j<i;j+)if(scorej2<scorej+12)k=scorej2;scorej2=scorej+12;scorej+12=k;k=scorej1;scorej1=scorej+11;scorej+11=k;k=scorej0;scorej0=scorej+10;scorej+10=k;k=scorej3;scorej3=scorej+13;scorej+13=k;k=scorej4;scorej4=scorej+14;scorej+14=k;k=scorej5;scorej5=scorej+15;scorej+15=k;k=numj;numj=numj+1;numj+1=k;strcpy(nam,namej);strcpy(namej,namej+1);strcpy(namej+1,nam);for(j=0;j<100;j+)if(numj>0)printf("%2s %4d %4d %4d %4d %4d %4d %4d n",namej,numj,scorej0,scorej1,scorej2,scorej3,scorej4,scorej5);break;/按英语成绩排序/case 4:printf("姓名 学号 语文 数学 英语 计算机 总分 平均分n");for(i=99;i>=0;i-)for(j=0;j<i;j+)if(scorej3<scorej+13)k=scorej3;scorej3=scorej+13;scorej+13=k;k=scorej1;scorej1=scorej+11;scorej+11=k;k=scorej2;scorej2=scorej+12;scorej+12=k;k=scorej0;scorej0=scorej+10;scorej+10=k;k=scorej4;scorej4=scorej+14;scorej+14=k;k=scorej5;scorej5=scorej+15;scorej+15=k;k=numj;numj=numj+1;numj+1=k;strcpy(nam,namej);strcpy(namej,namej+1);strcpy(namej+1,nam);for(j=0;j<100;j+)if(numj>0)printf("%2s %4d %4d %4d %4d %4d %4d %4d n",namej,numj,scorej0,scorej1,scorej2,scorej3,scorej4,scorej5);break;/按计算机成绩排序/case 5:printf("姓名 学号 语文 数学 英语 计算机 总分 平均分n");for(i=99;i>=0;i-)for(j=0;j<i;j+)if(scorej4<scorej+14)k=scorej4;scorej4=scorej+14;scorej+14=k;k=scorej1;scorej1=scorej+11;scorej+11=k;k=scorej2;scorej2=scorej+12;scorej+12=k;k=scorej3;scorej3=scorej+13;scorej+13=k;k=scorej0;scorej0=scorej+10;scorej+10=k;k=scorej5;scorej5=scorej+15;scorej+15=k;k=numj;numj=numj+1;numj+1=k;strcpy(nam,namej);strcpy(namej,namej+1);strcpy(namej+1,nam);for(j=0;j<100;j+)if(numj>0)printf("%2s %4d %4d %4d %4d %4d %4d %4d n",namej,numj,scorej0,scorej1,scorej2,scorej3,scorej4,scorej5);break;/按总分或平均分排序/考核情况(由指导老师填写)项目考勤(20%)验收(40%)报告(20%)总分得分考勤记录考勤日期出勤记录验收情况