亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? page2.cpp

?? 一個內含進程管理、內存管理、文件管理的操作系統設計實現方案
?? CPP
?? 第 1 頁 / 共 4 頁
字號:
// Page2.cpp : implementation file
//

#include "stdafx.h"
#include "Property5.h"
#include "Page2.h"
#include"Page1.h"
#include "exe.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
//#include "queue.h"
#include "file.h"
#include "EditFile.h"
/////////////////////////////////////////////////////////////////////////////
// CPage2 dialog
graph hardisk_state[128];
int disk_num1=0;
int color=-1;
  //CPage2 *pdlg;
CPage2::CPage2(CWnd* pParent /*=NULL*/)
	: CDialog(CPage2::IDD, pParent)
{
	//{{AFX_DATA_INIT(CPage2)
	m_cmd = _T("");
	m_display = _T("");
	//}}AFX_DATA_INIT
	//pdlg=this;
}


void CPage2::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CPage2)
	DDX_Text(pDX, IDC_EDITCMD, m_cmd);
	DDX_Text(pDX, IDC_EDITDIS, m_display);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CPage2, CDialog)
	//{{AFX_MSG_MAP(CPage2)
	ON_BN_CLICKED(IDC_BOOTF, OnBootf)
	ON_WM_PAINT()
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CPage2 message handlers
/*----------------------------------------------------------------------------------------------*/
/*------------------------------------------初始化文件系統--------------------------------------*/

void CPage2::initfile()
{
	format();
	 free(fdisk);
}
/*----------------------------------------------------------------------------------------------*/
/*--------------------------------進入文件系統--------------------------------------------------*/

void CPage2::enter()
{
	
	int i;

      fdisk = (char *)malloc((ROOT_DISK_SIZE+FATSIZE)*sizeof(char)); /*申請 fat表 和根目錄空間*/

     if((fp=fopen("disk.dat","rb"))==NULL)
     {
          printf("Error:\nCannot open file\n");
          return;                                
     }
	 fseek(fp,0,0);
	 if(!fread(fdisk,192,1,fp))  /*把磁盤文件disk.dat 讀入虛擬磁盤空間(內存)*/    
	{
          printf("Error:\nCannot read file\n");
          exit(0);  
	 }
	  fclose(fp);
     fat = (struct fatitem *)fdisk;  /*找到FAT表地址*/
	 //for(i=0;i<3;i++)
	//	 printf("%d",fat[i].item);
	 //for(i=3;i<128;i++) 
	//	 printf("%c",fat[i].item);
     root = (struct direct *)(fdisk+FATSIZE);/*找到根目錄地址*/

    
     /*--------------初始化用戶打開表------------------*/
     for(i=0;i<MOFN;i++)
     {
          strcpy(u_opentable.openitem[i].name,"");
          u_opentable.openitem[i].firstdisk ='F';
          u_opentable.openitem[i].size = 0;              
     }
     u_opentable.cur_size = 0;
     
     cur_dir = root; /*當前目錄為根目錄*/
	 curdir_block=ROOT_DISK_NO;
     bufferdir = (char *)malloc(DIR_LENGTH*sizeof(char));
     strcpy(bufferdir,"Root:"); /*顯示根目錄為Root:*/ 

}
/*----------------------------------------------------------------------------------------------*/
/*------------------------------------------格式化----------------------------------------------*/


void CPage2::format()
{
	
	 int i;
 
     fdisk = (char *)malloc((ROOT_DISK_SIZE+FATSIZE)*sizeof(char)); /*申請 fat表 和根目錄空間*/
	 fat = (struct fatitem *)fdisk; 
	 /*-----初始化FAT表------------*/

	 fat[0].item=1;/*存放 FAT表的磁盤塊號*/
	 fat[1].item=0;
 
	 fat[ROOT_DISK_NO].item=0;  /*存放根目錄的磁盤塊號*/
	 for(i=ROOT_DISK_NO+1;i<DISK_NUM;i++)
	 fat[i].item = 'F';
	 
	 root = (struct direct *)(fdisk+FATSIZE); /*根目錄的地址*/
	 /*初始化目錄*/
 
	 for(i=0;i<MSD;i++) /*-子目錄初始化為空-*/
	 {
		  root->directitem[i].firstdisk ='F';
		  strcpy(root->directitem[i].name,"");
		  root->directitem[i].property = '0';
		  root->directitem[i].size =0;
		  root->directitem[i].extend_name=' ';  
	 }
 
	 if((fp = fopen("disk.dat","wb+"))==NULL)
	 {
		  printf("Error:\n Cannot open file \n");  
		  return;
	 }
	 fseek(fp,0,0);
	 if(fwrite(fdisk,192,1,fp)!=1) /*把文件分配表與根目錄寫入磁盤即前三塊磁盤的內容*/  
	 {
		 printf("Error:\n File write error! \n");
	 }
	 fclose(fp);
	 cur_dir = root; /*當前目錄為根目錄*/
	 curdir_block=ROOT_DISK_NO;
     bufferdir = (char *)malloc(DIR_LENGTH*sizeof(char));
     strcpy(bufferdir,"Root:"); /*顯示根目錄為Root:*/ 
	 color=-1;
	 OnPaint();
	 color=1;
	 for(disk_num1=0;disk_num1<128;disk_num1++)
	 {
		if(fat[disk_num1].item!='F') 
		{
		 	CWnd   *pWnd=GetDlgItem(IDC_STATE);   
          CDC   *pControlDC=pWnd->GetDC();   
          //pWnd->Invalidate();   
          //pWnd->UpdateWindow();
		  pControlDC->SelectStockObject(BLACK_BRUSH); 
		 pControlDC->Rectangle(hardisk_state[disk_num1].x1,hardisk_state[disk_num1].y1,hardisk_state[disk_num1].x2,hardisk_state[disk_num1].y2);   //畫矩形
		 pWnd->ReleaseDC(pControlDC);   
		}
	 }

}


void CPage2::OnBootf() 
{
	// TODO: Add your control notification handler code here
	char ch;
	 int f=0;
	  CString strLine;
	  int x1=0,y1=0,x2=20,y2=20;
	  int x=x1,y=y1;
	  for(int i=0,j=0;i<128;i++)
	  {
		    j++;
			hardisk_state[i].x1=x1;
			hardisk_state[i].y1=y1;
			hardisk_state[i].x2=x2;
			hardisk_state[i].y2=y2;
			if(j%16==0)
			{   
				j=0;
                x1=x;
				x2=x1+20;
				y1=y+25;
				y=y1;
				y2=y1+20;
			}
			else 
			{
				x1+=25;
				x2=x1+20;
			}
	  }
	  OnPaint();
	 if((fp=fopen("disk.dat","rb"))==NULL)/*如果還沒有進行格式化,則要格式化*/
	 {
		 m_display+="You have not format,Now create it for you!\r\n";
		 
		  strLine.Format("%s",m_display);
		 GetDlgItem(IDC_EDIT1)->SetWindowText(strLine);
		  ch='y';
		if(ch=='y')
		{
		   initfile();
		   m_display+="Successfully format!\r\n";
		   strLine.Format("%s",m_display);
		  GetDlgItem(IDC_EDITDIS)->SetWindowText(strLine);
		}
		else 
		{
			return;
		}
		f=1;
	}
     if(f==1)  fclose(fp);
	 enter();
	 fat[0].item=0;
	 fat[1].item=1;
	 fat[2].item=0;
	  color=1;

	 for(disk_num1=0;disk_num1<128;disk_num1++)
	 {
		if(fat[disk_num1].item!='F') 
		{
		 	CWnd   *pWnd=GetDlgItem(IDC_STATE);   
          CDC   *pControlDC=pWnd->GetDC();   
          //pWnd->Invalidate();   
          //pWnd->UpdateWindow();
		  pControlDC->SelectStockObject(BLACK_BRUSH); 
		 pControlDC->Rectangle(hardisk_state[disk_num1].x1,hardisk_state[disk_num1].y1,hardisk_state[disk_num1].x2,hardisk_state[disk_num1].y2);   //畫矩形
		 pWnd->ReleaseDC(pControlDC);   
		}
	 }
	// print();
	 //show();
	 //strcpy("********************************************************************************\n",m_display);
	 //strcat("\t\t\tWelcome to DOS File system!\n",m_display);
	 m_display+="****************************************************************************  \r\n \t\t Welcome to DOS File system! \r\n ---------------------------------------------------------------------------- \r\n \t\t 創建文件  create 文件名\r\n\t\t 刪除文件  delete 文件名\r\n\t\t 顯示文件  type 文件名\r\n\t\t 復制文件  copy (路徑)文件名   (路徑)文件名\r\n\t\t 編輯文件  edit\r\n\t\t 創建子目錄  mkdir 目錄名\r\n\t\t 刪除子目錄  deldir 目錄名\r\n\t\t 顯示當前目錄的子目錄 dir\r\n\t\t 移動文件    move  (路徑)文件名   路徑\r\n\t\t 磁盤格式化   format\r\n\t\t 退出系統      halt\r\n\t\t 顯示幫助信息   help\r\n\n\n\tNotice:在輸入文本時,用 $ 字符作為空格, # 字符作為換行符\r\n---------------------------------------------------------------------------\r\n";
		m_display+=bufferdir;
		m_display+=">";
	 strLine.Format("%s",m_display);
	  GetDlgItem(IDC_EDITDIS)->SetWindowText(strLine);

	 /*將命令全部保存在CODE數組中*/


}

BOOL CPage2::PreTranslateMessage(MSG* pMsg) 
{	// TODO: Add your specialized code here and/or call the base class
	 	  extern int psw;
	// TODO: Add your specialized code here and/or call the base class
		 if(   pMsg->hwnd   ==   GetDlgItem(IDC_EDITCMD)->m_hWnd   )   
          if(   pMsg->message   ==   WM_KEYDOWN   )   
              if(   pMsg->wParam   ==   VK_RETURN   )   
              {  
				
					char a[30];
					char b[30];
					 char name1[DIR_LENGTH],name2[DIR_LENGTH];
					 int i=0,flag=0,k,j;
					  char code[14][10];
					 char *contect;
					 int flagz=0;
					  CString strLine;
					  contect = (char *)malloc(MAX_WRITE*sizeof(char));
					// TODO: Add your control notification handler code here
					 strcpy(code[0],"create");//////////////////////////////////////
					 strcpy(code[1],"delete");
					 strcpy(code[2],"type");
					 strcpy(code[3],"copy");
					 strcpy(code[4],"edit");
					 strcpy(code[5],"rmdir");
					 strcpy(code[6],"chdir");
					 strcpy(code[7],"move");
					 strcpy(code[8],"format");
					 strcpy(code[9],"dir");
					 strcpy(code[10],"mkdir");
					 strcpy(code[11],"halt");
					 strcpy(code[12],"help");
					UpdateData(TRUE);
					strncpy(b,(LPCTSTR)m_cmd,sizeof(b));
					m_display+=b;
					m_display+="\r\n";
					while(b[i]!=' '&& i<strlen(b))
						a[i]=b[i++];
					a[i]='\0';
				//	 strLine.Format("%s",a);
				//	GetDlgItem(IDC_EDIT1)->SetWindowText(strLine); 
					
					for(i=0;i<13;i++)
					 {
						if(!strcmp(code[i],a))
						break;
					 }
					 if((a[1]=='.'&&a[2]=='e')||(a[1]=='.'&&a[2]=='e')||(a[2]=='.'&&a[3]=='e')||(a[3]=='.'&&a[4]=='e'))
						i=14;
					strcpy(a,b);
	
			   // strLine.Format("%d",i);
				//GetDlgItem(IDC_EDIT1)->SetWindowText(strLine); 
				 switch(i)
					  {
						  case 0:/*-創建文件-*/
							  flag=0;
							  for(j=0,k=0;j<sizeof(a);)
								  if(a[j]!=' '&&flag==0) j++;
								  else
								  {
									flag=1;
									b[k++]=a[++j];
								  }
			    				b[k]='\0';
								 // strLine.Format("%d",strlen(b));
								//GetDlgItem(IDC_EDIT1)->SetWindowText(strLine);
							  flag = create(b);
							  if(flag==-1)  m_display+="Error: \n The length is too long !\r\n";
							  else if(flag==-2)  m_display+="Error: \n The direct item is already full !\r\n";
							  else if(flag==-3)  m_display+="Error: \n The number of openfile is too much !\r\n";
							  else if(flag==-4)  m_display+="Error: \n The name is already in the direct !\r\n";
							  else if(flag==-5)  m_display+="Error: \n The disk space is full!\r\n";
							  else if(flag==-6) m_display+="Error:the file has no extend name!\r\n";
							  else if(flag==-7) m_display+="Error:the directory is not exist!\r\n";
							  else m_display+="Successfully create a file! \r\n";
							  m_display+=bufferdir;
							m_display+=">";
							strLine.Format("%s",m_display);
							GetDlgItem(IDC_EDITDIS)->SetWindowText(strLine);
							m_cmd.Empty();
							UpdateData(FALSE);
							 break;
						  case 1:/*-刪除文件-*/
							 flag=0;
							 k=0;
							  for(j=0;j<strlen(a);)
								  if(a[j]!=' '&&flag==0) j++;
								  else
								  {
									flag=1;
									b[k++]=a[++j];
								  }
			    				b[k]='\0';
							
							 fd = open(b); //打開所創建的文件
							 flag=del(b);
							 if(flag==1)
							 {
									m_display+="Delete Successfully!";
									 m_display+="\r\n";
									 m_display+=bufferdir;
									m_display+=">";
									strLine.Format("%s",m_display);
									GetDlgItem(IDC_EDITDIS)->SetWindowText(strLine);
							 }
							 close(b);
							 m_cmd.Empty();
							UpdateData(FALSE);
							 break;
						case 2:/*--讀文件--*/
							 flag=0;
							 k=0;
							  for(j=0;j<strlen(a);)
								  if(a[j]!=' '&&flag==0) j++;
								  else
								  {
									flag=1;
									b[k++]=a[++j];
								  }
			    				b[k]='\0';
							 fd = open(b); //打開所創建的文件
							 if(fd ==-1)
							 {
					  				m_display+="Error:\n The file is not opened !";
									 m_display+="\r\n";	
									
							 }
							 else if(fd==-2)
							 {
								m_display+="The file can't open!";
								m_display+="\r\n";	
							 }
							 else
							 {
								flag = read(fd,contect);
								if(flag == -1)
								{ 
									m_display+="Error:  The size is over the length of the file! !";
									 m_display+="\r\n";	
								}
								else
								{
									/*for(i=0;i<flag;i++)
									{
										printf("%c",contect[i]);
									}*/
									contect[flag]='\0';
									m_display+=contect;
									m_display+="\r\n";
								}
							 }
							  close(b);
							  m_display+=bufferdir;
								m_display+=">";
							  strLine.Format("%s",m_display);
							  GetDlgItem(IDC_EDITDIS)->SetWindowText(strLine);
							  m_cmd.Empty();
							UpdateData(FALSE);
							  break;
						case 3:/*-復制文件-*/
							   flag=0;
							   k=0;
							  for(j=0;j<strlen(a);)
								  if(a[j]!=' '&&flag==0) j++;
								  else if(flagz==0)
								  {
									flag=1;
									name1[k++]=a[++j];
									if(a[j]==' ') 
									{
										flagz=1;
										name1[k]='\0';
										k=0;
									}
								  }
								  else 
								  {						  
									  name2[k++]=a[++j];
			     				  }
								  name2[k]='\0';
								 /* m_display+=name1;
								  m_display+="  ";
								   m_display+=name2;
								  m_display+="\r\n";*/
								  m_display+=bufferdir;
									m_display+=">";
								  strLine.Format("%s",m_display);
							  GetDlgItem(IDC_EDITDIS)->SetWindowText(strLine);
							  copy(name1,name2);
							  m_cmd.Empty();
							UpdateData(FALSE);
							  break;
						case 4:/*--編輯文件--*/
							 flag=0;
							 k=0;
							  for(j=0;j<strlen(a);)
								  if(a[j]!=' '&&flag==0) j++;
								  else
								  {
									flag=1;
									b[k++]=a[++j];
								  }
			    				b[k]='\0';
							 fd = open(b); //打開所創建的文件
							 if(fd ==-1)m_display+="Error:\n The file is not exist! \n Please create it first!\r\n";
							 else if(fd==-4)m_display+="Error:it's not a file,but a directory!\r\n"; 
							 else 
							 {
								m_display+="Please input the file contect:\r\n";
								  EditFile dlgInput;
								  if( dlgInput.DoModal() == IDOK ) 
								  {
									// Create MIPS Pipeline dialog
									UpdateData(TRUE);
									this->SetActiveWindow();
								  }

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲va在线va天堂| 亚洲欧美日韩电影| 中文字幕在线不卡一区二区三区| 中文字幕一区二区三区四区不卡| 夜夜爽夜夜爽精品视频| 免费观看日韩av| 粉嫩av亚洲一区二区图片| 色婷婷综合久久久久中文一区二区| 91麻豆精品91久久久久久清纯| 久久精品一区二区| 亚洲一级片在线观看| 国产一区二区免费看| k8久久久一区二区三区| 欧美性一区二区| 欧美日产在线观看| 国产欧美一区二区精品婷婷 | 亚洲欧洲日韩在线| 日本特黄久久久高潮| 成人黄色777网| 91精品黄色片免费大全| ...xxx性欧美| 狠狠狠色丁香婷婷综合激情| 欧美性猛交一区二区三区精品| 欧美α欧美αv大片| 亚洲激情av在线| 国产精品一区二区在线观看网站| 欧美色爱综合网| 国产精品伦一区二区三级视频| 亚洲国产视频在线| 成人av在线一区二区三区| 日韩区在线观看| 亚洲一区二区av电影| 成人国产精品免费| 欧美xxxxxxxxx| 亚洲国产精品欧美一二99| 国产a久久麻豆| 精品国产一区二区三区久久久蜜月| 亚洲福利视频三区| 日本精品一区二区三区四区的功能| 国产欧美一区二区三区在线看蜜臀| 国产风韵犹存在线视精品| 欧美精品久久一区| 亚洲va韩国va欧美va精品 | 五月婷婷久久丁香| 91一区二区三区在线播放| 久久久久久久性| 免费高清成人在线| 欧美午夜寂寞影院| 久久久久亚洲综合| 狠狠色丁香婷婷综合| 日韩精品一区二区三区四区 | 99久久国产综合精品色伊| 久久精品无码一区二区三区| 奇米一区二区三区| 欧美午夜寂寞影院| 天堂蜜桃91精品| 91精品国产综合久久久久久漫画| 亚洲一卡二卡三卡四卡| 欧美三级韩国三级日本一级| 亚洲一区二区三区爽爽爽爽爽 | 亚洲成人av一区二区三区| 欧美三级乱人伦电影| 香蕉久久夜色精品国产使用方法| 在线中文字幕一区二区| 亚洲午夜一二三区视频| 欧美日韩国产一级二级| 天堂久久久久va久久久久| 欧美一级日韩不卡播放免费| 久久国内精品自在自线400部| 欧美一区二区成人| 久久99精品久久久| 国产欧美日韩久久| 91免费视频网址| 午夜影院在线观看欧美| 欧美日本精品一区二区三区| 久久国产三级精品| 日本一区二区三区四区在线视频| 成人妖精视频yjsp地址| 久久久影院官网| 不卡av电影在线播放| 亚洲欧美激情在线| 3d动漫精品啪啪1区2区免费| 毛片一区二区三区| 国产精品女主播在线观看| 91福利在线导航| 另类专区欧美蜜桃臀第一页| 国产精品美女久久久久久2018| 一本色道久久综合亚洲aⅴ蜜桃| 亚洲午夜激情网页| 精品三级在线看| 97国产一区二区| 蜜臀av一区二区| 国产精品国产三级国产aⅴ原创 | 欧美视频一区二区| 韩国一区二区视频| 一区二区三区免费观看| 精品国产麻豆免费人成网站| 一本久道久久综合中文字幕| 成人精品一区二区三区中文字幕| 一二三区精品视频| 欧美一级免费观看| 色综合久久99| 日本欧美一区二区| 国产免费成人在线视频| 色综合中文字幕国产 | 久久综合九色综合欧美亚洲| www.亚洲人| 日韩电影在线免费| 亚洲欧美日韩国产一区二区三区 | 欧美性一级生活| 麻豆国产精品777777在线| 亚洲精品菠萝久久久久久久| 蜜乳av一区二区三区| 91精品国产91久久久久久一区二区| 国产成人综合视频| 日本女优在线视频一区二区| 国产精品久久久久aaaa| 日韩一区二区三区四区| 91在线国产福利| 国产在线播放一区三区四| 91精品在线免费| 欧美大片一区二区三区| 在线一区二区三区做爰视频网站| 韩国一区二区三区| 日韩成人精品在线观看| 亚洲第一二三四区| 亚洲综合精品久久| 亚洲男人天堂av| 久久综合狠狠综合久久综合88 | 欧美精品一卡两卡| 欧美四级电影在线观看| 99这里只有精品| 日本怡春院一区二区| 丝袜国产日韩另类美女| 香蕉成人伊视频在线观看| 一区二区三区在线免费播放| 亚洲日本一区二区三区| 国产精品人人做人人爽人人添| 久久久91精品国产一区二区精品 | 国产不卡视频在线观看| 老司机精品视频一区二区三区| 亚洲成人激情av| 午夜电影网亚洲视频| 亚洲一二三四在线观看| 亚洲一区二区精品视频| 午夜激情久久久| 青青草原综合久久大伊人精品优势| 中文字幕一区二区三区av| 精品久久久久久久久久久久久久久久久| 91精品午夜视频| 3atv在线一区二区三区| 日韩一区二区在线播放| 国产精品无遮挡| 午夜影院在线观看欧美| 国产传媒久久文化传媒| 欧美日韩一区在线观看| 精品嫩草影院久久| 一二三四区精品视频| 国产在线日韩欧美| 欧美视频在线观看一区二区| 久久久蜜桃精品| 亚洲资源在线观看| 国产91精品精华液一区二区三区| 在线看一区二区| 国产日产欧美一区二区三区| 亚洲综合免费观看高清在线观看| 久久99九九99精品| 欧美日韩一区二区三区在线看 | 久久er99精品| 欧美性三三影院| 亚洲欧美怡红院| 国产一区 二区 三区一级| 欧美日韩综合不卡| 亚洲欧美综合色| 国产成人综合亚洲网站| 日韩精品一区二区三区在线| 亚洲国产视频网站| 色婷婷久久99综合精品jk白丝| 精品福利视频一区二区三区| 五月婷婷综合网| 欧美影院精品一区| 中文字幕一区二区不卡| 国产91丝袜在线播放九色| 欧美成人精品3d动漫h| 亚洲国产精品一区二区久久| 成人a级免费电影| 久久亚洲影视婷婷| 九一久久久久久| 日韩精品一区二区三区视频在线观看| 亚洲第一成年网| 欧美视频一区二区三区四区| 亚洲另类春色校园小说| 94-欧美-setu| 亚洲欧美一区二区三区久本道91 | 国产老女人精品毛片久久| 精品欧美一区二区久久 | 成人免费看片app下载| 欧美v亚洲v综合ⅴ国产v| 日韩电影在线观看一区| 欧美一区二区福利在线|