- 设计任务
工业数据往往数据量巨大,需要将它们筛选和分类以进行处理和分析,将需要分析的数据保存至文件中,一方面可以提高生产过程中的可操作性,另一方面也可以加强其可移植性。
- 程序使用说明
此部分的目的是让使用者能够获得正确的程序运行结果,防止出现一旦未按设计者要求输入,将导致不可预料的程序退出,无法考核设计者完整设计情况。要求说明的清楚、简单、条理性强。说明内容如下:
-
-
- 程序设计语言与运行环境:本程序使用VS2019制作而成。
- 文件组成说明:程序由多个文件组成时,源文件easydemo.cpp,dataproc.cpp等;数据文件randu.txt,sinuo.txt等,及文件管理信息文件fileinfo.dat,与源文件在同一文件夹下。
- 操作说明:本程序有说明操作,按照说明操作即可。
-
- 程序设计与实现
- 程序结构
此处描述预期实现系统的设计方案或功能设计的组成结构,绘制一个系统程序组成框图。
图1. 工业数据处理与文件信息管理系统框图
-
- 数据描述
描述系统使用的核心数据结构。如:结构体类型定义及结构体成员含义说明;并说明所使用的数据存储方法,如使用数组实现等。
typedef struct The_users //typedef 可以定义结构体别名
{
char id[10]; //账号
char pwd[21]; //密码
char sex; //性别(性别为单个字符)
char name[15];//姓名(姓名为字符串)
long phone; //电话号码(电话号码为长整型)
}users;
typedef struct
{
char filename[20]; //数据文件名
int line; //数据行数
int row; //数据列数
float mean; //均值
float var; //方差
char status; //文件状态:是否处理过
}FILEINFO; //文件信息结构体类型
-
- 功能模块设计
此处描述所有自定义函数的函数名、函数功能、参数说明及算法描述。选择1~2个主要函数绘制规范流程图(或N-S图。应至少包括分支和循环控制的结构)。每个函数按如下格式说明。
为实现上述功能,系统实现自定义函数XXX个。具体如下:
-
-
- 函数名:void CreateFile()
-
函数功能:用户建立文件
入口参数:无
出口参数:无
算法描述:创建文件
函数功能: 无
入口参数:无
出口参数:无
算法描述:注册用户写入文件
-
-
- ……. 函数名:void Find()
-
函数功能:找回密码
入口参数:无
出口参数: 无
算法描述:根据问题找回密码
-
-
- 函数名:void Input_login()
-
函数功能:登录函数
入口参数:无
出口参数: 无
算法描述:安全模块
-
-
- 函数名:void menu()
-
函数功能:菜单栏
入口参数:无
出口参数: 无
算法描述:分支结构
-
-
- 函数名:int inform(FILEINFO* file)
-
函数功能:文件读入
入口参数:结构体一维数组首地址
出口参数: 读入个数
算法描述:将文件内容结构体数组
-
-
- 函数名:void save(char* filename, float* a, int n)
-
函数功能:内容保存
入口参数:文件名一维数组首地址,数据一维数组首地址,数据个数
出口参数: 无
算法描述:写入文件
-
-
- 函数名:float mean(float a[], int n)
-
函数功能:求取平均值
入口参数:数据一维数组首地址,数据个数
出口参数: 平均值
算法描述:平均值算法
-
-
- 函数名:float var(float a[], int n)
-
函数功能:求取方差
入口参数:数据一维数组首地址,数据个数
出口参数: 方差
算法描述:方差算法
-
-
- 函数名:void mafilter(float a[],int n, int size)
-
函数功能:平滑函数
入口参数:数据一维数组首地址,数据个数,数据内存占据量
出口参数: 无
算法描述:平滑算法
-
-
- 函数名:float scale(float a[], int n)
-
函数功能:求取数组的数值范围
入口参数:数据一维数组首地址,数据个数
出口参数:数组的取值范围
算法描述:极值减法
-
-
- 函数名:float min(float a[], int n)
-
函数功能:求极小值
入口参数:数据一维数组首地址,数据个数
出口参数:极小值
算法描述:“打擂台”算法,两两比较,循环结构
-
-
- 函数名:float max(float a[], int n)
-
函数功能:求极大值
入口参数:数据一维数组首地址,数据个数
出口参数: 极大值
算法描述:“打擂台”算法,两两比较,循环结构
- 设计难点与解决方法
此程序实现过程中遇到的主要难点有以下几方面:
-
- 文件分析,解决思路是把文件读取到内存,按特征进行分割;
- 不同大小文件处理,解决思路是按块进行读取;
- 数据检索,数据检索主要考虑检索性能,解决思路是按特征对数据进行分类;
- 运行效果与不足之处
此处描述系统运行效果,给出典型(源码QQ2193410903)运行效果图,并指出系统存在不足和需要进一步改进的地方。
系统运行典型效果图,如图所示。
- 课程设计体会与收获