- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
混合编程课程设计-c跟汇编
实验目的与要求 输入多个有序数据,编程实现,在有序表中插入数据元素(插入后依然为有序表),并输出该有序表的数据元素。要求使用C++和汇编语言混合编程,数据的输入和结果的输出使用图形界面,用C++实现,在有序表中插入数据元素用汇编语言实现。 实验方案 覆写以改变回车键和ESC键退出程序 void CweijiDlg::OnOK() { // TODO: 在此添加专用代码和/或调用基类 //CDialogEx::OnOK();//注释掉就可以了 } BOOL CweijiDlg::PreTranslateMessage(MSG* pMsg) { // TODO: 在此添加专用代码和/或调用基类 if (pMsg-message == WM_KEYDOWN pMsg-wParam == VK_ESCAPE) return TRUE; return CDialogEx::PreTranslateMessage(pMsg); } 插入按钮 void CweijiDlg::OnInsert(){// TODO: 在此添加控件通知处理程序代码UpdateData(true);rtable = ;int i =0,count=0;CString r;int intarr[40];int in = _ttoi(input);char *tablecp = (char *)(LPCTSTR)table;vectorCString vStr = Split(table);for (CString ele : vStr){const wchar_t *temp = (wchar_t *)(LPCTSTR)ele;intarr[i] = _ttoi(temp);count++;i++;}int mark = 0;__asm{mov ecx, countmov ebx, 0check : mov eax, intarr[ebx * 4]mov edx, incmp eax, edxjz exist; 如果相等则跳到exist执行mov mark, 0jg insert; 如果表中元素大于插入元素,则直接插入到表中元素的位置add ebx, 1loop checkmov ecx, 1; 如果遍历完后,就说明插入数比有序表中的数都大mov ebx, count;那么应该直接在末尾输入jmp insert1insert : add ecx, 1insert1 : mov edi, intarr[ebx * 4]mov intarr[ebx * 4], edxmov edx, ediadd ebx, 1loop insert1add count, 1jmp doneexist : mov mark, 1jmp donedone : nop}if (mark){MessageBox(_T(输入的数字已存在!));}else{CString rt;for (i = 0; i count; i++){if (icount-1)rt.Format(_T(%d,), intarr[i]);elsert.Format(_T(%d), intarr[i]);rtable += rt;}}UpdateData(false);} 用逗号分割字符串的函数 vectorCString CweijiDlg::Split(CString string){CString oriStr = string;vectorCString strVec;const char *P = ,;while (true){CString n = oriStr.SpanExcluding((LPCTSTR)P);strVec.push_back(n);oriStr = oriStr.Right(oriStr.GetLength() - n.GetLength() - 1);if (oriStr.IsEmpty()){break;}}return strVec;} 调试结果和数据处理 插入整数: 插入负数: 插入已存在的数字: 结论 使用汇编和C++的混编实现了有序表的MFC图形界面,通过利用CString字符串类型输入和呈现数据。数据使用CString可以实现一整串数据的输入,且可以实现负数和正数同时输入。再插入一个数时,这个数要插入有序表位置的数先被保存在一个临时变量中,这个数插入到有序表中,保存到临时变量原先有序表的数通过遍历完整个有序表就实现了新的数插入有序表。 问题与改进 在将字符串分
您可能关注的文档
最近下载
- 方剂配伍理论智慧树知到课后章节答案2023年下浙江中医药大学.docx VIP
- 数控编程与仿真实训(第5版)——电子全套PPT教学课件.ppt
- 沪教牛津版英语4A-M3U1-In-our-school:animal-school公开课课件.pptx VIP
- 急性荨麻疹-洞察与解读.pptx
- 融资分红合同协议.docx VIP
- 草莓状血管瘤血管瘤-洞察与解读.pptx
- 皮肤念珠菌病念珠菌病-洞察与解读.pptx
- 荨麻疹型药疹药疹-洞察与解读.pptx
- DB5305T 78-2022保山市牛油果园水肥一体化技术规程.docx VIP
- DB53_T 1089-2022鳄梨品种'哈斯'生产技术规程.docx VIP
文档评论(0)