计算机程序设计C/C++
专
周
报
告
班级:10621 姓名:银笛
学号:34 日期:2011/5/29
目录
1、设计目的…………………………………………………………3
2、设计任务…………………………………………………………3
3、设计程序运行流程图………………………………………………4
4、详细设计…………………………………………………………5
5、设计源程序………………………………………………………5
6、运行结果…………………………………………………………8
7、总结与体会……………………………………………………..12
1、设计的目的
1)复习巩固C语言的基础知识,进一步加深对C语言编程的理解和掌握;
2)利用所学知识,理论和实际结合,利用资源,采用模块化的结构,使用模仿修改自主设计相结合的方法,锻炼学生综合分析解决实际问题的编程能力;
2、设计任务
1、专周设计题目:
学生成绩管理系统
2功能实现:
(1)可以输入100个以内的学生的成绩,要求成绩由用户从键盘输入
(2)输入成绩后,根据用户的选择,能够实现成绩的总和,成绩的排序,平均分,最高分,最低分。
3、运行结果说明
**********欢迎使用学生成绩管理系统****************
1、成绩录入 2、成绩排名(由高到低)
3、成绩排名(由低到高) 4、平均分
5、最高分 6、最低分
*******************请输入您的操作********************
备注:如果在还没有选择1,而选择2~6中的其中一个的时候,要提示:目前还没有成绩,请您首先选择1进行成绩录入,然后继续回到刚开始的操作,由用户来选择。
选择1后,录入成绩,结束后,后面可进行1~6的选择,每次选择后,作出相应的结果,然后又返回主界面。
3、设计程序运行流程图
4、详细设计
1.主函数用if语句,运用“goto语句”实现循环。
2.学生成绩的存储使用一维数组,并且使用了一个结构体函数“typedef struct”。这样就方便了以后的程序各个步骤来调用此前输入的学生数据。
3.排序运用的是冒泡排序法。
4求平均分是用的将所有数组内的数据加起来,再除以数组内数据的个数。
5求最高分、最低分是用的选择排序法。
5、设计源程序
#include void main() { char p=0; int i,x,m; int j,k; typedef struct{ char name[10]; /*姓名*/ int number; /*学号*/ int score; /*成绩*/ }LC; LC Nname[100],xy; prt: printf("**************欢迎使用学生成绩管理系统***************\\n"); printf("\\n 1、成绩录入 "); printf(" 2、成绩排名(由高到低)\\n"); printf("\\n 3、成绩排名(由低到高)"); printf(" 4、平均分 \\n"); printf("\\n 5、最高分 "); printf(" 6、最低分 \\n"); printf("******************请输入您的操作*********************\\n"); printf("请选择(1-6):"); scanf("%d",&i); if(i==1) { p=1; printf("请输入学生人数(≤100):"); scanf("%d",&x); for(j=0;j<=x-1;j++) { printf("请输入学生的姓名 学号 成绩:\\n"); scanf("%s %d %d",Nname[j].name,&Nname[j].number,&Nname[j].score); } goto prt; } if(p!=1) { printf("目前还没有成绩,请您首先选择1进行成绩录入!!!\\n"); goto prt; } if(i==2) { int a,b; for(a=0;a for(b=a+1;b<=x-1;b++) { if(Nname[a].score xy=Nname[a]; Nname[a]=Nname[b]; Nname[b]=xy; } } } printf("按高低排序为:\\n"); for(m=0;m<=x-1;m++) { printf("%s %d %d\\n",Nname[m].name,Nname[m].number,Nname[m].score); } printf("\\n"); goto prt; } if(i==3) { int a,b; for(a=0;a for(b=a+1;b<=x-1;b++) { if(Nname[a].score>Nname[b].score) { xy=Nname[a]; Nname[a]=Nname[b]; Nname[b]=xy; } } } printf("按高低排序为:\\n"); for(m=0;m<=x-1;m++) { printf("%s %d %d\\n",Nname[m].name,Nname[m].number,Nname[m].score); } printf("\\n"); goto prt; } if(i==4) { int a; int total=0; for(a=0;a<=x-1;a++) total=total+Nname[a].score; total=total/(j+1); printf("平均分%d\\n",total); goto prt; } if(i==5) { int a; xy=Nname[0]; for(a=x-1;a if(Nname[a].score>xy.score) xy=Nname[a]; printf("最高分%s %d %d\\n",xy.name,xy.number,xy.score); } goto prt; } if(i==6) { int a; xy=Nname[0]; for(a=x-1;a if(Nname[a].score printf("最低分%s %d %d\\n",xy.name,xy.number,xy.score); } goto prt; } } 6、运行结果 7、总结与体会 本学期我们学习了C语言这门课程,总的感觉这门课程对于我们非常有用。通过一周的专周,我可以说又将C语言这门课程重新学习了一遍,也因为程序设计的需要,自学了以后的一些课程,如结构体函数等等。总的来说,这个专周让我们熟悉了C语言的许多基本设计知识。也通过一周的自主设计,让我们明白了一个简单的程序是怎样设计出来的。增强了我们对于一个课题的整体把握能力。为我们以后能够全面把握一个项目提供了一个很好的锻炼机会。这个专周,我们同学之间也是相互帮助,互相合作,来共同完成一项任务。同学们间的相互协作让大家彼此间加深了友谊,也体会到了团队所带来的效率。总之,这个专周下来,我受益匪浅。下载本文