文件管理系统开发与测试实践研究

daixie 923 0

文件管理系统开发与测试实践研究

 

 

  

第一章    绪论 3

1.1系统开发背景 3

1.2国内研究现状 3

1.3研究现状 4

第二章    需求分析 5

2.1可行性分析 5

2.1.1 技术可行性 5

2.1.2 经济可行性 6

2.1.3 操作可行性 6

2.1.4 法律可行性 6

三、 数据结构和流程图 7

3.1业务流程 7

3.2主流程图 8

3.3选择文件夹路径的流程图 9

四、源程序 11

1)定制菜单 11

2)创建文件夹 11

3)创建文件的函数 12

4)复制文件夹 13

5)复制txt文件 16

6)复制word文档 17

7)复制excel工作表 19

8)删除文件夹的消息处理程序 20

五、运行结果 25

1)创建文件夹 25

2)创建文件 26

3)复制文件夹 27

5)删除文件夹 28

6)删除文件 29

第六章    系统测试以及软件安装 31

6.1软件测试基础理论 31

6.2软件测试目的 31

6.3软件测试方法分类 32

6.4 文件系统测试 33

    34

    35

参考文献 36

第一章    绪论

1.1系统开发背景

文件是国家管理、组织运行、社会沟通的重要工具和真实记录,于国家于公

民、于当前于长远都具有不可替代的作用。因此文件管理成为政府管理、企业管

理、社会管理活动的必然组成部分"。对于我国政府来说,当今时代随着计算机的广泛应用,电子政务信息化得到快速发展。与传统文件记录方式和传递方式完全不同的电子文件呈现出飞速增长与广泛普及的趋势。“电子 文件是指在数字设备及环境中生成,以数码形式存储于磁带、磁盘、光盘等载体,依赖计算机等设备.阅读、处理并可以在通信网络上传递的文件。”"成为政府活动的基本记录形式、重要信息资源和法律证据。充分利用电子文件资源,对政府各项工作都有不可或缺的作用和重要的意义。

鉴于电子文件的重要性,2012年国家电子文件管理部际联席会议决定,在江

苏和其他五个省、市开展国家电子文件管理试点工作。江苏省内,省档案局、金

坛市委办公室和常州市委办公厅、南京市卫生局、省教委等单位开展试点工作,

并逐步推广取得的经验。要求试点单位,按照统- "管理、全程管理,采用标准化、

易用性、安全性原则,积极探索电子文档管理规则,形成相关标准和规范,产品

技术、管理机制和理论成果。

 1.2国内研究现状

我国面对电子文件的涌现与冲击,相关领域已经或正在采取相关行动: .

1996年,国家档案局成立了电子文件管理领导小组和研究小组,开展相关的理论研究和经验推广工作。

20048月,第十届全国人民代表大会常务委员会第十一次会议通过了《中

华人民共和国电子签名法》,确认了部分电子文件的法律效力。

2009年,中央办公厅和国务院办公厅联合发布了《电子文件管理暂行办法》,

成立了国家电子文件管理部际联席会议。

2012312日国家电子文件管理部际联席会议决定,在江苏和其他五个省、市开展国家电子文件管理试点工作。

政府在信息化建设过程中,会产生大量电子文件,若不对其进行有效管理,

会削弱信息化系统的功能,降低政府机关的工作效率"。电子文件管理是我国国家管理的基础性工作和实施信息化战略的重要任务。党中央、国务院高度重视电子文件管理工作,中央办公厅和国务院办公厅颁发了《电子文件管理暂行办法》、

《国家电子文件管理规划(2011-2015) 》等文件,在十二五期间,把电子文件管理纳入到国家信息化建设的重点工作中,进行重点建设。

“电子政务云是一种基于云计算的,可以优化政府管理和服务职能,提高政府工作效率和服务水平的平台技术框架,本质上是在技术层面“构建了统一的政府底层II基础结构””旧。为开发基于SaaS的电子文件管理系统提供了基础。

1.3研究现状

纵观世界上信息化进程比较快的国家,二十世纪九十年代以来电子文件管理受重视程度不断提高。1965年在伦敦举行的第九届国际档案圆桌会议,会议的主议题之一便是档案馆和自动化,这是人们首次注意到计算机对档案工作的影响。“电子文件被认为是电子政务、电子商务等电子化业务的基本工具。被认为是本组织的重要信息资产,是国家和社会的珍贵历史记录。”国]“多数国家通过制定法规、政策与标准,借助管理与技术双重手段,逐步建立科学、有效的电子文件管理体系,从而有力的支撑了各项电子化业务的开展,促进电子档案信息资产价值的实现,促进历史文明的保护与传承。”“电子文件管理正在发生从机构层面向国家层面、从分散管理模式向集中管理模式、从环节式分段管理向无缝式流程管理的战略转变,这一战略转变,有力的推动了各国信息化进程。“电子文件管理模式为电子文件管理确定了基调及整体框架,它是电子文件管理国家战略的核心组成部分”

1.4 电子文件管理现状

从目前社会中的实际情况来看,许多公司或者机构并没有把电子文件管理放到应有的位置上,或者没有采取正确、合理的措施管理电子文件,大量的电子文件失存、失信、失用,导致机构的业务活动失去法律凭证与信息支撑,造成组织的信息资产流失。

由于缺乏宏观规划、有效协调、科学指导,各个单位电子文件管理目标不清、功能不明、缺乏共建共享,在项目质量、效率和效益上都存在不少问题。

为提高电子文件管理水平,把握国家推行标准和试点机遇,需要尽快建设电子文件管理系统,有效管理单位中的电子文件,成为改变电子文件管理现状的突破口;成为建立科学、规范的电子文件管理体系的关键。

一般认为,国家信息资源的80%掌握在政府手中,而政府手中的信息资源绝大部分是以文件的方式存在的,因此电子文件将是国家的核心信息资源。在电子政务的快速普及中,电子文件已经成为文件的主体形式。在电子文件管理方面积极探索,不得获取新的认识和进展,但是,仍然面临诸多难题,主要体现在:

(1)电子文件管理失控:没有制定或沿用上级制定的电子文件管理的规章制度:没有专人负责电子文件管理;电子文件被分散暂存于文件起草者的计算机中,大量的数据库文件在自动更新中丢失了以往记录,而数据库文件也散存在各处;工作人员可以随意修改、删除、拷贝单位的电子文件。有些单位虽已进行电子文件管理,但大多仍然沿用纸质文件的管理办法,无法保证电子文件的真实性、可靠性、完整性和可用性。

(2)证据效力无法保障:各组织机构已经大量生成和使用电子文件,但不重视电子文件管理,或不科学的进行电子文件管理,使电子文件失去应有的可信度、证据力。

(3)开发利用水平低下:该市非常重视电子政务对政府信息资源的开发利用和再开发利用,取得了良好的社会效益和经济效益。相比之下,电子文件的开发利用率较低,由于得到有效控制和科学管理的电子文件量少质低,开发利用政策不到位,与先进国家相比,电子文件开发利用的广度和深度都存在很大的差距。而且,由于协调困难、规范不统,部门间无法分享电子文件,实现其信息资产价值。

(4)规范不一,协调困难:目前,该市的电子文件涉管理及到多个部门,分为前期的文件管理和后期的档案管理。“文件处理与档案管理依据的标准规范、技术方法截然区分,相互之间缺乏衔接和协同。”“甚至不同政策、标准间存在相互冲突、互不衔接的现象。急需构建基于统一规范、统一标准、统一体系的电子文件管理系统。

(5)数据孤岛深化:各单位针对文件格式、元数据标准、数据结构等方面的规定不相同,电子文件信息孤岛日趋严重。信息孤岛的存在加大了信息共享和信息交换的成本。部分数据需要至少交换10次才能达到完全的数据共享。


1.5 研究目的和意义

电子文件管理系统的建设是信息化发展趋势的客观要求。在国家政策的连续推动下,信息技术应用正迅速向各行业渗透,组织机构正在加速由基于纸张的工作环境向电子环境迁移,电子文件大量形成,普遍应用:在业务信息领域正在实现由配角变为主角的角色转变;作为当代社会文化传承的主要载体,以及社会交往的基本工具;电子文件已成为当代经济社会的基本信息支撑。从另外方面看,随着IT生态系统的进一步细化分工,云计算必将取代现有的分工和模式,孕育出新的IT管理模式和服务模式。因此,电子文件管理系统,既是电子文件发展趋势的客观要求,也是IT技术发展的客观要求。

以电子文件管理系统建设带动管理活动是当前电子文件管理的必然选择。电子文件是新兴的管理对象,与传统的档案管理存在相当大的差异。只有通过项目实践,积累经验和技术,才能有效的避免重复建设和资源浪费,才能使该市的电子文件管理取得实质性的进展。而且,以典型项目为引导,不仅可以为电子文件管理的实施奠定坚实的基础,还可以在实践层面起到典型项目的榜样和引导作用。

目前,该市的电子文件管理尚存在管理失控、证据效力无法保证、开发利用水平低、规范不统一一、数据孤岛日益深化等诸多问题。上述缺陷的弥补, 必需从引领电子化业务应用的视角,以机制和体制上完善为支撑,以国家标准和规范为基础,以试点城市为契机。借助先进的云计算和网络技术,建设电子文件管理系统,形成与法规、政策等多个要素综合作用的电子文件管理体系。电子文件管理系统建设有利于进一步推动数据共享和交换的发展,随着电子政务内网发展迅速,已经形成了庞大的电子文件资源,满足了初期的政务办公的需要。近年来,涌现出越来越多的跨部门的应用和服务,对强化安全保障、实现互联互通、加强电子文件共享的需求非常迫切。但是,各自为政的信息化建设局面,造成电子政务内网网络孤岛、信任孤岛、信息孤岛丛生的局面;规划部门、管理部门、建设部门均缺乏对网络资源的全面掌握,导致重复建设严重、协调难度增大、实施过程困难、管理成本增加、条块分割加剧等系列问题。电子政务内网一般连接全市政府、企业、银行、民航等数百家单位。 

第二章    需求分析

 

2.1可行性分析

行性研究是在项目开发前期对项目的一种考察和鉴定,对拟议中的项目进行全面的、综合的调查研究,其目的是要判断项目可行与否。信息系统技术可行性研究要从系统开发的计划出发,论述系统开发力量的可行性,同时论证系统方案中所采取的各种技术手段上是否可以实现。信息系统经济可行性研究主要是对项目进行经济评价,分析系统建设投资的可能性以及评价系统运行之后给组织带来的效益。信息系统营运可行性研究要给出的方案是否可以从人力、物力、组织工作等方面保证项目按计划完成实施,还要说明项目开发后在经济、技术和环境等方面能否保证系统正常运行。

由于系统建设是一项投资大、涉及面广、工程复杂的系统工程,因此必须充分的进行可行性论证,以确保投资的准确无误,而且信息系统建设是一项整体工程,必须站在系统的角度论证它的可行性才有说服力,才有意义。可行性研究的目的是用最小的代价,在尽可能短时间内确定问题是否能够解决,它的目的不是解决问题,而是确定问题是否值得去解决,可行性从以下四个方面来考虑。

2.1.1 技术可行性

电子文件管理系统的建设是信息化发展趋势的客观要求。在国家政策的连续推动下,信息技术应用正迅速向各行业渗透,组织机构正在加速由基于纸张的工作环境向电子环境迁移,电子文件大量形成,普遍应用;在业务信息领域正在实现由配角变为主角的角色转变;作为当代社会文化传承的主要载体,以及社会交往的基本工具;电子文件已成为当代经济社会的基本信息支撑。从另外方面看,随着IT生态系统的进一步细化分 工,云计算必将取代现有的分工和模式,孕育出新的IT管理模式和服务模式。因此,构建基于SaaS的电子文件管理系统,既是电子文件发展趋势的客观要求,也是IT技术发展的客观要求。

电子文件管理系统建设带动管理活动是当前电子文件管理的必然选择。电子文件是新兴的管理对象,与传统的档案管理存在相当大的差异。只有通过项目实践,积累经验和技术,才能有效的避免重复建设和资源浪费,才能使电子文件管理取得实质性的进展。而且,以典型项目为引导,不仅可以为电子文件管理的实施奠定坚实的基础,还可以在实践层面起到典型项目的榜样

和引导作用。

2.1.2 经济可行性

从我搜集的一些资料来看,论坛系统对计算机硬件没有特殊要求,也可以以域名的形式提交到网上。而我们是自行开发的系统,成本可以忽略不计,还有后期维护的费用也相对比较低廉。

2.1.3 操作可行性

参照其它的系统,该系统在技术上完全可以实现与用户的良好交互作用,并且作为开发者,我也尽可能地减少让用户难以操作或是难以理解的交互方式。

2.1.4 法律可行性

本系统开发不会侵犯他人、集体或国家利益,不存在侵权等问题,不违反国家法律,因此具有法律可行性。

综上所述,从技术上、经济上、法律上、可操作性上都是可行的,而且要求不高,所以该系统的开发是可行的

 

三、数据结构和流程图

3.1业务流程

基于MFC AppWizard框架的程序

定制一个菜单,有添加四个子菜单,创建,复制,删除,退出,在前三个子菜单中添加四个菜单项,文件夹,TXT,WORD,EXCEL。每个菜单项对应着一种功能。且复制选择路径都是基于对话框,操作方便,简洁明了。

1创建文件夹;

要创建文件夹,首先要选择文件夹创建的位置,可以用到浏览文件夹的函数SHBrowseForFolder和两个结构BROWSEINFO和ITEMIDLIST,要想得到文件夹路径可以用SHGetPathFromIDList,当然程序要想拥有建立文件夹的功能,应该设置BROWSEINFO对象的ulFlags的参数有 BIF_NEWDIALOGSTYLE ;

2创建文件;

不管是创建txt文件,word文件,excel文件原理都一样。

可以写一个build函数,提供几个参数:标题title, 路径filter,扩展名defExt。这样创建文件时,可以根据标题,路径,扩展名的不同调用build函数,达到不同功能的目的

build函数体中使用CFileDialog定义一个对象来创建文件。

3复制文件夹;

第一步:复制文件夹可以在一个对话框中完成,这样必然需要添加一个类CCopyDlg。

第二步:在该对话框上设置两个按钮,一个按钮来选择源文件夹,保存源文件路径;一个按钮来选择目标文件夹,保存目标文件路径。选择路径的方法可以与步骤1的方法相同。

第三步:重写确定消息应用程序来实现从一个目录复制到另一个目录的功能(copyFiles)。

下面是copyFiles函数的实现原理:

首先打开指定的文件夹进行搜索,再利用一个while循环,从当前目录搜索文件,判断搜索到的是不是"."和".."目录,如果是文件夹的话,进行递归;如果是文件,进行复制。

4复制文件;

复制文件跟复制文件夹一样也需要创建一个对话框,添加一个类。同理也在对话框上添加两个按钮,分别接收源路径,和目标路径。不过接收的方法需要通过CFileDialog选择对话框,而不能再和1一样。复制文件,vc中有已有的函数CopyFile。参数是两个复制的路径。

5删除文件夹

在删除文件夹之前,首先要删除文件夹下的所有文件,再删除文件夹。

该功能的实现也是利用递归,先判断文件夹下是否有文件,若有,则删除,没有则删除文件夹,返回。

6删除文件

定义一个类CMyFileDialog继承CFileDialog而来,重写OnInitDialog函数来设置对话框中按钮的文本。

创建一个CMyFileDialog对象,在删除文件对话框中,选择想要删除的文件,调用DeleteFile函数进行文件的删除。

7退出程序

设置一个退出子菜单,发送一个WM_CLOSE消息,关闭程序退出。


该程序没有使用到复杂的数据结构,是基于MFC AppWizard应用程序。

3.2主流程图

 

 

为使流程图简单些,将创建,复制,删除放一起,用“|”字符连接起来,代表“或”的意思。

3.3选择文件夹路径的流程图

 

 

 

 

 

 

 

 

 

 

 

 

 

四、源程序

1)定制菜单

定制一个菜单,添加5个子菜单,并分别设置它们的Popup,包括:创建(true)、复制(true)、删除(true)、帮助、退出(false)。

在子菜单中添加它们的菜单项。如下所示:

创建:文件夹,TXT,WORD,EXCEL

复制:文件夹,TXT,WORD,EXCEL

删除:文件夹,TXT,WORD,EXCEL

帮助:关于 DMS(&A)...

退出

2)创建文件夹

void CMainFrame::OnBuildFolder()

{

//选择新建文件夹的路径

UpdateData(TRUE);

    char szDir[MAX_PATH];

BROWSEINFO bi;

ITEMIDLIST *pidl;

bi.hwndOwner = this->m_hWnd;

bi.pidlRoot = NULL;

bi.pszDisplayName = LPWSTR(szDir);

bi.lpszTitle = TEXT("新建文件夹");

bi.ulFlags = BIF_EDITBOX | BIF_VALIDATE | BIF_NEWDIALOGSTYLE ;

bi.lpfn = NULL;

bi.lParam = 0;

bi.iImage = 0;

pidl = SHBrowseForFolder(&bi);

if(pidl == NULL)  

return;

if(!SHGetPathFromIDList(LPCITEMIDLIST(pidl), LPWSTR(szDir)))   

return;

else

m_strPath = szDir;

UpdateData(FALSE);

}

 

3)创建文件的函数

void CMainFrame::build(CString title, CString filter, CString defExt)

{

CFileDialog fileDlg(FALSE);

fileDlg.m_ofn.lpstrTitle=title;

fileDlg.m_ofn.lpstrFilter=filter;

fileDlg.m_ofn.lpstrDefExt=defExt;

if(IDOK==fileDlg.DoModal())

{ //创建一个文档

CFile file(fileDlg.GetFileName(),CFile::modeCreate);

file.Close();

}

}

创建txt文件:

void CMainFrame::OnBuildTxt()

{

//创建一个Txt文档

build(TEXT("新建Txt文档"),TEXT("TextFiles(*.txt)\0*.txt\0"),

TEXT("txt"));

}

创建word文档:

void CMainFrame::OnBuildWord()

{

//创建一个Word文档

build(TEXT("新建Word文档"),

TEXT("Text Files(*.doc)\0*.doc\0"),TEXT("doc"));

}

创建excel工作表:

void CMainFrame::OnBuildExcel()

{

//创建一个Excel工作表

build(TEXT("新建Excel工作表"),

TEXT("Text Files(*.xls)\0*.xls\0"),TEXT("xls"));

}

创建txt、word、excel都是调用build函数。

 

4)复制文件夹

添加一个类:CCopyDlg;

在对话框上添加两个按钮,“选择源文件夹”,“选择目标文件夹”;

选择路径的函数:

CString CCopyDlg::selectPath(CString path)

{

//选择路径

UpdateData(TRUE);

    char szDir[MAX_PATH];

CString str;

BROWSEINFO bi;

ITEMIDLIST *pidl;

bi.hwndOwner = this->m_hWnd;

bi.pidlRoot = NULL;

bi.pszDisplayName = LPTSTR (szDir);

bi.lpszTitle = path;

bi.ulFlags = BIF_EDITBOX | BIF_VALIDATE;

bi.lpfn = NULL;

bi.lParam = 0;

bi.iImage = 0;

pidl = SHBrowseForFolder(&bi);

if(pidl == NULL)  

return CString();

if(!SHGetPathFromIDList(pidl, LPTSTR (szDir)))   

return CString();

else  

str = szDir;

UpdateData(FALSE);

return str;

}

分别对这两个按钮进行响应:

void CCopyDlg::OnBnClickedButton1()

{

//获得源文件夹的路径

m_strBgnPath=selectPath(TEXT("选择源文件夹"));

}

 

void CCopyDlg::OnBnClickedButton2()

{

//获得目标文件夹的路径

m_strEndPath=selectPath(TEXT("选择目标文件夹"));

}

 

 

再添加一个复制函数:

BOOL copyFiles(CString strSrcPath, CString strDstPath)

{ // 创建目标文件夹

    CreateDirectory(strDstPath,NULL);

    CFileFind finder;

    // 打开指定的文件夹进行搜索

    BOOL bWorking = finder.FindFile(strSrcPath + TEXT("\\*.*"));

    while(bWorking)

    {

        // 从当前目录搜索文件

        bWorking = finder.FindNextFile();

        CString strFileName = finder.GetFileName();

        CString strSrc = strSrcPath + TEXT("\\") + strFileName;

        CString strDst = strDstPath + TEXT("\\") + strFileName;

        // 判断搜索到的是不是"."和".."目录

        if(!finder.IsDots())

        {

            // 判断搜索到的目录是否是文件夹

            if(finder.IsDirectory())

            {

                // 如果是文件夹的话,进行递归

                if(!copyFiles(strSrc, strDst))  

                    return false;

            }

            else

            {

                // 如果是文件,进行复制

                if(!CopyFile(strSrc, strDst, FALSE))

                    return false;

            }

        }

    }       

    return true;

}

对确定按钮的消息响应函数重写:

void CCopyDlg::OnBnClickedOk()

{

copyFiles(m_strBgnPath,m_strEndPath);

OnOK();

}

 

最后对菜单项:复制文件夹的响应:

void CMainFrame::OnCopyFolder()

{

//弹出一个复制文件夹的对话框

CCopyDlg dlg;

dlg.DoModal();

}

 

5)复制txt文件

添加一个类:CTxtDlg;

先对两个按钮,"选择源Txt文件""选择目的Txt文件"进行响应:

void CTxtDlg::OnBnClickedButton1()

{

CFileDialog dlg(1,NULL,NULL,NULL,TEXT("Text files(*.txt)|*.txt"));

dlg.m_ofn.lpstrTitle=TEXT("选择源Txt文件");

if(dlg.DoModal()==IDOK)

{

m_strBgnPath = dlg.GetPathName();

}

}

 

void CTxtDlg::OnBnClickedButton2()

{

CFileDialog fileDlg(FALSE);

fileDlg.m_ofn.lpstrTitle=TEXT("选择目的Txt文件");

fileDlg.m_ofn.lpstrFilter=TEXT("Text Files(*.txt)\0*.txt\0");

fileDlg.m_ofn.lpstrDefExt=TEXT("txt");

if(IDOK==fileDlg.DoModal())

{

m_strEndPath=fileDlg.GetFileName();

}

}

再对“确定”按钮进行响应:

void CTxtDlg::OnBnClickedOk()

{

BOOL tempFile = CopyFile(m_strBgnPath,m_strEndPath,FALSE);

int itemp = GetLastError();

if(!tempFile)

{

MessageBox( TEXT("文件复制失败") );

}

else

{

MessageBox( TEXT("文件复制成功") );

}

OnOK();

}

最后对菜单项:复制txt文件的响应:

void CMainFrame::OnCopyTxt()

{ //弹出一个复制Txt文件的对话框

CTxtDlg dlg;

dlg.DoModal();

}

 

6)复制word文档

添加一个类:CWordDlg;

对两个按钮,"选择源Word文档""选择目的Word文档"进行响应:

void CWordDlg::OnBnClickedButton1()

{

CFileDialog dlg(1,NULL,NULL,NULL,TEXT("Text files(*.doc)|*.doc"));

dlg.m_ofn.lpstrTitle=TEXT("选择源Word文档");

if(dlg.DoModal()==IDOK)

{

m_strBgnPath = dlg.GetPathName();

}

}

 

void CWordDlg::OnBnClickedButton2()

{

CFileDialog fileDlg(FALSE);

fileDlg.m_ofn.lpstrTitle=TEXT("选择目的Word文档");

fileDlg.m_ofn.lpstrFilter=TEXT("Text Files(*.doc)\0*.doc\0");

fileDlg.m_ofn.lpstrDefExt=TEXT("doc");

if(IDOK==fileDlg.DoModal())

{

m_strEndPath=fileDlg.GetFileName();

}

}

再对“确定”按钮进行响应:

void CWordDlg::OnBnClickedOk()

{

BOOL tempFile = CopyFile(m_strBgnPath,m_strEndPath,FALSE);

int itemp = GetLastError();

if(!tempFile)

{

MessageBox( TEXT("文件复制失败") );

}

else

{

MessageBox( TEXT("文件复制成功") );

}

OnOK();

}

最后对菜单项:复制word文档的响应:

void CMainFrame::OnCopyWord()

{

//弹出一个复制Word文件的对话框

CWordDlg dlg;

dlg.DoModal();

}

 

7)复制excel工作表

添加一个类:CExcelDlg;

对两个按钮进行响应:

void CExcelDlg::OnBnClickedButton3()

{

CFileDialog dlg(1,NULL,NULL,NULL,TEXT("Text files(*.xls)|*.xls"));

dlg.m_ofn.lpstrTitle=TEXT("选择源Excel工作表");

if(dlg.DoModal()==IDOK)

{

m_strBgnPath = dlg.GetPathName();

}

}

 

void CExcelDlg::OnBnClickedButton2()

{

CFileDialog fileDlg(FALSE);

fileDlg.m_ofn.lpstrTitle=TEXT("选择目的Excel工作表)");

fileDlg.m_ofn.lpstrFilter=TEXT("Text Files(*.xls)\0*.xls\0");

fileDlg.m_ofn.lpstrDefExt=TEXT("xls");

if(IDOK==fileDlg.DoModal())

{

m_strEndPath=fileDlg.GetFileName();

}

}

再对确定按钮进行响应:

void CExcelDlg::OnBnClickedOk()

{

BOOL tempFile = CopyFile(m_strBgnPath,m_strEndPath,FALSE);

int itemp = GetLastError();

if(!tempFile)

{

MessageBox( TEXT("文件复制失败") );

}

else

{

MessageBox( TEXT("文件复制成功") );

}

OnOK();

}

最后对菜单项:复制excel工作表的响应:

void CMainFrame::OnCopyExcel()

{

//弹出一个复制Excel文件的对话框

CExcelDlg dlg;

dlg.DoModal();

}

 

 

 

 

 

 

五、运行结果

 

程序的主界面:

 

窗口的标题“简单文件管理系统”

它有三个弹出式子菜单:“创建”“复制”“删除”,它们都有四个菜单项:文件夹,TXT,WORD,EXCEL。

最后一个子菜单:“退出” ,是一个非弹出式的子菜单,有退出程序的消息响应函数。方便用户人性化退出。单击:退出。便可退出程序

 

1)创建文件夹

 单击“创建”->“文件夹”

将弹出如下所示的对话框:

 

选择好路径,单击“新建文件夹”就可以在其目录下创建一个新的文件夹。

 

2)创建文件

不管是创建txt文件,word文件,还是excel文件,原理都是一样的,操作步骤也是相近的,下面以txt格式为例,演示一下。

首先单击子菜单“创建”,选择“TXT”菜单项。将弹出如下所示的对话框,

可以在对话框中选择路径,在文件名的文本编辑框中输入你要保存的文件名因为要创建的是txt文件,所以保存类型默认的后缀名为“.txt”。

 

 

 

3)复制文件夹

操作步骤:“复制”->“文件夹”

将弹出如下所示的对话框:

 

 

单击按钮“选择源文件夹”,是要你选择要复制哪个文件夹,将弹出选择框,如下所示:

 

单击按钮“选择目标文件夹”,是要你选择要复制到哪个文件夹下,将弹出选择框,如下所示:

 

最后单击对话框中的“确定”按钮,这样就把指定的文件夹复制到了指定的目录下。

(4)复制txt文件

txt文件、word文件excel文件都跟复制文件夹的类似,这就不再重复操作,演示。

5)删除文件夹

单击“删除”->“文件夹”

选择好要删除的文件夹,单击确定就可以删除文件夹了

 

6)删除文件

Txt,word,excel等文件删除的方式都一样,下面以删除word文件为例,演示一下。

“删除”->“WORD”,将弹出如下所示的删除文件对话框,选择要删除的word文档,单击删除按钮,就可以成功删除。

 

 

 

(程序操作演示完毕)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

第六章    系统测试以及软件安装

 

6.1软件测试基础理论

6.1.1 软件测试定义

软件测试是根据软件开发各阶段的规格说明和程序的内部结构而精心设计的一批测试用例,并利用这些测试用例运行程序以及发现错误的过程,即执行测试步骤。

软件测试就是在软件投入运行前,对软件需求分析、设计规格说明和编码实现的最终审查,它是软件质量保证的关键步骤。

6.1.2 软件测试基本概念

1、测试的含义

所谓测试,首先是一项活动,在这项活动中某个系统或组成的部分将在特定的条件下运行,结果将被观察和记录,并对系统或组成部分进行评价。测试活动有两种结果:找出缺陷和故障,或显示软件执行正确。测试是一个或多个测试用例的集合。

测试用例:所谓测试用例是为特定的目的而设计的一组测试输入、执行条件和预期的结果;测试用例是执行测试的最小实体。

2、测试的步骤

测试步骤详细规定了如何设置、执行、评估特定的测试用例。

软件生命周期:一个软件生命周期包括制定计划、需求分析定义、软件设计、程序编码、软件测试、软件运行、软件维护、软件停用等8个阶段。

软件测试在软件生命周期中横跨两个阶段:

单元测试阶段:

即在每个模块编写出以后所做的必要测试

综合测试阶段:

即在完成单元测试后进行的测试,如集成测试、系统测试、验收测试。

6.2软件测试目的

测试是程序的执行过程,目的在于发现错误;不能证明程序的正确性,除非仅处理有限种情况。检查系统是否满足需求也是测试的期望目标。一个好的测试用例在于发现了还未曾发现的错误;一次成功的测试则是发现了错误的测试。

6.3软件测试方法分类

软件测试技术按照不同的划分方法,有不同的分类:静态测试、动态测试;黑盒测试、白盒测试;单元测试、集成测试、回归测试、系统测试、验证测试以及确认测试。

6.3.1 静态测试与动态测试

按照软件测试分析与非分析方法而论,软件测试可以分静态测试和动态测试。

1、静态测试

指不实际运行软件,主要是对软件的编程格式、结构等方面进行评估。静态测试包括:代码检查 、静态结构分析、代码质量度量等。它可以由人工进行,也可以借助软件工具自动进行。

2、动态测试

动态测试方法是指计算机必须真正运行被测试的程序,通过输入测试用例,对其运行情况即输入与输出的对应关系进行分析,以达到检测的目的。

动态测试包括:功能确认与接口测试 ,覆盖率分析,性能分析,内存分析。

6.3.2 黑盒白盒与白盒测试

1、黑盒测试

按照软件测试用例的设计方法而论,软件测试可以分为白盒测试法和黑盒测试法。若测试规划是基于产品的功能,目的是检查程序各个功能是否能够实现,并检查其中的功能错误,则这种测试方法称为黑盒测试(Black-box Testing)方法。 黑盒测试又称为功能测试、数据驱动测试和基于规格说明的测试。它是一种从用户观点出发的测试,一般被用来确认软件功能的正确性和可操作性。黑盒测试主要根据规格说明书设计测试用例,并不涉及程序内部构造和内部特性,只依靠被测程序输入和输出之间的关系或程序的功能设计测试用例。

2、黑盒测试的特点

黑盒测试与软件的具体实现过程无关,在软件实现的过程发生变化时,测试用例仍然可以使用。黑盒测试用例的设计可以和软件实现同时进行,这样能够压缩总的开发时间。若测试规划基于产品的内部结构进行测试,检查内部操作是否按规定执行,软件各个部分功能是否得到充分使用,则这种测试方法称为白盒测试(White-box Testing)方法。

3、白盒测试

白盒测试又称为结构测试、逻辑驱动测试或基于程序的测试,一般用来分析程序的内部结构。白盒测试要求是对某些程序的结构特性做到一定程度的覆盖,或者说这种测试是基于覆盖率的测试。通常的程序结构覆盖有:语句覆盖,判定覆盖,条件覆盖,判定/条件覆盖,路径覆盖。

6.3.3 单元测试、集成测试、系统测试、验证测试和确认测试

按照软件测试的策略和过程来分类,软件测试可分为单元测试、集成测试、系统测试、验证测试和确认测试。

测试中的错误分类:

A类错误:致命错误——引起程序异常中断或死机的错误等。

B类错误:功能错误——业务功能实现错误、程序执行结果错误等。

C类错误:功能缺陷——功能操作不方便、缺少操作提示等。

D类错误:界面缺陷——界面设计不符合本系统的界面设计规范等。

E类错误:测试正确——正确的测试项、测试结果与预期的一致等。

6.4 文件系统测试

本系统各部分模块,采黑白盒测试。

6.4.1 测试用例设计要求

一个的测试用例,应该包含以下信息: 

1、软件或项目的名称

2、软件或项目的版本(内部版本号)

3、功能模块名

4、测试用例的简单描述,即该用例执行的目的或方法

5、测试用例的参考信息(便于跟踪和参考)

6、本测试用例与其他测试用例间的依赖关系

7、本用例的前置条件,即执行本用例必须要满足的条件,如对数据库的访问权限

8、用例的编号(ID),如可以是软件名称简写-功能块简写-NO.

9、步骤号、操作步骤描述、测试数据描述

10、预期结果(这是最重要的)和实际结果(如果有BUG管理工具,这条可以省略)

11、开发人员(必须有)和测试人员(可有可无)

12、测试执行日期

结    论

 

本次毕业设计到此已经顺利结束,通过这次的毕业设计,我学到了很多。在以前的时间内我学习了很多的课程及编程语言,虽然通过学习对这些课程有所了解和掌握,但是始终处于理论知识的掌握阶段,并没有真正应用于实践设计开发,所以对知识的掌握还不够全面和熟练。而且并不能真正独立的开发出一个完整的应用于实际的系统。通过这次的毕业设计,我已经可以完成这一任务,对自身的编程能力也有了很大的提高。这次开发的系统是一个动态网页,而不是简单的静态网页,因此采用了在开发动态网页方面比较先进的JSP作为开发语言。JSP是一种WEB编程脚本语言。当然在学习的过程中曾经碰到过一些让人头痛的问题,我都一一解决了,直到系统全部完成,也让我在解决问题方面的能力得到了提高。

整个开发的过程对我来说是一次能力的真正提高的过程;是一次将理论应用于实践的过程;是将以前所学知识充分利用的过程,比如管理信息系统,数据库概论等等;是一次真正的实践过程。

总体说来,在这次长达一个学期的毕业设计中,我真正学到了很多有用的东西,是一些在课堂内所学不到的知识,收获很大。 


   

 

这是一个特殊的时刻,是一个值得纪念的时刻。此时此刻,短暂的毕业设计就要画上句点,人生中的大学时光也即将画上句号。心中的感受复杂交错,有即将毕业的兴奋、有毕设完成的轻松感、也有对大学时光的恋恋不舍。

在此论文即将完成之时,首先我要特别感谢我的指导老师李文老师!谢谢老师给予我悉心的关怀与指导。记得第一次见到老师时,立刻体会到了一种亲近的感觉。老师认真负责的工作态度、严谨的治学风格、亲切平易近人的性格,使我深受启发,内心许多次都在感激我能在大学最后的时光遇到了李文老师。正是在老师的督促和耐心的指导下,才让我将毕设各方面的工作完成得最好。

其次,也感谢院系各级领导对我的关心,为我提供了舒适的工作、学习环境。

最后,感谢同学们在开发的期间,给我的无私的帮助。曾经遇到过很多疑难,正是与同学们的相互探讨使我获益匪浅,才能让我继续前进的脚步。短短几个月时间内,除了学会了基本数据库应用系统地开发外,更重要的是学到了兢兢业业,奋发向上的精神!这种精神将是我今后人生前进道路上的一种力量,所以我再次衷心地感谢老师和我的同学们,谢谢你们了!

 

参考文献

[1]李媛.数字档案馆衍生的电子文件管理探析[J].机电兵船案,2020(04):59-61.

[2]刘越男.关于文件管理国际标准ISO 115489《信息与文献—文件管理》更新之处的思考[J].北京档案,2020(07):7-11.

[3]朝乐门.电子文件管理系统的测试方法研究[J].档案学通讯,2014(06):57-60.

[4]张晓娟,陈诚,胡文佳.电子文件管理系统功能需求标准的建设与发展[J].电子政务,2014(05):93-98.

[5]朝乐门.电子文件管理系统研发的重点与难点分析[J].档案学通讯,2014(01):73-77.

[6]赵丽.我国电子文件管理系统研究进展与方向[J].档案学研究,2013(06):50-56.

[7]朝乐门.电子文件管理系统的技术特征[J].现代图书情报技术,2013(04):30-39.

[8]刘越男,梁凯,顾伟.电子文件管理系统实施过程中元数据方案的设计[J].档案学研究,2012(02):56-64.

[9]钟瑛.浅议电子文件管理系统的功能要素[J].档案学通讯,2006(06):65-68.

[10]于丽娟.电子文件管理系统研究——系统功能原理分析[J].档案学通讯,2004(06):52-57.

发布评论 0条评论)

还木有评论哦,快来抢沙发吧~

客服微信:jie5527c点击复制并跳转微信