亚洲欧美第一页_禁久久精品乱码_粉嫩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一区二区三区免费野_久草精品视频
av男人天堂一区| 1024精品合集| 激情成人午夜视频| 日韩欧美国产综合在线一区二区三区| 亚洲成av人片| 91精品国产欧美一区二区成人| 午夜视频在线观看一区二区三区| 欧美日本在线播放| 久久精品国产亚洲aⅴ | 大白屁股一区二区视频| 国产精品福利在线播放| 99久久精品费精品国产一区二区| 亚洲自拍偷拍欧美| 日韩免费福利电影在线观看| 丁香五精品蜜臀久久久久99网站 | 色综合久久综合网97色综合| 污片在线观看一区二区| 26uuu精品一区二区三区四区在线 26uuu精品一区二区在线观看 | 国产午夜亚洲精品理论片色戒| 99国产精品国产精品久久| 一区二区三区资源| 日韩精品一区二区三区老鸭窝| 国产成人自拍在线| 亚洲一区二区三区在线| 精品电影一区二区| 色久综合一二码| 精品一区二区三区免费毛片爱| 国产精品久久久久久一区二区三区 | 亚洲人成电影网站色mp4| 欧美一区二区三区在线| 成人综合婷婷国产精品久久 | 成人av片在线观看| 日韩激情中文字幕| 亚洲天堂久久久久久久| 欧美成人aa大片| 色综合久久久久综合体| 精品一区二区三区日韩| 亚洲香肠在线观看| 国产偷国产偷精品高清尤物| 欧美日韩一区不卡| 岛国一区二区三区| 日本欧美一区二区三区| 日韩一区在线免费观看| 欧美成人乱码一区二区三区| 91在线视频观看| 国产在线一区观看| 奇米一区二区三区av| 亚洲裸体在线观看| 久久精品视频免费| 日韩亚洲欧美高清| 在线看一区二区| 99精品欧美一区| 国产精品99久久久久久久vr| 亚洲成人www| 亚洲免费伊人电影| 精品入口麻豆88视频| 欧美写真视频网站| 97精品国产露脸对白| 国产福利一区二区| 国产一区三区三区| 美女视频黄 久久| 性久久久久久久久久久久| 中文字幕日韩av资源站| 久久精品亚洲精品国产欧美| 日韩一二三区视频| 91精品国产色综合久久不卡电影 | 国产成都精品91一区二区三| 久久99国产精品免费网站| 日韩一区精品字幕| 亚洲成人在线观看视频| 一区二区三区成人在线视频| 成人欧美一区二区三区黑人麻豆 | 免费观看在线色综合| 亚洲国产日韩综合久久精品| 亚洲制服丝袜av| 夜夜揉揉日日人人青青一国产精品| 国产精品毛片a∨一区二区三区| 国产日韩欧美高清在线| 国产日本欧美一区二区| 国产喂奶挤奶一区二区三区| 国产日韩欧美电影| 国产日本一区二区| 国产精品久久久一本精品 | 国产精品灌醉下药二区| 国产亚洲综合在线| 欧美激情一区二区| 欧美经典一区二区| 国产精品国产三级国产| 亚洲六月丁香色婷婷综合久久| 国产精品美女一区二区| 18成人在线观看| 亚洲另类在线制服丝袜| 亚洲v日本v欧美v久久精品| 天天影视网天天综合色在线播放 | 日韩毛片在线免费观看| 亚洲精品国产a久久久久久| 亚洲高清视频中文字幕| 日本伊人精品一区二区三区观看方式| 日韩电影在线观看电影| 国产真实乱对白精彩久久| 成人精品鲁一区一区二区| 色综合视频一区二区三区高清| 国产在线精品一区二区不卡了| 国产91精品露脸国语对白| 91久久久免费一区二区| 欧美精选一区二区| 久久久久久久久一| 日韩伦理电影网| 三级欧美韩日大片在线看| 韩国欧美国产1区| 91色视频在线| 日韩亚洲欧美成人一区| 久久精品视频网| 亚洲综合在线五月| 国产在线一区二区| 91猫先生在线| 精品精品欲导航| 亚洲视频在线一区| 伦理电影国产精品| av电影在线观看不卡| 91精品欧美一区二区三区综合在| 久久精品在这里| 五月天一区二区三区| 国产精品一二三四| 9191久久久久久久久久久| 久久精品人人做| 香蕉成人啪国产精品视频综合网| 国产一区二区三区在线观看免费视频 | 亚洲日本中文字幕区| 日韩激情在线观看| 不卡高清视频专区| 日韩三级免费观看| 亚洲免费观看高清| 国产精品69毛片高清亚洲| 欧洲国内综合视频| 国产精品午夜久久| 久久精品国产色蜜蜜麻豆| 欧美亚洲国产一区二区三区va| 久久―日本道色综合久久| 午夜精品一区二区三区三上悠亚 | 亚洲精品视频在线| 国产精品一区二区男女羞羞无遮挡 | 911精品国产一区二区在线| 最新日韩av在线| 国产中文字幕精品| 日韩精品在线一区| 亚洲国产毛片aaaaa无费看 | 国产一区在线视频| 国产女人aaa级久久久级| 欧美成va人片在线观看| 欧美aⅴ一区二区三区视频| 精品国产一区a| 欧美国产日韩a欧美在线观看| 免费成人性网站| 欧美日韩一区 二区 三区 久久精品| 亚洲欧洲韩国日本视频| 风间由美一区二区av101| 欧美精品一区二区不卡| 另类小说色综合网站| 欧美一三区三区四区免费在线看| 亚洲一二三四区| 在线视频欧美区| 亚洲综合一区二区| 日本丶国产丶欧美色综合| 亚洲品质自拍视频| 91在线你懂得| 亚洲男同性恋视频| 在线中文字幕不卡| 亚洲国产精品视频| 欧美日韩一区二区欧美激情| 一区二区三区四区中文字幕| 91网上在线视频| 亚洲综合男人的天堂| 欧美视频中文字幕| 视频一区视频二区中文| 717成人午夜免费福利电影| 日韩激情视频在线观看| 日韩视频一区二区在线观看| 久久精品国产77777蜜臀| 日韩精品一区二区三区视频播放 | 久久精品这里都是精品| 国产成人免费视频网站高清观看视频| 久久精品免费在线观看| 不卡的av中国片| 亚洲精品高清视频在线观看| 欧美视频在线不卡| 韩国精品一区二区| 国产欧美日本一区二区三区| 成人av网在线| 亚洲福利国产精品| 欧美一级久久久| 国产成人激情av| 一区二区三区在线不卡| 91精品国产欧美一区二区| 国产精品中文字幕欧美| 国产一区二区0| 精品国产露脸精彩对白| 国产精品欧美综合在线| 亚洲欧洲三级电影| 亚洲视频一区在线观看|