c语言实习学生成绩管理系统学习资料.docx
- 文档编号:9173703
- 上传时间:2023-02-03
- 格式:DOCX
- 页数:15
- 大小:113.70KB
c语言实习学生成绩管理系统学习资料.docx
《c语言实习学生成绩管理系统学习资料.docx》由会员分享,可在线阅读,更多相关《c语言实习学生成绩管理系统学习资料.docx(15页珍藏版)》请在冰豆网上搜索。
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];
(1)价格低floatscore[3];
开了连锁店,最大的好处是让别人记住你。
“漂亮女生”一律采用湖蓝底色的装修风格,简洁、时尚、醒目。
“品牌效应”是商家梦寐以求的制胜法宝。
floataver;
8、你是如何得志DIY手工艺制品的?
}stu[N];
(5)资金问题voidmain()
{inti,j,t;
floatsum,average;
年轻有活力是我们最大的本钱。
我们这个自己动手做的小店,就应该与时尚打交道,要有独特的新颖性,这正是我们年轻女孩的优势。
/*输入数据*/
3.www。
oh/ov。
com/teach/student/shougong/for(i=0;i { 与此同时,上海市工商行政管理局也对大学生创业采取了政策倾斜: 凡高校毕业生从事个体经营的,自批准经营日起,1年内免交登记注册费、个体户管理费、集贸市场管理费、经济合同鉴证费、经济合同示范文本工本费等,但此项优惠不适用于建筑、娱乐和广告等行业。 printf("inputscoresofstudent%d: \n",i+1); printf("No.: "); 秘诀: 好市口+个性经营scanf("%s",stu[i].num);/*输入学生的学号*/ 8、你是如何得志DIY手工艺制品的? 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程序和设计程序打下了坚实的基础,也为继续学习其他语言开了一个很好的头。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 实习 学生 成绩管理系统 学习 资料