《windows程序设计》.doc_第1页
《windows程序设计》.doc_第2页
《windows程序设计》.doc_第3页
《windows程序设计》.doc_第4页
《windows程序设计》.doc_第5页
已阅读5页,还剩62页未读 继续免费阅读

下载本文档

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

文档简介

Windows程序设计实验教学大纲实验学时:32学时 实验个数:11 实验学分: 1课程性质:(必做) 适用专业: 计算机科学与技术、软件工程、网络工程教材及参考书: Visual C+面向对象与可视化程序设计教程(第三版) 大纲执笔人:冯朝胜 大纲审定人: 郭涛一、 实验课的性质与任务本课程实验大纲是面向计算机相关专业学生开设的Windows程序设计(以VC+为开发环境)实验课计划指导大纲,是依据Windows程序设计课程教学计划指导大纲编制。本课程主要讲述了利用Windows API函数和MFC进行简单的Windows程序开发的基本流程,结合该课程教学计划大纲的相应内容,设计了10个单项实验和综合实验,力求提高学生的动手能力,做到理论和实践相结合。使学生在实验过程中掌握Windows程序设计的思想、原理,能使用SDK和MFC实现基于窗口的程序设计。二、 实验课程目的与要求1.实验目的:Windows程序设计实验课的开设,是为了使学生更好地理解和掌握运用VC开发环境开发Windows程序设计的基本理论、基本方法和基本技术,强化程序设计能力。2.实验要求:1) 在实验中,要求学生个人独立思考,设计算法流程,编写出程序,完成上机调试,最后给出实验报告。2) 本课程的学习过程是复杂程序设计的训练过程,要求学生编写的程序结构清楚、正确易读,符合软件工程的规范;a) 3) 在实验中更好地理解和掌握VC程序设计这门课程中所学的基本理论和方法,强化程序设计能力。三、 实验项目及内容提要Windows程序设计实验课程(1106844037)序号实验项目编号实验名称学时必做选做学分数实验类型内容提要基本操作验证综合设计11Visual C+ 6.0开发环境实验2熟悉Visual C+ 6.0开发环境22Windows应用程序基本框架实验2Windows框架程序设计33Windows绘图试验4GDI绘图44文本的输出方法与字体设置实验2GDI文字输出55键盘消息的响应实验2基本键盘消息响应66鼠标消息的响应实验2基本鼠标消息响应77资源在Windows编程中的应用实验4资源编程88控件API编程4控件编程99在MFC中创建应用程序资源2利用MFC创建资源1010单文档与多文档2文档编程1111综合性实验6数据库编程四、 实验内容安排:实验一 Visual C+6.0开发环境实验( 验证性实验 2学时)1、目的要求:了解Visual C+6.0的特点,熟悉Visual C+6.0的开发环境。2、实验内容:了解和熟悉开发环境,对各种菜单功能,工程文件管理和MSDN帮助功能有完整的了解。3、主要仪器设备及药品Windows 2000+VC 6.0+MSDN实验二 Windows应用程序基本框架实验(验证性实验 2学时)1、目的要求:编写第一个Windows程序,理解入口函数Winmain和窗口函数WinProc,掌握消息驱动机制。2、实验内容: 使用Win32 Application模板建立一个Win32工程,编写一个包含WinMain, WinProc的基本Windows程序,并编译、运行,观察结果。#include stdafx.h#include resource.h#define MAX_LOADSTRING 100/ Global Variables:HINSTANCE hInst;/ current instanceTCHAR szTitleMAX_LOADSTRING;/ The title bar textTCHAR szWindowClassMAX_LOADSTRING;/ The title bar text/ Foward declarations of functions included in this code module:ATOMMyRegisterClass(HINSTANCE hInstance);BOOLInitInstance(HINSTANCE, int);LRESULT CALLBACKWndProc(HWND, UINT, WPARAM, LPARAM);LRESULT CALLBACKAbout(HWND, UINT, WPARAM, LPARAM);int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) / TODO: Place code here.MSG msg;HACCEL hAccelTable;/ Initialize global stringsLoadString(hInstance, IDS_APP_TITLE, szTitle, MAX_LOADSTRING);LoadString(hInstance, IDC_SDK, szWindowClass, MAX_LOADSTRING);MyRegisterClass(hInstance);/ Perform application initialization:if (!InitInstance (hInstance, nCmdShow) return FALSE;hAccelTable = LoadAccelerators(hInstance, (LPCTSTR)IDC_SDK);/ Main message loop:while (GetMessage(&msg, NULL, 0, 0) if (!TranslateAccelerator(msg.hwnd, hAccelTable, &msg) TranslateMessage(&msg);DispatchMessage(&msg);return msg.wParam;ATOM MyRegisterClass(HINSTANCE hInstance)WNDCLASSEX wcex;wcex.cbSize = sizeof(WNDCLASSEX); wcex.style= CS_HREDRAW | CS_VREDRAW;wcex.lpfnWndProc= (WNDPROC)WndProc;wcex.cbClsExtra= 0;wcex.cbWndExtra= 0;wcex.hInstance= hInstance;wcex.hIcon= LoadIcon(hInstance, (LPCTSTR)IDI_SDK);wcex.hCursor= LoadCursor(NULL, IDC_ARROW);wcex.hbrBackground= (HBRUSH)(COLOR_WINDOW+1);wcex.lpszMenuName= (LPCSTR)IDC_SDK;wcex.lpszClassName= szWindowClass;wcex.hIconSm= LoadIcon(wcex.hInstance, (LPCTSTR)IDI_SMALL);return RegisterClassEx(&wcex);/ FUNCTION: InitInstance(HANDLE, int)/ PURPOSE: Saves instance handle and creates main window/ COMMENTS:/ In this function, we save the instance handle in a global variable and/ create and display the main program window./BOOL InitInstance(HINSTANCE hInstance, int nCmdShow) HWND hWnd; hInst = hInstance; / Store instance handle in our global variable hWnd = CreateWindow(szWindowClass, szTitle, WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, NULL, NULL, hInstance, NULL); if (!hWnd) return FALSE; ShowWindow(hWnd, nCmdShow); UpdateWindow(hWnd); return TRUE;LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)int wmId, wmEvent;PAINTSTRUCT ps;HDC hdc;TCHAR szHelloMAX_LOADSTRING;LoadString(hInst, IDS_HELLO, szHello, MAX_LOADSTRING);switch (message) case WM_COMMAND:wmId = LOWORD(wParam); wmEvent = HIWORD(wParam); / Parse the menu selections:switch (wmId)case IDM_ABOUT: DialogBox(hInst, (LPCTSTR)IDD_ABOUTBOX, hWnd, (DLGPROC)About); break;case IDM_EXIT: DestroyWindow(hWnd); break;default: return DefWindowProc(hWnd, message, wParam, lParam);break;case WM_PAINT:hdc = BeginPaint(hWnd, &ps);RECT rt;GetClientRect(hWnd, &rt);DrawText(hdc,你好, strlen(你好), &rt, DT_CENTER);EndPaint(hWnd, &ps);break;case WM_DESTROY:PostQuitMessage(0);break;default:return DefWindowProc(hWnd, message, wParam, lParam); return 0;/ Mesage handler for about box.LRESULT CALLBACK About(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)switch (message)case WM_INITDIALOG:return TRUE;case WM_COMMAND:if (LOWORD(wParam) = IDOK | LOWORD(wParam) = IDCANCEL) EndDialog(hDlg, LOWORD(wParam);return TRUE;break; return FALSE;3、主要仪器设备及药品Windows 2000+VC 6.0+MSDN实验三 Windows绘图试验(验证性实验 4学时)1、目的要求:理解DC概念,掌握坐标映射的设置方法,熟悉Windows绘图的基本方法和函数。2、实验内容:运用Windows提供的GDI函数,完成窗口图形输出功能。1) 将窗口划分为5个区域,并用白色到黑色线性变化的颜色填充这5个区域,画一条斜线穿过这5个区域;#include #include #include #include LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM); int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInst,LPSTR lpszCmdLine,int nCmdShow) HWND hwnd; MSG Msg; WNDCLASS wndclass; char lpszClassName=qwer; char lpszTitle=My_Drawing; wndclass.style=0; wndclass.lpfnWndProc=WndProc; wndclass.cbClsExtra=0; wndclass.cbWndExtra=0; wndclass.hInstance=hInstance; wndclass.hIcon=LoadIcon(NULL,IDI_APPLICATION); wndclass.hCursor=LoadCursor(NULL,IDC_ARROW); wndclass.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH); wndclass.lpszMenuName=NULL; wndclass.lpszClassName=lpszClassName; if(!RegisterClass(&wndclass) MessageBeep(0); return FALSE; hwnd=CreateWindow(lpszClassName,lpszTitle,WS_OVERLAPPEDWINDOW,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,NULL,NULL,hInstance,NULL); ShowWindow(hwnd,nCmdShow); UpdateWindow(hwnd); while(GetMessage(&Msg,NULL,0,0) TranslateMessage(&Msg); DispatchMessage(&Msg); return Msg.wParam; LRESULT CALLBACK WndProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam) HDC hdc; PAINTSTRUCT ps; HPEN hP; HBRUSH hB; switch(message) case WM_PAINT: hdc=BeginPaint(hwnd,&ps); SetMapMode(hdc,MM_TEXT); hB=(HBRUSH)GetStockObject(WHITE_BRUSH); SelectObject(hdc,hB); Rectangle(hdc,0,0,100,400); hB=(HBRUSH)GetStockObject(LTGRAY_BRUSH); SelectObject(hdc,hB); Rectangle(hdc,100,0,200,400); hB=(HBRUSH)GetStockObject(GRAY_BRUSH); SelectObject(hdc,hB); Rectangle(hdc,200,0,300,400); hB=(HBRUSH)GetStockObject(DKGRAY_BRUSH); SelectObject(hdc,hB); Rectangle(hdc,300,0,400,400); hB=(HBRUSH)GetStockObject(BLACK_BRUSH); SelectObject(hdc,hB); Rectangle(hdc,400,0,500,400); hP=CreatePen(PS_SOLID,50,RGB(255,255,255); SelectObject(hdc,hP); MoveToEx(hdc,450,300,NULL); LineTo(hdc,50,150); EndPaint(hwnd,&ps); DeleteObject(hP); DeleteObject(hB); break; case WM_DESTROY: PostQuitMessage(0); break; default: return DefWindowProc(hwnd,message,wParam,lParam); return 0; 2) 编写一个程序,在屏幕上出现一个圆心沿正弦曲线轨迹移动的实心圆,而且,每隔四分之一周期,圆的填充色和圆的周边颜色都发生变化,同时,圆的半径在四分之一周期之内由正弦曲线幅值的0.2倍至0.6倍线性增长。#include #include #include #include #define Pi 3.1415926 long WINAPI WndProc(HWND hWnd,UINT iMessage,UINT wParam,LONG lParam); double dfTheta=0,dfRange=100.0; long i=0,j=0; long lCentreX=0,lCentreY=0,lRadious=(long)(0.2*dfRange); POINT lpSin100; int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInst,LPSTR lpszCmdLine,int nCmdShow) HWND hwnd MSG Message WNDCLASS wndclass wndclass.cbClsExtra=0; wndclass.cbWndExtra=0; wndclass.hInstance=hInstance; wndclass.hCursor=LoadCursor(NULL,IDC_ARROW) wndclass.lpszMenuName=NULL; / wndclass.lpszClassName=SIN wndclass.hIcon=LoadIcon(NULL,IDI_APPLICATION); /窗口的最小化图标为缺省图标wndclass.lpfnWndProc=WndProc; /定义窗口处理函数wndclass.style=0;if(!RegisterClass( &wndclass) /如果注册失败则发出警告 MessageBeep(0) return FALSE /- 创建窗口- hwnd=CreateWindow( SIN, qwer, WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, 0, CW_USEDEFAULT, 0,NULL,NULL,hInstance, /创建此窗口的应用程序的当前句柄NULL); /-显示窗口 ShowWindow( hwnd, nCmdShow) /- 绘制用户区 UpdateWindow(hwnd); for(int j=0;j100;j+) /生成正弦曲线的点坐标 lpSinj.x=(long)(j*2*Pi/100*60); lpSinj.y=(long)(dfRange*sin(j*2*Pi/100); while( GetMessage(&Message, 0, 0, 0) TranslateMessage( &Message) DispatchMessage( &Message) return Message.wParam; /消息循环结束即程序终止时将信息返回系统 long WINAPI WndProc(HWND hWnd,UINT iMessage,UINT wParam,LONG lParam) HDC hDC; /定义指向设备的句柄 HBRUSH hBrush; /定义指向画刷的句柄HPEN hPen; /定义指向画笔的句柄PAINTSTRUCT PtStr;/定义指向包含绘图信息的结构体变量switch(iMessage) /处理消息 case WM_PAINT: /处理绘图消息hDC=BeginPaint(hWnd,&PtStr); SetWindowOrgEx(hDC,-200,-200,NULL); /设置映像模式hPen=CreatePen(PS_DASH,1,RGB(255,0,0); /黑色画笔SelectObject(hDC,hPen); /选择画笔Polyline(hDC,lpSin,100); if(i=25) /第一个1/4周期 hPen=CreatePen(PS_DASH,1,RGB(255,0,0); hBrush=CreateHatchBrush(HS_BDIAGONAL,RGB(255,0,0); lRadious=(long)(dfRange*0.2+i%25*dfRange*0.4/25);/计算半径 else if(i=50) hPen=CreatePen(PS_DASH,1,RGB(0,255,0); hBrush=CreateHatchBrush(HS_BDIAGONAL,RGB(0,255,0); lRadious=(long)(dfRange*0.2+i%25*dfRange*0.4/25);/计算半径 else if(i=75) hPen=CreatePen(PS_DASH,1,RGB(0,0,255); hBrush=CreateHatchBrush(HS_BDIAGONAL,RGB(0,0,255); lRadious=(long)(dfRange*0.2+i%25*dfRange*0.4/25);/计算半径 else hPen=CreatePen(PS_DASH,1,RGB(255,255,0); hBrush=CreateHatchBrush(HS_BDIAGONAL,RGB(255,255,0); lRadious=(long)(dfRange*0.2+i%25*dfRange*0.4/25);/计算半径 SelectObject(hDC,hBrush); /选择画刷SelectObject(hDC,hPen); lCentreX=lpSini.x;/圆心x坐标lCentreY=lpSini.y; /圆心y坐标Ellipse(hDC,lCentreX-lRadious,lCentreY-lRadious, lCentreX+lRadious,lCentreY+lRadious); /画圆i+; DeleteObject(hPen); /删除画笔DeleteObject(hBrush); /删除画刷EndPaint(hWnd,&PtStr); /删除设备环境指针Sleep(100); /停0.1秒if(i100) InvalidateRect(hWnd,NULL,1); /刷新用户区return 0; case WM_DESTROY: /关闭窗口PostQuitMessage(0); return 0; default: return(DefWindowProc(hWnd,iMessage,wParam,lParam); 3、主要仪器设备及药品Windows 2000+VC 6.0+MSDN实验四 文本的输出方法与字体设置(验证性实验 2学时)1、目的要求:理解字体句柄的念,熟悉Windows文字输出的基本方法和函数,学习字体格式的控制。2、实验内容:(选做1个)1)在窗口中显示出26个英文字母,从左向右字母依次位置提高10个像素单位,并且颜色变为红色,然后回到正常位置;当到达最右端后改变方向从右向左依次变成红色并位置提高10个像素单位。在窗口的第二行显示26个字母,字体从正常到斜体,颜色从黑色到天蓝色不断变换。#include #include #include #include int a=0;/函数提前声明BOOL InitWindowsClass(HINSTANCE hInstance);BOOL InitWindows(HINSTANCE hInstance, int nCmdShow);long WINAPI WndProc(HWND hWnd, UINT iMessage, UINT wParam, LONG lParam);BOOL InitWindowsClass(HINSTANCE hInstance) /初始化窗口类WNDCLASS WndClass;WndClass.cbClsExtra = 0;WndClass.cbWndExtra = 0;WndClass.hbrBackground = (HBRUSH):GetStockObject(WHITE_BRUSH);WndClass.hCursor = :LoadCursor(NULL, IDC_ARROW);WndClass.hIcon = :LoadIcon(NULL, END);WndClass.hInstance = hInstance;WndClass.lpszClassName = WinFill;WndClass.lpfnWndProc = WndProc;WndClass.lpszMenuName = NULL;WndClass.style = CS_HREDRAW | CS_VREDRAW;return (:RegisterClass(&WndClass);/BOOL InitWindows(HINSTANCE hInstance, int nCmdShow) /初始化窗口HWND hWnd;hWnd = :CreateWindow(WinFill,填充实例程序,WS_OVERLAPPEDWINDOW, /窗口类型250,150,450,450,NULL,NULL,hInstance,NULL);if (!hWnd)return FALSE;:ShowWindow(hWnd, nCmdShow);:UpdateWindow(hWnd);return TRUE;long WINAPI WndProc(HWND hWnd,UINT iMessage,UINT wParam,LONG lParam)HDC hdc; /设置环境句柄char str=abcdefghijklmnopqrstuvwxyz;int i=0;static n;PAINTSTRUCT ps;TEXTMETRIC tm;int LY=50; /初始坐标HFONT hF_black,hF_blue; /字体句柄switch(iMessage) case WM_CREATE:SetTimer(hWnd,1,300,NULL);break;case WM_PAINT:hdc=BeginPaint(hWnd,&ps);GetTextMetrics(hdc,&tm); /获取默认句柄,写入tm结构中for(i=0;i26;i+)int y=LY; /LYif(i=n)if(a=0)y=LY-30;else y=LY+30;SetTextColor(hdc,RGB(255,0,0);/设置单个的颜色为红TextOut(hdc,2*i*tm.tmAveCharWidth,y,&stri,1);/依次为字符串起始坐标,所显示的字符串,输出的字节数SetTextColor(hdc,RGB(0,0,0); / 设置整排的颜色为黑 if (n%2=0) /当时钟为偶数时显示黑色字体 hF_black=CreateFont( 30, /字体的高度0,0,0,FW_NORMAL, /字体的粗度0, /定义斜体0,0,GB2312_CHARSET,OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,DEFAULT_PITCH,正常);SelectObject(hdc,hF_black);GetTextMetrics(hdc,&tm);for (i=0;i26;i+)SetTextColor(hdc,RGB(0,0,0);TextOut(hdc,(25-i)*tm.tmAveCharWidth,LY+3*tm.tmHeight+tm.tmInternalLeading,&str25-i,1); elsehF_blue=CreateFont( 20, /字体的高度 0, 0,0,FW_HEAVY, /字体的粗度1, /定义斜体0,0,GB2312_CHARSET,OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,DEFAULT_PITCH,粗体字); SelectObject(hdc,hF_blue); GetTextMetrics(hdc,&tm); for (i=0;i26;i+) SetTextColor(hdc,RGB(0,0,255);TextOut(hdc,(25-i)*tm.tmAveCharWidth,LY+3*tm.tmHeight+tm.tmInternalLeading,&str25-i,1); EndPaint(hWnd,&ps);break;case WM_TIMER:n+;if (n=26)n=0;RECT rc;GetClientRect(hWnd,&rc); /获取当前窗口可用区InvalidateRect(hWnd,&rc,true); /对该区域进行刷新UpdateWindow(hWnd);break;case WM_KEYDOWN: switch(wParam)case VK_UP: /减速a=0;InvalidateRect(hWnd,&rc,true);break;case VK_DOWN: /加速a=1;InvalidateRect(hWnd,&rc,true);break; return 0;case WM_DESTROY:KillTimer(hWnd,1); /删除计时器PostQuitMessage(0);default:return DefWindowProc(hWnd,iMessage,wParam,lParam);return 0;int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)MSG Message;if (!InitWindowsClass(hInstance)return FALSE;if (!InitWindows(hInstance, nCmdShow)return FALSE;while (:GetMessage(&Message, 0, 0, 0):TranslateMessage(&Message);:DispatchMessage(&Message);return Message.wParam;2)编写一个程序,在窗口中显示“VC中显示字体与背景”,字体颜色为红色,背景色为黄色,字体为宋体,字高40。3、主要仪器设备及药品Windows 2000+VC 6.0+MSDN实验五 键盘消息的响应实验(验证性实验 2学时)1、目的要求:理解Windows程序响应键盘操作的原理,熟悉键盘消息的响应编程。2、实验内容:(选做1个)1)设计一个窗口,在该窗口中练习键盘的响应,要求如下:单击键盘上的向上箭头时,窗口中显示“You had hitted the up key”;单击键时,窗口中显示“You had hitted the SHIFT key”;单击键时,窗口中显示“You had hitted the CTRL key”;单击键时,窗口中显示“You had hitted the CTRL A key”;单击键时,窗口中显示“You had hitted the SHIFT B key”。long WINAPI WndProc(HWND hWnd,UINT iMessage,UINT wParam,LONG lParam)HDC hDC;/定义设备环境句柄. PAINTSTRUCT ps;/定义包含绘图信息的结构体变量 HPEN hPen;/定义画笔句柄。 HBRUSH hBrush;/定义画刷句柄 /以下定义输出的字符串。 static char cUp=You had hitted the UP key; static char cCtrl=You had hitted the Ctrl key; static char cShift=You had hitted the SHIFT key; static char cCtrl_A=You had hitted the CTRL A key; static char cShift_B=You had hitted the SHIFT B key;/下面定义并初始化按键标志变量。 static BOOL nUpKeyDown=FALSE, nShiftKeyDown=FALSE, nCtrlKeyDown=FALSE, nCtrlAKeyDown=FALSE, nShiftBKeyDown=FALSE; switch(iMessage) case WM_KEYDOWN: switch(wParam) case VK_UP:/当按上箭头键时,变量置为真。nUpKeyDown = TRUE; break; case VK_SHIFT:/当按shift键时,变量置为真。nShiftKeyDown = TRUE; break; case VK_CONTROL:/当按control键时,变量置为真nCtrlKeyDown = TRUE; break; default: break; break; case WM_KEYUP:InvalidateRect(hWnd,NULL,FALSE);break;case WM_CHAR: if(wParam=(65&VK_CONTROL) if(nCtrlKeyDown = TRUE) nCtrlAKeyDown = TRUE;nCtrlKeyDown = FALSE; else if(wParam=98|wParam=66)/当按下b键时 if(nShiftKeyDown = TRUE)/检查shift键是否处于按下状态。nShiftBKeyDown = TRUE;/当SHIFT键按下时,变量置为真 nShiftKeyDown = FALSE; break;case WM_PAINT:/处理绘图消息.hDC=BeginPaint(hWnd,&ps);hBrush = (HBRUSH)GetStockO

温馨提示

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

评论

0/150

提交评论