程序设计报告模板

一、    设计任务
工业数据往往数据量巨大,需要将它们筛选和分类以进行处理和分析,将需要分析的数据保存至文件中,一方面可以提高生产过程中的可操作性,另一方面也可以加强其可移植性。

二、    程序使用说明
此部分的目的是让使用者能够获得正确的程序运行结果,防止出现一旦未按设计者要求输入,将导致不可预料的程序退出,无法考核设计者完整设计情况。要求说明的清楚、简单、条理性强。说明内容如下:
(1)    程序设计语言与运行环境:本程序使用VS2019制作而成。
(2)    文件组成说明:程序由多个文件组成时,源文件easydemo.cpp,dataproc.cpp等;数据文件randu.txt,sinuo.txt等,及文件管理信息文件fileinfo.dat,与源文件在同一文件夹下。
(3)    操作说明:本程序有说明操作,按照说明操作即可。
三、    程序设计与实现
1.    程序结构
此处描述预期实现系统的设计方案或功能设计的组成结构,绘制一个系统程序组成框图。
 
图1. 工业数据处理与文件信息管理系统框图

2.    数据描述
描述系统使用的核心数据结构。如:结构体类型定义及结构体成员含义说明;并说明所使用的数据存储方法,如使用数组实现等。
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;         //文件信息结构体类型
3.    功能模块设计
此处描述所有自定义函数的函数名、函数功能、参数说明及算法描述。选择1~2个主要函数绘制规范流程图(或N-S图。应至少包括分支和循环控制的结构)。每个函数按如下格式说明。
为实现上述功能,系统实现自定义函数XXX个。具体如下:
(1)    函数名:void CreateFile()
函数功能:用户建立文件
入口参数:无
出口参数:无
算法描述:创建文件
(2)    函数名:void Register()
函数功能: 无
入口参数:无
出口参数:无
算法描述:注册用户写入文件
(3)    ……. 函数名:void Find()
函数功能:找回密码
入口参数:无
出口参数: 无
算法描述:根据问题找回密码
(4)    函数名:void  Input_login()
函数功能:登录函数
入口参数:无
出口参数: 无
算法描述:安全模块

(5)    函数名:void menu()
函数功能:菜单栏
入口参数:无
出口参数: 无
算法描述:分支结构
(6)    函数名:int inform(FILEINFO* file)
函数功能:文件读入
入口参数:结构体一维数组首地址
出口参数: 读入个数
算法描述:将文件内容结构体数组
(7)    函数名:void save(char* filename, float* a, int n)
函数功能:内容保存
入口参数:文件名一维数组首地址,数据一维数组首地址,数据个数
出口参数: 无
算法描述:写入文件
(8)    函数名:float mean(float a[], int n)
函数功能:求取平均值
入口参数:数据一维数组首地址,数据个数
出口参数: 平均值
算法描述:平均值算法
(9)    函数名:float var(float a[], int n)
函数功能:求取方差
入口参数:数据一维数组首地址,数据个数
出口参数: 方差
算法描述:方差算法
(10)    函数名:void mafilter(float a[],int n, int size)
函数功能:平滑函数
入口参数:数据一维数组首地址,数据个数,数据内存占据量
出口参数: 无
算法描述:平滑算法
(11)    函数名:float scale(float a[], int n)
函数功能:求取数组的数值范围
入口参数:数据一维数组首地址,数据个数
出口参数:数组的取值范围
算法描述:极值减法
(12)    函数名:float min(float a[], int n)
函数功能:求极小值
入口参数:数据一维数组首地址,数据个数
出口参数:极小值 
算法描述:“打擂台”算法,两两比较,循环结构
(13)    函数名:float max(float a[], int n)
函数功能:求极大值
入口参数:数据一维数组首地址,数据个数
出口参数: 极大值
算法描述:“打擂台”算法,两两比较,循环结构


四、    设计难点与解决方法
此程序实现过程中遇到的主要难点有以下几方面:
1.    文件分析,解决思路是把文件读取到内存,按特征进行分割;
2.    不同大小文件处理,解决思路是按块进行读取;
3.    数据检索,数据检索主要考虑检索性能,解决思路是按特征对数据进行分类;

五、    运行效果与不足之处
此处描述系统运行效果,给出典型运行效果图,并指出系统存在不足和需要进一步改进的地方。
系统运行典型效果图,如图所示。
 
 
 
六、    课程设计体会与收获 
 1、熟悉程序开发环境、学习计算机系统的操作方法
  一个c语言程序从编辑、编译、连接到运行,都要在一定的外部操作环境下才能进行。所谓"环境"就是所用的计算机系统硬件、软件条件,只有学会使用这些环境,才能进行程序开发工作。通过上机实验,熟练地掌握c语言开发环境,为以后真正编写计算机程序解决实际问题打下基础。同时,在今后遇到其它开发环境时就会触类旁通,很快掌握新系统的使用。
  2、学习上机调试程序
  完成程序的编写,决不意味着万事大吉。你认为万无一失的程序,实际上机运行时可能不断出现麻烦。如编译程序检测出一大堆错误。有时程序本身不存在语法错误,也能够顺利运行,但是运行结果显然是错误的。开发环境所提供的编译系统无法发现这种程序逻辑错误,只能靠自己的上机经验分析判断错误所在。程序的调试是一个技巧性很强的工作,对于初学者来说,尽快掌握程序调试方法是非常重要的。有时候一个消耗你几个小时时间的小小错误,调试高手一眼就看出错误所在。
  通过这次为数不多的几天计算机实习学习,我们了解了一些关于c语言的知识,理解巩固了我们c语言的理论知识,着对我们将来到社会工作将会有莫大的帮助。同时它让我知道,只要你努力,任何东西都不会太难。
  3、加深对课堂讲授内容的理解
  课堂上要讲授许多关于c语言的语法规则,听起来十分枯燥无味,也不容易记住,死记硬背是不可取的。然而要使用c语言这个工具解决实际问题,又必须掌握它。通过多次上机练习,对于语法知识有了感性的认识,加深对它的理解,在理解的基础上就会自然而然地掌握c语言的语法规定。对于一些内容自己认为在课堂上听懂了,但上机实习中会发现原来理解的偏差,这是由于大部分学生是初次接触程序设计,缺乏程序设计的实习所致。
  学习c语言不能停留在学习它的语法规则,而是利用学到的知识编写c语言程序,解决实际问题。即把c语言作为工具,描述解决实际问题的步骤,由计算机帮助我们解题。只有通过上机才能检验自己是否掌握c语言、自己编写的程序是否能够正确地解题。
  通过上机实验来验证自己编制的程序是否正确,恐怕是大多数同学在完成老师作业时的心态。但是在程序设计领域里这是一定要克服的传统的、错误的想法。因为在这种思想支配下,可能你会想办法去"掩盖"程序中的错误,而不是尽可能多地发现程序中存在的问题。自己编好程序上机调试运行时,可能有很多你想不到的情况发生,通过解决这些问题,可以逐步提高自己对c语言的理解和程序开发能力。
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

2193410903

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值