基本信息
源码名称:操作系统课程设计:磁盘调度模拟程序
源码大小:58.15M
文件格式:.zip
开发语言:C/C++
更新时间:2019-06-29
友情提示:(无需注册或充值,赞助后即可获取资源下载链接)
嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):813200300
本次赞助数额为: 2 元×
微信扫码支付:2 元
×
请留下您的邮箱,我们将在2小时内将文件发到您的邮箱
源码介绍
磁盘调度调度: 建立磁盘的数据结构描述; 使用两种方式产生作业:(a)自动产生, (b)手工输入; 在屏幕上显示每个作业的执行情况; 时间的流逝可用下面几种方法模拟:(a)按键盘,每按一次可认为过一个时间单位; (b) 响应WM_TIMER; 将一批磁盘请求的执行情况存入磁盘文件,以后可以读出并重放。 支持算法:FCFS SSTF SCAN CSCAN FSCAN
磁盘调度调度: 建立磁盘的数据结构描述; 使用两种方式产生作业:(a)自动产生, (b)手工输入; 在屏幕上显示每个作业的执行情况; 时间的流逝可用下面几种方法模拟:(a)按键盘,每按一次可认为过一个时间单位; (b) 响应WM_TIMER; 将一批磁盘请求的执行情况存入磁盘文件,以后可以读出并重放。 支持算法:FCFS SSTF SCAN CSCAN FSCAN
// osDlg.cpp : 实现文件 // #include "stdafx.h" #include "os.h" #include "osDlg.h" #include <iostream> #include <fstream> #include <string> #include "Dia.h" #ifdef _DEBUG #define new DEBUG_NEW #endif //void FIFO(); //void SSTF(); //void SCAN(); //void CSCAN(); //void SN(); //void FSCAN1(); //void FSCAN2(); // 用于应用程序“关于”菜单项的 CAboutDlg 对话框 int c1[100],c2[100],c3[100],num=0,ks=0,dq=0,next,zb,len,fx=1,i,j,h,num1,num2=0,num3,c4[100],c5[100],c6[100],fx2=1,n=0,pdfx=0,c7[100],length1,xl,loc1,loc2,ydjl,nydjl,wz1,wz2; double plen,pydjl; class CAboutDlg : public CDialog { public: CAboutDlg(); // 对话框数据 enum { IDD = IDD_ABOUTBOX }; protected: virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持 // 实现 protected: DECLARE_MESSAGE_MAP() }; CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD) { } void CAboutDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); } BEGIN_MESSAGE_MAP(CAboutDlg, CDialog) END_MESSAGE_MAP() // CosDlg 对话框 CosDlg::CosDlg(CWnd* pParent /*=NULL*/) : CDialog(CosDlg::IDD, pParent) { m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME); } void CosDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); DDX_Control(pDX, IDC_EDIT9, SSS); } BEGIN_MESSAGE_MAP(CosDlg, CDialog) ON_WM_SYSCOMMAND() ON_WM_PAINT() ON_WM_QUERYDRAGICON() //}}AFX_MSG_MAP ON_BN_CLICKED(IDC_BUTTON3, &CosDlg::OnBnClickedButton3) ON_BN_CLICKED(IDCANCEL, &CosDlg::OnBnClickedCancel) ON_BN_CLICKED(IDC_BUTTON5, &CosDlg::OnBnClickedButton5) ON_BN_CLICKED(IDC_BUTTON1, &CosDlg::OnBnClickedButton1) ON_BN_CLICKED(IDC_BUTTON11, &CosDlg::OnBnClickedButton11) ON_EN_CHANGE(IDC_EDIT9, &CosDlg::OnEnChangeEdit9) ON_EN_CHANGE(IDC_EDIT1, &CosDlg::OnEnChangeEdit1) ON_BN_CLICKED(IDC_BUTTON10, &CosDlg::OnBnClickedButton10) ON_EN_CHANGE(IDC_EDIT2, &CosDlg::OnEnChangeEdit2) ON_BN_CLICKED(IDC_RADIO1, &CosDlg::OnBnClickedRadio1) ON_BN_CLICKED(IDC_RADIO2, &CosDlg::OnBnClickedRadio2) ON_BN_CLICKED(IDC_BUTTON8, &CosDlg::OnBnClickedButton8) ON_BN_CLICKED(IDC_BUTTON9, &CosDlg::OnBnClickedButton9) ON_BN_CLICKED(IDC_BUTTON2, &CosDlg::OnBnClickedButton2) ON_BN_CLICKED(IDC_BUTTON7, &CosDlg::OnBnClickedButton7) ON_BN_CLICKED(IDC_BUTTON4, &CosDlg::OnBnClickedButton4) ON_BN_CLICKED(IDC_BUTTON6, &CosDlg::OnBnClickedButton6) ON_BN_CLICKED(IDOK, &CosDlg::OnBnClickedOk) ON_WM_CREATE() ON_BN_CLICKED(IDC_BUTTON12, &CosDlg::OnBnClickedButton12) ON_EN_CHANGE(IDC_EDIT10, &CosDlg::OnEnChangeEdit10) ON_WM_TIMER() ON_BN_CLICKED(IDC_BUTTON13, &CosDlg::OnBnClickedButton13) END_MESSAGE_MAP() // CosDlg 消息处理程序 BOOL CosDlg::OnInitDialog() { CDialog::OnInitDialog(); // 将“关于...”菜单项添加到系统菜单中。 // IDM_ABOUTBOX 必须在系统命令范围内。 ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX); ASSERT(IDM_ABOUTBOX < 0xF000); CMenu* pSysMenu = GetSystemMenu(FALSE); if (pSysMenu != NULL) { CString strAboutMenu; strAboutMenu.LoadString(IDS_ABOUTBOX); if (!strAboutMenu.IsEmpty()) { pSysMenu->AppendMenu(MF_SEPARATOR); pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu); } } // 设置此对话框的图标。当应用程序主窗口不是对话框时,框架将自动 // 执行此操作 SetIcon(m_hIcon, TRUE); // 设置大图标 SetIcon(m_hIcon, FALSE); // 设置小图标 // TODO: 在此添加额外的初始化代码 //CPen Pen(PS_SOLID,3,RGB(0,0,255)); //CClientDC cdc(this); //CPen *OldPen=cdc.SelectObject(&Pen); //cdc.Rectangle(30,310,710,500); return TRUE; // 除非将焦点设置到控件,否则返回 TRUE } void CosDlg::OnSysCommand(UINT nID, LPARAM lParam) { if ((nID & 0xFFF0) == IDM_ABOUTBOX) { CAboutDlg dlgAbout; dlgAbout.DoModal(); } else { CDialog::OnSysCommand(nID, lParam); } } // 如果向对话框添加最小化按钮,则需要下面的代码 // 来绘制该图标。对于使用文档/视图模型的 MFC 应用程序, // 这将由框架自动完成。 void CosDlg::OnPaint() { if (IsIconic()) { CPaintDC dc(this); // 用于绘制的设备上下文 SendMessage(WM_ICONERASEBKGND, reinterpret_cast<WPARAM>(dc.GetSafeHdc()), 0); // 使图标在工作矩形中居中 int cxIcon = GetSystemMetrics(SM_CXICON); int cyIcon = GetSystemMetrics(SM_CYICON); CRect rect; GetClientRect(&rect); int x = (rect.Width() - cxIcon 1) / 2; int y = (rect.Height() - cyIcon 1) / 2; // 绘制图标 dc.DrawIcon(x, y, m_hIcon); } else { CPen Pen(PS_SOLID,3,RGB(0,0,255)); CClientDC cdc(this); CPen *OldPen=cdc.SelectObject(&Pen); cdc.Rectangle(30,310,710,500); CDialog::OnPaint(); } } //当用户拖动最小化窗口时系统调用此函数取得光标显示。 // HCURSOR CosDlg::OnQueryDragIcon() { return static_cast<HCURSOR>(m_hIcon); } void CosDlg::OnBnClickedButton3() { loc1=0;loc2=0;ydjl=0;nydjl=0;pydjl=0;wz1=0;wz2=0; CPen Pen1(PS_SOLID,3,RGB(0,0,255)); CClientDC cdc1(this); CPen *OldPen1=cdc1.SelectObject(&Pen1); cdc1.Rectangle(30,310,710,500); len=0; plen=0; len =abs(c1[1]-ks); if(num!=1) { for(i=1;i<num;i ) { len =abs(c1[i]-c1[i 1]); } } plen=(double)((double)(len)/(double)num); //cout<<"移动次序为:"; //cout<<ks; c5[1]=ks; c6[1]=ks; for(i=1;i<=num;i ) { c5[i 1]=c2[i]; c6[i 1]=c2[i]; // cout<<"->"<<c2[i]; } n=num 1; /////////////////////////////////////////// for(i=1;i<n;i ) { int ls1=c6[i]; int ls2=i; for(j=i;j<=n;j ) { if(ls1>c6[j]) { ls1=c6[j]; ls2=j; } } c6[ls2]=c6[i]; c6[i]=ls1; } length1=1; i=1; while(i<n) { c7[length1]=c6[i]; while(c7[length1]==c6[i 1]) i ; i ; if(i<=n) { length1 ; c7[length1]=c6[i]; } else break; } //////////////////////////////////// CPen Pen(PS_SOLID,15,RGB(0,255,0)); CClientDC cdc(this); CPen *OldPen=cdc.SelectObject(&Pen); xl=640/(length1-1); cdc.MoveTo(50,400); cdc.LineTo(50,400); CString mi; mi=itoa(c7[1],new char,10); cdc.TextOutW(43,374,mi); for(i=2;i<=length1;i ) { cdc.MoveTo(50 xl*(i-1),400); cdc.LineTo(50 xl*(i-1),400); mi=itoa(c7[i],new char,10); cdc.TextOutW(43 xl*(i-1),374,mi); } CString qqcx; CString jt; jt="->"; qqcx=itoa(c2[1],new char,10); if(num!=1) { for(i=2;i<=num;i ) { CString cpcx; cpcx=itoa(c2[i],new char,10); qqcx=qqcx jt cpcx; } } GetDlgItem(IDC_EDIT12)->SetWindowText(qqcx); // TODO: 在此添加控件通知处理程序代码 qqcx=itoa(c5[1],new char,10); if(n!=1) { for(i=2;i<=n;i ) { CString cpcx; cpcx=itoa(c5[i],new char,10); qqcx=qqcx jt cpcx; } } GetDlgItem(IDC_EDIT9)->SetWindowText(qqcx); } void CosDlg::OnBnClickedCancel() { // TODO: 在此添加控件通知处理程序代码 //cdc.Rectangle(0,0,1000,1000); OnCancel(); } void CosDlg::OnBnClickedButton5() { loc1=0;loc2=0;ydjl=0;nydjl=0;pydjl=0;wz1=0;wz2=0; CPen Pen1(PS_SOLID,3,RGB(0,0,255)); CClientDC cdc1(this); CPen *OldPen1=cdc1.SelectObject(&Pen1); cdc1.Rectangle(30,310,710,500); len=0; plen=0; for(i=0;i<100;i ) c3[i]=0; if(num==1) { len=abs(c1[1]-ks); } else { next=1; dq=abs(c1[next]-ks); for(i=1;i<=num;i ) { if(dq>abs(c1[i]-ks)) { dq=abs(c1[i]-ks); next=i; } } c3[next]=1; len =dq; c2[1]=c1[next]; zb=next; for(i=2;i<=num;i ) { for(j=1;j<=num;j ) { if(c3[j]==0) { next=j; dq=abs(c1[zb]-c1[next]); break; } } for(j=1;j<=num;j ) { if(dq>abs(c1[zb]-c1[j])&&c3[j]==0) { next=j; dq=abs(c1[zb]-c1[j]); } } c3[next]=1; len =dq; c2[i]=c1[next]; zb=next; } } plen=(double)((double)(len)/(double)num); //cout<<"移动次序为:"; //cout<<ks; c5[1]=ks; c6[1]=ks; for(i=1;i<=num;i ) { c5[i 1]=c2[i]; c6[i 1]=c2[i]; // cout<<"->"<<c2[i]; } n=num 1; /////////////////////////////////////////// for(i=1;i<n;i ) { int ls1=c6[i]; int ls2=i; for(j=i;j<=n;j ) { if(ls1>c6[j]) { ls1=c6[j]; ls2=j; } } c6[ls2]=c6[i]; c6[i]=ls1; } length1=1; i=1; while(i<n) { c7[length1]=c6[i]; while(c7[length1]==c6[i 1]) i ; i ; if(i<=n) { length1 ; c7[length1]=c6[i]; } else break; } /////////////////////////////// CPen Pen(PS_SOLID,15,RGB(0,255,0)); CClientDC cdc(this); CPen *OldPen=cdc.SelectObject(&Pen); xl=640/(length1-1); cdc.MoveTo(50,400); cdc.LineTo(50,400); CString mi; mi=itoa(c7[1],new char,10); cdc.TextOutW(43,374,mi); for(i=2;i<=length1;i ) { cdc.MoveTo(50 xl*(i-1),400); cdc.LineTo(50 xl*(i-1),400); mi=itoa(c7[i],new char,10); cdc.TextOutW(43 xl*(i-1),374,mi); } CString qqcx; CString jt; jt="->"; qqcx=itoa(c1[1],new char,10); if(num!=1) { for(i=2;i<=num;i ) { CString cpcx; cpcx=itoa(c1[i],new char,10); qqcx=qqcx jt cpcx; } } GetDlgItem(IDC_EDIT12)->SetWindowText(qqcx); qqcx=itoa(c5[1],new char,10); if(n!=1) { for(i=2;i<=n;i ) { CString cpcx; cpcx=itoa(c5[i],new char,10); qqcx=qqcx jt cpcx; } } GetDlgItem(IDC_EDIT9)->SetWindowText(qqcx); // TODO: 在此添加控件通知处理程序代码 } void CosDlg::OnBnClickedButton1() { CString WJWZ; GetDlgItem(IDC_EDIT3)->GetWindowText(WJWZ); std::fstream file; file.open( WJWZ, std::ios_base::in ); //file.open; if(pdfx==0) { num=0; for(i=0;i<100;i ) c3[i]=0; while(file>>h&&h>=0) { num ; c1[num]=h; c2[num]=h; c3[num]=h; } } else { num2=0; for(i=0;i<100;i ) c4[i]=0; while(file>>h&&h>=0) { num2 ; c4[num2]=h; } } //CString str; //str.Format("%d", num); /*CString strnum; strnum=itoa(c1[1],new char,10); GetDlgItem(IDC_EDIT9)->SetWindowText(strnum); */ //UpdateData(false); // TODO: 在此添加控件通知处理程序代码 } void CosDlg::OnBnClickedButton11() { CPen Pen(PS_SOLID,3,RGB(0,0,255)); CClientDC cdc(this); CPen *OldPen=cdc.SelectObject(&Pen); cdc.Rectangle(30,310,710,500); num=0;num2=0; wz1=0;wz2=0; fx=1; fx2=1; loc1=0;loc2=0;ydjl=0;nydjl=0;pydjl=0; // TODO: 在此添加控件通知处理程序代码 } void CosDlg::OnEnChangeEdit9() { // TODO: 如果该控件是 RICHEDIT 控件,则它将不会 // 发送该通知,除非重写 CDialog::OnInitDialog() // 函数并调用 CRichEditCtrl().SetEventMask(), // 同时将 ENM_CHANGE 标志“或”运算到掩码中。 // TODO: 在此添加控件通知处理程序代码 } void CosDlg::OnEnChangeEdit1() { // TODO: 如果该控件是 RICHEDIT 控件,则它将不会 // 发送该通知,除非重写 CDialog::OnInitDialog() // 函数并调用 CRichEditCtrl().SetEventMask(), // 同时将 ENM_CHANGE 标志“或”运算到掩码中。 // TODO: 在此添加控件通知处理程序代码 } void CosDlg::OnBnClickedButton10() { // TODO: 在此添加控件通知处理程序代码 CString kscd; GetDlgItem(IDC_EDIT2)->GetWindowText(kscd); if(pdfx==0) ks=_wtoi(kscd); //kscd=itoa(ks,new char,10); /*CString mi; mi=itoa(ks,new char,10); GetDlgItem(IDC_EDIT1)->SetWindowText(mi);*/ } void CosDlg::OnEnChangeEdit2() { // TODO: 如果该控件是 RICHEDIT 控件,则它将不会 // 发送该通知,除非重写 CDialog::OnInitDialog() // 函数并调用 CRichEditCtrl().SetEventMask(), // 同时将 ENM_CHANGE 标志“或”运算到掩码中。 // TODO: 在此添加控件通知处理程序代码 } void CosDlg::OnBnClickedRadio1() { if(pdfx==0) fx=2; else fx2=2; // TODO: 在此添加控件通知处理程序代码 } void CosDlg::OnBnClickedRadio2() { if(pdfx==0) fx=1; else fx2=1; // TODO: 在此添加控件通知处理程序代码 } void CosDlg::OnBnClickedButton8() { SetTimer(0,5000,NULL); /*CString strnum; strnum=itoa(fx,new char,10); GetDlgItem(IDC_EDIT8)->SetWindowText(strnum);*/ /* loc1 ; loc2=loc1 1; CString sstr; if(loc1<n) { CPen Pen3(PS_SOLID,15,RGB(255,255,0)); CClientDC cdc3(this); CPen *OldPen3=cdc3.SelectObject(&Pen3); CPen Pen4(PS_SOLID,15,RGB(255,0,255)); CClientDC cdc4(this); CPen *OldPen4=cdc4.SelectObject(&Pen4); CPen Pen(PS_SOLID,3,RGB(0,0,255)); CClientDC cdc(this); CPen *OldPen=cdc.SelectObject(&Pen); cdc.Rectangle(30,310,710,500); CPen Pen1(PS_SOLID,15,RGB(0,255,0)); CClientDC cdc1(this); CPen *OldPen1=cdc1.SelectObject(&Pen1); xl=640/(length1-1); cdc1.MoveTo(50,400); cdc1.LineTo(50,400); CString mi; mi=itoa(c7[1],new char,10); cdc1.TextOutW(43,374,mi); for(i=2;i<=length1;i ) { cdc1.MoveTo(50 xl*(i-1),400); cdc1.LineTo(50 xl*(i-1),400); mi=itoa(c7[i],new char,10); cdc1.TextOutW(43 xl*(i-1),374,mi); } if(wz2>=0) { cdc4.MoveTo(50 xl*(wz2-1),400); cdc4.LineTo(50 xl*(wz2-1),400); } for(i=1;i<=length1;i ) { if(c5[loc1]==c7[i]) { wz1=i; } else {} if(c5[loc2]==c7[i]) {wz2=i;} else {} } sstr=itoa(c5[loc1],new char,10); GetDlgItem(IDC_EDIT4)->SetWindowText(sstr); sstr=itoa(c5[loc2],new char,10); GetDlgItem(IDC_EDIT5)->SetWindowText(sstr); ydjl=abs(c5[loc1]-c5[loc2]); sstr=itoa(ydjl,new char,10); GetDlgItem(IDC_EDIT6)->SetWindowText(sstr); nydjl =ydjl; sstr=itoa(nydjl,new char,10); GetDlgItem(IDC_EDIT7)->SetWindowText(sstr); CPen Pen2(PS_SOLID,2,RGB(255,0,0)); CClientDC cdc2(this); CPen *OldPen2=cdc2.SelectObject(&Pen2); if(wz1<wz2) { Sleep(1000); cdc3.MoveTo(50 xl*(wz1-1),400); cdc3.LineTo(50 xl*(wz1-1),400); Sleep(1000); mi=itoa(ydjl,new char,10); cdc1.TextOutW(43 xl*(wz1 wz2-2)/2,406,mi); cdc2.MoveTo(50 xl*(wz1-1) 9,400); cdc2.LineTo(50 xl*(wz2-1)-9,400); cdc2.MoveTo(50 xl*(wz2-1)-9,400); cdc2.LineTo(50 xl*(wz2-1)-15,393); cdc2.MoveTo(50 xl*(wz2-1)-9,400); cdc2.LineTo(50 xl*(wz2-1)-15,407); Sleep(1000); cdc4.MoveTo(50 xl*(wz2-1),400); cdc4.LineTo(50 xl*(wz2-1),400); } else if(wz1>wz2) { Sleep(1000); cdc3.MoveTo(50 xl*(wz1-1),400); cdc3.LineTo(50 xl*(wz1-1),400); Sleep(1000); mi=itoa(ydjl,new char,10); cdc1.TextOutW(43 xl*(wz1 wz2-2)/2,406,mi); cdc2.MoveTo(50 xl*(wz1-1)-9,400); cdc2.LineTo(50 xl*(wz2-1) 9,400); cdc2.MoveTo(50 xl*(wz2-1) 9,400); cdc2.LineTo(50 xl*(wz2-1) 15,393); cdc2.MoveTo(50 xl*(wz2-1) 9,400); cdc2.LineTo(50 xl*(wz2-1) 15,407); Sleep(1000); cdc4.MoveTo(50 xl*(wz2-1),400); cdc4.LineTo(50 xl*(wz2-1),400); } else { Sleep(1000); cdc3.MoveTo(50 xl*(wz1-1),400); cdc3.LineTo(50 xl*(wz1-1),400); Sleep(1000); mi=itoa(ydjl,new char,10); cdc1.TextOutW(43 xl*(wz1 wz2-2)/2,406,mi); Sleep(1000); cdc4.MoveTo(50 xl*(wz2-1),400); cdc4.LineTo(50 xl*(wz2-1),400); } } else { pydjl=(double)((double)nydjl/(double)num); sstr.Format(_T("%f"),pydjl); GetDlgItem(IDC_EDIT8)->SetWindowText(sstr); }*/ // TODO: 在此添加控件通知处理程序代码 } void CosDlg::OnBnClickedButton9() { loc1=0;loc2=0;ydjl=0;nydjl=0;pydjl=0;wz1=0;wz2=0; CPen Pen1(PS_SOLID,3,RGB(0,0,255)); CClientDC cdc1(this); CPen *OldPen1=cdc1.SelectObject(&Pen1); cdc1.Rectangle(30,310,710,500); // TODO: 在此添加控件通知处理程序代码 ks=c2[num]; fx=fx2; num3=num; num=num2; for(i=1;i<=num;i ) c3[i]=c4[i]; int a,b; for(i=1;i<num;i ) { a=c3[i]; b=i; for(j=i;j<=num;j ) { if(a>c3[j]) { a=c3[j]; b=j; } } c3[b]=c3[i]; c3[i]=a; } if(fx==1) { num1=num; for(i=1;i<=num;i ) { if(c3[i]>=ks) { num1=i; break; } } if(num1==1) { for(i=1;i<=num;i ) c2[i]=c3[i]; } else if(num1<num) { for(i=num1;i<=num;i ) c2[i-num1 1]=c3[i]; for(i=num1-1;i>=1;i--) c2[num-i 1]=c3[i]; } else { for(i=num;i>=1;i--) c2[num-i 1]=c3[i]; } len =abs(c2[1]-ks); if(num>1) { for(i=1;i<num;i ) { len =abs(c2[i 1]-c2[i]); } } //plen=(double)((double)(len)/(double)num); // cout<<"移动次序为:"; /* for(i=1;i<=num;i ) { cout<<"->"<<c2[i]; } */ // cout<<endl; //cout<<"磁头移动总距离为:"<<len<<endl; // cout<<"磁头移动平均距离为:"<<plen<<endl; } else if(fx==2) { num1=1; for(i=num;i>=1;i--) { if(c3[i]<=ks) { num1=i; break; } } if(num1==num) { for(i=num;i>=1;i--) c2[num-i 1]=c3[i]; } else if(num1>1) { for(i=num1;i>=1;i--) c2[num1-i 1]=c3[i]; for(i=num1 1;i<=num;i ) c2[i]=c3[i]; } else { for(i=1;i<=num;i ) c2[i]=c3[i]; } len =abs(c2[1]-ks); if(num>1) { for(i=1;i<num;i ) { len =abs(c2[i 1]-c2[i]); } } //plen=(double)((double)(len)/(double)num); //cout<<"移动次序为:"; /* for(i=1;i<=num;i ) { cout<<"->"<<c2[i]; } */ //cout<<endl; //cout<<"磁头移动总距离为:"<<len<<endl; //cout<<"磁头移动平均距离为:"<<plen<<endl; } n=num3 num2 1; for(i=1;i<=num2;i ) { c5[i num3 1]=c2[i]; c6[i num3 1]=c2[i]; } /*cout<<c5[1]; for(i=2;i<=n;i ) cout<<"->"<<c5[i]; cout<<endl;*/ plen=(double)((double)(len)/(double)(num3 num2)); /*cout<<"磁头移动总距离为:"<<len<<endl; cout<<"磁头移动平均距离为:"<<plen<<endl;*/ pdfx=0; /////////////////////////////////////////// for(i=1;i<n;i ) { int ls1=c6[i]; int ls2=i; for(j=i;j<=n;j ) { if(ls1>c6[j]) { ls1=c6[j]; ls2=j; } } c6[ls2]=c6[i]; c6[i]=ls1; } length1=1; i=1; while(i<n) { c7[length1]=c6[i]; while(c7[length1]==c6[i 1]) i ; i ; if(i<=n) { length1 ; c7[length1]=c6[i]; } else break; } /////////////////////////////// CPen Pen(PS_SOLID,15,RGB(0,255,0)); CClientDC cdc(this); CPen *OldPen=cdc.SelectObject(&Pen); xl=640/(length1-1); cdc.MoveTo(50,400); cdc.LineTo(50,400); CString mi; mi=itoa(c7[1],new char,10); cdc.TextOutW(43,374,mi); for(i=2;i<=length1;i ) { cdc.MoveTo(50 xl*(i-1),400); cdc.LineTo(50 xl*(i-1),400); mi=itoa(c7[i],new char,10); cdc.TextOutW(43 xl*(i-1),374,mi); } CString qqcx; CString jt; jt="->"; qqcx=itoa(c1[1],new char,10); if(num3!=1) { for(i=2;i<=num3;i ) { CString cpcx; cpcx=itoa(c1[i],new char,10); qqcx=qqcx jt cpcx; } } jt="---"; CString cpcx; cpcx=itoa(c4[1],new char,10); qqcx=qqcx jt cpcx; jt="->"; if(num2!=1) { for(i=2;i<=num2;i ) { CString cpcx; cpcx=itoa(c4[i],new char,10); qqcx=qqcx jt cpcx; } } GetDlgItem(IDC_EDIT12)->SetWindowText(qqcx); qqcx=itoa(c5[1],new char,10); if(n!=1) { for(i=2;i<=n;i ) { CString cpcx; cpcx=itoa(c5[i],new char,10); qqcx=qqcx jt cpcx; } } GetDlgItem(IDC_EDIT9)->SetWindowText(qqcx); } void CosDlg::OnBnClickedButton2() { if(pdfx==0) { CString cdqq; GetDlgItem(IDC_EDIT1)->GetWindowText(cdqq); h=_wtoi(cdqq); if(h>=0) { num ; c1[num]=h; c2[num]=h; c3[num]=h; } } else { CString cdqq; GetDlgItem(IDC_EDIT1)->GetWindowText(cdqq); h=_wtoi(cdqq); if(h>=0) { num2 ; c4[num2]=h; } } // TODO: 在此添加控件通知处理程序代码 } void CosDlg::OnBnClickedButton7() { loc1=0;loc2=0;ydjl=0;nydjl=0;pydjl=0;wz1=0;wz2=0; CPen Pen1(PS_SOLID,3,RGB(0,0,255)); CClientDC cdc1(this); CPen *OldPen1=cdc1.SelectObject(&Pen1); cdc1.Rectangle(30,310,710,500); for(i=1;i<=num;i ) { c2[i]=c1[i]; c3[i]=c1[i]; } int a,b; for(i=1;i<num;i ) { a=c3[i]; b=i; for(j=i;j<=num;j ) { if(a>c3[j]) { a=c3[j]; b=j; } } c3[b]=c3[i]; c3[i]=a; } /*cout<<"确定磁头开始方向,1:向外 2:向内"<<endl;*/ //cin>>fx; if(fx==1) { num1=num; for(i=1;i<=num;i ) { if(c3[i]>=ks) { num1=i; break; } } if(num1==1) { for(i=1;i<=num;i ) c2[i]=c3[i]; } else if(num1<num) { for(i=num1;i<=num;i ) c2[i-num1 1]=c3[i]; for(i=num1-1;i>=1;i--) c2[num-i 1]=c3[i]; } else { for(i=num;i>=1;i--) c2[num-i 1]=c3[i]; } len=abs(c2[1]-ks); if(num>1) { for(i=1;i<num;i ) { len =abs(c2[i 1]-c2[i]); } } plen=(double)((double)(len)/(double)num); //cout<<"移动次序为:"; //cout<<ks; c5[1]=ks; c6[1]=ks; for(i=1;i<=num;i ) { c5[i 1]=c2[i]; c6[i 1]=c2[i]; // cout<<"->"<<c2[i]; } n=num 1; /*cout<<c5[1]; for(i=2;i<=n;i ) { cout<<"->"<<c5[i]; } cout<<endl; cout<<"磁头移动总距离为:"<<len<<endl; cout<<"磁头移动平均距离为:"<<plen<<endl;*/ } else if(fx==2) { num1=1; for(i=num;i>=1;i--) { if(c3[i]<=ks) { num1=i; break; } } if(num1==num) { for(i=num;i>=1;i--) c2[num-i 1]=c3[i]; } else if(num1>1) { for(i=num1;i>=1;i--) c2[num1-i 1]=c3[i]; for(i=num1 1;i<=num;i ) c2[i]=c3[i]; } else { for(i=1;i<=num;i ) c2[i]=c3[i]; } len=abs(c2[1]-ks); if(num>1) { for(i=1;i<num;i ) { len =abs(c2[i 1]-c2[i]); } } plen=(double)((double)(len)/(double)num); //cout<<"移动次序为:"; //cout<<ks; c5[1]=ks; c6[1]=ks; for(i=1;i<=num;i ) { c5[i 1]=c2[i]; c6[i 1]=c2[i]; // cout<<"->"<<c2[i]; } n=num 1; /*cout<<c5[1]; for(i=2;i<=n;i ) { cout<<"->"<<c5[i]; } cout<<endl; cout<<"磁头移动总距离为:"<<len<<endl; cout<<"磁头移动平均距离为:"<<plen<<endl;*/ } /////////////////////////////////////////// for(i=1;i<n;i ) { int ls1=c6[i]; int ls2=i; for(j=i;j<=n;j ) { if(ls1>c6[j]) { ls1=c6[j]; ls2=j; } } c6[ls2]=c6[i]; c6[i]=ls1; } length1=1; i=1; while(i<n) { c7[length1]=c6[i]; while(c7[length1]==c6[i 1]) i ; i ; if(i<=n) { length1 ; c7[length1]=c6[i]; } else break; } /////////////////////////////// CPen Pen(PS_SOLID,15,RGB(0,255,0)); CClientDC cdc(this); CPen *OldPen=cdc.SelectObject(&Pen); xl=640/(length1-1); cdc.MoveTo(50,400); cdc.LineTo(50,400); CString mi; mi=itoa(c7[1],new char,10); cdc.TextOutW(43,374,mi); for(i=2;i<=length1;i ) { cdc.MoveTo(50 xl*(i-1),400); cdc.LineTo(50 xl*(i-1),400); mi=itoa(c7[i],new char,10); cdc.TextOutW(43 xl*(i-1),374,mi); } CString qqcx; CString jt; jt="->"; qqcx=itoa(c1[1],new char,10); if(num!=1) { for(i=2;i<=num;i ) { CString cpcx; cpcx=itoa(c1[i],new char,10); qqcx=qqcx jt cpcx; } } GetDlgItem(IDC_EDIT12)->SetWindowText(qqcx); qqcx=itoa(c5[1],new char,10); if(n!=1) { for(i=2;i<=n;i ) { CString cpcx; cpcx=itoa(c5[i],new char,10); qqcx=qqcx jt cpcx; } } GetDlgItem(IDC_EDIT9)->SetWindowText(qqcx); // TODO: 在此添加控件通知处理程序代码 } void CosDlg::OnBnClickedButton4() { loc1=0;loc2=0;ydjl=0;nydjl=0;pydjl=0;wz1=0;wz2=0; CPen Pen1(PS_SOLID,3,RGB(0,0,255)); CClientDC cdc1(this); CPen *OldPen1=cdc1.SelectObject(&Pen1); cdc1.Rectangle(30,310,710,500); for(i=1;i<=num;i ) { c2[i]=c1[i]; c3[i]=c1[i]; } int a,b; for(i=1;i<num;i ) { a=c3[i]; b=i; for(j=i;j<=num;j ) { if(a>c3[j]) { a=c3[j]; b=j; } } c3[b]=c3[i]; c3[i]=a; } num1=num; for(i=1;i<=num;i ) { if(c3[i]>=ks) { num1=i; break; } } if(num1==1) { for(i=1;i<=num;i ) c2[i]=c3[i]; len=abs(c2[1]-ks); if(num>1) { for(i=1;i<num;i ) { len =abs(c2[i 1]-c2[i]); } } plen=(double)((double)(len)/(double)num); // cout<<"移动次序为:"; //cout<<ks; c5[1]=ks; c6[1]=ks; for(i=1;i<=num;i ) { c5[i 1]=c2[i]; c6[i 1]=c2[i]; } n=num 1; // cout<<c5[1]; // for(i=2;i<=n;i ) // cout<<"->"<<c5[i]; // cout<<endl; // cout<<"磁头移动总距离为:"<<len<<endl; // cout<<"磁头移动平均距离为:"<<plen<<endl; } else if(num1<num) { for(i=num1;i<=num;i ) c2[i-num1 1]=c3[i]; len=abs(c2[1]-ks); for(i=1;i<num-num1 1;i ) len =abs(c2[i 1]-c2[i]); //cout<<"移动次序为:"; c5[1]=ks; c6[1]=ks; for(i=1;i<=num-num1 1;i ) { c5[i 1]=c2[i]; c6[i 1]=c2[i]; } for(i=num1-1;i>=1;i--) c2[num-i 1]=c3[num1-i]; len =c2[num-num1 2]; for(i=num-num1 2;i<num;i ) len =abs(c2[i 1]-c2[i]); plen=(double)((double)(len)/(double)num); c5[num-num1 3]=0; c6[num-num1 3]=0; for(i=num-num1 2;i<=num;i ) { c5[i 2]=c2[i]; c6[i 2]=c2[i]; } n=num 2; //cout<<c5[1]; //for(i=2;i<=n;i ) // cout<<"->"<<c5[i]; //cout<<endl; //cout<<"磁头移动总距离为:"<<len<<endl; //cout<<"磁头移动平均距离为:"<<plen<<endl; } else { for(i=1;i<=num;i ) c2[i]=c3[i]; len=c2[1]; if(num>1) { for(i=1;i<num;i ) { len =abs(c2[i 1]-c2[i]); } } plen=(double)((double)(len)/(double)num); // cout<<"移动次序为:"; c5[1]=ks; c6[1]=ks; c5[2]=0; c6[2]=0; for(i=1;i<=num;i ) { c5[i 2]=c2[i]; c6[i 2]=c2[i]; } n=num 2; /* cout<<c5[1]; for(i=2;i<=n;i ) cout<<"->"<<c5[i]; cout<<endl; cout<<"磁头移动总距离为:"<<len<<endl; cout<<"磁头移动平均距离为:"<<plen<<endl;*/ } /////////////////////////////////////////// for(i=1;i<n;i ) { int ls1=c6[i]; int ls2=i; for(j=i;j<=n;j ) { if(ls1>c6[j]) { ls1=c6[j]; ls2=j; } } c6[ls2]=c6[i]; c6[i]=ls1; } length1=1; i=1; while(i<n) { c7[length1]=c6[i]; while(c7[length1]==c6[i 1]) i ; i ; if(i<=n) { length1 ; c7[length1]=c6[i]; } else break; } /////////////////////////////// CPen Pen(PS_SOLID,15,RGB(0,255,0)); CClientDC cdc(this); CPen *OldPen=cdc.SelectObject(&Pen); xl=640/(length1-1); cdc.MoveTo(50,400); cdc.LineTo(50,400); CString mi; mi=itoa(c7[1],new char,10); cdc.TextOutW(43,374,mi); for(i=2;i<=length1;i ) { cdc.MoveTo(50 xl*(i-1),400); cdc.LineTo(50 xl*(i-1),400); mi=itoa(c7[i],new char,10); cdc.TextOutW(43 xl*(i-1),374,mi); } CString qqcx; CString jt; jt="->"; qqcx=itoa(c1[1],new char,10); if(num!=1) { for(i=2;i<=num;i ) { CString cpcx; cpcx=itoa(c1[i],new char,10); qqcx=qqcx jt cpcx; } } GetDlgItem(IDC_EDIT12)->SetWindowText(qqcx); qqcx=itoa(c5[1],new char,10); if(n!=1) { for(i=2;i<=n;i ) { CString cpcx; cpcx=itoa(c5[i],new char,10); qqcx=qqcx jt cpcx; } } GetDlgItem(IDC_EDIT9)->SetWindowText(qqcx); } void CosDlg::OnBnClickedButton6() { len=0; plen=0; /*cout<<"确定磁头开始方向,1:向外 2:向内"<<endl; cin>>fx; cout<<"输入处理过程中的新请求队列,输入负数结束" <<endl;*/ num2=0; for(i=0;i<100;i ) c4[i]=0; /* while(cin>>h&&h>=0) { num2 ; c4[num2]=h; } cout<<"确定磁头开始方向,1:向外 2:向内"<<endl; cin>>fx2;*/ /* cout<<"移动次序为:"<<ks; SN(); ks=c2[num]; fx=fx2; num3=num; num=num2; for(i=1;i<=num;i ) c3[i]=c4[i]; SN(); cout<<endl;*/ c5[1]=ks; c6[1]=ks; //cout<<"移动次序为:"<<ks; int a,b; for(i=1;i<num;i ) { a=c3[i]; b=i; for(j=i;j<=num;j ) { if(a>c3[j]) { a=c3[j]; b=j; } } c3[b]=c3[i]; c3[i]=a; } if(fx==1) { num1=num; for(i=1;i<=num;i ) { if(c3[i]>=ks) { num1=i; break; } } if(num1==1) { for(i=1;i<=num;i ) c2[i]=c3[i]; } else if(num1<num) { for(i=num1;i<=num;i ) c2[i-num1 1]=c3[i]; for(i=num1-1;i>=1;i--) c2[num-i 1]=c3[i]; } else { for(i=num;i>=1;i--) c2[num-i 1]=c3[i]; } len =abs(c2[1]-ks); if(num>1) { for(i=1;i<num;i ) { len =abs(c2[i 1]-c2[i]); } } //plen=(double)((double)(len)/(double)num); // cout<<"移动次序为:"; /* for(i=1;i<=num;i ) { cout<<"->"<<c2[i]; } */ // cout<<endl; //cout<<"磁头移动总距离为:"<<len<<endl; // cout<<"磁头移动平均距离为:"<<plen<<endl; } else if(fx==2) { num1=1; for(i=num;i>=1;i--) { if(c3[i]<=ks) { num1=i; break; } } if(num1==num) { for(i=num;i>=1;i--) c2[num-i 1]=c3[i]; } else if(num1>1) { for(i=num1;i>=1;i--) c2[num1-i 1]=c3[i]; for(i=num1 1;i<=num;i ) c2[i]=c3[i]; } else { for(i=1;i<=num;i ) c2[i]=c3[i]; } len =abs(c2[1]-ks); if(num>1) { for(i=1;i<num;i ) { len =abs(c2[i 1]-c2[i]); } } //plen=(double)((double)(len)/(double)num); //cout<<"移动次序为:"; /* for(i=1;i<=num;i ) { cout<<"->"<<c2[i]; } */ //cout<<endl; //cout<<"磁头移动总距离为:"<<len<<endl; //cout<<"磁头移动平均距离为:"<<plen<<endl; } for(i=1;i<=num;i ) { c5[i 1]=c2[i]; c6[i 1]=c2[i]; } pdfx=1; // TODO: 在此添加控件通知处理程序代码 } void CosDlg::OnBnClickedOk() { CDia dlg; dlg.DoModal(); //OnOK(); } int CosDlg::OnCreate(LPCREATESTRUCT lpCreateStruct) { if (CDialog::OnCreate(lpCreateStruct) == -1) return -1; return 0; } void CosDlg::OnBnClickedButton12() { CString wjm; GetDlgItem(IDC_EDIT10)->GetWindowText(wjm); std::ofstream abc(wjm);//文件名不能为中文 写入 abc<<"磁盘调度顺序为:"; abc<<c5[1]; if(n!=1) { for(i=2;i<=n;i ) { abc<<"->"<<c5[i]; } } abc<<"\n"; int ydleng=0; double pydleng=0; for(i=1;i<n;i ) { ydleng =abs(c5[i]-c5[i 1]); } pydleng=(double)((double)ydleng/(double)num); abc<<"总移动距离为:"<<ydleng<<"\n"; if(pydleng==(int)pydleng) abc<<"平均移动距离为:"<<(int)pydleng<<"\n"; else abc<<"平均移动距离为:"<<pydleng<<"\n"; /*CString qqcx; CString jt; jt="->"; qqcx=itoa(c5[1],new char,10); if(n!=1) { for(i=2;i<=n;i ) { CString cpcx; cpcx=itoa(c5[i],new char,10); qqcx=qqcx jt cpcx; } }*/ // abc<<qqcx; //file.open( WJWZ, std::ios_base::in ); // TODO: 在此添加控件通知处理程序代码 } void CosDlg::OnEnChangeEdit10() { // TODO: 如果该控件是 RICHEDIT 控件,则它将不会 // 发送该通知,除非重写 CDialog::OnInitDialog() // 函数并调用 CRichEditCtrl().SetEventMask(), // 同时将 ENM_CHANGE 标志“或”运算到掩码中。 // TODO: 在此添加控件通知处理程序代码 } void CosDlg::OnTimer(UINT_PTR nIDEvent) { // TODO: 在此添加消息处理程序代码和/或调用默认值 loc1 ; loc2=loc1 1; CString sstr; if(loc1<n) { CPen Pen3(PS_SOLID,15,RGB(255,255,0)); CClientDC cdc3(this); CPen *OldPen3=cdc3.SelectObject(&Pen3); CPen Pen4(PS_SOLID,15,RGB(255,0,255)); CClientDC cdc4(this); CPen *OldPen4=cdc4.SelectObject(&Pen4); CPen Pen(PS_SOLID,3,RGB(0,0,255)); CClientDC cdc(this); CPen *OldPen=cdc.SelectObject(&Pen); cdc.Rectangle(30,310,710,500); CPen Pen1(PS_SOLID,15,RGB(0,255,0)); CClientDC cdc1(this); CPen *OldPen1=cdc1.SelectObject(&Pen1); xl=640/(length1-1); cdc1.MoveTo(50,400); cdc1.LineTo(50,400); CString mi; mi=itoa(c7[1],new char,10); cdc1.TextOutW(43,374,mi); for(i=2;i<=length1;i ) { cdc1.MoveTo(50 xl*(i-1),400); cdc1.LineTo(50 xl*(i-1),400); mi=itoa(c7[i],new char,10); cdc1.TextOutW(43 xl*(i-1),374,mi); } if(wz2>=0) { cdc4.MoveTo(50 xl*(wz2-1),400); cdc4.LineTo(50 xl*(wz2-1),400); } for(i=1;i<=length1;i ) { if(c5[loc1]==c7[i]) { wz1=i; } else {} if(c5[loc2]==c7[i]) {wz2=i;} else {} } sstr=itoa(c5[loc1],new char,10); GetDlgItem(IDC_EDIT4)->SetWindowText(sstr); sstr=itoa(c5[loc2],new char,10); GetDlgItem(IDC_EDIT5)->SetWindowText(sstr); ydjl=abs(c5[loc1]-c5[loc2]); sstr=itoa(ydjl,new char,10); GetDlgItem(IDC_EDIT6)->SetWindowText(sstr); nydjl =ydjl; sstr=itoa(nydjl,new char,10); GetDlgItem(IDC_EDIT7)->SetWindowText(sstr); CPen Pen2(PS_SOLID,2,RGB(255,0,0)); CClientDC cdc2(this); CPen *OldPen2=cdc2.SelectObject(&Pen2); if(wz1<wz2) { Sleep(1000); cdc3.MoveTo(50 xl*(wz1-1),400); cdc3.LineTo(50 xl*(wz1-1),400); Sleep(1000); mi=itoa(ydjl,new char,10); cdc1.TextOutW(43 xl*(wz1 wz2-2)/2,406,mi); cdc2.MoveTo(50 xl*(wz1-1) 9,400); cdc2.LineTo(50 xl*(wz2-1)-9,400); cdc2.MoveTo(50 xl*(wz2-1)-9,400); cdc2.LineTo(50 xl*(wz2-1)-15,393); cdc2.MoveTo(50 xl*(wz2-1)-9,400); cdc2.LineTo(50 xl*(wz2-1)-15,407); Sleep(1000); cdc4.MoveTo(50 xl*(wz2-1),400); cdc4.LineTo(50 xl*(wz2-1),400); } else if(wz1>wz2) { Sleep(1000); cdc3.MoveTo(50 xl*(wz1-1),400); cdc3.LineTo(50 xl*(wz1-1),400); Sleep(1000); mi=itoa(ydjl,new char,10); cdc1.TextOutW(43 xl*(wz1 wz2-2)/2,406,mi); cdc2.MoveTo(50 xl*(wz1-1)-9,400); cdc2.LineTo(50 xl*(wz2-1) 9,400); cdc2.MoveTo(50 xl*(wz2-1) 9,400); cdc2.LineTo(50 xl*(wz2-1) 15,393); cdc2.MoveTo(50 xl*(wz2-1) 9,400); cdc2.LineTo(50 xl*(wz2-1) 15,407); Sleep(1000); cdc4.MoveTo(50 xl*(wz2-1),400); cdc4.LineTo(50 xl*(wz2-1),400); } else { Sleep(1000); cdc3.MoveTo(50 xl*(wz1-1),400); cdc3.LineTo(50 xl*(wz1-1),400); Sleep(1000); mi=itoa(ydjl,new char,10); cdc1.TextOutW(43 xl*(wz1 wz2-2)/2,406,mi); Sleep(1000); cdc4.MoveTo(50 xl*(wz2-1),400); cdc4.LineTo(50 xl*(wz2-1),400); } CString yt; yt=""; GetDlgItem(IDC_EDIT8)->SetWindowText(yt); } else { pydjl=(double)((double)nydjl/(double)num); sstr.Format(_T("%f"),pydjl); GetDlgItem(IDC_EDIT8)->SetWindowText(sstr); CDialog::KillTimer(nIDEvent); } CDialog::OnTimer(nIDEvent); } void CosDlg::OnBnClickedButton13() { loc1 ; loc2=loc1 1; CString sstr; if(loc1<n) { CPen Pen3(PS_SOLID,15,RGB(255,255,0)); CClientDC cdc3(this); CPen *OldPen3=cdc3.SelectObject(&Pen3); CPen Pen4(PS_SOLID,15,RGB(255,0,255)); CClientDC cdc4(this); CPen *OldPen4=cdc4.SelectObject(&Pen4); CPen Pen(PS_SOLID,3,RGB(0,0,255)); CClientDC cdc(this); CPen *OldPen=cdc.SelectObject(&Pen); cdc.Rectangle(30,310,710,500); CPen Pen1(PS_SOLID,15,RGB(0,255,0)); CClientDC cdc1(this); CPen *OldPen1=cdc1.SelectObject(&Pen1); xl=640/(length1-1); cdc1.MoveTo(50,400); cdc1.LineTo(50,400); CString mi; mi=itoa(c7[1],new char,10); cdc1.TextOutW(43,374,mi); for(i=2;i<=length1;i ) { cdc1.MoveTo(50 xl*(i-1),400); cdc1.LineTo(50 xl*(i-1),400); mi=itoa(c7[i],new char,10); cdc1.TextOutW(43 xl*(i-1),374,mi); } if(wz2>=0) { cdc4.MoveTo(50 xl*(wz2-1),400); cdc4.LineTo(50 xl*(wz2-1),400); } for(i=1;i<=length1;i ) { if(c5[loc1]==c7[i]) { wz1=i; } else {} if(c5[loc2]==c7[i]) {wz2=i;} else {} } sstr=itoa(c5[loc1],new char,10); GetDlgItem(IDC_EDIT4)->SetWindowText(sstr); sstr=itoa(c5[loc2],new char,10); GetDlgItem(IDC_EDIT5)->SetWindowText(sstr); ydjl=abs(c5[loc1]-c5[loc2]); sstr=itoa(ydjl,new char,10); GetDlgItem(IDC_EDIT6)->SetWindowText(sstr); nydjl =ydjl; sstr=itoa(nydjl,new char,10); GetDlgItem(IDC_EDIT7)->SetWindowText(sstr); CPen Pen2(PS_SOLID,2,RGB(255,0,0)); CClientDC cdc2(this); CPen *OldPen2=cdc2.SelectObject(&Pen2); if(wz1<wz2) { //Sleep(1000); cdc3.MoveTo(50 xl*(wz1-1),400); cdc3.LineTo(50 xl*(wz1-1),400); //Sleep(1000); mi=itoa(ydjl,new char,10); cdc1.TextOutW(43 xl*(wz1 wz2-2)/2,406,mi); cdc2.MoveTo(50 xl*(wz1-1) 9,400); cdc2.LineTo(50 xl*(wz2-1)-9,400); cdc2.MoveTo(50 xl*(wz2-1)-9,400); cdc2.LineTo(50 xl*(wz2-1)-15,393); cdc2.MoveTo(50 xl*(wz2-1)-9,400); cdc2.LineTo(50 xl*(wz2-1)-15,407); //Sleep(1000); cdc4.MoveTo(50 xl*(wz2-1),400); cdc4.LineTo(50 xl*(wz2-1),400); } else if(wz1>wz2) { //Sleep(1000); cdc3.MoveTo(50 xl*(wz1-1),400); cdc3.LineTo(50 xl*(wz1-1),400); //Sleep(1000); mi=itoa(ydjl,new char,10); cdc1.TextOutW(43 xl*(wz1 wz2-2)/2,406,mi); cdc2.MoveTo(50 xl*(wz1-1)-9,400); cdc2.LineTo(50 xl*(wz2-1) 9,400); cdc2.MoveTo(50 xl*(wz2-1) 9,400); cdc2.LineTo(50 xl*(wz2-1) 15,393); cdc2.MoveTo(50 xl*(wz2-1) 9,400); cdc2.LineTo(50 xl*(wz2-1) 15,407); //Sleep(1000); cdc4.MoveTo(50 xl*(wz2-1),400); cdc4.LineTo(50 xl*(wz2-1),400); } else { //Sleep(1000); cdc3.MoveTo(50 xl*(wz1-1),400); cdc3.LineTo(50 xl*(wz1-1),400); //Sleep(1000); mi=itoa(ydjl,new char,10); cdc1.TextOutW(43 xl*(wz1 wz2-2)/2,406,mi); //Sleep(1000); cdc4.MoveTo(50 xl*(wz2-1),400); cdc4.LineTo(50 xl*(wz2-1),400); } } else { pydjl=(double)((double)nydjl/(double)num); sstr.Format(_T("%f"),pydjl); GetDlgItem(IDC_EDIT8)->SetWindowText(sstr); } // TODO: 在此添加控件通知处理程序代码 }