C++程序启动外部程序的方法总结

时间:2019-05-13 19:47:29下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《C++程序启动外部程序的方法总结》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《C++程序启动外部程序的方法总结》。

第一篇:C++程序启动外部程序的方法总结

使用WinExec命令

⑴ 函数原型:

UINT Win Exec(LPCSTR lpCmdLine, UINT uCmdShow);

⑵ 参数:

lpCmdLine:指向一个空结束的字符串,串中包含将要执行的应用程序的命令行(文件名加上可选参数)。

uCmdShow:定义Windows应用程序的窗口如何显示,并为CreateProcess函数提供STARTUPINFO参数的wShowWindow成员的值。

⑶ 返回值:

若函数调用成功,则返回值大于31。若函数调用失败,则返回值为下列之一:

① 0:系统内存或资源已耗尽。

② ERROR_BAD_FORMAT:EXE文件无效(非Win32.EXE或.EXE影像错误)。

③ ERROR_FILE_NOT_FOUND:指定的文件未找到。

④ ERROR_PATH_NOT_FOUND:指定的路径未找到。

虽然Microsoft认为WinExec已过时,但是在许多时候,简单的WinExec函数仍是运行新程序的最好方式。简单地传送作为第一个参数的命令行,还需要决定如何显示程序(该程序也许会忽视它)的第二个参数。通常,将其设置为SW_SHOW,也可尝试SW_MINIMIZED或SW_MAXIMIZED。WinExec不允许用CreateProcess获得的所有选项,而它的确简单。

使用ShellExecute命令

⑴ 函数原型:

HINSTANCE ShellExecute(HWND hwnd, LPCTSTR lpOperation, LPCTSTR lpFile, LPCTSTR lpParameters, LPCTSTR lpDirectory, INT nShowCmd);

⑵ 参数:

hwnd:指向父窗口的窗口句柄。此窗口接收应用程序产生的任何信息框。

lpOperation:一个空结束的字符串地址,此字符串指定要执行的操作。下面的操作字符串是有效的:

“open ” 此函数打开由参数lpFile指定的文件,此文件可以是一个可执行文件或文档文件,也可是一个文件夹。

“print ” 此函数打印由参数lpFile指定的文件,此文件应是一个文档文件,假如此文件是一个可执行文件,则打开此文件。

“explore ” 此函数搜索由参数lpFile指定的文件夹,此文件应是一个文档文件,此参数可以为空。这种情况下,函数用于打开由参数lpFile指定的文件。

lpFile:一个空结束的字符串地址,此字符串指定要打开或打印的文件或者是要打开或搜索的文件夹。

lpParameters:假如参数lpFile指定一个可执行文件,lpParameters则是一个空结束的字符串地址,此字符串指定要传递给应用程序的参数。假如lpFile指定一个文档文件,lpParameters应为空。

lpDirectory:一个空结束的字符串地址,此字符串指定默认目录。

nShowCmd:假如lpFile指定一个可执行文件,nShowCmd表明应用程序打开时如何显示。假如lpFile指定一个文档文件,nShowCmd应为空。

⑶ 返回值:

若函数调用成功,则返回值大于32,否则为一个小于等于32的错误值。

说明:可以用此函数打开或搜索一个外壳文件夹。打开文件夹可用下面任何一种形式:

ShellExecute(handle, NULL, path_to_folder, NULL, NULL, SW_SHOWNORMAL);

ShellExecute(handle,搜索文件夹,可用如下形式

“open ”, path_to_folder, NULL, NULL, SW_SHOWNORMAL);

ShellExecute(handle,ShellExecute命令虽已过时但易于得到。该命令向命令解释程序提出打开、浏览或打印文档或文件夹的请求,虽然可以用ShellExecute运行程序,但通常只发送文档名,而命令解释程序则决定要运行那个程序。另外在打开目录文件夹时,ShellExecute命令非常有用。

⑷ 程序示例

下面通过一个例子来说名WinExec和ShellExecute的使用。下面程序有控制台程序示例,其使用两种不同的方法,打开文本文件。下面程序使用WinExec,并明确指定使用记事本程序。然后,使用ShellExecute,打开文本文件。

程序清单

#include #include

void main(int argc,char *argv[]){

cout < <”Opening with WinExecn”;

if(WinExec(“notepad readme.txt”,SH_SHOW)<32)

MessagBox(NULL,”Can’t WinExec”,NULL,MB_OK);

cout < <”Press Entern”;

MessagBox(NULL,”Press OK to continue”,”Progrm Launched”,MB_OK);

cout < <”Opening with ShellExecuten”;if(ShellExecute

(NULL,”open”,”readme.txt”,NULL,NULL,SW_SHOW)<(HANDLE)32)

MessagBox(NULL,”Can’t ShellExecuten”,NULL,MB_OK);}

使用CreateProcess命令

⑴ 函数原型:

BOOL CreateProcess(LPCTSTR lpApplicationName,LPTSTR lpCommandLine,LPSECURITY_ATTRIBUTES lpProcessAttributes,“explore ”, path_to_folder, NULL, NULL, SW_SHOWNORMAL);LPSECURITY_ATTRIBUTES lpThreadAttributes,BOOL bInheritHandles,DWORD dwCreationFlags,LPVOID lpEnvironment,LPCTSTR lpCurrentDirectory,LPSTARTUPINFO lpStartupInfo,LPPROCESS_INFORMATION lpProcessInformation);

⑵ 参数:

lpApplicationName:指向一个以空结尾的串,他指定了要执行的模块

lpCommandLine:指向一个以空结尾的串,该串定义了要执行的命令行。

lpProcessAttributes:指向一个SECURITY_ATTRIBUTES结构,该结构决定了返回的句柄是否可被子进程继承。

lpThreadAttributes:指向一个SECURITY_ATTRIBUTES结构,该结构决定了返回的句柄是否可被子进程继承。

bInheritHandles,:表明新进程是否从调用进程继承句柄。

dwCreationFlags:定义控制优先类和进程创建的附加标志。

lpEnvironment:指向一个新进程的环境块。

lpCurrentDirectory:指向一个以空结尾的串,该串定义了子进程的当前驱动器和当前目录。

lpStartupInfo:指向一个STARTUPINFO结构,该结构定义了新进程的主窗口将如何显示。

lpProcessInformation:指向PROCESS_INFORMATION结构,该结构接受关于新进程的表示信息。

⑶ 返回值:

若函数调用成功,则返回值不为0;若函数调用失败,返回值为0。

ShellExecute和WinExec命令用于简单的作业。如果要完全控制一个新进程,就必须调用CreateProcess。

在上述参数中,参数lpStartupInfo是STARTUPINFO结构。可以用来设置控台的标题,新窗口的的初始大小和位置,及重定向标准输入和输出。新程序通常可以忽略多数这些数据项,如果选择那样做的话。可以规定该结构体中的标志,已表明要设置的数据段。有时,不想设置任何信息,也必须传递一个有效的指针给空结构(确定设置大小到cb,及设置dwFlags成员为0)。参数lpProcessInformation返回进程和线程句柄,还包括进程和线程ID。这些句柄拥有在参数lpProcessAttributes和lpThreadAttributes中规定的访问。

要注意,针对CreateProcess的一些参数对控制台应用程序是特定的,而其它参数则对各种应用程序有用。大多数情况下,并不一定要填入STARTUPINFO结构,但无论如何必须提供它。其返回值是布尔型的,而真正感兴趣的返回值发生于作为参数传送的结构中(PROCESS_INFORMATION)。CreateProcess返回该结构中的进程ID及其句柄,以及初始线程ID及其句柄。可以将ID发送到其它进程,或使用句柄来控制新进程。

也可以考虑

C 函数:

system()

spawn()函数系列

exec()函数系列

c++ 启动exe(外部程序)收藏 关于三个SDK函数: WinExec,ShellExecute,CreateProcess 的其他注意事项: 【1】定义头文件

必须定义以下两个头文件:

#include // 可替换为 windows.h #include 如果定义了头文件 #include 的话就不必定义 #include 了。【2】定义路径

C++中所表示的路径要用 “ ”而不是平常所用的“ ”,所以以上三个函数表示路径都为:disk:Directory...File name WinExec(“D:Program FilesTestTest.exe”,SW_SHOWMAXIMIZED);ShellExecute(NULL,“open”,“C:Test.txt”,NULL,NULL,SW_SHOWNORMAL);

1、调用API: int system(const char *command);

你可以传入一命令,启动某个程序。如“ping www.xiexiebang.com”, “YourExe”等等

不过这里有几点要值得注意:

(1)、他不会立即返回,直到你启动的程序执行完成。

(2)、如果你启动是windows程序,它仍然会启动一个控制台,这就给人感觉太差劲了,但如果本身是控制台的,而且又需要等待它的完成,那这将是比较好的选择。

(3)、它的返回值代表是否执行成功以及程序的退出码。

(4)、不能运行*.txt文件或“www.xiexiebang.com”

2、调用API:

UINT WinExec(LPCSTR lpCmdLine, // command line

UINT uCmdShow // window style);

这个API与API:system同样的使用简单,同用是使用命令行型式。

不过它与API:system相比,有几个优点:

(1)、它将启动了一个新进程,并且立即返回,因此你的程序无需等待。

(2)、它的多了一个参数:uCmdShow,通过它你可以一定程度上控件窗体的显示,比如让它后台运行而不显示出来。

(3)、它无论启动控制台程序还是windows程序都只做你想要做的事。

它的不足之处:

(1)、它完全与本进程脱离,无法对做些必要的控制

(2)、无法得知启动的程序是否退出。

(3)、得不到启动的程序的退出码。

(4)、不能运行*.txt文件或“www.xiexiebang.com”

3、调用:

HINSTANCE ShellExecute(HWND hwnd,LPCTSTR lpVerb,LPCTSTR lpFile,LPCTSTR lpParameters,LPCTSTR lpDirectory,INT nShowCmd);

它也有WinExec同样的缺点。

它虽然传回一个HINSTANCE,但他并不是真正的句柄,我们仅能拿它来做一些错误值检查。

但它的功能比前两者更强大,它执行系统的Shell命令。1、2中如果传入“XX.txt”,它们将不能成功执行,ShellExecute却能很好地执行,它将启动一个默认的文字处理程序来打开它。1、2中如果传入“www.xiexiebang.com”,将不能成功执行,而ShellExecute却能很好地执行,它将启动一个默认浏览器来打开这个网站。

参数讲解:

参数1 hwnd:一窗体句柄,将作为启动的程序的父窗体。

参数2 lpVerb:你想执行的操作(edit、explore、find、open、print、properties),你也可以传入NULL值,它将执行默认操作(win2000以前与以后处理略有差别,请见MSDN)。

参数3 lpFile:一文件名或操作的对象。

参数4 lpParameters:如果lpFile是一可执行文件,这个将作为它的参数。它的格式由执行的操作决定。而且当lpFile为一document文件时,此参数需为NULL。

参数5 lpDirectory:指定它的工作目录。

参数6 nShowCmd:窗体显示的控制。

以下是几个例子:

//启动一个Dos命令, 启动windows程序相同

::ShellExecute(this->GetSafeHwnd(), NULL, “ping”, “www.xiexiebang.com”, NULL, SW_SHOWNORMAL);

//打开一个文件

::ShellExecute(this->GetSafeHwnd(), “open”, “ReadMe.txt”, NULL, NULL, SW_SHOWNORMAL);

//上面的动词可传可不传,但如果“ReadMe.txt”为“ReadMe.bat”那就得指定,否则将会当命令执行,而不是打开它。

//可打开目录

::ShellExecute(this->GetSafeHwnd(), “open”, “c:”, NULL, NULL, SW_SHOWNORMAL);

//可打开网页

::ShellExecute(this->GetSafeHwnd(), “open”, “www.xiexiebang.com”, NULL, NULL, SW_SHOWNORMAL);

//浏览一个目录

ShellExecute(handle, “explore”, “c:”NULL, NULL, SW_SHOWNORMAL);

//查看一个文件或目录的属性

//使用ShellExecuteEx,实现请见所附源码对应部分

如果没有特殊的控制要求,它己能为我们做很了,但当我们一定要能控件这个启动的进程时,那我们就得使用第4点了。

4:调用API:

BOOL CreateProcess(LPCTSTR lpApplicationName, // name of executable module

LPTSTR lpCommandLine, // command line string

LPSECURITY_ATTRIBUTES lpProcessAttributes, // SD

LPSECURITY_ATTRIBUTES lpThreadAttributes, // SD

BOOL bInheritHandles, // handle inheritance option

DWORD dwCreationFlags, // creation flags

LPVOID lpEnvironment, // new environment block

LPCTSTR lpCurrentDirectory, // current directory name

LPSTARTUPINFO lpStartupInfo, // startup information

LPPROCESS_INFORMATION lpProcessInformation // process information);

往往看到这个函数就让人生畏,它参数多,而且参数类型也如此莫生。是的,正是因为如此它才功能强大!

但不要怕,作为一般使用,非常简单!下面便是一个简单的例子(启动记事本):

STARTUPINFO StartInfo;PROCESS_INFORMATION pinfo;//对程序的启动信息不作任何设定,全部清0 memset(&StartInfo,0,sizeof(STARTUPINFO));StartInfo.cb = sizeof(STARTUPINFO);//设定结构的大小

BOOL ret=CreateProcess(NULL, //启动程序路径名

“notepad.exe”, //参数(当exeName为NULL时,可将命令放入参数前)

NULL, //使用默认进程安全属性

NULL, //使用默认线程安全属性

FALSE,//句柄不继承

NORMAL_PRIORITY_CLASS, //使用正常优先级

NULL, //使用父进程的环境变量

NULL, //指定工作目录

&StartInfo, //子进程主窗口如何显示

&pinfo);//用于存放新进程的返回信息

这样在创建成功这后我们就可以从pinfo中找到它的:进程句柄,线程句柄,进程ID,线程ID

在附件源码中演示了进程序的启动,停止。

实际上我们可以通过很多方式如内存共享、父进程窗体句体传入仍后从消息中获得子进程窗体句柄等,来实现更多的控制。

想很好地掌握CreateProcess,可参见人民邮电出版社出版的<< Windows系统编程 >>,它的“进程”部份作了很详尽的说明。

例程: #include #include #include void main(){

HWND handle;

printf(“Function :nIt can run a cmd command,but can`t open *.txt and ”www.xiexiebang.com“,NULL,NULL,SW_SHOWNA);

getchar();

printf(”Run a cmd command:ping www.xiexiebang.comn“);

ShellExecute(NULL, NULL, ”ping“, ”sina.com“, NULL, SW_SHOWNORMAL);

getchar();

printf(”打开目录n“);

ShellExecute(NULL, ”open“, ”c:“, NULL, NULL, SW_SHOWNORMAL);

getchar();

printf(”浏览目录n“);

ShellExecute(NULL, ”explore“, ”c:“, NULL, NULL, SW_SHOWNORMAL);

getchar();

printf(”文件属性n“);

ShellExecute(handle,”properties“,”C: est.txt“,NULL,NULL,SW_MINIMIZE);

printf(”%s",handle);

}

/*shellExecute的第二个参数为你想执行的操作(edit,explore,find,open,print,properties),也可为NULL*/ } /* SW_HIDE Hides the window and passes activation to another window.SW_MINIMIZE Minimizes the specified window and activates the top-level window in the system's list.SW_RESTORE Activates and displays a window.If the window is minimized or maximized, Windows restores it to its original size and position(same as SW_SHOWNORMAL).SW_SHOW Activates a window and displays it in its current size and position.SW_SHOWMAXIMIZED Activates a window and displays it as a maximized window.SW_SHOWMINIMIZED Activates a window and displays it as an icon.SW_SHOWMINNOACTIVE Displays a window as an icon.The window that is currently active remains active.SW_SHOWNA Displays a window in its current state.The window that is currently active remains active.SW_SHOWNOACTIVATE Displays a window in its most recent size and position.The window that is currently active remains active.SW_SHOWNORMAL Activates and displays a window.If the window is minimized or maximized, Windows restores it to its original size and position(same as SW_RESTORE).*/

第二篇:C++程序笔记

一:'CRecordset' : base class undefined

解决方法:在工程的StdAfx.h头文件中添加:#include

二: m_dlg.m_database.Open(_T(“addresslist”));// 这个在编译时会出现错误,解决办法:可以同上:#include

三:建了一个控件,但想在类向导里面定义该控件的函数时找不到控件ID号(原因:是因为修改了主对话框的ID号)

主对话框.h 中把emun{中改成相应的ID_Dlg}

四:设置窗体背景的颜色:

在主窗体APP文件里代码:SetDialogBkColor(RGB(200,223,200),RGB(0,0,255));

五:CAddressDlg::OnClose()

这个函数里面有KillTimer(0).六:连接数据库,m_recordset->Open(AFX_DB_USE_DEFAULT_TYPE,strSQL);//从数据库中查找,输入的密码是否正确

七:当控件在类向导里没有显示其ID号时,将其属性里的组勾选即可~

说明:这里跟三不同

八:不能访问类查看信息文件 解决办法

解决办法为:删除掉目录中clw及ncb文件,再打开,就可以了。

九:当单击右键没看到“Add Windows Message Handler”时,更换.clw/.ncb文件即可

十:单步调试到RefreshData()时总是出现“FROM 语法错误”

解决办法:完成MainDlg()里面的显示工作区表格的代码后,这个问题没有了。

十一:Visual Assist X这是一个软件,可以帮助C++有个更友好的显示界面。

十二:实现窗体的伸缩功能:

OnRadioSearch();SizeWindow();

十三:Address工程里,当点击右边修改记录时,会出现系统报错

解决办法:

对修改记录所需弹出的窗口进行完整,像在类向导里面添加处理各种消息的函数

十四:AboutDlg弹出窗口设计一直说AboutDlg

最后新建了一个CAboutdlg1,并修改源代码,最后功能实现了

初步查找原因:元工程里面缺少的类CAboutDlg定义在AddressDlg.cpp里面,这才是原因,CAboutDlg应该需要定在Aboutdlg.h里面才行~

嗯!验证了,就是这个原因。

其实没有这么复杂:只要按照错误的提示建立自己的类啊、头文件啊、CPP文件就好了~~~

十五:AddInfo窗体录入数据出错:说“姓名一定要填写!然后出现系统错误”解决办法:

一下两个地方的 // NOTE: the ClassWizard will add member initialization here需要填写!!:

1.CAddInfoDlg::CAddInfoDlg(CWnd* pParent /*=NULL*/)

: CDialog(CAddInfoDlg::IDD, pParent)

2.void CAddInfoDlg::DoDataExchange(CDataExchange* pDX)

这里如果缺少1,会出现下面的系统错误:

由于将在索引、主关键字、或关系中创建重复的值,请求对表的改变没有成功。改变该字段中的或包含重复数据的字段中的数据,删除索引或重新定义索引以允许重复的值并再试一次。

十六:模糊查询及精确查询均用不了:都显示“请输入关键字”

在差错过程中完整如下代码后出现系统错误

BOOL CMainDlg::PreTranslateMessage(MSG* pMsg)

十七:组合框设置默认值实现不了~

可实现的方法(但是在我的程序里没用!)

//默认“姓名”项被选中

m_ctrlfield.SetCurSel(0);

成功实现,关键:将SetCurSel()函数放在AddString()后面就可以了

十八:当加入DoDataExchange(CDataExchange* pDX)时中的代码时,运行报系统错误,编译没问题,已移植问题文件夹~

相关发现:在定义整形变量时有一种整形变量的description是:

int with validation(FOREIGN VALIABLE)这种变量的定义方法是

在DoDataExchange()函数中使用如下语句:

DDX_FieldText(pDX, IDC_CATNUM, m_pSet2->m_cat, m_pSet2);

当在CTestDBDoc.h文件中申明CMyRSet m_MyRSet;后便可以定义上述变量。

十八_2: DDX_FieldText()不知道怎么产生;

十九:ADOTest窗口弹不出来

解决方法:在建立MFC工程的时候将选项里的Base类由CView改为CFormView

二十:如何定义_ConnectionPtr型变量

在stdafx.h文件中加入代码:#import “c:program filescommon filessystemadomsado15.dll” no_namespace rename(“EOF”,“adoEOF”)

见博客:#post

二十一:当写到try{}是出现错误

解决方法:在后面添加catch{}代码,因为try与catch对应__try与__finally;try模块后面要跟上catch

二十二:ADOTest连接数据库失败

原因:ADOTest1.cpp中

hr = m_pConnection->Open(“Provider=Microsoft.Jet.OLEDB.4.0;Data Source=test.mdb”,“",”",adModeUnknown);///连接数据库

数据库test.mdb没有建立。

二十三:ADOTest删除按键为灰色框扭按不下去。无语了:原来是没有选中要被删除的选项

不过要将OnItemchangedUserlist()中的代码添加完全

二十四:Address的Login对话框类中的消息处理函数WM_Close有什么用WM_CLOSE是可选的,可以给你一个机会决定关不关

WM_DESTROY你没有得选择,因为DestroyWindow已经调用,窗口已经开始销毁。

二十五:使用CDataBase类定义对象时出现问题,原因是没有定义这个类在添加CPersonSet类后问题很多很多:有26个此类错误

见“一”

二十六:出现如:'m_database' : is not a member of 'CAddInfoDlg'的错误提示时应在CAddInfoDlg中定义m_database量

二十七:点击查询后没有反应,不管精确查询还是模糊查询

原来是OnRadio1()中的 m_bsearchflag没有赋值

第三篇:c++程序实习报告

针对我们这学期学的c++,假期进行了五天的实习。第一天听老师讲实习内容和提示的时候觉得思路挺明确的一个程序,哪有传说中的那么难。下午和同学讨论的时候觉得很有目的,只要按部就班的完成各步操作就可以了,有难度的也只是第二步。这一步要进行判断,这就需要多个输出函数;还要冒泡法给工作排序,工资的计算不是在类中完成的——挺棘手的一个问题。

第二天上机的时候也很快完成了第一步,觉得还行,慢慢来五天完全可以完成。后来也就没怎么好好思考,没想到第二天遇到麻烦了,编不出第二步了。第三天下午也没调试好,第一步输入的数据在第二步统计的时候怎么也数不出来,我从头至尾研究了多次,没发现一点问题,请舍友帮我检查也说没错,到了傍晚还是看不出来。哎!又找一个人给我看了看,竟然错得那么幼稚,类外定义了全局对象,在数据输入put()函数里又重新定义了对象,这样在put()输入的数据无法用到其他函数中,自然统计的时候都是默认值了。

就这么一个小小的错误整得我一天一晚上寝食难安。

编程序时深深感受到要不得半点马虎,有时少一个“}”或“<”都会导致程序语法错误;由于编程序经常要变换输入法,很容易输进中文字符,这也会导致语法错误;调用类里重名函数时要注明属于哪个类的。

第三天的时候第二步基本都编出来了,傍晚那时我没检查出错误来的时候,实在是把我急坏了,借了台电脑,在那安静专心的研究程序,舍友帮我检查出错误来之后,编程序有了感觉,那时已经22:00多了,竟然没有一丝睡意。

后来舍友们陆续睡觉了,可我就是不愿睡。可能是出于自尊心需要,别人都编出来了,自己编不出来,让我无法接受;也可能是第二步出来了急于尽快搞定。从19:00到凌晨4:00一直在那儿编程序了,一次次地听到铃声响竟然没有上床睡觉的冲动,满脑袋只有一个想法:认真编程序,争取晚上搞定。后来差不多了,只有备份不怎么完善,当时电脑已经用了好长时间了,实在不忍心一直用人家的电脑,只好关机睡觉了。

这几天可以说是两耳不闻窗外事,一心只顾编程序了,电话都懒得打,只想尽快把程序搞定,晚上没有电脑用,我们三个女生就去网吧,只是那儿没有vusual-c++,只好作罢。

虽然我们一直在编程序,觉得挺累的,其实还有比我们更累的——我们的老师。我们是每天只有半天的实习时间,可是老师却整天在机房里,看得出来,老师连坐下休息的时间都没有,刚要喝点水,立马就被一个同学叫去了,实习完那天下午看见老师都不想走路了。太累了,一天站7小时,还一直给别人检查程序,太忙了。想想老师这么认真,我们还有什么理由不认真呢?

只有五天的实习,却让我受益匪浅:这不仅是一次对我们的c++掌握和运用的熟练程度的检查,更是一次磨练我们耐性、培养认真态度的机会。这次实习让我深刻体会到“细节决定成败,态度决定一切”;更让我 从 老师身上学到了很多在以后工作中需要的优秀品质。相信这会在我今后的学习和以后的工作很有帮助。

通过完成本次面向对象程序设计的任务,使我熟练和掌握了上学期所学的有关visual c++中的一些主要知识点和应用点,如类的定义,类的实现,对象的定义,类的继承等等。可以所学有所学,所有所用,不至于自己所学知识由于没有经历可用过程,而放弃对它的兴趣。

第一天上课时候听老师讲,第一反应是这可怎么做了。当时有些迷茫。但是事在人为,下午回去之后在宿舍苦心研究,终于在整体上有了一定的把握。我们可以先定义一个基类,再派生三个子类,然后在类外定义函数。有人数规定,我们就定义相应长度的对象数组,最后在实现程序功能时,用函数调用就行。

于是当晚很快就完成了第二天的预习报告,上机调试时也没什么大问题,就这样第二天顺利通过。

虽说接下来的统计没那么容易,但就顺着数据顺利输入的喜悦心情,我还是较好的完成了这个任务。在类外定义一个函数用来输出雇员的基本情况,表头,表尾直接在统计函数中输出,也就是在统计函数中调用函数。打印与统计有异曲同工之妙,所以在统计做出之后,打印自然而然的也就很快完成了。

接下来的数据备份中,遇到了一个小问题,一开始以为也是函数中调用打印函数中用的那函数。其实不然,如若那样,又变成了打印。那我们就直接输出,但详细资料是受保护的,不能直接输出,那还得调用函数。于是在每个类中的公共成员中定义了直接返回的函数,接下来顺利完成了备份。调用头文件

里的exit(int)函数,可以用if()语句进行判断是否确定退出。程序顺利完成。

面向对象程序设计作为一门软件设计的课程,具有极强的实践性,使我加强了灵活应用理论知识的能力及面向对象程序设计技能。

此次,应用程序的设计和创建,经历了平时在课堂中和考试中,决不会有的重重难题和问题。而这些问题,又都是课本上很少提到的、更深一层的知识领域和应用领域。这些问题,并不是我们平时只靠课本,就可以轻易解决的。所以,锻炼了我们面对难题,自己思索,自己探索,自己查资料发现问题、解决问题的独断能力。

当然,此次任务的完成,也体现出同学之间的团结精神。所遇种种难以解决的问题,大家都会把它当作共同遇到的问题,在一起共同探讨,共同发挥自己所学和所知,投入式的互相帮助和解决困难。

第四篇:启动仪式程序

“安全教育月”活动

启动仪式

主 持 人:刘洋 参加人员:全体师生 活动议程:

1、刘洋校长介绍到会领导,宣读活动议程。

2、马鹏主任宣读《东沙河镇学校、幼儿园秋季“安全教育月”活动方案》的通知。

3、马鹏主任宣读《堌堆小学小学“安全教育月”活动实施方案》。

4、少先队代表张睿作安全倡议书。

5、王德泉校长作安全教育月重要讲话。

6、刘洋校长作活动总结。

东沙河镇堌堆小学 二〇一七年二月

第五篇:启动仪式程序

新墩镇“学习雷锋好榜样 共建和谐新新墩”

启动仪式程序

(主持人介绍参加本次活动的领导)

1、镇中心学校负责人讲话(李校长)

2、青年志愿者代表宣读学雷锋活动倡议书(冯海睿)

3、镇中心学校闫书记安排三月份学雷锋活动实施方案

4、请镇政府代镇长宣布新墩镇学雷锋志愿服务月活动正

式启动。

5、举行“学习雷锋好榜样 共建和谐新新墩”签名活动(仪

式结束后,在镇政府门口志愿者集中服务点进行签名)

6、学雷锋主题活动开始(要求老师全程参与,负责活动过

程中的学生安全)

下载C++程序启动外部程序的方法总结word格式文档
下载C++程序启动外部程序的方法总结.doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
点此处下载文档

文档为doc格式


声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。

相关范文推荐

    火车订票系统c++程序

    /* 头文件 */ #include //标准输入、输出头文件 #include //包含字符串函数处理头文件 #include //包含动态存储与释放函数头文件 /* 宏定义 */ #define GESHI " 车次 站数......

    c++程序毕业实习报告

    针对我们这学期学的c++,假期进行了五天的实习。第一天听老师讲实习内容和提示的时候觉得思路挺明确的一个程序,哪有传说中的那么难。下午和同学讨论的时候觉得很有目的,只要按......

    C++复习题 程序填空[五篇]

    2009-2010学年第一学期《C++程序设计》期末考试复习题周景春 程序填空(10分) 1. 使执行结果为100 #include class Test { public: Test(int aa){ (○1)}int Getx{ (○2) } priva......

    如何启动医疗事故技术鉴定程序

    如何启动医疗事故技术鉴定程序启动医疗事故技术鉴定程序有两种方式: 一、卫生行政部门移交鉴定 这种启动方式适用于两种情况:医疗机构发生重大医疗过失行为和医患双方 一方当......

    论司法鉴定启动程序(范文模版)

    论司法鉴定启动程序 内容摘要:司法鉴定启动程序是进行司法鉴定活动的重要内容,两大法系在其启动模式上存在许多不同,通过比较和评价,结合我国司法鉴定启动程序的现状和问题,最后......

    冬季长跑启动程序

    华丰镇中心小学 阳光体育冬季长跑活动启动仪式程序 老师们、同学们: 生命在于运动,健康离不开锻炼,有了健康的体魄,才可能拥有未来的幸福生活。为积极响应教育部、国家体育总局......

    再审程序的启动

    三)再审程序的启动 分类:民诉法彩色笔记 2007-09-29 21:01 (三)再审程序的启动1、基本问题 (1)适用于再审的裁判 1)判决——诉讼程序的判决可以再审;非讼程序和特别程序不能再审 2)裁......

    北科大暑期C++程序实践心得

    北科大小学期C++游戏编程心得 ——徐松松 41345053 一直不知道北科大的小学期是什么样子,经过了三周的小学期课程的学习,终于揭开了小学期的神秘面纱,学的课程和平时的理论课不......