计算机企业实习报告.doc_第1页
计算机企业实习报告.doc_第2页
计算机企业实习报告.doc_第3页
计算机企业实习报告.doc_第4页
计算机企业实习报告.doc_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

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

文档简介

实习报告学院: 班级:姓名:学号:实习地点:实习时间:一 实习单位及岗位简介1. 实习单位简介成都齐力同展科技有限公司是一家中小规模的民营公司,所属计算机服务行业。本公司主要开发、销售电子产品、计算机软件并提供技术服务、技术咨询等。囊括了C+软件开发工程师,软件界面工程师,售后技术支持,研发工程师,射频电路设计工程师,工程调试员,电子装配员等丰富的岗位。是近几年发展起来的具有市场竞争力的新兴企业。2. 实习岗位简介本次实习岗位为软件开发部实习生。二实习目的1.获得专业知识相关的知识,扩宽自己的知识面,学习如何成为一个综合性人才。2.学会将理论运用在生产实践,让自己的知识更加牢固,调和理论与实际的关系。3.培养良好的职业道德观,恪敬职守,用于创新。三实习内容1.熟悉掌握各种编程软件和编程环境。到公司的第一天,就在学长的指导下,安装了Microsoft Visual Studio(简称VS)等软件,Visual Studio 是微软公司推出的目前最流行的开发环境,是在Windows平台下构建32位应用程序的强大而复杂的开发工具,是世界上使用最多的开发工具之一。Visual Studio 可以用来创建 Windows 平台下的 Windows应用程序和网络应用程序,也可以用来创建网络服务、智能设备应用程序和 Office 插件。VC应用广泛,从桌面应用程序到服务器端软件,从系统软件到应用软件,从单机程序到分布式应用程序,从图形图像处理到游戏的开发。这对于我们来说是一个全新的软件,刚开始使用的时候很吃力,完全重头摸索。 经过一段时间的学习,逐渐熟悉了它的键面,掌握了它的一些基本功能,并能编译一些简单的程序。2.C+的学习和应用这期间主要学习了两本书,深入详解和C+ Primer。掌握内容如下:(1)程序运行原理及程序编写流程,窗口产生过程,句柄原理,消息队列,回调函数,窗口关闭与应用程序退出的工作关系;(2)C+经典语法与应用,类的编写与应用,构造与析构函数,函数的重载,类的继承,函数覆盖,基类与派生类的构造函数,析构函数调用顺序,如何在派生类构造函数中向基类的构造函数传递参数,this成员变量,类型转换的内幕,应用和指针变量的区别与共同处。(3)MFCAppWizard的原理与MFC程序框架的剖析,MFC消息映射机制的剖析,掌握设备描述表及其封装类CDC的使用。(4)掌握CDC的文字处理程序的编写,如何产生自定义字体和自定义插入符,熟悉对CString类的使用。(5)对话框用户界面程序的编写,如何向对话框控件关联数据成员及其实现机制,利用对话框类的成员函数向控件发送消息和获取对话框控件的类指针,如何直接利用对话框控件操纵对话框控件,如何在程序运行时产生和销毁控件。3.开发压缩解压软件经过了两个周的学习,公司给我们布置了任务,让我们在一周的时间内开发一个完整的压缩解压软件,能完成文件的压缩解压功能,还要能测试出这个功能,最后还要配上说明文档。对我们四个初学者来说,这无疑是一个不简单的任务。在网上找到了可用的能压缩解压的源代码,加上相应的头文件,初步能完成小文件的压缩解压,但是怎样才能使可压缩的内容足够大?我们遇到了第一个难题。有了分段压缩的思想,不断修改代码,不断编译,不断查找错误,不断搜索解决方案,最后终于调试成功。怎样通过文本框的形式测试压缩解压功能?询问了学长,得知可以通过源程序调用的方式解决。后来遇到的压缩路径不统一也是一个棘手的问题,在大家的共同努力下均一一解决,完成了当初看似很难的任务。下面是我们开发的压缩解压软件的源程序。/ zipDlg.cpp : 实现文件#include stdafx.h#include zip.h#include zipDlg.h#include afx.hCString FilePathName, FilePathName1,FilePathName2,FilePathName3;char *p; /= (LPSTR)(LPCTSTR)FilePathName;char *p1;/=(LPSTR)(LPCTSTR)FilePathName1;char *p2;/=(LPSTR)(LPCTSTR)FilePathName2;char *p3;/=(LPSTR)(LPCTSTR)FilePathName3;#ifdef _DEBUG#define new DEBUG_NEW#endif/ 用于应用程序“关于”菜单项的CAboutDlg 对话框class CAboutDlg : public CDialogpublic:CAboutDlg();/ 对话框数据enum IDD = IDD_ABOUTBOX ;protected:virtual void DoDataExchange(CDataExchange* pDX); / DDX/DDV 支持/ 实现protected:DECLARE_MESSAGE_MAP();CAboutDlg:CAboutDlg() : CDialog(CAboutDlg:IDD)void CAboutDlg:DoDataExchange(CDataExchange* pDX)CDialog:DoDataExchange(pDX);BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)END_MESSAGE_MAP()/ CzipDlg 对话框CzipDlg:CzipDlg(CWnd* pParent /*=NULL*/): CDialog(CzipDlg:IDD, pParent)m_hIcon = AfxGetApp()-LoadIcon(IDR_MAINFRAME);void CzipDlg:DoDataExchange(CDataExchange* pDX)CDialog:DoDataExchange(pDX);BEGIN_MESSAGE_MAP(CzipDlg, CDialog)ON_WM_SYSCOMMAND()ON_WM_PAINT()ON_WM_QUERYDRAGICON()/AFX_MSG_MAPON_BN_CLICKED(IDC_BUTTON1, &CzipDlg:OnBnClickedchoose1)ON_BN_CLICKED(IDC_BUTTON2, &CzipDlg:OnBnClickedCompress)ON_BN_CLICKED(IDC_BUTTON3, &CzipDlg:OnBnClickedchoose2)ON_BN_CLICKED(IDC_BUTTON4, &CzipDlg:OnBnClickedUncompress)END_MESSAGE_MAP()/ CzipDlg 消息处理程序BOOL CzipDlg:OnInitDialog()CDialog:OnInitDialog();ASSERT(IDM_ABOUTBOX & 0xFFF0) = IDM_ABOUTBOX);ASSERT(IDM_ABOUTBOX AppendMenu(MF_SEPARATOR);pSysMenu-AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);SetIcon(m_hIcon, TRUE);/ 设置大图标SetIcon(m_hIcon, FALSE);/ 设置小图标/ TODO: 在此添加额外的初始化代码return TRUE; / 除非将焦点设置到控件,否则返回TRUEvoid CzipDlg:OnSysCommand(UINT nID, LPARAM lParam)if (nID & 0xFFF0) = IDM_ABOUTBOX)CAboutDlg dlgAbout;dlgAbout.DoModal();elseCDialog:OnSysCommand(nID, lParam);void CzipDlg:OnPaint()if (IsIconic()CPaintDC dc(this); / 用于绘制的设备上下文SendMessage(WM_ICONERASEBKGND, reinterpret_cast(dc.GetSafeHdc(), 0);/ 使图标在工作区矩形中居中int cxIcon = GetSystemMetrics(SM_CXICON);int cyIcon = GetSystemMetrics(SM_CYICON);CRect rect;GetClientRect(&rect);int x = (rect.Width() - cxIcon + 1) / 2;int y = (rect.Height() - cyIcon + 1) / 2;/ 绘制图标dc.DrawIcon(x, y, m_hIcon);elseCDialog:OnPaint();HCURSOR CzipDlg:OnQueryDragIcon()return static_cast(m_hIcon);void CzipDlg:OnBnClickedchoose1()CFileDialog dlg(TRUE);/TRUE为OPEN对话框,FALSE为SAVE AS对话框 if(dlg.DoModal()=IDOK) FilePathName=dlg.GetPathName();/获取压缩文件路径/FilePathName.Replace(_T(),_T();int nLength = FilePathName.GetLength();int nBytes = WideCharToMultiByte(CP_ACP,0,FilePathName,nLength,NULL,0,NULL,NULL);char* c = new char nBytes + 1;memset(c,0,nLength + 1);WideCharToMultiByte(CP_OEMCP, 0, FilePathName, nLength, c, nBytes, NULL, NULL); cnBytes = 0;p=c; / TODO: 在此添加控件通知处理程序代码void CzipDlg:OnBnClickedCompress()CFileDialog dlg(FALSE);/TRUE为OPEN对话框,FALSE为SAVE AS对话框 if(dlg.DoModal()=IDOK) FilePathName1=dlg.GetPathName();/获取解压文件路径/FilePathName1.Replace(_T(),_T();int nLength = FilePathName1.GetLength();int nBytes = WideCharToMultiByte(CP_ACP,0,FilePathName1,nLength,NULL,0,NULL,NULL);char* c1 = new char nBytes + 1;memset(c1,0,nLength + 1);WideCharToMultiByte(CP_OEMCP, 0, FilePathName1, nLength, c1, nBytes, NULL, NULL); c1nBytes = 0;p1=c1;/AfxMessageBox(FilePathName1); CZlib test;test.Compress(p1,p); / TODO: 在此添加控件通知处理程序代码void CzipDlg:OnBnClickedchoose2()CFileDialog dlg(TRUE);/TRUE为OPEN对话框,FALSE为SAVE AS对话框 if(dlg.DoModal()=IDOK) FilePathName2=dlg.GetPathName();/获取解压文件路径 int nLength = FilePathName2.GetLength();int nBytes = WideCharToMultiByte(CP_ACP,0,FilePathName2,nLength,NULL,0,NULL,NULL);char* c2 = new char nBytes + 1;memset(c2,0,nLength + 1);WideCharToMultiByte(CP_OEMCP, 0, FilePathName2, nLength, c2, nBytes, NULL, NULL); c2nBytes = 0;p2=c2; / TODO: 在此添加控件通知处理程序代码void CzipDlg:OnBnClickedUncompress()CFileDialog dlg(FALSE);/TRUE为OPEN对话框,FALSE为SAVE AS对话框 if(dlg.DoModal()=IDOK) FilePathName3=dlg.GetPathName();/获取解压文件路径 int nLength = FilePathName3.GetLength();int nBytes = WideCharToMultiByte(CP_ACP,0,FilePathName3,nLength,NULL,0,NULL,NULL);char* c3 = new char nBytes + 1;memset(c3,0,nLength + 1);WideCharToMultiByte(CP_OEMCP, 0, FilePathName3, nLength, c3, nBytes, NULL, NULL); c3nBytes = 0;p3=c3;CZlib test1;test1.UnCompress(p3,p2); / TODO: 在此添加控件通知处理程序代码/ zip.cpp : 定义应用程序的类行为。#include stdafx.h#include zip.h#include zipDlg.h#include zlib.h/压缩文件相关*#include zconf.h #pragma comment(lib,zlib.lib) /#include #include iostream#include using namespace std;#define WINDOWS_PLATFORMvectorgroup;/*#ifdef _DEBUG#define new DEBUG_NEW#endif/ CzipAppBEGIN_MESSAGE_MAP(CzipApp, CWinAppEx)ON_COMMAND(ID_HELP, &CWinApp:OnHelp)END_MESSAGE_MAP()/ CzipApp 构造CzipApp:CzipApp()/ TODO: 在此处添加构造代码,/ 将所有重要的初始化放置在InitInstance 中/ 唯一的一个CzipApp 对象CzipApp theApp;/ CzipApp 初始化BOOL CzipApp:InitInstance()INITCOMMONCONTROLSEX InitCtrls;InitCtrls.dwSize = sizeof(InitCtrls);/ 将它设置为包括所有要在应用程序中使用的/ 公共控件类。InitCtrls.dwICC = ICC_WIN95_CLASSES;InitCommonControlsEx(&InitCtrls);CWinAppEx:InitInstance();AfxEnableControlContainer();SetRegistryKey(_T(应用程序向导生成的本地应用程序);CzipDlg dlg;m_pMainWnd = &dlg;INT_PTR nResponse = dlg.DoModal();if (nResponse = IDOK)/ TODO: 在此放置处理何时用/ “确定”来关闭对话框的代码else if (nResponse = IDCANCEL)/ TODO: 在此放置处理何时用/ “取消”来关闭对话框的代码return FALSE;int CZlib:Compress(char * DestName, char *SrcName)char SourceBuffer16384; /压缩文件时的源bufferchar * DestBuffer;FILE* fp=NULL; /打开欲压缩文件时文件的指针FILE* fp1=NULL; /创建压缩文件时的指针int len=sizeof(SourceBuffer);errno_t err; /错误变量的定义#ifdef WINDOWS_PLATFORMerr = fopen_s(&fp,SrcName,r+b);/打开欲压缩的文件if(err)AfxMessageBox(_T(文件打开失败!); /printf(文件打开失败! n);return 1;#endif #ifdef WINDOWS_CE_PLATFORMfp = fopen_s(SrcName,r+b);/打开欲压缩的文件if(fp)printf(文件打开失败! n);return 1;#endif /创建一个文件用来写入压缩后的数据err = fopen_s(&fp1, DestName,w+b);if(!fp1)AfxMessageBox(_T(压缩文件创建失败!);/printf(压缩文件创建失败! n);return 1 ;uLongf unReadLen=0,ReadLen=0,ReadLen1=0,unWritelen=0;for (;)uLongf L=2*len;/缓存长度是将被压缩数据长度的.001倍加;DestBuffer=(char*):calloc(uInt)L, sizeof(char);/定义一存储压缩数据的缓存fseek(fp,unReadLen,SEEK_SET);/指针设于文件已读数据之后ReadLen=fread(SourceBuffer,sizeof(char),len,fp);/读取长度为len的数据if (ferror(fp)AfxMessageBox(_T(READ ERROR!);/printf(READ ERROR!n);return 1;unReadLen+=ReadLen;err=compress(Bytef*)DestBuffer,(uLongf*)&L,(const Bytef*)SourceBuffer,(uLongf)len);/语句执行后L为实际压缩长度group.push_back(L);if(err!=Z_OK)AfxMessageBox(_T(压缩失败!);/cout压缩失败:errendl;return 1;memset(SourceBuffer,0,len);fseek(fp1,unWritelen,SEEK_SET);/指针设于fp1已写数据之后ReadLen1=fwrite(DestBuffer,sizeof(char),L,fp1);free(DestBuffer);if (ReadLen!=len)AfxMessageBox(_T(压缩成功!);/printf(压缩成功!n);break;unWritelen+=ReadLen1;fclose(fp);fclose(fp1);return 0;int CZlib:UnCompress(char * DestName, char *SrcName)char uSourceBuffer163840 ; /解压缩文件时的源bufferchar * uDestBuffer;FILE* fp3; /打开欲解压文件的文件指针FILE* fp4; /创建解压文件的文件指针errno_t err; /错误变量的定义int len=sizeof(uSourceBuffer);/打开欲解压的文件err = fopen_s(&fp3,SrcName,r+b);if(err)AfxMessageBox(_T(文件打开失败! n);return 1;err = fopen_s(&fp4, DestName,w+b);if(!fp4)AfxMessageBox(_T(压缩文件创建失败! n);return 1 ;uLongf unReadLen=0,ReadLen=0,ReadLen1=0,unWritelen=0,L;for (unsigned int i=0;i group.size();i+)len=groupi;L=4*len;/L设置足够大,uDestBuffer=(char*):calloc(uInt)L, sizeof(char);/定义一存储压缩数据的缓存fseek(fp3,unReadLen,SEEK_SET);/指针设于文件已读数据之后ReadLen=fread(uSourceBuffer,sizeof(char),len,fp3);/读取长度为len的数据if (ferror(fp3)AfxMessageBox(_T(READ ERROR!n);return 1;unReadLen+=ReadLen;if (i=group.size()-1) /*最后一次循环uDestBuffer老出错,单独提出设置一个大些的uDestBufferfree(uDestBuffer);L=102400;uDestBuffer=(char*):calloc(uInt)L, sizeof(char);AfxMessageBox(_T(解压成功!

温馨提示

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

评论

0/150

提交评论