欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOC文档下载  

    毕业论文 网络经济下电子商务的成本分析.doc

    • 资源ID:3850253       资源大小:680.50KB        全文页数:38页
    • 资源格式: DOC        下载积分:8金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要8金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    毕业论文 网络经济下电子商务的成本分析.doc

    题目: Visual C+高级编程课程设计报告班级:计算机科学与技术s111姓名:邓会杰学号:113469指导教师:李玉海完成日期: 2012 年 6月 6日目录第一章 系统功能及使用说明41.1客户端系统的功能及使用说明41.2服务器端系统的使用及说明71.3数据库管理系统的使用及说明11第二章 系统流程图122.1服务器端和客户端通信设计流程图122.1.1通信前准备工作122.1.2收发数据132.1.3处理通知消息132.2数据库设计流程132.2.1 DBMS简介132.2.2 ODBC简介142.2.3 MFC中ODBC主要的类152.2.4 MFC与ODBC应用程序的数据交换机制162.2.5 数据库设计的主要步骤16第三章 程序调试与参数测试173.1.1文件传输问题17第四章 程序224.1客户端程序224.1.1网络连接窗口程序224.1.2文件传输窗口程序264.1.3附加功能304.2服务器端程序314.2.1网络侦听窗口程序314.2.2文件传输窗口程序354.2.3数据管理窗口程序354.3数据库管理程序36第五章 系统总结416.1 总结416.2 系统不足42参考文献42前言本系统主要实现的功能是客户端与服务器端通信,服务器监听客户端发来的连接请求,通过socket套接字,来完成客户端与服务器端之间的通信。开发本系统主要目的是熟练运用本学期学到的知识点。该系统使用的MFC编写,用到的知识点有:windows的标准控件的使用、对文件的操作、注册表使用、动态链接库的使用、多线程的应用、ODBC数据库编程、网络编程等知识点。通过独立完成该系统,熟练的掌握所涉及的类及类方法的使用,把知识点融合到一起能深刻的理解了MFC各类的意义和MFC的机制。为以后进一步学习C+打下了基础。第一章 系统功能及使用说明1.1客户端系统的功能及使用说明如图上图,为客户端的登录界面,输入用户名和密码后,点击“登录”转到客户端的主界面。点击“退出”会退出系统。三次错误输入密码,系统自动退出,有效的提高了系统的安全性。如图上图,客户端的主界面,点击“建立连接”,如果服务端系统在监听,那么客户端就连接到了服务器端,连接成功后,“状态连接”会显示连接成功,“连接时长”会显示已连接了多长时间。点击“断开连接”客户端和服务器端就会断开连接,“连接状态”显示连接已断开,“连接时长”显示空。如果服务器端系统没有在监听,会提示连接失败。与服务器建立连接之后,点击“文件传输”标签,显示如图1-3的窗口,可以与服务器进行文件传输和聊天。在下方的文本框中输入要发送的文字,点击“发送”,消息会发送到服务器端,同时显示在上方的文本框中。点击“聊天记录”按钮,可以查看与服务器端的聊天记录,聊天记录显示在上方的文本框中。点击“删除记录”按钮,会删掉与服务器端的聊天记录。文件传输功能,点击“选择文件”,选择要发送的文件,再点击“发送文件”,文件会发送给服务器,同时提示发送成功。点击“附加功能”标签,主要实现了一个简易计算器。1.2服务器端系统的使用及说明上图,为服务器端的登录界面,输入用户名和密码后,点击“登录”转到服务器端的主界面。点击“退出”会退出系统。三次错误输入密码,系统自动退出,有效的提高了系统的安全性。点击创建服务器,服务器就开始侦听客户端的请求,如果有客户端连接请求,连接列表上会显示客户端的信息,点击“刷新列表”,会显示连接的客户端列表。在连接列表中选择一个客户端,点击“断开连接”,服务器会把该客户端断开。选择一个客户端,点击“发送文件”,转到发送文件窗口。选择一个客户端,点击“数据管理”,会转到数据管理窗口。选择指定的客户端,点击“文件传输”标签,显示如图1-3的窗口,可以与客户端进行文件传输和聊天。在下方的文本框中输入要发送的文字,点击“发送”,消息会发送到客户端,同时显示在上方的文本框中。点击“聊天记录”按钮,可以查看与客户端的聊天记录,聊天记录显示在上方的文本框中。点击“删除记录”按钮,会删掉与客户端的聊天记录。文件传输功能,点击“选择文件”,选择要发送的文件,再点击“发送文件”,文件会发送给客户端,同时提示发送成功。点击“数据管理”标签,转到“数据管理”窗口。在个人信息管理栏中,输入用户名密码,点击“确定修改”,个人登录密码修改成功。在“管理数据库”栏中,点击“管理数据库信息”转到1.3数据库管理系统的使用及说明如图所示,数据库操作模块所实现的功能是,可以对数据库中的数据表进行增删改查,点击“添加”按钮,可以向数据表中添加一条记录。点击“查询”按钮,可以查询指定的数据,并且显示在右侧的列表框中。点击“修改按钮”可以修改指定的数据。点击“删除”按钮,可以删除指定的记录。点击下面四个按钮,可以显示上一条、下一条、第一条、最后一条记录。第二章 系统流程图2.1服务器端和客户端通信设计流程图2.1.1通信前准备工作1.数据库客户端调用Connect函数以连接到服务器2.服务器端调用Listen函数监听客户的进入3.服务器端调用Accept函数与客户建立连接2.1.2收发数据流套接字发送数据接收数据方法/CAsyncSocket类 SendReceive2.1.3处理通知消息用于处理通知消息的虚函数 OnAccept: 当一个连接请求到来时 OnConnet: 当一个连接尝试完成时 OnClose: 当另一端套接字关闭时 OnReceive:当准备好接收数据时 OnSend: 当准备好发送数据时2.2数据库设计流程2.2.1 DBMS简介DBMS(数据库管理系统)是一套程序,用来定义、管理和处理数据库与应用程序之间的联系,例如FoxPro、Access、Sybase等都是DBMS。图10.1说明了用户、DBMS和数据库三者的关系。图10.1 用户、DBMS、数据库三者的关系2.2.2 ODBC简介ODBC(Open Database Connectivity,开放数据库互连)是微软公司开放服务结构(WOSA,Windows Open Services Architecture)中有关数据库的一个组成部分,它建立了一组规范,并提供了一组对数据库访问的标准API(应用程序编程接口)。这些API利用SQL来完成其大部分任务。ODBC本身也提供了对SQL语言的支持,用户可以直接将SQL语句送给ODBC。一个基于ODBC的应用程序对数据库的操作不依赖任何DBMS,不直接与DBMS打交道,所有的数据库操作由对应的DBMS的ODBC驱动程序完成。也就是说,不论是FoxPro、Access还是Oracle数据库,均可用ODBC API进行访问。由此可见,ODBC的最大优点是能以统一的方式处理所有的数据库。一个完整的ODBC由下列几个部件组成:应用程序(Application)。ODBC管理器(Administrator)。该程序位于Windows 95控制面板(Control Panel)的32位ODBC内,其主要任务是管理安装的ODBC驱动程序和管理数据源。驱动程序管理器(Driver Manager)。驱动程序管理器包含在ODBC32.DLL中,对用户是透明的。其任务是管理ODBC驱动程序,是ODBC中最重要的部件。ODBC API。ODBC 驱动程序。是一些DLL,提供了ODBC和数据库之间的接口。数据源。数据源包含了数据库位置和数据库类型等信息,实际上是一种数据连接的抽象。各部件之间的关系如图10.2所示2.2.3 MFC中ODBC主要的类MFC的ODBC类主要包括:CDatabase类:主要功能是建立与数据源的连接。CRecordset类:该类代表从数据源选择的一组记录(记录集),程序可以选择数据源中的某个表作为一个记录集,也可以通过对表的查询得到记录集,还可以合并同一数据源中多个表的列到一个记录集中通过该类可对记录集中的记录进行滚动、修改、增加和删除等操作。CRecordView类:提供了一个表单视图与某个记录集直接相连,利用对话框数据交换机制(DDX)在记录集与表单视图的控件之间传输数据。该类支持对记录的浏览和更新,在撤销时会自动关闭与之相联系的记录集。CFieldExchange类:支持记录字段数据交换(DFX),即记录集字段数据成员与相应的数据库的表的字段之间的数据交换。该类的功能与CDataExchange类的对话框数据交换功能类似。CDBException类:代表ODBC类产生的异常。概括地讲,CDatabase针对某个数据库,它负责连接数据源;CRecordset针对数据源中的记录集,它负责对记录的操作;CRecordView负责界面,而CFieldExchange负责CRecordset与数据源的数据交换。2.2.4 MFC与ODBC应用程序的数据交换机制如图所示,显示了MFC的ODBC应用程序中的DDX和RFX数据交换2.2.5 数据库设计的主要步骤 数据库设计主要是进行数据库的逻辑设计,即将数据按一定的分类、分组系统和逻辑层次组织起来,是面向用户的。数据库设计时需要综合企业各个部门的存档数据和数据需求,分析各个数据之间的关系,按照DBMS提供的功能和描述工具,设计出规模适当、正确反映数据关系、数据冗余少、存取效率高、能满足多种查询要求的数据模型。数据库设计的步骤是;1数据库结构定义:目前的数据库管理系统(DBMS)有的是支持联机事务处理CLTP(负责对事务数据进行采集、处理、存储)的操作型DBMS,有的可支持数据仓库、有的联机分析处理CLAP(指为支持决策的制度对数据的一种加工操作)功能的大型DBMS,有的数据库是关系型的,有的可支持面向对象数据库。针对选择的DBMS,进行数据库结构定义。2数据表定义:数据表定义指定义数据库中数据表的结构,数据表的逻辑结构包括:属性名称、类型、表示形式、缺省值、效验规则、是否关键字、可否为空等。关系型数据库要尽量按关系规范化要求进行数据库设计,但为使效率高,规范化程序应根据应用环境和条件来决定。数据表设计不仅要满足数据存储的要求,还要增加一些如反映有关信息、操作责任、中间数据的字段或临时数据表。3存储设备和存储空间组织:确定数据的存放地点、存储路径、存储设备等,备份方案,对多版本如何保证一致性和数据的完整性。4数据使用权限设置:针对用户的不同使用要求,确定数据的用户使用权限,确保数据安全。5数据字典设计:用数据字典描述数据库的设计,便于维护和修改。第三章 程序调试与参数测试3.1故障排除方法白盒测试:运行出现错误后,查看代码,检查错误的原因,如果查不出来,就用afxmessagebox()语句,如果消息框弹出之后,说明是:afxmessagebox()代码后面有错误,就这样一条一条的执行,检查出错误黑盒测试:如果运行没有错误,测试功能是否完全实现,功能不正确或遗漏;界面错误;输入和输出错误;数据库访问错误;性能错误;初始化终止错误;3.1文件传输问题问题:文件传输功能的实现时,需要判断接收到的是文件还是普通消息,如果是文件则写到磁盘中,如果是普通消息则显示在聊天文本框中。解决方法:如果服务器向客户端传文件,先传送一个定义好的字符串“&sendfile&”通知客户端要发送文件。客户端判断接收到的是“&sendfile&”,知道服务器要发送文件。客户端可以向服务器端发送"&norecvfile&"字符串,表示拒绝接收文件,&recvfile&"表示同意接收文件。这样实现客户端与服务器端发送文件的协调通信。流程图:服务器:想要发送文件服务器:发送“&sendfile&”客户端:接收“&sendfile&”客户端:发送“&recvfile &”客户端:发送“&norecvfile &”服务器:接收“&recvfile &”服务器:接收“&norecvfile &”服务器:不发送文件服务器:开始发送文件具体实现过程void CMysocket:OnReceive(int nErrorCode) / TODO: Add your specialized code here and/or call the base classCServerApp * pApp=(CServerApp *)AfxGetApp();CServerDlg * pDlg=(CServerDlg *)pApp->m_pMainWnd;CDialog1 * pDlg1=&(pDlg->dlg1);CDialog2 * pDlg2=&(pDlg->dlg2);char *pbuf=new char4096;int ibufsize=4096;int ircvd;CString strrecvd;ircvd=Receive(pbuf,ibufsize);if(ircvd=SOCKET_ERROR)pDlg2->MessageBox("SOCKET_ERROR");elsepbufircvd='0'CString str=pbuf;/判断客户端发来的信息,是不是同意接收if(str.Compare("&recvfile&")=0)pDlg->fromClient="&recvfile&"CString pathname=pDlg2->pathname;int sendresult;CFile file;file.Open(pathname,CFile:modeReadWrite);char *c;int len=file.GetLength();c=new charlen+3;clen+0='&'clen+1='&'clen+2='&'file.Read(c,len);sendresult=pDlg1->m_serversocket.m_socket->Send(c,len+3);if(sendresult=SOCKET_ERROR):AfxMessageBox("连接失败,请重试!");elsepDlg2->pathname=""pDlg2->SetDlgItemText(IDC_EDIT_FILEPATH,"");pDlg2->filesendsuccessflag=1;/同意接收else if(str.Compare("&norecvfile&")=0)/:AfxMessageBox("客户端不同意接收文件");pDlg->fromClient="&recvfile&"pDlg2->pathname=""pDlg2->SetDlgItemText(IDC_EDIT_FILEPATH,"");pDlg2->filesendsuccessflag=2;/拒绝接收/判断收到的信息是不是客户端发来的发送文件请求。else if(str.Compare("&sendfile&")=0)int result= MessageBox(pDlg2->m_hWnd, "客户端发送文件,是否接收?","客户端发来的消息",MB_YESNO| MB_ICONQUESTION|MB_DEFBUTTON1);if(result=IDYES)pDlg->toClient("&recvfile&");else if(result=IDNO)pDlg->toClient("&norecvfile&");/判断客户端端发来的信息是不是同意接收文件,如果是,则发送文件else if(str.Compare("&recvfile&")=0)CString pathname=pDlg2->pathname;int sendresult;CFile file;file.Open(pathname,CFile:modeReadWrite);char *c;int len=file.GetLength();c=new charlen+3;clen+0='&'clen+1='&'clen+2='&'file.Read(c,len);sendresult=pDlg1->m_serversocket.m_socket->Send(c,len+3);if(sendresult=SOCKET_ERROR)pDlg2->MessageBox("连接失败,请重试!");elsepDlg2->pathname=""pDlg2->SetDlgItemText(IDC_EDIT_FILEPATH,"");pDlg2->filesendsuccessflag=1;/同意接收/判断收到的信息是不是文件,如果是文件则保存到磁盘中。else if(str.Right(2)="&&")pbufircvd=NULL;pbufircvd-1=NULL;pbufircvd-2=NULL;pbufircvd-3=NULL;CString str=pbuf;str=str.Left(ircvd-3);CFile file;file.Open("c:abc",CFile:modeCreate|CFile:modeNoTruncate|CFile:modeReadWrite);file.Write(pbuf,ircvd-3);pDlg2->MessageBox("文件接收完毕,请查收!");else pDlg->fromClient=""pDlg2->m_rcvmsg+="客户机:"pDlg2->m_rcvmsg+=pbuf;pDlg2->m_rcvmsg+="rn"pDlg2->RefreshScreen();strrecvd=pbuf;CFile file;file.Open("c:Serverchatlog",CFile:modeCreate|CFile:modeNoTruncate|CFile:modeReadWrite);file.SeekToEnd();file.Write("客户机:",strlen("客户机:");file.Write(pbuf,strrecvd.GetLength();file.Write("rn",strlen("rn");delete pbuf;CAsyncSocket:OnReceive(nErrorCode);第四章 程序4.1客户端程序4.1.1网络连接窗口程序主要功能实现代码:客户端与服务器端建立连接点击“建立连接”触发OnConnect()方法,m_socket.Connect()语句触发void CMysocket:OnConnect(int nErrorCode),请求服务器建立连接。方法实现如下:void CDialog1:OnConnetct() if(!AfxSocketInit()AfxMessageBox("加载套接字库失败");return;CClientApp * pApp=(CClientApp *)AfxGetApp();CClientDlg * pDlg=(CClientDlg *)pApp->m_pMainWnd;CDialog1 * pDlg1=&(pDlg->dlg1);CDialog2 * pDlg2=&(pDlg->dlg2);pDlg1->GetDlgItemText(IDC_IPADDRESS1,m_ipstr);pDlg2->m_socket.m_hSocket=INVALID_SOCKET;UpdateData(true);BOOL flag=pDlg2->m_socket.Create();if(!flag)AfxMessageBox("SOCKET ERROR");return;pDlg2->m_socket.Connect(pDlg1->m_ipstr,pDlg1->m_port);void CMysocket:OnConnect(int nErrorCode) CClientApp * pApp=(CClientApp *):AfxGetApp();CClientDlg * pDlg=(CClientDlg *)pApp->m_pMainWnd;CDialog2 * pDlg2=&(pDlg->dlg2);CDialog1 * pDlg1=&(pDlg->dlg1);int iResult=nErrorCode;CString buffer;int namelen;if(iResult!=0)buffer.Format("连接服务器失败。rn");pDlg1->SetDlgItemText(IDC_CONNECT_STATE,"连接服务器失败。");pDlg2->m_rcvmsg+=buffer;pDlg2->RefreshScreen();:AfxMessageBox("aaaaaa");elsenamelen=sizeof(sockaddr_in);buffer.Format("成功连接到服务器%s:%d.rn",pDlg1->m_ipstr,pDlg1->m_port);pDlg2->m_rcvmsg+=buffer;pDlg->RefreshScreen();Info.i=9;Info.pctrlProgress=&(pDlg1->m_progress);pDlg1->m_progress.ShowWindow(true);CWinThread *pThread1=AfxBeginThread(funConnect,&Info);CAsyncSocket:OnConnect(nErrorCode);断开连接点击“断开连接”按钮,触发void CDialog1:disConnect()事件,具体实现方法如下:void CDialog1:disConnect()CClientApp * pApp=(CClientApp *)AfxGetApp();CClientDlg * pDlg=(CClientDlg *)pApp->m_pMainWnd;CDialog2 * pDlg2=&(pDlg->dlg2);pDlg2->m_socket.Close();pDlg2->m_socket.isconnect(false);进度条与连接状态的实现点击“建立连接”启动一个进程funConnect()funTime()CWinThread *pThread1=AfxBeginThread(funConnect,&Info); CWinThread *pThread2=AfxBeginThread(funTime,pDlg1);Thread1功能显示进度条,Thread2功能显示连接状态和连接时间,Thread1结束前调用Thread2进程的代码实现如下:struct threadInfoint i;CProgressCtrl * pctrlProgress;Info;CString strtime;CString strstate;UINT funConnect(PVOID p)CClientApp * pApp=(CClientApp *)AfxGetApp();CClientDlg * pDlg=(CClientDlg *)pApp->m_pMainWnd;CDialog1 * pDlg1=&(pDlg->dlg1);threadInfo * pInfo=(threadInfo *)p;int nTemp;for(int i=0;i<100;i+)nTemp=pInfo->i;pInfo->pctrlProgress->SetPos(i);Sleep(nTemp);pDlg1->MessageBox("已建立连接");pDlg1->m_progress.ShowWindow(false);CWinThread *pThread2=AfxBeginThread(funTime,pDlg1);pDlg1->GetDlgItem(IDC_CONNETCT)->EnableWindow(false);return 0;UINT funTime(PVOID p)CDialog1 * pDlg1=(CDialog1 *)p;CTime starttime;starttime= CTime:GetCurrentTime();CTime curtime;CTimeSpan curspan;CString contime;CString constate;bconnect=true;while(1)if(bconnect=true)/:AfxMessageBox("true");constate="建立连接!"curtime= CTime:GetCurrentTime();curspan=curtime-starttime;contime=curspan.Format("%H:%M:%S");pDlg1->SetDlgItemText(IDC_CONNECT_STATE,constate);pDlg1->SetDlgItemText(IDC_CONNECT_TIME,contime);Sleep(1000);else if(bconnect=false)constate="服务器已断开连接!"pDlg1->SetDlgItemText(IDC_CONNECT_STATE,constate);pDlg1->SetDlgItemText(IDC_CONNECT_TIME,"");pDlg1->GetDlgItem(IDC_CONNETCT)->EnableWindow(true);return 0;return 0;4.1.2文件传输窗口程序发送和接受消息的同时会把消息写入到聊天记录文件中。发送功能的实现void CDialog2:OnSendMsg() int ilen;int isent;UpdateData(true);if(m_msg!="")ilen=m_msg.GetLength();isent=m_socket.Send(LPCTSTR(m_msg),ilen);if(isent=SOCKET_ERROR)AfxMessageBox("连接失败,请重试!");elseCFile file;file.Open("c:Clientchatlog",CFile:modeReadWrite|CFile:modeCreate|CFile:modeNoTruncate);m_rcvmsg+="客户机:"+m_msg;m_rcvmsg+="rn"file.SeekToEnd();file.Write("客户机:",strlen("客户机:");file.Write(m_msg,m_msg.GetLength();file.Write("rn",strlen("rn");m_msg=""UpdateData(false);查看聊天记录功能的实现void CDialog2:OnChatLog() / TODO: Add your control notification handler code hereCFile file;file.Open("c:Clientchatlog",CFile:modeRead|CFile:modeCreate|CFile:modeNoTruncate);file.SeekToBegin();char *c;c=new charfile.GetLength()+1;cfile.GetLength()='0'file.Read(c,file.GetLength();CString str=c;m_rcvmsg=str;UpdateData(false);file.Close();delete c;删除聊天记录功能的实现void CDialog2:Ondeletelog() CFile file;file.Open("c:Clientchatlog",CFile:modeCreate);m_rcvmsg=""file.Close();UpdateData(false);选择文件功能的实现void CDialog2:OnBUTselectfile() CClientApp * pApp=(CClientApp *)AfxGetApp();CClientDlg * pDlg=(CClientDlg *)pApp->m_pMainWnd;CDialog2 * pDlg2=&(pDlg->dlg2);CFileDialog dlg(true,"*","",OFN_ALLOWMULTISELECT,NULL);if(dlg.DoModal()=IDOK)pathname=dlg.GetPathName();pDlg2->SetDlgItemText(IDC_EDIT_PATHNAME,pathname);elsepathname=""pDlg2->SetDlgItemText(IDC_EDIT_PATHNAME,pathname);发送文件功能的实现void CDialog2:OnBUTsendfile() CClientApp * pApp=(CClientApp *)AfxGetApp();CClientDlg * pDlg=(CClientDlg *)pApp->m_pMainWnd;if(pathname=""):AfxMessageBox("请选择文件!");elseCString ctrlstr="&sendfile&"pDlg->toServer(ctrlstr);Info2.i=2;Info2.pctrlProgress=&(pDlg->dlg2.m_progress);CWinThread *Thread1=AfxBeginThread(funConnect2,&Info2);进度条功能的实现点击“发送文件”按钮启动一个线程,具体实现如下:struct threadInfoint i;CProgressCtrl * pctrlProgress;Info;/发送文件 进度条线程UINT funConnect(PVOID p)CServerApp * pApp=(CServerApp *)AfxGetApp();CServerDlg * pDlg=(CServerDlg *)pApp->m_pMainWnd;CDialog2 * pDlg2=&(pDlg->dlg2);if(pDlg2->filesendfailflag=true)pDlg2->MessageBox("文件发送失败");pDlg2->filesendfailflag=false;return 0;pDlg2->GetDlgItem(IDC_BUT_SENDFILE)->EnableWindow(false);pDlg2->SetDlgItemText(IDC_BUT_SENDFILE,"文件发送中.");threadInfo * pInfo=(threadInfo *)p;while(pDlg2->filesendsuccessflag=0)pDlg2->m_progress.ShowWindow(true);int nTemp;for(int i=0;i<100;i+)nTemp=pInfo->i;pInfo->pctrlProgress->SetPos(i);S

    注意事项

    本文(毕业论文 网络经济下电子商务的成本分析.doc)为本站会员(文库蛋蛋多)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开