HUNAN UNIVERSITY
课程实习报告
题 目 文件读取
学生姓名
学生学号
专业班级
指导老师
完 成 日 期
一、需求分析
1..本程序要求从文件中读取数据存储在二维数组中,并把二维数组中的内容输出到屏幕
2.文件由用户通过键盘输入,第一行的数值表示二维数组的实际行列数(最大不超过500), 其中数值都是整数。不对非法输入做处理,即假设输入都是合法的。
3.在Dos界面输出二维数组中的内容。
4.测试数据
输入(文件)
5
2 3 4 5 6
6 5 4 3 2
-1 -2 7 9 0
0 9 7 -2 -1
5 5 2 2 7
输出(屏幕)
2 3 4 5 6
6 5 4 3 2
-1 -2 7 9 0
0 9 7 -2 -1
5 5 2 2 7
二、概要设计
抽象数据类型
为实现上述程序的功能,应以二维数组存储用户的输入。(注意此处数组的大小规定为行和列的最大值都不得超过500)
算法的基本思想
根据题目要求,利用二维数组的双重循环从文件中读取存放和显示数据。
程序的流程
程序由三个模块组成:
(1) 输入模块:完成要写入文件中数据的输入。
(2) 读取模块:实现从文件中读取数据。
(3) 输出模块:屏幕上显示从文件中读取的数据。
三、详细设计
物理数据类型
题目要求输入的数据都是整数,为了能够存储,采用C++语言中的int定义变量。因为要用二维数组存储数据,所以要定义一个规模为500元素为整数的二维数组。
算法的具体步骤
(1) 创建类对象fout;
(2) 往文件里写数据,并关闭文件;
(3) 创建类对象fin;
(4) 从文件里读数据,并关闭文件;
(5) 利用双重循环将该二维数组打印出来。
算法的时空分析
算法的运行时间依赖于输入规模有多大。可以证明,时间复杂度为O(n^2).
输入和输出的格式
输入
请输入文件的长度:
请输入数组的各项元素:
输出
刚才从文件中读取的数据为:/二维数组格式/
四、调试分析
略。
五、测试结果
输入 5
1 2 3 4 5
6 7 8 9 0
1 1 1 1 1
2 2 2 2 2
3 3 3 3 3
输出
1 2 3 4 5
6 7 8 9 0
1 1 1 1 1
2 2 2 2 2
3 3 3 3 3
运行结果截图如下:
六、用户使用说明(可选)
1、本程序的运行环境为DOS操作系统,执行文件为3.exe
2、运行程序时:
屏幕显示内容为:
请输入文件的长度:
请输入数组的各项元素:
刚才从文件中读取的数据为:
七、实验心得(可选)
做了这个实验之后,对文件的操作更加的熟悉了。这个程序的关键操作在于,如何将二维数组写入文件,之后再将其读出。完成这步要求我们要对文件的基本操作十分了解。
在这里值得注意的是,每一次操作完,就要进行关闭文件,否则这个程序是不对的,至于到底是为什么,这个暂时还没有搞清楚,估计是指针的问题 。
七、附录(可选)
#include<fstream>
#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
int n,a,i,j,b[500][500];
fstream fout("file1.txt",ios::out);/*为了输出数据到文件里声明一个类对象*/
if(!fout)
{
cout<<"文件file1.txt打开失败!"<<endl;
return 1;
}
cout<<"请输入文件的长度:"<<endl;/*往文件里写数据*/
cin>>n;
cout<<"请输入数组的各项元素:"<<endl;
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
cin>>a;
fout<<a<<" ";
}
}
fout.close();/*关闭文件*/
fstream fin("file1.txt",ios::in);/*为了从文件里读数据声明一个类对象*/
if(!fin)
{
cout<<"文件file1.txt打开失败!"<<endl;
return 1;
}
for(i=0;i<n;i++)/*从文件中读数据*/
{
for(j=0;j<n;j++)
fin>>b[i][j];
}
fin.close();/*关闭文件*/
cout<<"刚才从文件中读取的数据为:"<<endl;/*输出从文件中读取的数据*/
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
cout<<setw(3)<<b[i][j]<<" ";
cout<<endl;
}
system("pause");
return 0;
}
第二篇:VB实验二 实验报告
实 验 报 告 二
实验目的
(1)掌握基本循环控制结构(For-Next、While-Wend、Do-Loop)语句
(2)掌握循环嵌套结构
(3)掌握素数算法
(4)掌握控制结构相关控件(列表框、组合框等)
(5)能综合运用循环控制结构解决较复杂的问题
实验内容
【实验1】编写一个简易计算器编写程序计算S=1+1/2+1/4+1/7+1/11+1/16+1/22+…当第i项的值<10-5时计算结束结束。
实验结果:
【实验1 代码】
【实验1 典型结果】
【实验2】将200~300之间的素数输出到列表框中
实验结果:
【实验2 代码】
【实验2 典型结果】
【实验3】编写程序,在窗体上输出上三角形式的九九乘法表。
实验结果:
【实验3 代码】
【实验3 典型结果】
【实验4】从键盘输入10个整数,存放在一个一维数组中,然后将前5个元素与后5个元素交换,即第1个与第10个交换,第2个与第9个交换……
实验结果:
【实验4 代码】
【实验4 典型结果】
【实验5】静态声明一个二维数组,输入和输出该数组各元素的值
要求:1.计算并输出数组主对角线和次对角线元素的和。
2.交换1、3行后输出整个数组的值
3.交换数组的行与列后输出整个数组的值
实验结果:
【实验5 代码】
【实验5 典型结果】
【实验6】编写程序,将随机产生的1000个[1000,99999]范围内的随机整数存入数组,然后分别用“比较交换法”、“选择法”、“冒泡法”进行升序排序
实验结果:
【实验6 代码】
【实验6 典型结果】
【选做1】编写程序,输入X,要求计算精度10-6,求sinX ,计算公式如下所示
实验结果:
【选做1 代码】
【选做1 典型结果】
【选做2】任意输入一个或者多个英文句子,统计这些句子中的单词数量
实验结果:
【选做2 代码】
【选做2 典型结果】
【选做3】利用一维数组,统计一个班学生成绩0~59,60~69,70~79,80~89,90~100各分数段的人数,生成一个各分数段的柱状图。人数为运行时输入,成绩给定方法要求为键盘输入。
实验结果:
【选做3 代码】
【选做3 典型结果】
实验小结
1. 遇到的问题:
2. 对课程的建议: