ImageVerifierCode 换一换
格式:DOC , 页数:54 ,大小:259.04KB ,
资源ID:3327491      下载积分:14 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/3327491.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(课程设计文本编辑器的设计.doc)为本站上传会员【丰****】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

课程设计文本编辑器的设计.doc

1、学号 2023-2023学年 第2学期 《高级语言程序设计》 课程设计报告 题目: 文本编辑器的设计 专业: 计算机科学与技术 班级: 14计科一班 姓名: 彭鑫 指导教师: 王峻 成绩: 计算机学院 2023年4月24日 目 录 1 设计内容及规定 2 1.1设计内容 2 1.2具体规定 2 2 概要设计 2 2.1系统的功能简介 2 2.2系统功能模块图 3 2.3各个模块之间的重要关系 3 3 具体设计 4 3.1文献操作 4 3

2、2编辑操作 9 3.3工具操作 17 4 程序运营结果与调试 19 4.1 在调试过程中出现的一些问题 19 4.2 实验结果 20 5 课程设计总结与感想 24 参考文献 24 源代码 25 1 设计内容及规定 1.1设计内容 该文本编辑器运营后弹出文本编辑器的主界面,由键盘输入或以打开的方式输入或显示文本文献内容。其中程序的编辑项可对当前的文本进行撤消、删除、剪切、复制、粘贴、在文本里显示当前时间、全选、清除、查找、替换、记录等功能。程序的文献项可以对电脑上tx

3、t,c++等格式文献的打开、对当前文本的保存和另存、对当前文本的的新建以及退出文本编辑系统。程序的工具项为背景音乐,为用户提供了优美动听的音乐,仅在用户编辑疲倦乏力的时候尽情的享用。最后在程序的帮助项有对该小型文本编辑器的关于,用来介绍该程序,尚有访问链接百度,访问114网页大全,为用户提供查找资料等功能服务。 1.2具体规定 基本规定:编辑器应具有对文本文献的打开、保存、新建、查找、插人、删除、修改、字符串替换、记录字数,记录行数等功能,对于超过一屏的长文献,应可以分页显示。设计用户接口命令,实现对文本的编辑 2 概要设计 2.1系统的功能简介 输入一页文字,程序实现文字

4、数字、空格的记录;可以删除一行信息;查找定位单词;定行位置插入;文献存盘;装入文献;并能显示输入及其他功能。 2.2系统功能模块图 文本编辑器 文献 编辑 工具 帮助 新建 打开 保存 另存 退出 复制 粘贴 剪切 清空 删除 清空 撤消 查找 替换 记录 全选 背景音乐 关于 连接百度 连接114 运营所需环境:win7及以下各版本windows,visual C++6.0。 2.3各个模块之间的重要关系 该系统的功能重要是实现文本的输入,并对文本的相应信息进行的操作。各个模块之间的关系是互相联系的。一方面,主函数包含了所

5、有的子函数。主函数是整个系统的核心。子函数之间也是有联系的,对文本信息的显示、删除、记录、查找、插入,存储,装入,必须是在文本信息输入的情况下进行的。因此对文本的输入是非常重要的。在文本的删除、记录、查找、插入、存储、装入、保存所有的子函数之间是没有多大联系的。 3 具体设计 3.1文献操作 (1)文献的新建的实现: int ret=MessageBox(NULL,TEXT("是否把更改保存到新建的文本文档!!!"),TEXT("温馨提醒"),MB_YESNO | MB_ICONQUESTION); if(ret==IDYES) //根据选择假如保存

6、 { OPENFILENAME ofn; //文献对象 char szFile[MAX_PATH]; //文献的大小,最大 ZeroMemory(&ofn,sizeof(ofn)); //文献的初始化 ofn.lStructSize = sizeof(ofn); ofn.lpstrFile = szFile; ofn.lpstrFile[0] = TEXT('\0'); ofn.nMaxFile = sizeof(szFile); ofn.lpstrFi

7、lter = TEXT("ALL\0*.*\0Text\0*.TXT\0C++\0*.cpp\0"); //保存的  文献类型 ofn.nFilterIndex = 1; ofn.lpstrFileTitle = NULL; ofn.nMaxFileTitle = 0; ofn.lpstrInitialDir = NULL; ofn.hwndOwner = hwnd; ofn.Flags = OFN_EXPLORER |OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST;

8、 ofn.lpstrTitle=TEXT("保存"); if (GetSaveFileName(&ofn)) { FILE *fp; fp=fopen(szFile,"w"); //打开文献 if(fp==NULL) { MessageBox(NULL,TEXT("文献无法保存"),TEXT("呜呜"),MB_OK); } TCHAR str[10000]; TCHAR end[10000];

9、 memset(end,0,10000); GetDlgItemText(hwnd,IDC_EDIT1,str,sizeof(str)); fputs(str,fp); fclose(fp); } SetDlgItemText(hwnd,IDC_EDIT1,""); } else { SetDlgItemText(hwnd,IDC_EDIT1,""); } (2)文献打开的实现: case ID_MENUITEMOPEN:

10、 //文本的打开 { OPENFILENAME ofn; char szFile[MAX_PATH]; //保存途径变量 ZeroMemory(&ofn,sizeof(ofn)); 在这里我们使用ZeroMemory“函数”,ZeroMemory其实并不是函数,看一下ZeroMemory的定义: ofn.lStructSize = sizeof(ofn); ofn.lpstrFile = szFile; //szFile是一个字符数组,那么szFile这个名字就代表这个字符数组的首地址 这是一个指针的应用,把接受选择文献

11、名的数组的地址传递到GetOpenFileName函数中。 ofn.lpstrFile[0] = TEXT('\0'); ofn.lpstrFile[0] = TEXT('\0');效果等价于ZeroMemory(szFile,sizeof(szFile)/sizeof(char)); ofn.nMaxFile = sizeof(szFile); ofn.lpstrFilter = TEXT("ALL\0*.*\0Text\0*.txt\0"); 文献过滤器 *.*就表达所有文献 *.txt就表达所有文本文献 abc*.*就表达所有以abc开头的文

12、献 abc*.txt就表达所有以abc开头的文本文献(txt) ofn.lpstrFilter = TEXT("ALL\0*.*\0Text\0*.TXT\0");用“\0”分割出几个段,每两段是一组过滤器,每组的第一个段代表过滤器的显示的值,而第二段表达真正的过滤器 ofn.nFilterIndex = 1; //选择一个过滤器 ofn.lpstrFileTitle = NULL; windows的一个惯例:结构体的指针类型别名一般是LP+结构体的名字 GetOpenFileName(&ofn)而不是GetOpenFileName(ofn),由于

13、GetOpenFileName函数要的是OPENFILENAME的指针 (8)只要用户还没关闭对话框,那么GetOpenFileName函数是停住的,同步模式的PlaySound以及getchar、scanf是同样的。 用户关闭对话框,GetOpenFileName函数返回,返回值是BOOL,等于TRUE表达用户选择了文献,假如等于FALSE就表达用户选择了【取消】按钮 ofn.nMaxFileTitle = 0; ofn.lpstrInitialDir = NULL; ofn.hwndOwner = hwnd; ofn.Flags = OFN_EXPLOR

14、ER |OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST; if(GetOpenFileName(&ofn)) { FILE *fp; fp=fopen(szFile,"r"); if(fp==NULL) { MessageBox(NULL,TEXT("文献打开错误!"),TEXT("记事本"),MB_OK); } TCHAR line[256]; TCHAR end[10000]; memset(line,0,256); memset(end,0,

15、256); while(!feof(fp)) { fgets(line,sizeof(line),fp); lstrcat(end,line); int w=strlen(end); end[w-1]='\0'; lstrcat(end,"\r\n"); } SetDlgItemText(hwnd,IDC_RICHEDIT1,end); fclose(fp); //关闭文献 } break; } break; (3)文献保存的实现: case I

16、D_MENUITEMSAVE: //文本的保存 { OPENFILENAME ofnb; char bcFile[MAX_PATH]; ZeroMemory(&ofnb,sizeof(ofnb)); ofnb.lStructSize = sizeof(ofnb); ofnb.lpstrFile = bcFile; ofnb.lpstrFile[0] = TEXT('\0'); ofnb.nMaxFile = sizeof(bcFile); ofnb.lpstrFilter = TEXT("ALL\0*.*\0

17、Text\0*.txt\0"); ofnb.nFilterIndex = 1; ofnb.lpstrFileTitle = NULL; ofnb.nMaxFileTitle = 0; ofnb.lpstrInitialDir = NULL; ofnb.hwndOwner = hwnd; ofnb.Flags = OFN_EXPLORER |OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST|OFN_OVERWRITEPROMPT; if (GetSaveFileName(&ofnb)) { FIL

18、E * fp = fopen (".txt","w"); //保存所有文献都为txt格式 TCHAR baoc [100000]; //保存的最大容量为100000 GetDlgItemText(hwnd,IDC_RICHEDIT1,baoc,sizeof(baoc)); fputs(baoc,fp); fclose(fp); } } break; (4)退出文本编辑器的实现: int ret=MessageBox(NULL,TEXT("是否把更改保存到新建的文本文档!!!"),TEXT("温馨提醒"),MB_YESN

19、O | MB_ICONQUESTION); if(ret==IDYES) { OPENFILENAME ofn; char szFile[MAX_PATH]; ZeroMemory(&ofn,sizeof(ofn)); ofn.lStructSize = sizeof(ofn); ofn.lpstrFile = szFile; ofn.lpstrFile[0] = TEXT('\0'); ofn.nMaxFile = sizeof(szFile); ofn.lpstrFilter = TEXT("ALL\0*.*\0Text\0*.TXT

20、\0C++\0*.cpp\0"); ofn.nFilterIndex = 1; ofn.lpstrFileTitle = NULL; ofn.nMaxFileTitle = 0; ofn.lpstrInitialDir = NULL; ofn.hwndOwner = hwnd; ofn.Flags = OFN_EXPLORER |OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST; ofn.lpstrTitle=TEXT("保存"); if (GetSaveFileName(&ofn)) { FILE *f

21、p; fp=fopen(szFile,"w"); if(fp==NULL) { MessageBox(NULL,TEXT("文献无法保存"),TEXT("呜呜"),MB_OK); } TCHAR str[10000]; TCHAR end[10000]; memset(end,0,10000); GetDlgItemText(hwnd,IDC_EDIT1,str,sizeof(str)); fputs(str,fp); fclose(fp); } MessageBox(NULL,TEXT("文

22、献保存成功!放心关闭!!!"),TEXT("嘻嘻"),MB_OK); } EndDialog(hwnd, 0); 3.2编辑操作: (1)剪切的实现: case ID_MENUITEMCUT: //剪切 { SendDlgItemMessage(hwnd,IDC_RICHEDIT1,WM_CUT,0,0); //传递对话框中的内容一方面获取RichEdit中的内容,WM_CUT,传递要进行操作的内容,0,0为两个WPARAM和LPARAM是约定的消息参数类型。 break; } (2)复制的实现: case ID_MENUIT

23、EMCOPY: //复制 { SendDlgItemMessage(hwnd,IDC_RICHEDIT1,WM_COPY,0,0); //传递对话框中的内容一方面获取RichEdit中的内容,WM_COPY,,传递要进行操作的内容,0,0为两个WPARAM和LPARAM是约定的消息参数类型。 break; } (3)粘贴的实现: case ID_MENUITEMPASTE: //粘贴 { SendDlgItemMessage(hwnd,IDC_RICHEDIT1,WM_PASTE,0,0); break;

24、 } (4)清除的实现: case ID_MENUITEMEMPTY: //清除 { SetDlgItemText(hwnd,IDC_RICHEDIT1,""); break; } (5)撤消的实现: case ID_MENUITEMUNDO: //“撤消”菜单 { SendDlgItemMessage(hwnd,IDC_RICHEDIT1, EM_UNDO, 0, 0); break; } (6)删除的实现: case ID

25、MENUITEMDELETE: //删除 { SendMessage(GetDlgItem(hwnd, IDC_RICHEDIT1), WM_CLEAR, 0, 0); } break; (7)全选的实现: case ID_MENUITEMSELECTALL: //全选 { SendMessage(GetDlgItem(hwnd, IDC_RICHEDIT1), EM_SETSEL, 0, -1); } break; (8)系统时间的实现: VOID CALLBA

26、CK MyTimerFun(HWND hwnd, UINT message, UINT iTimerID, DWORD dwTime) { SYSTEMTIME strLocal; //当前时间 GetLocalTime(&strLocal); TCHAR str[256]; wsprintf(str,"%04d-%02d-%02d %02d:%02d:%02d",strLocal.wYear,strLocal.wMonth, strLocal.wDay,strLocal.wHour,strLocal.wMinute,strLocal.wSecond); S

27、etDlgItemText(hwnd,IDC_EDIT2,str); } (9)查找功能的实现: int count=0; int Line_count=1; int Row_count=1; int num=0; int flag=0; TCHAR str1[256]; TCHAR temp1[5000]; TCHAR temp2[5000]; memset(temp1,0,5000); memset(temp

28、2,0,5000); memset(str1,0,256); GetDlgItemText(hwnd,IDC_EDIT_FINDWORD,str1,sizeof(str1)); if(strlen(str1)==0) { MessageBox(NULL,TEXT("查找的内容为空,请输入内容后再查找!!!"),TEXT("呜呜"),MB_OK); } else { int i=0; int j=0; while(str2[i]!='\

29、0' ) { if((str2[i]=='\n') || (Row_count==63)) { Line_count++; Row_count=0; } if(str2[i]==str1[j]) { i++; j++; Row_count++; if(str1[j]=='\0') { j=0;

30、 count++; wsprintf(temp2,"<%i>你要寻找的内容在第:%i 行,第:%i 列至第:%i 列!!!",count,Line_count,(Row_count-strlen(str1)),(Row_count-1)); strcat(temp1,temp2); strcat(temp1,"\r\n"); flag=1; } } else { i=i-j+1; j

31、0; Row_count++; } if(str2[i]=='\0' && flag==1) { SetDlgItemText(hwnd,IDC_EDIT2,temp1); MessageBox(NULL,temp1,TEXT("嘿嘿"),MB_OK); } if(str2[i]=='\0' && flag==0) { MessageBox(NULL,TEXT("没有你想要找的内容,请重新输入查找的

32、内容"),TEXT("呜呜"),MB_OK); break; } } } } break; 通过简朴的字符串比配算法实现其功能。 (10)替换功能的实现: TCHAR *change::D_change(TCHAR S[], TCHAR T1[] ,TCHAR T2[]) //替换功能的主算法 { int i=0; int j=0; int k=0; int l=0; TCHAR *S1; while((S[i]!='\0')) { if(S[i]==

33、T1[j]) { i++; j++; count1=i; } else { i=i-j+1; j=0; count1=i; } if(T1[j]=='\0') { i=i-j; if(strlen(T1)==strlen(T2)) { int num1=strlen(T1); for(k=i;k

34、en(T1)>strlen(T2)) { int num2=strlen(T1)-strlen(T2); int lengthT2=strlen(T2); for(k=i;k

35、 } j=0; l=0; } else if(strlen(T1)

36、1);k3

37、WND hwndCtl, UINT codeNotify) { int Line_count=1; int Row_count=0; int Total_count=0; int English_count=0; int math_count=0; int other_count=0; int space_count=0; int punct_count=0; TCHAR temp1[256]; TCHAR temp2[256]; memset(temp1,0,256); memset(temp2,0,256); int i=0; w

38、hile(total2[i]!='\0') { if((total2[i]!=' ') && (total2[i]!='\r') && (total2[i]!='\n')) { Total_count++; } if((total2[i]>='a' && total2[i]<='z') || (total2[i]>='A' && total2[i]<='Z')) { English_count++; } if(total2[i]>='0' && total2[i]<='9') { math_count++; }

39、 if(total2[i]==33 || total2[i]==34 || total2[i]==39 || total2[i]==44 || total2[i]==46 || total2[i]==58 || total2[i]==59 || total2[i]==63) { punct_count++; } if(total2[i]==' ') { space_count++; } if((total2[i]=='\n') || (Row_count==62)) { Line_count++; Row_coun

40、t=0; } else { Row_count++; } i++; } other_count=Total_count-English_count-math_count-punct_count; wsprintf(temp2,"<1>文本的行数为:%i !",Line_count-1); strcat(temp1,temp2); strcat(temp1,"\r\n"); memset(temp2,0,256); wsprintf(temp2,"<2>文本的总字符数为:%i !",Total_count); strca

41、t(temp1,temp2); strcat(temp1,"\r\n"); memset(temp2,0,256); wsprintf(temp2,"<3>文本的英文字符数为:%i !",English_count); strcat(temp1,temp2); strcat(temp1,"\r\n"); memset(temp2,0,256); wsprintf(temp2,"<4>文本的数字字符数为:%i !",math_count); strcat(temp1,temp2); strcat(temp1,"\r\n"); memset(temp2,0,

42、256); wsprintf(temp2,"<5>文本的空格数为:%i !",space_count); strcat(temp1,temp2); strcat(temp1,"\r\n"); memset(temp2,0,256); wsprintf(temp2,"<6>文本的标点符号数为:%i !",punct_count); strcat(temp1,temp2); strcat(temp1,"\r\n"); memset(temp2,0,256); wsprintf(temp2,"<7>文本的其它字符数为:%i !",other_count); s

43、trcat(temp1,temp2); strcat(temp1,"\r\n"); memset(temp2,0,256); SetDlgItemText(hwnd,IDC_EDIT1,temp1); } 通过传参,把文本信息传到副对话框中。然后对文本进行各项简朴的记录 3.3工具操作: (1)北京音乐的实现: case ID_MENU_MUSIC: { TCHAR shortPath[MAX_PATH]; GetShortPathName("C:\\Documents and Settings\\user\\桌面\\edit\

44、\邓紫棋 - 寂寞星球的玫瑰.mp3",shortPath,sizeof(shortPath)); //获取音乐的途径 TCHAR cmd[MAX_PATH+10]; wsprintf(cmd,"play %s",shortPath); mciSendString(cmd," ",0,NULL); int ret = MessageBox(NULL,TEXT("你当前正在享受音乐!!!是否要退出"),TEXT("嘻嘻"),MB_YESNO | MB_ICONQUESTION); if(ret==IDYES)

45、{ MessageBox(NULL,TEXT("还好听吧!欢迎再欣赏!再见!!!"),TEXT("嘿嘿"),MB_OK); mciSendString("CLOSE cmd"," ",0,NULL); break; } else { break; } break; } 重要是通过mciSendString()API函数的使用。 3.4关于操作: (1)关于对话框的弹出实现: case ID_MENU_ABOUT: {

46、 HINSTANCE hInstance=(HINSTANCE)GetWindowLong(hwnd,GWL_HINSTANCE); DialogBox(hInstance, MAKEINTRESOURCE(IDD_ABOUT), NULL, Main_Proc); break; } 用DialogBox()函数实现对话框的弹出。 (2)访问百度实现: case IDM_BAIDU: //访问百度网 { ShellExecute(hwnd,TEXT("open"),TEXT(".com"),NULL,NULL,SW

47、SHOWNORMAL); break; } (3)访问114实现: case IDM_GOOGLE: { ShellExecute(hwnd,TEXT("open"),TEXT(""),NULL,NULL,SW_SHOWNORMAL); break; } 都是ShellExecute()函数的使用。 4 程序运营结果与调试 4.1在调试过程中出现的一些问题 (1)输入语句中没有加取地址符号& (2)误把取地址运算符&当作逻辑与&& (3)误把赋值=当恒等== (4)条件语句(if)后误加分号 (5)循环语句

48、中改变了循环变量 (6)作为输出结果的变量没有赋初值 4.2 实验结果 (1)记事本的主界面 (2)编辑器中的操作项 (3)编辑器中的编辑项 (4)编辑器中的工具项 (5)编辑器中的帮助项 (6)打开文献测试 (7)查找项测试 (8)替换项测试 (9)替换项测试 5 课程设计总结与感想 通过本次课程设计,我学到了很多:增强了查阅相关参考资料的能力;独立分析解决

49、问题的能力;创新精神;自己的上机动手的能力;自己对课程设计的理解,得到很多启示,知道了以后要加强哪一方面,尚有哪一方面有用,课程设计为我们提供了一个即动手又动脑、独立实践的机会,将课本上的知识理论和实际有机的结合起来,锻炼了我们的分析解决实际问题的能力。提高离我们适应实际,实践编程的能力。 参考文献: [1] 谭浩强 《c++面向对象程序设计》 清华大学出版社 [2] 王红梅、胡明、王涛 《数据结构(C++版)》 清华大学出版社 [3] 如鹏网 《c语言也能看大事 》 如鹏网 源代码 int ret=MessageBox(NULL,TEXT("是否把更改保存到新建的文本文档!!!"),TEXT("温馨提醒"),MB_YESNO | MB_ICONQUESTION); if(ret==IDYES) //根据选择假如保存 { OPENFILENAME ofn; //文献对象 char szFile[MAX_PATH]; //文献的大小,最大 ZeroMemory(&ofn,sizeof(ofn)); //文献的初始化 ofn.lStructSize = siz

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服