计算机课程设计报告.doc_第1页
计算机课程设计报告.doc_第2页
计算机课程设计报告.doc_第3页
计算机课程设计报告.doc_第4页
计算机课程设计报告.doc_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

计算机程序设计实践课程设计报告班 级 _计算机0801班 _学 号 _080405008 _姓 名 _秦勇旭 指导教师 _刘嘉敏 _ 2010 年 6月 8日1课题要求及目标基本要求1,实现计算机的各个驱动器中的文件的分类,类别有:文档文件(doc),文本文档(txt),位图文档(bmp,jpg),音频文件(MP3);2,现实每类文件的属性,即文件名(Filename),存放位置(Address),文件大小(Filesize)和创建时间(Createtime);3,实现文件的重命名(rename),拷贝(copy),删除(delete)和移动(move)操作;4,实现浏览文本文件,现实位图文件和试听音频文件。开发目标(已完成)1,实现计算机的各个驱动器中的文件的分类,类别有:文档文件(doc),文本文档(txt),位图文档(bmp,jpg),音频文件(MP3);2,现实每类文件的属性,即文件名(Filename),存放位置(Address),文件大小(Filesize)和创建时间(Createtime);3,实现文件的重命名(rename),拷贝(copy),删除(delete)和移动(move)操作;4,实现浏览文本文件,现实位图文件和试听音频文件。2用例分析用例模型用例描述:用户对系统文件进行分盘分类查找,实现文件分类查找后的打开播放功能用例1名称用户对程序的应用用例标识号1事件说明:(包括基本、其他、异常事件处理过程)简述: 该用例允许用户对系统文件的分类查找与使用参与者:用户;基本事件:程序运行后,用户是用左视图的TREE试图进行事件的触发,单击某一类型的文件,将在右侧的LIST视图中显示该盘下该文件类型的所有文件用户可以对文件进行处理. 异常处理:关闭。3系统结构设计与实现类图:类名CExplorerDlg, CexplorerApp类的作用实现文件的分类分盘查找,对界面进行初始化类定义:class CExplorerDlg : public CDialog/ Constructionpublic:CExplorerDlg(CWnd* pParent = NULL);/ standard constructor void InitTree();char * substr(const char *s,int sublength, int length);void FindFileDoc(char* rootDir);void FindFileTxt(char* rootDir);void FindFileMp3(char* rootDir);void FindFilePic(char* rootDir);/ Dialog Data/AFX_DATA(CExplorerDlg)enum IDD = IDD_EXPLORER_DIALOG ;CListCtrlm_list;CTreeCtrlm_tree;/AFX_DATA/ ClassWizard generated virtual function overrides/AFX_VIRTUAL(CExplorerDlg)protected:virtual void DoDataExchange(CDataExchange* pDX);/ DDX/DDV support/AFX_VIRTUAL/ Implementationprotected:HICON m_hIcon;/ Generated message map functions/AFX_MSG(CExplorerDlg)virtual BOOL OnInitDialog();afx_msg void OnSysCommand(UINT nID, LPARAM lParam);afx_msg void OnPaint();afx_msg HCURSOR OnQueryDragIcon();afx_msg void OnClickTree1(NMHDR* pNMHDR, LRESULT* pResult);afx_msg void OnSelchangedTree1(NMHDR* pNMHDR, LRESULT* pResult);afx_msg void OnDblclkList1(NMHDR* pNMHDR, LRESULT* pResult);/AFX_MSGDECLARE_MESSAGE_MAP();类的实现代码(本人实现的部分的代码):void CExplorerDlg:InitTree()HTREEITEM h_Firstroot; HTREEITEM h_Secondroot4; h_Firstroot=m_tree.InsertItem(本地计算机,0,1);CString strsecond4,strthird;h_Secondroot0=m_tree.InsertItem(C,0,1,h_Firstroot);h_Secondroot1=m_tree.InsertItem(D,0,2,h_Firstroot);h_Secondroot2=m_tree.InsertItem(E,0,3,h_Firstroot);for(int i=0;i4;i+) m_tree.InsertItem(文档文件,0,1,h_Secondrooti);m_tree.InsertItem(文本文件,0,2,h_Secondrooti);m_tree.InsertItem(音频文件,0,3,h_Secondrooti);m_tree.InsertItem(位图文件,0,4,h_Secondrooti);树控件添加节点 BOOL CExplorerDlg:OnInitDialog()CDialog:OnInitDialog();/ Add About. menu item to system menu./ IDM_ABOUTBOX must be in the system command range.ASSERT(IDM_ABOUTBOX & 0xFFF0) = IDM_ABOUTBOX);ASSERT(IDM_ABOUTBOX AppendMenu(MF_SEPARATOR);pSysMenu-AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);/ Set the icon for this dialog. The framework does this automatically/ when the applications main window is not a dialogSetIcon(m_hIcon, TRUE);/ Set big iconSetIcon(m_hIcon, FALSE);/ Set small icon/ TODO: Add extra initialization herem_list.SetExtendedStyle(LVS_EX_FLATSB|LVS_EX_FULLROWSELECT|LVS_EX_HEADERDRAGDROP|LVS_EX_ONECLICKACTIVATE|LVS_EX_GRIDLINES);m_list.InsertColumn(0,FileName,LVCFMT_LEFT,120,0);m_list.InsertColumn(1,Address,LVCFMT_LEFT,120,2);m_list.InsertColumn(2,FileSize,LVCFMT_LEFT,120,3);m_list.InsertColumn(3,Createtime,LVCFMT_LEFT,120,4);初始化LIST控件,添加文件属性InitTree();return TRUE; / return TRUE unless you set the focus to a control4系统行为设计与实现 (与本人相关内容)界面导航关系界面中主要消息响应函数的实现(本人实现的部分的函数)函数名FindFileDoc FindFileMp3FindFilePic FindFileTxt函数参数char *rootDir函数返回类型Void函数实现代码:void CExplorerDlg:FindFileDoc(char *rootDir)char fnameMAX_PATH; ZeroMemory(fname, MAX_PATH); WIN32_FIND_DATA fd; ZeroMemory(&fd, sizeof(WIN32_FIND_DATA); HANDLE hSearch; char filePathName256; char tmpPath256; ZeroMemory(filePathName, 256); ZeroMemory(tmpPath, 256); strcpy(filePathName, rootDir); BOOL bSearchFinished = FALSE; if( filePathNamestrlen(filePathName) -1 != ) strcat(filePathName, ); strcat(filePathName, *.*); hSearch = FindFirstFile(filePathName, &fd); if( (fd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) & strcmp(fd.cFileName, .) & strcmp(fd.cFileName, .) ) strcpy(tmpPath, rootDir); strcat(tmpPath,); strcat(tmpPath, fd.cFileName); FindFileDoc(tmpPath); 循环调用 else if( strcmp(fd.cFileName, .) & strcmp(fd.cFileName, .) ) sprintf(fname, %-50.50s, fd.cFileName); printf(%sn , fname); while( !bSearchFinished ) if( FindNextFile(hSearch, &fd) ) if( (fd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) & strcmp(fd.cFileName, .) & strcmp(fd.cFileName, .) ) strcpy(tmpPath, rootDir); strcat(tmpPath,); strcat(tmpPath, fd.cFileName); FindFileDoc(tmpPath); 循环调用 else if( strcmp(fd.cFileName, .) & strcmp(fd.cFileName, .) ) int n; n=strlen(fd.cFileName);char *sub;sub=substr(fd.cFileName,4,n); if(!strcmp(sub,.doc)文件类型设定 sprintf(fname, %-50.50s, fd.cFileName); CString sr,strtime,strlast;sr.Format(%d,fd.nFileSizeLow/1024);CTime strTime=fd.ftCreationTime;CTime strLast=fd.ftLastWriteTime;strtime=strTime.Format( %Y-%m-%d %H:%M:%S );strlast=strLast.Format( %Y-%m-%d %H:%M:%S ); m_list.InsertItem(0,); m_list.SetItemText(0,0,fname);m_list.SetItemText(0,1,filePathName);m_list.SetItemText(0,2,sr+K);m_list.SetItemText(0,3,strtime);m_list.SetItemText(0,4,strlast); else if( GetLastError() = ERROR_NO_MORE_FILES ) bSearchFinished = TRUE; else bSearchFinished = TRUE; FindClose(hSearch);void CExplorerDlg:FindFileMp3(char *rootDir)char fnameMAX_PATH; ZeroMemory(fname, MAX_PATH); WIN32_FIND_DATA fd; ZeroMemory(&fd, sizeof(WIN32_FIND_DATA); HANDLE hSearch; char filePathName256; char tmpPath256; ZeroMemory(filePathName, 256); ZeroMemory(tmpPath, 256); strcpy(filePathName, rootDir); BOOL bSearchFinished = FALSE; if( filePathNamestrlen(filePathName) -1 != ) strcat(filePathName, ); strcat(filePathName, *.*); hSearch = FindFirstFile(filePathName, &fd); /Is directory if( (fd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) & strcmp(fd.cFileName, .) & strcmp(fd.cFileName, .) ) strcpy(tmpPath, rootDir); strcat(tmpPath,); strcat(tmpPath, fd.cFileName); FindFileMp3(tmpPath); 循环调用 else if( strcmp(fd.cFileName, .) & strcmp(fd.cFileName, .) ) sprintf(fname, %-50.50s, fd.cFileName); printf(%sn , fname); while( !bSearchFinished ) if( FindNextFile(hSearch, &fd) ) if( (fd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) & strcmp(fd.cFileName, .) & strcmp(fd.cFileName, .) ) strcpy(tmpPath, rootDir); strcat(tmpPath,); strcat(tmpPath, fd.cFileName); FindFileMp3(tmpPath); 循环调用 else if( strcmp(fd.cFileName, .) & strcmp(fd.cFileName, .) ) int n; n=strlen(fd.cFileName);char *sub;sub=substr(fd.cFileName,4,n); if(!strcmp(sub,.mp3)文件类型设定 sprintf(fname, %-50.50s, fd.cFileName); CString sr,strtime,strlast;sr.Format(%d,fd.nFileSizeLow/1024);CTime strTime=fd.ftCreationTime;CTime strLast=fd.ftLastWriteTime;strtime=strTime.Format( %Y-%m-%d %H:%M:%S );strlast=strLast.Format( %Y-%m-%d %H:%M:%S ); m_list.InsertItem(0,); m_list.SetItemText(0,0,fname);m_list.SetItemText(0,1,filePathName);m_list.SetItemText(0,2,sr+K);m_list.SetItemText(0,3,strtime);m_list.SetItemText(0,4,strlast); else if( GetLastError() = ERROR_NO_MORE_FILES ) bSearchFinished = TRUE; else bSearchFinished = TRUE; /Terminate Search FindClose(hSearch);/void CExplorerDlg:FindFilePic(char *rootDir)char fnameMAX_PATH; ZeroMemory(fname, MAX_PATH); WIN32_FIND_DATA fd; ZeroMemory(&fd, sizeof(WIN32_FIND_DATA); HANDLE hSearch; char filePathName256; char tmpPath256; ZeroMemory(filePathName, 256); ZeroMemory(tmpPath, 256); strcpy(filePathName, rootDir); BOOL bSearchFinished = FALSE; if( filePathNamestrlen(filePathName) -1 != ) strcat(filePathName, ); strcat(filePathName, *.*); hSearch = FindFirstFile(filePathName, &fd); if( (fd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) & strcmp(fd.cFileName, .) & strcmp(fd.cFileName, .) ) strcpy(tmpPath, rootDir); strcat(tmpPath,); strcat(tmpPath, fd.cFileName); FindFilePic(tmpPath); 循环调用 else if( strcmp(fd.cFileName, .) & strcmp(fd.cFileName, .) ) sprintf(fname, %-50.50s, fd.cFileName); printf(%sn , fname); while( !bSearchFinished ) if( FindNextFile(hSearch, &fd) ) if( (fd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) & strcmp(fd.cFileName, .) & strcmp(fd.cFileName, .) ) strcpy(tmpPath, rootDir); strcat(tmpPath,); strcat(tmpPath, fd.cFileName); FindFilePic(tmpPath); 循环调用 else if( strcmp(fd.cFileName, .) & strcmp(fd.cFileName, .) ) int n; n=strlen(fd.cFileName);char *sub;sub=substr(fd.cFileName,4,n); if(!strcmp(sub,.jpg)|!strcmp(sub,.bmp) sprintf(fname, %-50.50s, fd.cFileName); CString sr,strtime,strlast;sr.Format(%d,fd.nFileSizeLow/1024);CTime strTime=fd.ftCreationTime;CTime strLast=fd.ftLastWriteTime;strtime=strTime.Format( %Y-%m-%d %H:%M:%S );strlast=strLast.Format( %Y-%m-%d %H:%M:%S ); m_list.InsertItem(0,); m_list.SetItemText(0,0,fname);m_list.SetItemText(0,1,filePathName);m_list.SetItemText(0,2,sr+K);m_list.SetItemText(0,3,strtime);m_list.SetItemText(0,4,strlast); else if( GetLastError() = ERROR_NO_MORE_FILES ) bSearchFinished = TRUE; else bSearchFinished = TRUE; FindClose(hSearch);void CExplorerDlg:FindFileTxt(char *rootDir)char fnameMAX_PATH; ZeroMemory(fname, MAX_PATH); WIN32_FIND_DATA fd; ZeroMemory(&fd, sizeof(WIN32_FIND_DATA); HANDLE hSearch; char filePathName256; char tmpPath256; ZeroMemory(filePathName, 256); ZeroMemory(tmpPath, 256); strcpy(filePathName, rootDir); BOOL bSearchFinished = FALSE; if( filePathNamestrlen(filePathName) -1 != ) strcat(filePathName, ); strcat(filePathName, *.*); hSearch = FindFirstFile(filePathName, &fd); if( (fd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) & strcmp(fd.cFileName, .) & strcmp(fd.cFileName, .) ) strcpy(tmpPath, rootDir); strcat(tmpPath,); strcat(tmpPath, fd.cFileName); FindFileTxt(tmpPath); 循环调用 else if( strcmp(fd.cFileName, .) & strcmp(fd.cFileName, .) ) sprintf(fname, %-50.50s, fd.cFileName); printf(%sn , fname); while( !bSearchFinished ) if( FindNextFile(hSearch, &fd) ) if( (fd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) & strcmp(fd.cFileName, .) & strcmp(fd.cFileName, .) ) strcpy(tmpPath, rootDir); strcat(tmpPath,); strcat(tmpPath, fd.cFileName); FindFileTxt(tmpPath);循环调用 else if( strcmp(fd.cFileName, .) & strcmp(fd.cFileName, .) ) int n; n=strlen(fd.cFileName);char *sub;sub=substr(fd.cFileName,4,n); if(!strcmp(sub,.txt)文件类型设定 sprintf(fname, %-50.50s, fd.cFileName); CString sr,strtime,strlast;sr.Format(%d,fd.nFileSizeLow/1024);CTime strTime=fd.ftCreationTime;CTime strLast=fd.ftLastWriteTime;strtime=strTime.Format( %Y-%m-%d %H:%M:%S );strlast=strLast.Format( %Y-%m-%d %H:%M:%S ); m_list.InsertItem(0,); m_list.SetItemText(0,0,fname);m_list.SetItemText(0,1,filePathName);m_list.SetItemText(0,2,sr+K);m_list.SetItemText(0,3,strtime);m_list.SetItemText(0,4,strlast); else if( GetLastError() = ER

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论