c语言实习学生成绩管理系统.docx

上传人:b****1 文档编号:2103942 上传时间:2023-05-02 格式:DOCX 页数:15 大小:112.93KB
下载 相关 举报
c语言实习学生成绩管理系统.docx_第1页
第1页 / 共15页
c语言实习学生成绩管理系统.docx_第2页
第2页 / 共15页
c语言实习学生成绩管理系统.docx_第3页
第3页 / 共15页
c语言实习学生成绩管理系统.docx_第4页
第4页 / 共15页
c语言实习学生成绩管理系统.docx_第5页
第5页 / 共15页
c语言实习学生成绩管理系统.docx_第6页
第6页 / 共15页
c语言实习学生成绩管理系统.docx_第7页
第7页 / 共15页
c语言实习学生成绩管理系统.docx_第8页
第8页 / 共15页
c语言实习学生成绩管理系统.docx_第9页
第9页 / 共15页
c语言实习学生成绩管理系统.docx_第10页
第10页 / 共15页
c语言实习学生成绩管理系统.docx_第11页
第11页 / 共15页
c语言实习学生成绩管理系统.docx_第12页
第12页 / 共15页
c语言实习学生成绩管理系统.docx_第13页
第13页 / 共15页
c语言实习学生成绩管理系统.docx_第14页
第14页 / 共15页
c语言实习学生成绩管理系统.docx_第15页
第15页 / 共15页
亲,该文档总共15页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

c语言实习学生成绩管理系统.docx

《c语言实习学生成绩管理系统.docx》由会员分享,可在线阅读,更多相关《c语言实习学生成绩管理系统.docx(15页珍藏版)》请在冰点文库上搜索。

c语言实习学生成绩管理系统.docx

c语言实习学生成绩管理系统

成绩:

------

 

《高级程序设计语言》

课程设计报告

 

学院:

班级:

学号:

姓名:

 

1.引言:

编一程序,实现将输入的一个无符号整数转换为二进制,八进制表示,分别存入字符数组中并输出。

(提示:

算法采用模拟人工法。

注:

计算机模拟人工是编程中常用的方法,这种方法要求编程者首先分析在人工方式下解决问题的过程,从中找出步骤和规律,然后编写程序,按照人工解决问题的步骤和规律进行操作。

2.算法设计:

主函数

子函数1

子函数2

子函数3

3.调试报告:

对于该程序首先分析在人工方式下解决问题的过程,从中找出步骤和规律,然后编写程序,按照人工解决问题的步骤和规律进行操作。

难点是找出规律,在调试过程中,注意区分字符串和字符使用的地方,本程序调用函数,为函数编写提供方便,避免混淆各个语句的功能,例如:

在输出二进制数的函数中,首先调用TentoB函数,调用函数中,使用while循环,输出“二进制”以后,调用print函数,再使用一个while循环,输出对应的二进制数,同理,输出八进制也可采用输出二进制类似的方法。

本程序避免了繁杂的编写,调用函数是本程序的亮点,也是核心部分。

编写本程序后的心得与体会:

通过编程,我学到了一些C语言的特点:

C是结构式语言结构式语言的显著特点是代码及数据的分隔化,即程序的各个部分除了必要的信息交流外彼此独立。

这种结构化方式可使程序层次清晰,便于使用、维护以及调试。

C语言是以函数形式提供给用户的,这些函数可方便的调用,并具有多种循环、条件语句控制程序流向,从而使程序完全结构化。

C语法限制不太严格、程序设计自由度大,一般的高级语言语法检查比较严,能够检查出几乎所有的语法错误。

而C语言允许程序编写者有较大的自由度。

C语言允许直接访问物理地址,可以直接对硬件进行操作,因此既具有高级语言的功能,又具有低级语言的许多功能,能够象汇编语言一样对位、字节和地址进行操作,而这三者是计算机最基本的工作单元,可以用来写系统软件。

C语言数据结构丰富,C的数据类型有:

整型、实型、字符型、数组类型、指针类型、结构体类型、共用体类型等。

能用来实现各种复杂的数据类型的运算。

并引入了指针概念,使程序效率更高。

另外C语言具有强大的图形功能,支持多种显示器和驱动器。

且计算功能、逻辑判断功能强大。

4.运用的知识点;

在设计该程序时,主要运用的知识点是函数的调用和while循环,分析在人工方式下解决问题的过程,从中找出步骤和规律,在主函数中调用两个计算对应二进制和八进制的函数,在子函数1和子函数2中又分别调用子函数3,函数的多次调用,使程序编写简洁,提高了编写的效率,读起来也比较容易理解。

5.附录:

编写源程序:

#include

voidprint(inti,char*s)

{

while(i--)

{

printf("%c",s[i]);

}

printf("\n");

}

voidTentoB(intn)

{

inti=0;

charstr[10];

while(n>0)

{

str[i]=n%8+'0';

n/=8;

i++;

}

printf("八进制:

");

print(i,str);

}

voidTentoA(intn)

{

inti=0;

charstr[20]="\0";

while(n>0)

{

str[i]=n%2+'0';

n/=2;

i++;

}

printf("二进制:

");

print(i,str);

}

voidmain()

{

intx;

scanf("%d",&x);

TentoA(x);

TentoB(x);

}

调试结果:

 

实训项目单

编制部门:

电子工程系编制人:

陈伟审核人:

编制日期:

2011年7月1日

项目编号

ItemNo.

C0002

项目名称

Item

根据条件进行学生成绩排名

训练对象

Class

电科专业一年级学生

学时

Time

4

课程名称

Course

C程序设计

教材

Textbook

《C程序设计教程》谭浩强主编

目的

Objective

1.复习数组,选择,循环结构程序设计

2.掌握函数的定义,调用,声明,以及参数的两种传递方式

内容(方法,步骤,要求或考核标准)

一实训设备与工具

个人计算机(奔腾486档以上),Windows操作系统,TurboC2.0或visualC++6.0编译开发环境

二实训步骤,方法与要求

1,学生成绩管理系统设计

学生成绩管理系统

1、成绩录入

2、成绩查询

3、成绩统计

4、退出

2,程序说明:

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

(1)主菜单

如图1所示:

(2)各菜单项功能

a,成绩录入:

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

b,成绩查询:

查询不及格学生成绩的记录。

c,成绩统计:

计算学生的平均分;

d,退出系统:

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

3,在项目报告中画出程序流程图,说明程序设计的算法,附主要程序段。

4,在项目报告中说明知识点。

5,在项目报告中说明程序设计过程中的难点、解决问题的办法及编程小结或体会。

三评分方法

1,是否能正确编写C程序予以实现各题的要求(50分)

2,项目报告中,流程图和算法描述(20分),知识点描述(20分),难点及解决问题的办法或体会(10分)

 

1.画出C002项目实训单(学生成绩管理系统)中的N-S流程图:

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

输入第i个学生的学号、姓名

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

输入第i个学生第j门课的成绩

average=0

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

sum=0

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

计算第i个学生的3门课程总分sun

第i个学生的平均分stu[i].aver

第i个学生的第j门成绩stu[i].score[j]<60

输出相关信息

在表中继续查找

输出全体学生的数据(包括学号、姓名、三门课程、平均分)

输出不及格学生的学号、三门课程的成绩及平均分

2.编写C002源程序:

#include/*调用库函数*/

#defineN8/*宏定义N=8*/

structstudent/*定义结构体变量*/

{charnum[6];

charname[8];

floatscore[3];

floataver;

}stu[N];

voidmain()

{inti,j,t;

floatsum,average;

/*输入数据*/

for(i=0;i

{

printf("inputscoresofstudent%d:

\n",i+1);

printf("No.:

");

scanf("%s",stu[i].num);/*输入学生的学号*/

printf("name:

");

scanf("%s",stu[i].name);/*输入每个学生的姓名*/

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

{

printf("score%d:

",j+1);

scanf("%f",&stu[i].score[j]);/*输入每个学生的三门课程的成绩*/

}

}

/*计算*/

average=0;

for(i=0;i

{sum=0;

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

sum+=stu[i].score[j];/*计算每个学生三门课程的总和*/

stu[i].aver=sum/3;/*计算每个学生的平均分*/

if((stu[i].score[0]||stu[i].score[1]||stu[i].score[2])<60)/*查找一门课程不及格的学生*/

{t=i;}

}

/*输出*/

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

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

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

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

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

printf("No.namescore1score2score3average\n");

for(i=0;i

{

printf("%5s%10s",stu[i].num,stu[i].name);/*输出每个学生的学号姓名*/

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

printf("%9.2f",stu[i].score[j]);/*输出每个学生的三门课程成绩*/

printf("%8.2f\n",stu[i].aver);/*输出每个学生的平均分*/

}

printf("Hisscoresare:

%6.2f,%6.2f,%6.2f,average:

%5.2f.\n",stu[t].score[0],stu[t].score[1],stu[t].score[2],stu[t].aver);/*输出有一门课程不及格的学生的三门课程及平均分*/

}

3.程序调试结果:

4.知识点的运用

我制作的“学生成绩管理系统”主要运用结构体变量相关的知识点,首先定义字符型的学号和姓名以及浮点型的课程成绩和平均分,然后设计一个主函数,输入学生的学号、姓名、成绩,在输入函数中,用两个for循环分别输入学生的学号、姓名、三门课程的成绩,通过结构体变量名与成员名之间的关系,对结构体中的信息进行操作。

在计算函数中,首先通过结构体变量名与成员名之间的关系,计算出每个人的总分,继而算出每个人的平均分。

在查找函数函数中,运用逻辑关系“或(||)”,对每个学生的成绩是否及格做出判断。

在输出的各个函数中,按照表格的形式,用for循环输出各个学生的信息,并根据结构体变量名与成员名之间的关系,输出有一门不及格学生的三门课程成绩和平均分。

该程序主要运用结构体变量名与成员名之间的关系和for循环,使程序简洁,更易于发现各种错误并改正错误,提高了程序的可读性和运行效率。

5.难点的解决及心得体会:

该程序的难点在于输入学生的学号对应的姓名和三门课程的成绩,以及对各个学生的信息的操作。

我定义一个结构体变量,通过两个for循环嵌套输入学生的学号、姓名、三门课程的成绩,并按相同的方式进行输出。

在对学生的信息操作中,通过结构体变量名与成员名之间的关系,查找有一门不及格课程的学生,并输出该学生的三门课程成绩及平均分。

心得体会:

的程序编写和调试,我受益匪浅,学到了很多以前不知道的东西:

(1)学会了认识调试中产生的各种错误,通过分析引起错误的原因并改正。

有时候会出现很多错误,而其中的某些错误有可能都是一个错误引起的。

因此,改正一个错误,会有多个错误同时消失。

(2)通过查书和上网查询了解和认识了很多头文件,例如:

stdilb.h—动态存储分配头文件、ctypc.h—字符函数头文件等。

(3)通过这次的程序设计使我认识到使用结构体的方便、快捷,以及调用结构体数组时应该注意的问题,特别是结构体变量名与成员名之间的“.”。

这次的设计让我充分的认识到C语言的重要性。

此程序虽然参考了很多文献资料,但我依然用自己的知识编写好该程序。

这次的课程设计为我以后阅读C程序和设计程序打下了坚实的基础,也为继续学习其他语言开了一个很好的头。

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

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2