计算机企业实习报告.docx
- 文档编号:4732587
- 上传时间:2022-12-08
- 格式:DOCX
- 页数:16
- 大小:51.04KB
计算机企业实习报告.docx
《计算机企业实习报告.docx》由会员分享,可在线阅读,更多相关《计算机企业实习报告.docx(16页珍藏版)》请在冰豆网上搜索。
计算机企业实习报告
实习报告
学院:
班级:
姓名:
学号:
实习地点:
实习时间:
一.实习单位及岗位简介
1.实习单位简介
成都齐力同展科技有限公司是一家中小规模的民营公司,所属计算机服务行业。
本公司主要开发、销售电子产品、计算机软件并提供技术服务、技术咨询等。
囊括了C++软件开发工程师,软件界面工程师,售后技术支持,研发工程师,射频电路设计工程师,工程调试员,电子装配员等丰富的岗位。
是近几年发展起来的具有市场竞争力的新兴企业。
2.实习岗位简介
本次实习岗位为软件开发部实习生。
二.实习目的
1.获得专业知识相关的知识,扩宽自己的知识面,学习如何成为一个综合性人才。
2.学会将理论运用在生产实践,让自己的知识更加牢固,调和理论与实际的关系。
3.培养良好的职业道德观,恪敬职守,用于创新。
三.实习内容
1.熟悉掌握各种编程软件和编程环境。
到公司的第一天,就在学长的指导下,安装了MicrosoftVisualStudio(简称VS)等软件,VisualStudio是微软公司推出的目前最流行的开发环境,是在Windows平台下构建32位应用程序的强大而复杂的开发工具,是世界上使用最多的开发工具之一。
VisualStudio可以用来创建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.h"
CStringFilePathName,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
#definenewDEBUG_NEW
#endif
//用于应用程序“关于”菜单项的CAboutDlg对话框
classCAboutDlg:
publicCDialog
{
public:
CAboutDlg();
//对话框数据
enum{IDD=IDD_ABOUTBOX};
protected:
virtualvoidDoDataExchange(CDataExchange*pDX);//DDX/DDV支持
//实现
protected:
DECLARE_MESSAGE_MAP()
};
CAboutDlg:
:
CAboutDlg():
CDialog(CAboutDlg:
:
IDD)
{
}
voidCAboutDlg:
:
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);
}
voidCzipDlg:
:
DoDataExchange(CDataExchange*pDX)
{
CDialog:
:
DoDataExchange(pDX);
}
BEGIN_MESSAGE_MAP(CzipDlg,CDialog)
ON_WM_SYSCOMMAND()
ON_WM_PAINT()
ON_WM_QUERYDRAGICON()
//}}AFX_MSG_MAP
ON_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消息处理程序
BOOLCzipDlg:
:
OnInitDialog()
{
CDialog:
:
OnInitDialog();
ASSERT((IDM_ABOUTBOX&0xFFF0)==IDM_ABOUTBOX);
ASSERT(IDM_ABOUTBOX<0xF000);
CMenu*pSysMenu=GetSystemMenu(FALSE);
if(pSysMenu!
=NULL)
{
BOOLbNameValid;
CStringstrAboutMenu;
bNameValid=strAboutMenu.LoadString(IDS_ABOUTBOX);
ASSERT(bNameValid);
if(!
strAboutMenu.IsEmpty())
{
pSysMenu->AppendMenu(MF_SEPARATOR);
pSysMenu->AppendMenu(MF_STRING,IDM_ABOUTBOX,strAboutMenu);
}
}
SetIcon(m_hIcon,TRUE);//设置大图标
SetIcon(m_hIcon,FALSE);//设置小图标
//TODO:
在此添加额外的初始化代码
returnTRUE;//除非将焦点设置到控件,否则返回TRUE
}
voidCzipDlg:
:
OnSysCommand(UINTnID,LPARAMlParam)
{
if((nID&0xFFF0)==IDM_ABOUTBOX)
{
CAboutDlgdlgAbout;
dlgAbout.DoModal();
}
else
{
CDialog:
:
OnSysCommand(nID,lParam);
}
}
voidCzipDlg:
:
OnPaint()
{
if(IsIconic())
{
CPaintDCdc(this);//用于绘制的设备上下文
SendMessage(WM_ICONERASEBKGND,reinterpret_cast
//使图标在工作区矩形中居中
intcxIcon=GetSystemMetrics(SM_CXICON);
intcyIcon=GetSystemMetrics(SM_CYICON);
CRectrect;
GetClientRect(&rect);
intx=(rect.Width()-cxIcon+1)/2;
inty=(rect.Height()-cyIcon+1)/2;
//绘制图标
dc.DrawIcon(x,y,m_hIcon);
}
else
{
CDialog:
:
OnPaint();
}
}
HCURSORCzipDlg:
:
OnQueryDragIcon()
{
returnstatic_cast
}
voidCzipDlg:
:
OnBnClickedchoose1()
{
CFileDialogdlg(TRUE);///TRUE为OPEN对话框,FALSE为SAVEAS对话框
if(dlg.DoModal()==IDOK)
{
FilePathName=dlg.GetPathName();//获取压缩文件路径
//FilePathName.Replace(_T("\\"),_T("\\\\"));
intnLength=FilePathName.GetLength();
intnBytes=WideCharToMultiByte(CP_ACP,0,FilePathName,nLength,NULL,0,NULL,NULL);
char*c=newchar[nBytes+1];
memset(c,0,nLength+1);
WideCharToMultiByte(CP_OEMCP,0,FilePathName,nLength,c,nBytes,NULL,NULL);
c[nBytes]=0;
p=c;
}
//TODO:
在此添加控件通知处理程序代码
}
voidCzipDlg:
:
OnBnClickedCompress()
{
CFileDialogdlg(FALSE);///TRUE为OPEN对话框,FALSE为SAVEAS对话框
if(dlg.DoModal()==IDOK)
{
FilePathName1=dlg.GetPathName();//获取解压文件路径
//FilePathName1.Replace(_T("\\"),_T("\\\\"));
intnLength=FilePathName1.GetLength();
intnBytes=WideCharToMultiByte(CP_ACP,0,FilePathName1,nLength,NULL,0,NULL,NULL);
char*c1=newchar[nBytes+1];
memset(c1,0,nLength+1);
WideCharToMultiByte(CP_OEMCP,0,FilePathName1,nLength,c1,nBytes,NULL,NULL);
c1[nBytes]=0;
p1=c1;
//AfxMessageBox(FilePathName1);
CZlibtest;
test.Compress(p1,p);
}
//TODO:
在此添加控件通知处理程序代码
}
voidCzipDlg:
:
OnBnClickedchoose2()
{
CFileDialogdlg(TRUE);///TRUE为OPEN对话框,FALSE为SAVEAS对话框
if(dlg.DoModal()==IDOK)
{
FilePathName2=dlg.GetPathName();//获取解压文件路径
intnLength=FilePathName2.GetLength();
intnBytes=WideCharToMultiByte(CP_ACP,0,FilePathName2,nLength,NULL,0,NULL,NULL);
char*c2=newchar[nBytes+1];
memset(c2,0,nLength+1);
WideCharToMultiByte(CP_OEMCP,0,FilePathName2,nLength,c2,nBytes,NULL,NULL);
c2[nBytes]=0;
p2=c2;
}
//TODO:
在此添加控件通知处理程序代码
}
voidCzipDlg:
:
OnBnClickedUncompress()
{
CFileDialogdlg(FALSE);///TRUE为OPEN对话框,FALSE为SAVEAS对话框
if(dlg.DoModal()==IDOK)
{
FilePathName3=dlg.GetPathName();//获取解压文件路径
intnLength=FilePathName3.GetLength();
intnBytes=WideCharToMultiByte(CP_ACP,0,FilePathName3,nLength,NULL,0,NULL,NULL);
char*c3=newchar[nBytes+1];
memset(c3,0,nLength+1);
WideCharToMultiByte(CP_OEMCP,0,FilePathName3,nLength,c3,nBytes,NULL,NULL);
c3[nBytes]=0;
p3=c3;
CZlibtest1;
test1.UnCompress(p3,p2);
}
//TODO:
在此添加控件通知处理程序代码
}
//zip.cpp:
定义应用程序的类行为。
#include"stdafx.h"
#include"zip.h"
#include"zipDlg.h"
#include"zlib.h"//压缩文件相关*****
#include"zconf.h"
#pragmacomment(lib,"zlib.lib")
//#include
#include"iostream"
#include
usingnamespacestd;
#defineWINDOWS_PLATFORM
vector
#ifdef_DEBUG
#definenewDEBUG_NEW
#endif
//CzipApp
BEGIN_MESSAGE_MAP(CzipApp,CWinAppEx)
ON_COMMAND(ID_HELP,&CWinApp:
:
OnHelp)
END_MESSAGE_MAP()
//CzipApp构造
CzipApp:
:
CzipApp()
{
//TODO:
在此处添加构造代码,
//将所有重要的初始化放置在InitInstance中
}
//唯一的一个CzipApp对象
CzipApptheApp;
//CzipApp初始化
BOOLCzipApp:
:
InitInstance()
{
INITCOMMONCONTROLSEXInitCtrls;
InitCtrls.dwSize=sizeof(InitCtrls);
//将它设置为包括所有要在应用程序中使用的
//公共控件类。
InitCtrls.dwICC=ICC_WIN95_CLASSES;
InitCommonControlsEx(&InitCtrls);
CWinAppEx:
:
InitInstance();
AfxEnableControlContainer();
SetRegistryKey(_T("应用程序向导生成的本地应用程序"));
CzipDlgdlg;
m_pMainWnd=&dlg;
INT_PTRnResponse=dlg.DoModal();
if(nResponse==IDOK)
{
//TODO:
在此放置处理何时用
//“确定”来关闭对话框的代码
}
elseif(nResponse==IDCANCEL)
{
//TODO:
在此放置处理何时用
//“取消”来关闭对话框的代码
}
returnFALSE;
}
intCZlib:
:
Compress(char*DestName,char*SrcName)
{
charSourceBuffer[16384];//压缩文件时的源buffer
char*DestBuffer;
FILE*fp=NULL;//打开欲压缩文件时文件的指针
FILE*fp1=NULL;//创建压缩文件时的指针
intlen=sizeof(SourceBuffer);
errno_terr;//错误变量的定义
#ifdefWINDOWS_PLATFORM
err=fopen_s(&fp,SrcName,"r+b");//打开欲压缩的文件
if(err)
{
AfxMessageBox(_T("文件打开失败!
"));
//printf("文件打开失败!
\n");
return1;
}
#endif
#ifdefWINDOWS_CE_PLATFORM
fp=fopen_s(SrcName,"r+b");//打开欲压缩的文件
if(fp)
{
printf("文件打开失败!
\n");
return1;
}
#endif
//创建一个文件用来写入压缩后的数据
err=fopen_s(&fp1,DestName,"w+b");
if(!
fp1)
{
AfxMessageBox(_T("压缩文件创建失败!
"));
//printf("压缩文件创建失败!
\n");
return1;
}
uLongfunReadLen=0,ReadLen=0,ReadLen1=0,unWritelen=0;
for(;;)
{
uLongfL=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("READERROR!
"));
//printf("READERROR!
\n");
return1;
}
unReadLen+=ReadLen;
err=compress((Bytef*)DestBuffer,(uLongf*)&L,(constBytef*)SourceBuffer,(uLongf)len);//语句执行后L为实际压缩长度
group.push_back(L);
if(err!
=Z_OK)
{
AfxMessageBox(_T("压缩失败!
"));
//cout<<"压缩失败:
"< return1; } 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); return0; } intCZlib: : UnCompress(char*DestName,char*SrcName) { charuSourceBuffer[];//解压缩文件时的源buffer char*uDestBuffer; FILE*fp3;//打开欲解压文件的文件指针 FILE*fp4;//创建解压文件的文件指针 errno_terr;//错误变量的定义 intlen=sizeof(uSourceBuffer); //打开欲解压的文件 err=fopen_s(&fp3,SrcName,"r+b"); if(err) { AfxMessageBox(_T("文件打开失败! \n")); return1; } er
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 企业 实习 报告