据关学晓
学生实验 报告册
实验课程名称:C语言程序设计
实验项目名称:数组及函数的综合应用
实验类型(打V):(基础口、综合口、设计口)
院系:教育学院专业班级:11教育技术学
姓名杜子敬 学号:11114051006
指导老师: 林育曼
韶关学院教务处编制
一、实验预习报告内容
预习日期: 2013年05月 30 1=1
实验预习报告内容原则上应包含实验目的、实验所用主要仪器药品、实验原理与公式、 实验预习疑问等项目。
一、实验FI的
掌握一维、二维数组、字符数组的定义、赋值和输入/输出的方法。
掌握数组的特点
熟悉数组有关的常用算法,如查找、排序、删除等
掌握函数的定义、声明和调用
5?复习选择、循环结构程序设计
二、预习问题
字符数组的使用应注意哪些问题?
函数的声明有何作用,如何进行函数的声明?
三、实验内容
编写程序实现学生成绩管理系统:
首先显示系统登陆提示,要求用户输入登陆密码,密码正确后显示学生成绩管理系统的 菜单。用户根据菜单选择相应的功能并执行。
成绩管理系统应实现的主要功能(但不限于以下功能)
(1)从键盘输入n个学生(n的值由键盘输入,0
(2)计算各科平均成绩,并输出低于平均分的学生学号、姓名、成绩。
(3)能够根据用户选择,对学生总成绩从高到低排名,或从低到高排名,输出其学号、姓 名和总成绩。
(4)能够根据用户选择,根据学生学号或者姓名查找该生的成绩
(5)统计各分数段的学生人数及比例
(6)查找并输出某门课程某一分数段的学生学号、姓名及成绩
实验预习:
1、字符数组要注意是问题,首先是数组最大长度,就是所定义的数组必须足够大,能够存 放所需要的数据。其二,就是要注意边界问题,若遇到“\0”数组的输入和输出函数就提 前结束。
2、数组的初始化也要注意一系列问题,单个字母初始化有单引号括起来,注意的是单个字 母输入耍手动添加“\0”空格符表示结束,一串字符可以用双引号括起来,最后系统自动 添加“\0”空格符结束,所以这是数组最少需要的长度为字符串长度+1。
3、数组的运用。不能对数组整体直接赋值,也不能整体直接输入输出。但可以利用指针调 用数组的地址,也可以利用<string.h>头文件中包含的字符串处理函数,对数组中的字符 串进行比较、拷贝、连接、求字符串长度和字符串的转换。同时,数组的运用也离不开循 环语句的结合使用,有时候用户要对逐个元素进行数据输入或者读取是就需耍循环语句作 为控制输入输出。就如我们这次实验屮要输入学生的姓名、学号、成绩等,都是循坏语句 下对数组元索进行赋值。
4、函数的声明是为了,在函数调用之前做相应的说明,让计算机的编译器有所识別,让对 应函数在调用是能正常运行。
5、因为C语言遵循先定义后使用的原则,所以在函数调用前一定要声明或者定义函数。而 函数的声明包括函数类型、函数名和参数表(参数类型,参数名)。在声明是函数名不能任 意改的,要与函数定义和函数的调用的函数名一致,否则会编译错误;还有注意大小写一 致,否则编译错误,增加编译难度。
6、函数调用时函数中的形式参数是用值传递还是地址传递,这关系到数据的存贮时间,和 形参与实参的关系。其中值传递形参与实参是单向传递的,地址传递时双向传递的,直接 影响实参。
7、函数调用后有无返冋值,是函数定义吋决定的,若有返冋值,则将返冋值的内容传递给 上一层函数的变量或者用printf函数直接输生返回值内容;若是无返回值的函数类型 void,则在被调用函数里面进行直接的输岀到显示器上,所以无返回值的函数通常是用于 屏幕输出。
实验预习评分:
二、实验原始(数据)记录
实验时间:2013年05月31日(星期五第七八节) 实验同组人:杜子敬、钟文广、林发、刘凯明
如有实验数据表格,学生在实验预习时应画好实验数据表格,供实验时填写数据(本页如 不够,可另附相同规格的纸张)。
在本次实验中,我遇到了儿个比较麻烦的问题:
1、在我编写密码登陆系统时,当密码输入止确之后,无法跳转到“学生成绩管理系统”, 而是出现了下图中的错误。说我们编写的学生成绩系统的“mulu.exe”运行程序不是内部 或外部命令,也不是可运行的程序或批处理文件。
?C:\Users\du\Desktop\Debug\che ngjixit on g.exew
?C:\Users\du\Desktop\Debug\che ngjixit on g.exew
之后我仔细地检查了多遍也没有发现错误,最后把此问题放上百度,查阅了回答,最 终找到了解决办法。其实很简单,只有把学生成绩系统的“mulu. exo”放进保存“密码登 陆系统”中的文件夹中就行了,就是〈dos. h>头文件