医院输液监测系统计算机监测界面设计指导[特选参考]_第1页
医院输液监测系统计算机监测界面设计指导[特选参考]_第2页
医院输液监测系统计算机监测界面设计指导[特选参考]_第3页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、医用微机原理与应用课程设计题目:医院输液监测系统计算机监测界面设计一、 任务计算机输液监测界面设计,要求运用串口通信和Visual C+ 6.0中对话框方面的知识,设计出的输液监测界面,能及时准确地反映病人输液的情况,实现输液情况监测、输液速度超限报警功能。二、 目标训练微机应用能力。通过查阅资料等,培养独立分析和解决实际问题的能力。学会写设计报告。三、 课题来源静脉输液是临床常用的基础护理操作,也是医院治疗抢救病人的一个重要手段。 但是,在静脉输液过程中,必须有人护理,以防鼓包和输液结束时血液倒流等安全事故发生,尤其对术后几乎需要24小时不间断输液的患者的监护,更是让护理者身心憔悴,当护理者

2、发生困倦时,极易发生事故。因此,在医院里出现了有输液患者就有陪护的现象,既浪费了人力,又没有充分利用护士的资源。针对这一问题,利用计算机对输液监测,能很好的反映当前病人输液的情况,及时给医务人员提供病人输液的信息,从而提高对病人的护理水平,有效减轻医护人员的工作负担。四、 医院输液监测系统的组成系统主要对医院输液病人的输液情况进行监测,当病人开始输液时,系统能自动监测出当前输液的滴数和速度,并且当输液速度过高或过低时,能发出报警,以便值班医护人员及时处理。本系统由输液监测界面(计算机)和输液监测器(下位机)两部分组成。输液监测器(下位机)主要负责的是输液信号的监测、提取和传输,当有输液信号发生

3、时,下位机监测到信号,并向计算机发送信息;输液监测界面(计算机)则主要负责输液信息的显示和报警,当下位机向计算机发送信息时,输液监测界面(计算机)将信息处理并显示成相关的输液信息:滴速和滴数,并且在输液信息超出允许的范围时发出相应的报警。它们的组成示意图如图1所示:图1病房中每一个病床前都设置了一个输液监测器(下位机),病人的输液信息由以单片机为核心的输液监测器(下位机)进行监测、提取和传送,各个病房中病人的输液信息则通过通信系统反映到医务人员的值班室的计算机上,以便医务人员进行实时的监测。下位机由单片机构成,完成输液信息的监测、提取和传送。病人输液信息的监测由光电对管完成,单片机负责对病人输

4、液数据的读取、分析和处理,利用串口通信与计算机进行通信。在医务人员值班室计算机上运行的输液监测界面(计算机),对病人输液的信息进行记录和管理,它的主要功能是:输液情况监测、输液速度超限报警。五、 计算机界面设计框图 根据任务要求,医院输液监测系统计算机软件主要功能是:输液情况监测、输液速度超限报警,此外,还包括串口设置及时间显示。输液监测系统计算机的结构如图2所示:图2输液监测系统结构图 输液监测模块完成对当前输液病人的输液情况监测任务,其中包括输液滴数和输液速度的显示,还有输液指示灯与液滴同步闪烁。 输液超限报警模块负责输液过程中出现的输液速度过快、过慢以及输液结束的报警,当出现上述情况时,

5、计算机中会出现文字提示信息并且下位机会发出报警。 串口设置模块主要是开启上、下位机之间的通信,有时在进行实验时,各台计算机的串口设置不尽相同,因此,这个模块也是必不可少的。 显示时间模块顾名思义是显示当前时间。六、 要求1. 设计界面反映作者的学号,姓名,并有自己的特点。2. 程序运行正常,能通过串口与单片机进行通信。3. 程序调试后存在盘上。4. 写出设计报告,要求有如下内容:任务。设计思路与框图。工具软件介绍。界面设计裁图及说明。关键程序说明。程序调试记录及说明。运行结果及说明。收获体会等。参考文献。七、 参考资料:1.朱定华.微型计算机原理及应用.电子工业出版社,2000.12.吴金戌.

6、8051单片机实践与应用.清华大学出版社,2002.93. 张志明.C+语言与面向对象的设计.重庆:重庆大学出版社.2001.94. 龚建伟、熊光明.Visual C+/Turbo C 串口通信编程实践.北京:电子工业出版社,2004.105.杨鸿雁.PowerBuilder8.0实例入门.海洋出版社,2002.66.李朝青.PC机及单片机数据通信技术.北京航空航天大学出版社,20017.李朝青.单片机原理及接口技术.北京航空航天大学出版社,1998.118.杨小川.PROTEL DXP设计指导教程.清华大学出版社,2003.119.张龙祥.数据库原理与设计.人民邮电出版社,2002.710.

7、余学飞.医学电子仪器原理与设计.华南理工大学出版社,200311.新电脑课堂.Visual C+编程篇.北京:电子工业出版社,2004.112.求是科技.单片机通信技术与工程实践.北京:人民邮电出版社,2005.113.甘玲、邱劲.面向对象技术与Visual C+.北京:清华大学出版社,2004.814.http:/www.healthAtoZ.com/15.http://16.http://17.http://附参考实例:主界面程序设计医院输液监测系统运行时的主界面如图3-2所示。我们用Visual C+6.0编制一个

8、基于对话框的应用监测程序,主界面对话框类名是“CHospitalDlg”。图3-2 医院输液监测系统监测界面下面是主界面初始化时执行的代码,主要起到初始化串口、设置定时器时间等作用,代码如下:BOOL CHospitalDlg:OnInitDialog()CDialog:OnInitDialog();/ Add About. menu item to system menu./ IDM_ABOUTBOX must be in the system command range.ASSERT(IDM_ABOUTBOX & 0xFFF0) = IDM_ABOUTBOX);ASSERT(IDM_ABO

9、UTBOX AppendMenu(MF_SEPARATOR);pSysMenu-AppendMenu(MF_STRING,IDM_ABOUTBOX, strAboutMenu);/ Set the icon for this dialog. The framework does this automatically/ when the applications main window is not a dialogSetIcon(m_hIcon, TRUE);/ Set big iconSetIcon(m_hIcon, FALSE); / Set small icon/ TODO: Add e

10、xtra initialization herem_Number.SetCurSel(0);/初始选择串口1m_Speed.SetCurSel(4);/初始选择4800m_Parity.SetCurSel(0);/初始选择NONEm_DataBits.SetCurSel(0);/初始选择8m_StopBits.SetCurSel(0);/初始选择1m_hIconRed = AfxGetApp()-LoadIcon(IDI_ICON_RED);m_hIconOff= AfxGetApp()-LoadIcon(IDI_ICON_OFF);/m_hIconGreen= AfxGetApp()-Loa

11、dIcon(IDI_ICON_GREEN);m_nSpeed=4800;m_nNumber=1;m_cParity=N;m_nDataBits=8;m_nStopBits=1;m_dwCommEvents = EV_RXFLAG | EV_RXCHAR;CString strStatus;if(m_Port.InitPort(this,m_nNumber,m_nSpeed,m_cParity,m_nDataBits,m_nStopBits,m_dwCommEvents,512)m_Port.StartMonitoring();strStatus.Format(STATU:COM%d OPENE

12、D,%d,%c,%d,%d,m_nNumber, m_nSpeed,m_cParity,m_nDataBits,m_nStopBits);/初始时,串口指示灯亮,实时监测灯灭m_ctrlIconOpenOff2.SetIcon(m_hIconRed); m_ctrlIconOpenOff1.SetIcon(m_hIconOff);/当前状态:串口打开,无奇偶校验,8数据位,1停止位);elseAfxMessageBox(没有发现此串口或串口被占用!);/提示信息m_ctrlIconOpenOff2.SetIcon(m_hIconOff);m_ctrlPortStatus.SetWindowTe

13、xt(strStatus);/ShowWindow(SW_SHOW); /激活窗口,并以当前的大小和位置显示m_ctrlAutoClear.SetCheck(0);/初始化未选中“自动清空”m_ctrlStopDisp.SetCheck(0);/初始化未选中“刷新显示”m_animIcon.SetImageList(IDB_ANIM_IMGLIST,4,RGB(0,0,0); SetTimer(1,1000,NULL); /设置定时器,定时时间控制动作的快慢 SetTimer(2,10000,NULL);UpdateData(FALSE);return TRUE; / return TRUE

14、unless you set the focus to a control在主界面设计中,使用了与下位机进行串口通信的CserialPort类,CserialPort类是由Remon Spekreijse提供的免费串口类,它是一个非常好用的多线程串口编程工具,用它可以很轻松地完成一般串口编程任务,并且与MSComm控件(Micosoft Communication Control控件)相比,这个类打包时,不需要加入其他的文件,而且函数都是开放透明的,允许我们进行改造。其工作流程如下: 首先设置好串口参数,再开启串口监测工作线程,串口监测工作线程监测到串口接收到的数据、流控制事件或者其他串口事件

15、后,就以消息方式通知主程序,激发消息处理函数来进行数据处理,这是对接收数据而言的;发送数据可直接向串口发送。CserialPort类定义的消息如表3-1所示。消息名称消息号功能说明WM_COMM_BREAK_DETECTEDWM_USER+1检测到输入中断WM_COMM_CTS_DETECTEDWM_USER+2检测到CTS(清除发送)信号状态改变WM_COMM_DSR_DETECTEDWM_USER+3检测到DSR(数据设备准备就绪)信号状态改变WM_COMM_ERR_DETECTEDWM_USER+4发生线状态错误(包括CE_FRAME,CE_OVERRUN和CE_RXPARITY)WM_

16、COMM_RING_DETECTEDWM_USER+5检测到响铃指示信号WM_COMM_RLSD_DETECTEDWM_USER+6检测到RLSD(接收线信号)状态改变WM_COMM_RXCHARWM_USER+7接收到一个字符并已放入接收缓冲区WM_COMM_RXFLAG_DETECTEDWM_USER+8检测到接收到字符(该字符已放入接收缓冲区)事件WM_COMM_TXEMPTY_DETECTEDWM_USER+9检测到发送缓冲区最后一个字符已经被发送表3-1 CserialPort类消息说明输液信息实时监测程序设计 在输液信息实时监测的设计中,我们设置了滴速、滴数、提示框以及指示灯,其中

17、提示框是当监测的输液信息超限时用于文字提示,指示灯则与滴数同步闪烁,更形象地反映当前输液状态。其图形如下3-3图所示:图3-3 输液信息实时监测输液信息实时监测部分它的控件及属性如下表3-2:控件控件IDCaption(标题)需要添加的变量及变量类型组框IDC_STATIC监测静态文本IDC_STATIC滴数编辑框IDC_EDIT_RXCOUNTm_RXCOUNT CString静态文本IDC_STATIC滴速编辑框IDC_EDIT_SPEED1m_SPEED1 CString编辑框IDC_EDIT_INTIMEm_Edit CString按钮IDC_BUTTON_INTIME实时监测图像ID

18、C_STATIC_OPENOFF1m_ctrlIconOpenOff1 SCtatic表3-2 输液信息实时监测控件属性在监测界面运行时,输液信息的监测与串口通信的联系较紧密,因为输液监测的信息是由下位机传给计算机的,而上、下位机之间必须靠串口通信完成。下面是各个控件运行的代码:/串口消息处理函数OnCommunication/static long rxdatacount=1; /该变量用于记录输液滴数static int ontimebb=0;/用于实时监测开关static int oldrxdatacount=0;/用于测速static int oldrxdatacount1=0;/用于

19、报警/WPARAM和LPARAM是多态数据类型,可以分别理解为char和integer类型数据LONG CHospitalDlg:OnCommunication(WPARAM ch, LPARAM port)/显示滴数/rxdatacount+; /记录输液的滴数CString strTemp;/定义一个字符串变量strTemp.Format(%01d,ch);m_RXCOUNT=strTemp; /显示输液的滴数UpdateData(FALSE);if(rxdatacount%2=0 & ontimebb=1 ) /实时监测指示灯m_ctrlIconOpenOff1.SetIcon(m_hI

20、conRed);elsem_ctrlIconOpenOff1.SetIcon(m_hIconOff);return 0;/实时监测/void CHospitalDlg:OnButtonIntime() if(ontimebb=0)ontimebb=1;m_ctrlIconOpenOff1.SetIcon(m_hIconRed);elseontimebb=0;m_ctrlIconOpenOff1.SetIcon(m_hIconOff); 此外,由于输液滴速的监测和文字提示报警有严格的时间控制,因此,这两个控件的代码写在这定时器部分,具体代码如下:/定时器(动画效果)/void CHospital

21、Dlg:OnTimer(UINT nIDEvent) / TODO: Add your message handler code here and/or call defaultif(nIDEvent=1)m_animIcon.ShowNextImage();/显示下一幅图像 CString strTemp;/定义一个字符串变量 strTemp.Format(%01d,(rxdatacount-oldrxdatacount); m_SPEED1=strTemp+滴/秒; /显示输液的滴速CString Timenow;/定义一个字符串CTime tm;/定义一个CTime对象tmtm=CTim

22、e:GetCurrentTime();/将当前时间给tmTimenow=tm.Format(%Y年%m月%d日%X);/使Timenow的输出格式为%Y年%m月%d日m_ctrlTIMENOW.SetWindowText(Timenow);/在静态文本框中显示当前时间if(m_ctrlAutoClear.GetCheck()/自动清空功能m_Edit.Empty();/清空接收区UpdateData(FALSE); UpdateData(FALSE); oldrxdatacount=rxdatacount;else if(nIDEvent=2) m_Edit=; if(rxdatacount-

23、oldrxdatacount1)/10)3) m_Edit=滴速过快!; UpdateData(FALSE); oldrxdatacount1=rxdatacount;CDialog:OnTimer(nIDEvent);串口通信中串口程序设计 其实,这部分并不应该出现在主界面中,但是串口通信方面的内容又是我们这次设计的一个重要内容,没有这部分主界面也显得“空空荡荡”,而且在调试过程中,不同的计算机的串口设置也不同,加上这部分就省去了很多麻烦,所以我们将这部分也加到主界面中。 这部分主要完成串口的设置,为上、下位机通信作准备,其图形如下图3-4所示:图3-4 串口通信设置串口通信部分其控件及属性

24、如下表3-3所示:控件控件ID输入列表框项目Caption(标题)需要添加的变量及变量类型组框IDC_STATIC串口设置静态文本IDC_STATIC_NUMBER串口号组合框IDC_COMBO_NUMBERCOM1,COM2,COM3,COM4,COM5m_NumberCComboBox静态文本IDC_STATIC_SPEED波特率组合框IDC_COMBO_SPEED300,600,1200,2400,4800,9600,19200,38400,43000,56000,57600,115200m_SpeedCComboBox静态文本IDC_STATIC_PARITY校验位组合框IDC_COM

25、BO_PARITYNONE、ODD、EVENm_ParityCComboBox静态文本IDC_STATIC_DATABITS数据位组合框IDC_COMBO_DATABITS8、7、6m_DataBitsCComboBox静态文本IDC_STATIC_STOPBITS停止位组合框IDC_COMBO_STOPBITS1、2m_StopBitsCComboBox静态文本IDC_STATIC_STATUSSTATUS:m_ctrlPortStatusCstatic按钮IDC_BUTTON_STOP关闭串口m_ctrlStopCButton图像IDC_STATIC_OPENOFF2m_ctrlIconO

26、penOff2 SCtatic表3-3 串口设置控件属性下面是串口通信中串口设置控件的代码:/串口号/void CHospitalDlg:OnSelendokComboNumber() / TODO: Add your control notification handler code hereif(m_Port.m_hComm!=NULL)m_Port.ClosePort();/将组合框列表框中当前选中的项的下标加1,然后给m_nNumberm_nNumber=m_Number.GetCurSel()+1;CString strStatus;/定义一个字符串变量if(m_Port.InitP

27、ort(this,m_nNumber,m_nSpeed,m_cParity,m_nDataBits,m_nStopBits,m_dwCommEvents,512)/检查串口是否完成初始化if(!m_bStop)/若“关闭串口”按钮没有按下,则进行如下操作m_Port.StartMonitoring();m_ctrlIconOpenOff2.SetIcon(m_hIconRed);/串口灯亮strStatus.Format(STATU:COM%dOPENED,%d,%c,%d,%d,m_nNumber, m_nSpeed,m_cParity,m_nDataBits,m_nStopBits);/显

28、示串口状态else/若“关闭串口”按钮已按下,则进行如下操作/若串口处于打开状态,将消息“打开串口”送到控件上m_ctrlStop.SetWindowText(打开串口);m_ctrlIconOpenOff2.SetIcon(m_hIconOff);/串口灯灭m_Port.ClosePort();/关闭串口 strStatus.Format(STATU:COM%dOPENED,%d,%c,%d,%d,m_nNumber, m_nSpeed,m_cParity,m_nDataBits,m_nStopBits);/显示串口状态m_ctrlPortStatus.SetWindowText(strSt

29、atus);else/若没有完成初始化AfxMessageBox(没有发现此串口或串口被占用!);/提示信息m_ctrlIconOpenOff2.SetIcon(m_hIconOff);/波特率/void CHospitalDlg:OnSelendokComboSpeed() / TODO: Add your control notification handler code hereCString temp;/定义一个字符串变量int i=m_Speed.GetCurSel();/将组合框列表框中所选中的项的下标给iswitch(i)/选择波特率case 0:i=300;break;case

30、 1:i=600;break;case 2:i=1200;break;case 3:i=2400;break;case 4:i=4800;break;case 5:i=9600;break;case 6:i=19200;break;case 7:i=38400;break;case 8:i=43000;break;case 9:i=56000;break;case 10:i=57600;break;case 11:i=115200;break;default:break;m_nSpeed=i;/将i赋值给m_nSpeedCString strStatus;/定义一个字符串变量if(m_Port

31、.InitPort(this,m_nNumber,m_nSpeed,m_cParity,m_nDataBits,m_nStopBits,m_dwCommEvents,512)/检查串口是否完成初始化if(!m_bStop)/若“关闭串口”按钮没有按下,则进行如下操作m_Port.StartMonitoring();m_ctrlIconOpenOff2.SetIcon(m_hIconRed);/串口灯亮strStatus.Format(STATU:COM%dOPENED,%d,%c,%d,%d,m_nNumber, m_nSpeed,m_cParity,m_nDataBits,m_nStopBi

32、ts);/显示串口状态else/若“关闭串口”按钮已按下,则进行如下操作/若串口处于打开状态,将消息“打开串口”送到控件上m_ctrlStop.SetWindowText(打开串口);m_ctrlIconOpenOff2.SetIcon(m_hIconOff);/串口灯灭m_Port.ClosePort();/关闭串口strStatus.Format(STATU:COM%dCLOSED,%d,%c,%d,%d,m_nNumber, m_nSpeed,m_cParity,m_nDataBits,m_nStopBits);/显示串口状态m_ctrlPortStatus.SetWindowText(

33、strStatus);else/若没有完成初始化AfxMessageBox(没有发现此串口或串口被占用!);/提示信息m_ctrlIconOpenOff2.SetIcon(m_hIconOff);/校验位/void CHospitalDlg:OnSelendokComboParity() / TODO: Add your control notification handler code herechar temp;/定义一个字符变量int i=m_Parity.GetCurSel();/将组合框列表框中所选中的项的下标给iswitch(i)/选择校验位case 0:temp=N;break;

34、case 1:temp=O;break;case 2:temp=E;break;m_cParity=temp;/将temp的值给m_cParityCString strStatus;/定义一个字符串变量if(m_Port.InitPort(this,m_nNumber,m_nSpeed,m_cParity,m_nDataBits,m_nStopBits,m_dwCommEvents,512)/检查串口是否完成初始化if(!m_bStop)/若“关闭串口”按钮没有按下,则进行如下操作m_Port.StartMonitoring();m_ctrlIconOpenOff2.SetIcon(m_hIc

35、onRed);/串口灯亮strStatus.Format(STATU:COM%dOPENED,%d,%c,%d,%d,m_nNumber, m_nSpeed,m_cParity,m_nDataBits,m_nStopBits);/显示串口状态else/若“关闭串口”按钮已按下,则进行如下操作/若串口处于打开状态,将消息“打开串口”送到控件上m_ctrlStop.SetWindowText(打开串口);m_ctrlIconOpenOff2.SetIcon(m_hIconOff);/串口灯灭m_Port.ClosePort();/关闭串口strStatus.Format(STATU:COM%dCL

36、OSED,%d,%c,%d,%d,m_nNumber, m_nSpeed,m_cParity,m_nDataBits,m_nStopBits);/显示串口状态m_ctrlPortStatus.SetWindowText(strStatus);else/若没有完成初始化AfxMessageBox(没有发现此串口或串口被占用!);/提示信息m_ctrlIconOpenOff2.SetIcon(m_hIconOff);/数据位/void CHospitalDlg:OnSelendokComboDatabits() / TODO: Add your control notification handl

37、er code hereint i=m_DataBits.GetCurSel();/将组合框列表框中所选中的项的下标给iswitch(i)/选择数据位case 0:i=8;break;case 1:i=7;break;case 2:i=6;break;m_nDataBits=i;/将i赋值给m_nDataBitsCString strStatus;/定义一个字符串变量if(m_Port.InitPort(this,m_nNumber,m_nSpeed,m_cParity,m_nDataBits,m_nStopBits,m_dwCommEvents,512)/检查串口是否完成初始化if(!m_b

38、Stop)/若“关闭串口”按钮没有按下,则进行如下操作m_Port.StartMonitoring();m_ctrlIconOpenOff2.SetIcon(m_hIconRed);/串口灯亮strStatus.Format(STATU:COM%dOPENED,%d,%c,%d,%d,m_nNumber, m_nSpeed,m_cParity,m_nDataBits,m_nStopBits);/显示串口状态else/若“关闭串口”按钮已按下,则进行如下操作/若串口处于打开状态,将消息“打开串口”送到控件上m_ctrlStop.SetWindowText(打开串口);m_ctrlIconOpen

39、Off2.SetIcon(m_hIconOff);/串口灯灭m_Port.ClosePort();/关闭串口strStatus.Format(STATU:COM%dCLOSED,%d,%c,%d,%d,m_nNumber, m_nSpeed,m_cParity,m_nDataBits,m_nStopBits);/显示串口状态m_ctrlPortStatus.SetWindowText(strStatus);else/若没有完成初始化AfxMessageBox(没有发现此串口或串口被占用!);/提示信息m_ctrlIconOpenOff2.SetIcon(m_hIconOff);/停止位/voi

40、d CHospitalDlg:OnSelendokComboStopbits() / TODO: Add your control notification handler code here/将组合框列表框中所选中的项的下标给iint i=m_StopBits.GetCurSel();switch(i)/选择停止位case 0:i=1;break;case 1:i=2;break;m_nStopBits=i;/将i赋值给m_nStopBitsCString strStatus;/定义一个字符串变量if(m_Port.InitPort(this,m_nNumber,m_nSpeed,m_cPa

41、rity,m_nDataBits,m_nStopBits,m_dwCommEvents,512)/检查串口是否完成初始化if(!m_bStop)/若“关闭串口”按钮没有按下,则进行如下操作m_Port.StartMonitoring();m_ctrlIconOpenOff2.SetIcon(m_hIconRed);/串口灯亮strStatus.Format(STATU:COM%dOPENED,%d,%c,%d,%d,m_nNumber, m_nSpeed,m_cParity,m_nDataBits,m_nStopBits);/显示串口状态else/若“关闭串口”按钮已按下,则进行如下操作/若串口处于打开状态,将消息“打开串口”送到控件上m_ctrlStop.SetWindowText(打开串口);m_ctrlIconOpe

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论