学生成绩管理系统课程设计报告.docx

上传人:b****5 文档编号:5656351 上传时间:2022-12-30 格式:DOCX 页数:18 大小:233.96KB
下载 相关 举报
学生成绩管理系统课程设计报告.docx_第1页
第1页 / 共18页
学生成绩管理系统课程设计报告.docx_第2页
第2页 / 共18页
学生成绩管理系统课程设计报告.docx_第3页
第3页 / 共18页
学生成绩管理系统课程设计报告.docx_第4页
第4页 / 共18页
学生成绩管理系统课程设计报告.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

学生成绩管理系统课程设计报告.docx

《学生成绩管理系统课程设计报告.docx》由会员分享,可在线阅读,更多相关《学生成绩管理系统课程设计报告.docx(18页珍藏版)》请在冰豆网上搜索。

学生成绩管理系统课程设计报告.docx

学生成绩管理系统课程设计报告

软件设计基础

课程设计报告

 

班级:

网络工程08-X班

姓名:

XXX

学号:

082********

2009年07月03日

 

目录

1课程设计的目的……………………………………………………1

2课程设计的时间……………………………………………………1

3课程设计的内容……………………………………………………1

3.1基本要求题目…………………………………………………1

3.1.1题目名称及要求……………………………………………1

3.1.2程序…………………………………………………………1

3.1.3执行结果……………………………………………………2

3.2综合训练………………………………………………………2

3.2.1设计题目……………………………………………………2

3.2.2设计要求……………………………………………………2

3.2.3系统各模块(函数)组成…………………………………3

3.2.4流程图………………………………………………………3

3.2.5各变量的定义和作用……………………………………11

4课程设计遇到的问题及解决过程………………………………11

5课程设计心得体会………………………………………………11

6参考文献…………………………………………………………11

7附录………………………………………………………………12

1课程设计的目的

通过C语言课程设计的实际锻炼,进一步深刻学习C语言的精髓,掌握C语言的基本编程方法。

通过对程序的编写,锻炼自己的动手能力和解决问题的能力,能够体会到发现问题、解决问题的过程的幸苦。

通过本次的课程设计,更深一步磨练自己克服困难的意志,体会C语言功能丰富、表达能力强、使用灵活方便、应用面广、目标程序效率高的特点,从而培养自己程序汇编语言的思想,深刻理解结构化程序设计方法以及模块化设计的思想。

课程设计目的的基本要求:

1通过课程设计,进一步熟悉掌握以下知识:

数据类型、分支控制、循环控制、函数的定义及调用、结构体及数组、指针等。

2通过课程设计,达到系统理解、综合运用课程知识的学习目标。

3通过课程设计,学会用C语言程序解决实际问题的方法。

2课程设计时间

6月22日——7月3日

3课程设计内容

3.1基本要求题目

3.1.1题目名称及要求

请编写函数fun,函数的功能是求出二维数组周边元素之和,作为函数值返回。

二维数组中的值在主函数中赋予。

(数组维数用宏定义)

3.1.2程序

运行程序环境TurboC++6.0

#include"stdio.h"

#defineM4

#defineN5

voidmain()

{

intfun(inta[M][N]);

intnum[M][N]={{7,8,9,4,5},{4,5,6,3,1},{4,5,6,3,2},{7,9,6,5,2}};

intb;

b=fun(num);

printf("数组的外围元素之和是\n%d\n",b);

}

intfun(inta[M][N])

{

inti,j,sum=0;

for(i=0;i

for(j=0;j

{

if(i==0||j==0||i==M-1||j==N-1)

sum=sum+a[i][j];

}

return(sum);

}

3.1.3执行结果

通过宏定义,已经定义数组维数,并在主函数给定数组。

程序在TurboC++6.0环境下运行结果为:

数组的外围元素之和是:

73

3.2综合训练

3.2.1设计题目

学生成绩管理(结构体数组、函数、指针、算法及流程结构等的综合应用)程序说明:

有N个学生,每个学生的数据包含学号(不重复)、姓名、三门课的成绩及平均成绩,试设计一学生成绩管理系统

3.2.2设计要求

学生成绩管理系统

1、成绩录入

2、成绩查询

3、成绩统计 

4、退  出

(1)主菜单

 

(2)各菜单项功能

1.成绩录入:

输入学生的学号、姓名及三门课的成绩;

2.成绩查询:

按学号查询学生成绩。

查询不及格学生的成绩。

3.成绩统计:

计算学生的平均分;

根据学生的平均分高低,对学生的数据进行排序后输出;

对学生单科成绩排序,输出学生姓名与该科成绩;

4.退出系统:

退出整个系统(即主菜单)。

3.2.3系统各模块(函数)组成

系统通过宏定义,定义了全局变量,即学生人数,学科门数,以及定义了数组,以供输入学生学号的取用。

本系统通过主函数main,调用主菜单,通过主菜单的选择语句,继续调用成绩录入函数、成绩查询函数、成绩统计函数,执行完各个函数后,再次返回主菜单函数,通过主菜单,实行退出,以上描述可参见下图,以便观看:

 

图3-2-3模块关系图

3.2.4流程图

本程序流程图如下:

图3-2-4-1主函数流程图

图3-2-4-2菜单函数流程图

图3-2-4-3成绩录入函数流程图

图3-2-4-4成绩查询函数流程图

图3-2-4-5成绩统计函数流程图

3.2.5各变量的定义和作用

主函数:

定义整型变量,作为以下子函数的使用。

主菜单:

定义了整型变量,用于判断,从而进行选择。

成绩录入函数:

定义整型变量i,j,用于循环,进行多人成绩,姓名的录入。

成绩查询函数:

定义整型变量no和字符变量name,用于对所查学生的姓名以及循环的使用。

成绩统计函数:

定义整型变量i,j,为了能够在对成绩的求平均值以及冒泡法排序实现循环做铺垫;定义了浮点型变量Average,分别表示学生的单科平均成绩和总平均成绩;定义了浮点型temp变量,实现平均值的代替;定义了字符型temp1,temp2,实现对学生名字的代替。

.

4课程设计遇到的问题及解决过程

1.在引用库函数的时候出现警告,通过咨询指导老师以及查阅书籍,通过加入头文件,解决了警告问题。

2.对宏定义知识点认识不足,通过同学讨论、问老师,对宏定义有了进一步了解,掌握了宏定义的应用方法,实现了在程序中正确应用宏定义的方法。

3.起初无法实现对调用子函数后返回主菜单的方法,通过网上学习,用getch()解决了这类问题。

4.运行程序过程中,无法对调用后的清屏工作进行处理,通过查找书籍,运用“cls”解决了此类问题。

5课程设计心得体会

通过本次课程设计,锻炼了自己的意志,在探索中发现问题,在实践中解决问题,并在思考中完善问题。

这次课程设计,让我真正的了解了C语言的思想所在,也让我感受到了程序汇编语言的魅力,知道了它简单的一面和它难的一面。

既看见了探索的重要,也懂得了团队精神的可贵。

通过这次实际的操作,也让我看到了我自身的不足之处,深知自己的水平的浅显,了解了C语言,以及科学的严谨,看见了科学的伟大,并且树立了对科学的探索目标。

这次课程设计也同样让自己有了对自己本专业深层次的认识,并对自己以后的专业课的学习有了新的目标,对自己的以后的学习规划有了更进一步的想法。

6参考文献

[1]谭浩强著.C程序设计(第三版).北京:

清华大学出版社,2005

7附录:

+++++++++++++++++++++++++++++++++++++++++

fun函数源程序详细信息

+++++++++++++++++++++++++++++++++++++++++

#include"stdio.h"

#defineM4

#defineN5

voidmain()

{

intfun(inta[M][N]);

intnum[M][N]={{7,8,9,4,5},{4,5,6,3,1},{4,5,6,3,2},{7,9,6,5,2}};

intb;

b=fun(num);

printf("数组的外围元素之和是\n%d\n",b);

}

intfun(inta[M][N])

{

inti,j,sum=0;

for(i=0;i

for(j=0;j

{

if(i==0||j==0||i==M-1||j==N-1)

sum=sum+a[i][j];

}

return(sum);

}

 

+++++++++++++++++++++++++++++++++++++

综合训练源程序详细信息

+++++++++++++++++++++++++++++++++++++

#include

#include

#include

#defineN3/*学生人数*/

#defineM3/*课程门数*/

voidinput();

voiddisplay();

voidsearch();

voidstatistics();

voidmenu();

charname[50][50];

intsnum[10];

floatcourses[N][M];

voidmain()/*主函数*/

{

inti=0;

intj=0;

while

(1)

{system("cls");/*清屏*/

menu();

}

}

 

voidmenu()/*菜单*/

{

intnum=0;

intn=0;

printf("++++++++++++++++++++++++++++++++++++++++++++++\n");

printf("+学生成绩管理系统+\n");

printf("++++++++++++++++++++++++++++++++++++++++++++++\n");

printf("+1.成绩录入+\n");

printf("+2.成绩查询+\n");

printf("+3.成绩统计+\n");

printf("+4.退出+\n");

printf("++++++++++++++++++++++++++++++++++++++++++++++\n");

printf("++++++++++++++++++++++++++++++++++++++++++++++\n");

printf("请选择(选项数字1-4):

");

scanf("%d",&num);

switch(num)

{

case1:

system("cls");

input();

break;

case2:

system("cls");

printf("请输入要查询的学生号:

");

scanf("%d",&n);

search(n);

break;

case3:

system("cls");

statistics();

break;

case4:

exit

(1);

default:

break;

}

}

 

voidinput()/*成绩录入*/

{

inti=0;

intj=0;

for(i=0;i

{

printf("请输入学生号:

");

scanf("%d",snum);

getch();

printf("请输入学生姓名:

");

getchar();

scanf("%s",&name[i]);

for(j=0;j

{

printf("第%d门成绩的分数为:

",j+1);

scanf("%f",&courses[i][j]);

}

printf("\n\n");

}

printf("\n");

printf("**********************************\n");

printf("*已输入完毕,按任意键返回主选单!

*\n");

printf("**********************************\n");

getch();

}

 

voidsearch(intno)/*成绩查询函数*/

{

inti=0;

printf("您选择了查看学生%d号的成绩:

",no);

printf("姓名是:

");

puts(name[no-1]);

for(i=0;i

{

printf("%0.2f",courses[no-1][i]);

}

printf("\n");

printf("**********************************\n");

printf("*按任意键返回主选单!

*\n");

printf("**********************************\n");

getch();

}

 

voidstatistics()/*成绩统计函数*/

{

floatcAverage[M];/*每门课程平均分*/

floatsAverage[N];/*每个学生平均分*/

floattemp=0;

chartemp1=0;

chartemp2=0;

inti=0;

intj=0;

/*算平均分*/

printf("单科课程平均分为:

");/*单科课程平均分*/

for(i=0;i

{

for(j=0;j

{

temp=temp+courses[j][i];

}

cAverage[i]=temp/M;

printf("%0.2f\t",cAverage[i]);

temp=0;

temp1=0;

temp2=0;

}

temp=0;

printf("\n学生成绩平均分为:

\n");

for(j=0;j

{

for(i=0;i

{

temp=temp+courses[j][i];

}

sAverage[j]=temp/N;

printf("%0.2f\t",sAverage[j]);

puts(name[j]);

temp=0;

}

/*排序(冒泡法)*/

for(i=0;i

for(j=0;j

if(cAverage[j]

{

temp=cAverage[j];

cAverage[j]=cAverage[j+1];

cAverage[j+1]=temp;

strcpy(temp1,name[j]);

strcpy(name[j][j],name[j+1][j+1]);

strcpy(name[j+1][j+1],temp1);

}

printf("\n单科课程的前三名:

");

for(i=0;i<3;i++)

{

printf("\n第%d名:

%0.2f姓名:

",i+1,cAverage[i]);

puts(name[i]);

}

temp=0;

for(j=0;j

for(i=0;i

if(sAverage[i]

{

temp=sAverage[i];

sAverage[i]=sAverage[i+1];

sAverage[i+1]=temp;

strcpy(temp2,name[i][i]);

strcpy(name[i][i],name[i+1][i+1]);

strcpy(name[i+1][i+1],temp2);

}

printf("\n学生总成绩前三名:

");

for(i=0;i<3;i++)

{

printf("\n第%d名:

%0.2f姓名:

",i+1,sAverage[i]);

puts(name[i]);

}

printf("\n");

printf("**********************************\n");

printf("*按任意键返回主选单!

*\n");

printf("**********************************\n");

getch();

}

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1