版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
沈阳工程学院课程设计设计题目:高级程序设计课程设计药品销售管理系统系别信息工程系班级计本071学生姓名罗松、韩余、古智海、成先镜、王博学号13号、19号、12号、30号、06号指导教师张楠、吕海华职称讲师、讲师起止日期:2023年12月14日起——至2023沈阳工程学院课程设计任务书课程设计题目:药品销售管理系统系别信息工程系班级计本071学生姓名罗松、韩余、古智海、王博、成先镜学号13号、19号、12号、06号、30号指导教师张楠、吕海华职称讲师、讲师课程设计进行地点:实训F任务下达时间:2023年12月10日起止日期:2023年12月14日起——至2023年12月25日止教研室主任姜柳2023年12月09日批准一、课程设计的原始资料及依据查阅有关资料,进一步理解面向对象程序设计的思想,并运用MFC框架编写一个简朴的windows系统。通过本设计可以加深理解使用面向对象程序设计思想开发一个系统的方法,提高分析问题、解决问题和实际动手的能力。二、课程设计重要内容及规定设计内容:重要完毕药品销售信息的管理实现销售登记,并作相应纪录,将记录保存在文献中实现销售退货,并作相应纪录,将记录保存在文献中实现销售查询实现销售退货查询设计规定:(1)规定运用面向对象的方法以及MFC框架来完毕系统的设计;(2)规定在设计的过程中建立清楚的类层次,并画出类图;(3)设计功能满足规定、易于操作的和谐界面;(4)界面中需有菜单、工具栏、状态栏;(5)在系统的设计中,至少要用到面向对象的一种机制:继承、多态等;(6)在完毕该题目时,小组人员进行具体的任务分工,并要在报告中体现出来。三、对课程设计说明书撰写内容、格式、字数的规定1.课程设计说明书是体现和总结课程设计成果的载体,重要内容涉及:设计题目、设计目的、设备器材、设计原理及内容、设计环节、碰到的问题及解决方法、设计总结、参考文献等。一般不应少于3000字。2.在适当位置配合相应的实验原理图、功能模块图、算法流程图等图表进行说明。应做到文理通顺,内容对的完整,书写工整,装订整齐。3.设计总结部分重要写本人完毕工作简介以及自己的设计体会,涉及通过课程设计学到了什么,哪里碰到了困难,解决的办法以及此后的目的。4.课程设计说明书手写或打印均可。手写要用学校统一的课程设计用纸,用黑或蓝黑墨水工整书写;打印时采用A4纸,页边距均为20mm,正文采用宋体小四号字,行间距18磅5.课程设计说明书装订顺序为:封面、任务书、成绩评估表、目录、正文、参考文献。四、设计完毕后应提交成果的种类、数量、质量等方面的规定1.完毕“任务书”中指定的功能,运营结果对的。2.课程设计说明书。五、时间进度安排顺序阶段日期计划完成内容备注1第1天进行设计准备,阅读资料,分析设计任务书,明确设计规定、内容和环节2第2—4天编写相应的程序代码3第5—7天程序调试4第8—9天整理程序,撰写课程设计报告5第10天成绩评估六、重要参考资料(文献)[1]王育坚.主编《VisualC++面向对象编程教程》(第二版).北京:清华大学出版[2]陈维兴,林小茶.《C++高级程序设计教程》.北京:清华大学出版社[3]谭浩强.《C++程序设计教程》.北京:中国科学技术出版社[4]王燕.《面向对象的理论与C++实践》.北京:清华大学出版社[5]马石安,魏文平.主编《VisualC++程序设计与应用教程》.北京:清华大学出版社[6]郑莉董渊张瑞丰编着.《C++语言程序设计》(第3版).北京:清华大学出版社.2023沈阳工程学院高级程序设计课程设计成绩评估表系(部):信息工程系班级:计本071学生姓名:罗松、韩余、古智海、成先镜、王博指导教师评审意见评价内容具体要求权重评分加权分调研论证能独立查阅文献,收集资料;能制定课程设计方案和日程安排。0.15432工作能力态度工作态度认真,遵守纪律,出勤情况是否良好,可以独立完毕设计工作,0.25432工作量按期圆满完毕规定的设计任务,工作量饱满,难度适宜。0.25432说明书的质量说明书立论对的,论述充足,结论严谨合理,文字通顺,技术用语准确,符号统一,编号齐全,图表完备,书写工整规范。0.55432指导教师评审成绩(加权分合计乘8)分加权分合计指导教师签名:年月日评阅教师评审意见评价内容具体要求权重评分加权分查阅文献查阅文献有一定广泛性;有综合归纳资料的能力0.25432工作量工作量饱满,难度适中。0.55432说明书的质量说明书立论对的,论述充足,结论严谨合理,文字通顺,技术用语准确,符号统一,编号齐全,图表完备,书写工整规范。0.35432评阅教师评审成绩(加权分合计乘以4)分加权分合计评阅教师签名:年月日答辩小组评审意见评价内容具体要求权重评分加权分学生报告报告准备充足,思绪清楚;语言表达准确,概念清楚,论点对的,有层次,有重点,基本上反映了所完毕任务的所有内容;时间符合规定。0.55432答辩思绪清楚;回答问题有理论依据,基本概念清楚;重要问题回答准确,进一步,有说服力。0.55432答辩小组评审成绩(加权分合计乘以8)分加权分合计答辩小组教师署名:年月日课程设计总评成绩分摘要随着着社会的复杂化,传统的“一支笔,一本帐簿”的药品销售管理方式也慢慢的无法适应形势的变化。随着信息技术的发展,计算机已被广泛的用于社会的各个领域,成为推动社会发展的技术动力。而在计算机应用中,软件的作用十分突出,软件已经发展成为信息技术的核心,主导着信息产品的开发和信息技术市场的进一步的开拓。软件产业已成为社会信息化进程中的一个战略性产业。在软件技术的应用中软件的开发技术特别是应用型软件产品的开发技术成了重中之重。不断开发适应用户需求、市场需要的新型软件产品。随着社会的发展,软件也在不断的更新换代。随着信息化的发展,为了让管理更快捷、更准确,实现商业活动的信息化管理已经成为各个领域的当务之急。我们知道VisualC++有许多组件组成,涉及编辑器、编译器、调试器以及程序向导AppWizard、类向导ClassWizard等,这些组件通过一个名为DeveloperStudio的组件集成为一个和谐的开发环境。运用这个开发环境,我们可以很容易的编写一个应用于一个特定环境的软件系统。本次课设我们小组就是运用这个环境来开发我们的应用系统的。我们的这个系统重要是针对医药管理行业的,重要是用来对药品销售的商业活动进行管理的。应用本系统,我们可以使药品销售管理简朴而有效的运营,这就是计算机的优点。下来我来简朴介绍一下我们所开发出来的这个系统,在我们的这个系统中,重要有四大方面的功能,即登录系统功能、药品采购管理、药品销售管理、药品退货管理。此外,运用我们运用文献来对数据进行管理,从而使系统更加完善,功能更加强大。关键词:VisualC++、AppWizard、ClassWizard、文献、DeveloperStudio目录摘要 I第1章绪论 1第2章系统功能介绍 22.1系统功能总框图 22.2模块功能介绍 2第3章文献介绍 33.1文献的总体介绍 33.2保存文献 33.3打开文献 4第4章系统功能实现 74.1系统登录模块的实现 74.2采购模块的实现 84.3销售模块的实现 104.4退货模块的实现 15结论 20致谢 21参考文献 22附录小组内部分工 23第1章绪论紧张而又繁忙的课程设计过去了,在这一个星期里,让我尝到了以前我没有体验过的辛劳与劳累。通过本次的课程设计,使我克服了很多在程序设计上的弊端和难点,也让我体会到了冲出重围的幸福与喜悦。编写了几百行的代码最后写出一个程序觉得很有成就感。对VisualC++的掌握提高到了一个新的水平,可以运用VisualC++编程平台编写出一个实用的程序,很大限度提高了程序综合设计能力、分析能力和编程能力。掌握了很多新的编程技巧,积累了一些编程经验。世纪之初,以微电子、计算机、软件和通信技术为主导的信息技术革命给我们生存的社会所带来的变化令人目不暇接。VisualC++由许多组件组成,涉及编辑器、编译器、调试器、以及程序向导AppWizard、类向导ClassWizard等,这些组件通过一个名为DeveloperStudio的组件集成为一个和谐的开发环境。这给我们的编程提供了很大的方便。本组选择药品销售管理系统,它可以应用在任何医药公司和和医药销售有关的事业单位的药品销售管理中,为药品销售的各项管理及信息保存提供了一个良好的操作环境,为这些单位提供了很大的方便。随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻结识,它已进入人类社会的各个领域并发挥着越来越重要的作用。作为计算机应用的一部分,使用计算机对药品销售进行管理,具有着手工管理所无法比拟的优点.例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点可以极大地提高公司对药品销售管理的效率,从而使公司取得更大的利润。同时,这也是公司的科学化、正规化管理,与世界接轨的重要条件。我们的课程设计结束了,但是它留给我的印象是不可磨灭的。无论我以后会不会涉及这方面的研究,我想,我至少掌握了一种系统的研究方法,我们学习的目的就在于运用,我们运用这种研究方法的时候会很多,我最后要感谢课程设计,它的确教会我很多。紧张的设计时光接近收尾,我们的设计成果也达成了设计的规定,我们每个人的心里头都画上了圆满的句号,在这次实践中,让我感受到了团队的力量,无论我们碰到多么大的困难,只要我们齐心合力,没有什么事情可以难倒我们,虽然我们很累,但是我们很满足,由于我们学到了知识,学到了人与人之间更好的配合与合作。、第2章系统功能介绍2.1系统功能总框图在本次课程设计中,我们小组所做的课设题目是药品销售管理系统,根据它的基本规定和通过我们查阅相关资料。通过我们组成员之间的讨论研究,最后我们终于制定出了本系统的总体功能。由于我们所做的系统涉及到了销售,所以我们为它设计了四个重要的功能模块,即系统登录管理模块、药品采购管理模块、药品销售管理模块和药品退货管理模块。此外尚有两个文献管理模块,即文献的保存和文献的打开。系统总体功能框图如图2.1所示。药品销售管理系统药品销售管理系统药品采购管理药品销售管理药品退货管理系统登录管理保存文献打开文献图2.1药品销售管理总框图2.2模块功能介绍在系统功能总框图中我们已经介绍了我们这个系统的总体功能模块,即系统登录管理模块、药品采购模块、药品销售管理模块、药品退货管理模块、打开文献和保存文献。下面我来具体介绍一下它们。(1)系统登录模块:此模块用来管理系统用户的登录,严禁非法的用户进入系统。(2)药品采购模块:此模块重要用来管理系统药品采购中的一些操作。有药品采购、显示采购的药品列表、显示采购的药品的单个信息和修改已采购药品的信息。(3)药品销售模块:此模块重要用来管理系统药品销售中的一些操作。有销售记录、修改销售的药品信息、显示销售列表、显示单个货品的销售具体信息、计算销售总价和查询系统中当前的销售情况。(4)药品退货模块:此模块重要用来管理系统药品退货中的一些操作。有退货记录、退货列表、修改单个物品的退货信息、查询当前系统的退货情况和计算归还总价。第3章文献介绍3.1文献的总体介绍如图3.1所示为本系统的主操作界面。本系统采用文献的方式对系统中的信息进行管理。有保存文献、打开文献和关闭文献等操作。系统中定义一条信息的属性涉及:药名、种类、数量、价格,其作为文献保存的基本单位。系统一方面采用三组动态数组用来保存信息在内存中的存储,分别用来保存采购信息、销售信息、退货信息。当保存文献时,就将三组信息分别写到三个文献之中。当文献打开时,就将文献中的内容依次读到三个动态数组之中。图3.1系统总体界面3.2保存文献(1)当单击保存文献按钮时,系统就会出现如图3.2所示的保存文献的界面。再此界面中,我们可以看到文献被默认为.ALC格式的,这是我们在代码中规定的。文献的保存类型为药品销售文献(*.ALC),这也是我们根据系统的功能设定的。当你选择好保存文献的途径,然后点击拟定按钮,文献就可以顺利的被保存到你所选择的位置。当然,在此过程中,你最佳能给文献起一个新的名称,由于我们一次性必须保存的文献有三个,即药品采购文献、药品销售文献、药品退货文献。这样就可以防止所要保存的文献被覆盖的情况。图3.2保存文献界面(2)核心代码boolSinInf::WriteFile(CString&m_OFile,inta)//文献写入函数,参数为要写入的文献途径{ CMedManageApp*app=(CMedManageApp*)AfxGetApp(); ofstreamOFile(m_OFile); if(OFile.fail()) { TRACE("文献创建失败!"); returnfalse; } intindex=app->single.GetYaoNum(a); for(inti=0;i<index;i++) { OFile<<(LPTSTR)(LPCTSTR)app->single.GetYao(i,a)->YName<<endl <<(LPTSTR)(LPCTSTR)app->single.GetYao(i,a)->YKind<<endl <<(LPTSTR)(LPCTSTR)app->single.GetYao(i,a)->YNumber<<endl <<(LPTSTR)(LPCTSTR)app->single.GetYao(i,a)->YPrice<<endl; } OFile.close(); returntrue;}3.3打开文献(1)当点击从文献中打开按钮时,将会出现如图3.3所示的打开文献的界面。此界面虽然和保存文献界面相似,但其功能大不相同。当你单击你所要打开的文献时,文献名就会显示在文献名一栏中。然后单击打开按钮,文献就可以顺利的被保存在内存当中。当然,由于本系统有三个文献,所以每次必须依次性打开三个文献。图3.3打开文献界面(2)核心代码boolSinInf::ReadFile(CString&m_IFile,inta)//文献读入函数,参数为要读入的文献途径{ CMedManageApp*app=(CMedManageApp*)AfxGetApp(); ifstreamIFile(m_IFile); if(IFile.fail()) { TRACE("文献打开失败!"); returnfalse; } while(!IFile.eof())//eof()测试文献是否结束 { char*P1=newchar[20]; char*P2=newchar[20]; char*P3=newchar[20]; char*P4=newchar[20]; IFile>>P1>>P2>>P3>>P4; CStringTName(P1); CStringTKind(P2); CStringTNumber(P3); CStringTPrice(P4); app->single.AddYao(TName,TKind,TNumber,TPrice,a); delete[]P1; delete[]P2; delete[]P3; delete[]P4; } IFile.close(); returntrue;}第4章系统功能实现4.1系统登录模块的实现(1)在此模块中,重要实现对用户登录系统的管理。我们知道,对于每个软件应用系统都有其特定的使用人员,特别是用于商业活动的软件系统,就更应当注意它的保密功能,所以我们必须为我们的系统设计一个用于保护本系统的密码登录功能。如图4.1所示为我们药品销售管理系统的登录界面。它所具有的功能是验证用户的登录信息,即用户名和相应的用户密码,检查预进入本系统的用户是不是合法用户。此外,为了加强其安全性,我们设定假如用户输入的非法信息超过三次,系统将强制退出,不允许其登录到主界面。图4.1登录界面(2)核心代码 intnCount=0;while(nCount<3){DengLuPassDlg;if(PassDlg.DoModal()==IDOK)if((strcmp(PassDlg.m_UserName,"song")!=0)||(strcmp(PassDlg.m_strPassword,"song")!=0)){MessageBox(NULL,"用户名或口令错误,请重试!","错误信息",MB_ICONERROR);nCount++;}elsebreak;else{returnFALSE;}}if(nCount>=3){MessageBox(NULL,"口令输入已经超过3次,请退出!","错误信息",MB_OK|MB_ICONERROR);returnFALSE;}4.2采购模块的实现(1)药品销售系统的药品采购功能模块实现药品采购的相关操作,如图4.2所示。为药品采购功能界面药品采购功能模块由药名、类别、数量、价格组成,此对话框由四个静态文本框、四个可编辑文本框、一个按钮构成,实现采购药品的功能,重要输入购买的药品的药名、类别、数量及价格即可完毕,对库存已有的药品不可再进行采购,否则,显示“列表已有该项”。图4.2药品采购功能模块(2)各控件的说明如下:药品:输入销售的药品名,为字符型变量,否则犯错类别:输入销售的药品类别,为字符型变量数量:输入销售的药品数量,为整形变量,其值不能小于0,大于采购的数量,否则库存不够,无法进行销售价格:输入销售的药品价格,为整形变量,其值大于0OK按钮:点击,采购完毕,保存到库存(3)核心代码:boolCheck1(CString&m_Numberx)//检查是否含不是数字的项{ for(inti=0;i<m_Numberx.GetLength();i++) { if(!isdigit(m_Numberx[i])) returnfalse; } returntrue;}voidGouMai::OnOK(){ UpdateData(true); intIndex1; boolJin=true; CMedManageApp*app=(CMedManageApp*)AfxGetApp(); if(m_Name.IsEmpty())//若药名栏为空 { MessageBox("请输入药名!"); } elseif(m_Kind.IsEmpty())//若类别栏为空 { MessageBox("请输入药品类别!"); } elseif(!Check1(m_Number))//若类别栏中含非法字符 { MessageBox("数据栏含非法字符!"); }else { Index1=app->single.GetYaoNum(1); while(Index1--) { if(app->single.GetYao(Index1,1)->YName==m_Name) { MessageBox("列表中已有该项了"); Jin=false; } }if(Jin==true) { app->single.AddYao(m_Name,m_Kind,m_Number,m_Price,1); }CDialog::OnOK(); }}4.3销售模块的实现(1)药品销售系统的药品销售功能模块实现药品销售的相关操作,如图4.3所示,为药品销售界面。药品销售功能模块由药名、类别、数量、价格、总价、销售列表和销售详情组成,此对话框由七个静态文本框、四个可编辑文本框、列表和四个按钮构成,实现销售药品的功能,分为售出、查询、修改和退出等功能,在药品采购完之后,从库存里售出相应的药品,假如库存里没有相应药品的采购,则无法进行销售。图4.3药品销售界面(2)各控件的说明如下:药品:输入销售的药品名,为字符型变量,否则犯错;类别:输入销售的药品类别,为字符型变量。数量:输入销售的药品数量,为整形变量,其值不能小于0,大于采购的数量,否则库存不够,无法进行销售。价格:输入销售的药品价格,为整形变量,其值大于0。总价:在输入完药品名、类别、数量和价格之后,进行相应的操作时,总价会显示总的价格。销售列表:在输入完药品名、类别、数量和价格,售出药品之后,销售列表会显示当前销售的药品名。销售详单:在售出药品之后,在销售列表中有相应的药品名,而相应的销售记录在销售详单里,通过列表显示出来。售出:在输入完药品名、类别、数量和价格,点击售出,则将相应的药品名和记录添加到销售列表和销售详单里。查询:点击查询按钮之后,销售列表里会显示售出的药品名进行查询,通过销售详单显示相应的记录。修改:只能对销售的数量进行修改,修改成功后将记录添加到销售列表和销售详单里。退出:点击该按钮即实现退出销售界面。(3)核心代码:boolCheck(CString&m_Numberx)//检查是否含不是数字的项{ for(inti=0;i<m_Numberx.GetLength();i++) { if(!isdigit(m_Numberx[i])) returnfalse; } returntrue;}voidSell::OnTotal(){UpdateData(true); intIndex1,JiShu; boolJin=true,Kcheck=true; CMedManageApp*app=(CMedManageApp*)AfxGetApp(); if(m_Name.IsEmpty())//若药名栏为空 { MessageBox("请输入药名!"); } elseif(m_Kind.IsEmpty())//若类别栏为空 { MessageBox("请输入药品类别!"); } elseif(!Check(m_Number))//若类别栏中含非法字符 { MessageBox("数据栏含非法字符!"); } elseif(!Check(m_Price))//若类别栏中含非法字符 { MessageBox("价格栏含非法字符!"); } else { Index1=app->single.GetYaoNum(1); if(Index1) {while(Index1--) { if(m_Name==app->single.GetYao(Index1,1)->YName) { if(atoi(app->single.GetYao(Index1,1)->YNumber)<atoi(m_Number)) {MessageBox("库存不够");Kcheck=false;} else JiShu=Index1; Kcheck=true;break; } else Kcheck=false; } if(Kcheck==true) { Index1=app->single.GetYaoNum(2); while(Index1--) { if(app->single.GetYao(Index1,2)->YName==m_Name) { MessageBox("列表中已有该项了"); Jin=false; } }if(Jin==true) { app->single.AddYao(m_Name,m_Kind,m_Number,m_Price,2);inttemp=atoi(app->single.GetYao(JiShu,1)->YNumber)-atoi(m_Number); app->single.GetYao(JiShu,1)->YNumber.Format("%d",temp); m_Total.Format("%d",atoi(m_Number)*atoi(m_Price)); UpdateData(false); } intIndex;Index=app->single.GetYaoNum(2); m_XiaoList.ResetContent();//列表清空 for(inti=0;i<Index;i++)//逐条加入信息 { m_XiaoList.AddString(app->single.GetYao(i,2)->YName); } } else MessageBox("库存中没有此货品"); }MessageBox("库存中还没有此货品"); }}voidSell::OnOK(){ CDialog::OnOK();}voidSell::OnSelchangeList1(){ CMedManageApp*app=(CMedManageApp*)AfxGetApp(); intnIndex=m_XiaoList.GetCurSel(); m_SingXiao.ResetContent(); if(nIndex!=LB_ERR) {m_SingXiao.AddString(app->single.GetYao(nIndex,2)->YName); m_SingXiao.AddString(app->single.GetYao(nIndex,2)->YKind); m_SingXiao.AddString(app->single.GetYao(nIndex,2)->YNumber); m_SingXiao.AddString(app->single.GetYao(nIndex,2)->YPrice);m_Name=app->single.GetYao(nIndex,2)->YName;m_Kind=app->single.GetYao(nIndex,2)->YKind; m_Number=app->single.GetYao(nIndex,2)->YNumber;m_Price=app->single.GetYao(nIndex,2)->YPrice; } UpdateData(false);}voidSell::OnButsearch(){ intIndex; CMedManageApp*app=(CMedManageApp*)AfxGetApp();Index=app->single.GetYaoNum(2); m_XiaoList.ResetContent();//列表清空 for(inti=0;i<Index;i++)//逐条加入信息 { m_XiaoList.AddString(app->single.GetYao(i,2)->YName); }}voidSell::OnButalter(){UpdateData(true); CMedManageApp*app=(CMedManageApp*)AfxGetApp(); intnIndex=m_XiaoList.GetCurSel(); CStringtemp; if(nIndex!=LB_ERR) { temp=app->single.GetYao(nIndex,2)->YNumber;app->single.GetYao(nIndex,2)->YName=m_Name;app->single.GetYao(nIndex,2)->YKind=m_Kind; app->single.GetYao(nIndex,2)->YNumber=m_Number;app->single.GetYao(nIndex,2)->YPrice=m_Price; intnIndex1=app->single.GetYaoNum(1); while(nIndex1--) { if(app->single.GetYao(nIndex1,1)->YName==m_Name) { inttemp1=atoi(app->single.GetYao(nIndex1,1)->YNumber)+atoi(temp)-atoi(m_Number); app->single.GetYao(nIndex1,1)->YNumber.Format("%d",temp1); m_Total.Format("%d",atoi(m_Number)*atoi(m_Price)); break; } } } UpdateData(false);}4.4退货模块的实现(1)药品销售系统的退货功能模块,如图4.4所示,为退货功能界面。本功能界面由六个静态文本框、五个可编辑文本框、一个不可编辑文本框和四个按钮组成的。在退货这一功能模块中,重要有三大功能来实现药品的退货功能,分别是归还、查询和修改功能。其中在第一次归还药品的前提是,作为药品管理者,只有销售给客户才干实现退货,否则是不能进行退货的。图4.4退货功能模块界面(2)各控件的说明如下药名:输入要退货的药品名称,字符型变量m_Name。类别:输入药品的类别,如处方类和非处方类等,字符型变量m_Kind。数量:输入要退货药品的数量,整形变量m_Number,其值为小于销售的数量并且不小于0。(假如在本栏输入其他类型变量会出现报错警告)价格:输入药品的退货价格,整形变量m_Price,其值为大于等于0。(假如在本栏输入其他类型变量会出现报错警告)应归还金额:系统自动计算出应退还给客户药品的金额,整形变量m_Money。退货列表:显示退货信息,涉及药名、类别、数量和价格。归还:再输入退货信息后,点击该按钮,实现退货功能。查询:点击该按钮,可以查询已退货的相关信息。修改:在第一次归还按钮后,想继续退货相同的药品,点击该按钮,此时只能改变药品的数量和价格但不能修改其他信息。退出:点击该按钮将推出退货这一功能模块。(3)核心代码boolCheck2(CString&m_Numberx)//检查是否含不是数字的项{ for(inti=0;i<m_Numberx.GetLength();i++) { if(!isdigit(m_Numberx[i])) returnfalse; } returntrue;}voidBack::OnButhuan(){UpdateData(true); intIndex1,JiShu; boolJin=true,Kcheck=true; CMedManageApp*app=(CMedManageApp*)AfxGetApp();if(m_Name.IsEmpty())//若药名栏为空 { MessageBox("请输入药名!"); } elseif(m_Kind.IsEmpty())//若类别栏为空 { MessageBox("请输入药品类别!"); } elseif(!Check2(m_Number))//若类别栏中含非法字符 { MessageBox("数据栏含非法字符!"); } elseif(!Check2(m_Price))//若类别栏中含非法字符 { MessageBox("价格栏含非法字符!"); } else { Index1=app->single.GetYaoNum(2); if(Index1) { while(Index1--) { if(m_Name==app->single.GetYao(Index1,2)->YName) {if(atoi(app->single.GetYao(Index1,2)->YNumber)<atoi(m_Number)) {MessageBox("退货过多");Kcheck=false;} else JiShu=Index1; Kcheck=true;break; } else Kcheck=false; } if(Kcheck==true) { Index1=app->single.GetYaoNum(3); while(Index1--) { if(app->single.GetYao(Index1,3)->YName==m_Name) { MessageBox("列表中已有该项了"); Jin=false; } }if(Jin==true) { app->single.AddYao(m_Name,m_Kind,m_Number,m_Price,3);inttemp=atoi(app->single.GetYao(JiShu,2)->YNumber)-atoi(m_Number);//修改退货列表 app->single.GetYao(JiShu,2)->YNumber.Format("%d",temp); Index1=app->single.GetYaoNum(1); while(Index1--) { if(app->single.GetYao(Index1,1)->YName==m_Name) { inttemp1=atoi(app->single.GetYao(Index1,1)->YNumber)+atoi(m_Number);//修改库存 app->single.GetYao(Index1,1)->YNumber.Format("%d",temp1);break; } } m_Money.Format("%d",atoi(m_Number)*atoi(m_Price)); UpdateData(false); } intIndex;Index=app->single.GetYaoNum(3); m_BackList.ResetContent();//列表清空 for(inti=0;i<Index;i++)//逐条加入信息 { m_BackList.AddString(app->single.GetYao(i,3)->YName); } } else MessageBox("销售列表中没有此货品"); } MessageBox("销售列表中还没有货品"); }}voidBack::OnButcheck(){ intIndex; CMedManageApp*app=(CMedManageApp*)AfxGetApp();Index=app->single.GetYaoNum(3); m_BackList.ResetContent();//列表清空 for(inti=0;i<Index;i++)//逐条加入信息 { m_BackList.AddString(app->single.GetYao(i,3)->YName); }}voidBack::OnSelchangeList1(){ CMedManageApp*app=(CMedManageApp*)AfxGetApp(); intnIndex=m_BackList.GetCurSel(); if(nIndex!=LB_ERR) {m_Name=app->single.GetYao(nIndex,3)->YName;m_Kind=app->single.GetYao(nIndex,3)->YKind; m_Number=app->single.GetYao(nIndex,3)->YNumber;m_Price=app->single.GetYao(nIndex,3)->YPrice; } UpdateData(false);}voidBack::OnButalter(){ UpdateData(true); CMedManageApp*app=(CMedManageApp*)AfxGetApp(); intnIndex=m_BackList.GetCurSel(); CStringtemp; if(nIndex!=LB_ERR) { temp=app->single.GetYao(nIndex,3)->YNumber; intnIndex1=app->single.GetYaoNum(2),nIndex2=app->single.GetYaoNum(1); while(nIndex1--) { if(app->single.GetYao(nIndex1,2)->YName==m_Name) { inttemp1=atoi(app->single.GetYao(nIndex1,2)->YNumber)+atoi(m_Number)-atoi(temp); app->single.GetYao(nIndex1,2)->YNumber.Format("%d",temp1); while(nIndex2--) { if(app->single.GetYao(nIndex1,1)->YName==m_Name) { atoi(app->single.GetYao(nIndex1,1)->YNumber)+atoi(m_Number)-atoi(temp); app->single.GetYao(nIndex1,2)->YNumber.Format("%d",(atoi(app->single.GetYao(nIndex1,1)->YNumber)+atoi(m_Number)-atoi(temp))); break;} } m_Money.Format("%d",atoi(m_Number)*atoi(m_Price)); break; } }app->single.GetYao(nIndex,3)->YName=m_Name;app->single.GetYao(nIndex,3)->YKind=m_Kind; app->single.GetYao(nIndex,3)->YNumber=m_Number;app->single.GetYao(nIndex,3)->YPrice=m_Price; } }结论时间就像流水,一去不复返。通过这样两周的C++课设,不仅使我了解了许多专业方面的知识,也增强了我动手能力。在课设中,我们小组的同学都很认真。也就是说,知识宝贵,团队精神同样可贵,我想任务分组完毕就是出于这样的考虑吧,团队合作不是把任务简朴分开就能实现的。每个人学习知识的侧重点不尽相同,每人解决问题的思绪也不同样,几个人互相讨论,互相辩论的过程中往往会产生出人意料的好想法,也许这就叫做灵感。分歧过后达成共识,团结协作,最终使我们达成了共识。在做C++课设时我们组重要分为几个部分,涉及登陆界面,采购药物,销售药物,退货,文献存储等功能。对于登陆界面的设立我们想一些结构最终我们采用了我们学过的登陆界面形式。我们对用户名和密码进行设立。假如用户名或密码有一个不对的将弹犯错误信息对话框。从新输入用户名和密码当我们输入错误超
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024-2030年中国船甲板敷料项目可行性研究报告
- 2024-2030年中国自动贩售现磨咖啡机行业竞争形势与营销渠道策略报告
- 2024-2030年中国管理培训行业供求格局预测及投资创新模式分析报告
- 2024-2030年中国磷酸二铵行业市场占有率分析及发展可行性研究报告
- 2024-2030年中国硫酸新霉素行业发展态势及投资价值研究报告
- 2024年离心泵项目综合评估报告
- 2023年OTC药品项目评估分析报告
- 2025届江苏常熟中学物理高二第一学期期末调研试题含解析
- 2025届深圳市重点中学高一物理第一学期期中经典模拟试题含解析
- 山东省泰安一中、宁阳一中2025届高三物理第一学期期中联考试题含解析
- 《中国慢性阻塞性肺疾病基层诊疗与管理指南(2024年)》解读
- 安全操作规程、作业指导书
- MOOC 软件安全之恶意代码机理与防护-武汉大学 中国大学慕课答案
- 档案工作协调机制
- 肝硬化门静脉高压食管胃静脉曲张出血的防治指南( 2022)
- 2023年1月自考00804金融法二试题及答案
- 赢利-未来10年的经营能力-读后感
- 工会劳动竞赛培训课件
- 病原微生物在实验室中的生物安全风险
- 2024年邮政系统招聘考试-邮政投递员笔试历年真题荟萃含答案
- 领导力培养培训
评论
0/150
提交评论