精华内容
下载资源
问答
  • 请问Eb/Io怎么算啊,还有Bt总带宽算出来是19.52kHz。fb比特率算出来是32kbit/s。不知道对不对,求大佬。 <p style="text-align:center"><img alt="" height="321" src=...
  • 基于数组的班级成绩管理系统

    千次阅读 2008-06-19 15:31:00
    越来越发现我高数没怎么学好,程序设计却有点以前熟练了,什么东西都是练出来的.一直都没有想到这个东西都要做两个版本,呵呵,同学说第一个版本是Win32 GUI的,老师不接受,必须要用控制台的,于是乎就出现了返工的任务....

    好久没有动手写过代码了,最近离着高数补考越来越近,代码量却突然增加了起来,一方面是各种各样的C++实验报告,数据结构的课程设计,另一方面是学长们和其他同学们的课程设计.越来越发现我高数没怎么学好,程序设计却有点比以前熟练了,什么东西都是练出来的.

    一直都没有想到这个东西都要做两个版本,呵呵,同学说第一个版本是Win32 GUI的,老师不接受,必须要用控制台的,于是乎就出现了返工的任务.

    算了,不说啥了,放到博客里面吧,也算是点东西.

    最终效果如图所示 学生成绩计算器预览图

    XD  下次希望做出比这个好100倍的程序来

    //这个是GUI版本的程序文件
    
    #include "stdio.h"
    
    #include "stdlib.h"
    
    #include "string.h"
    
    #include "windows.h"
    
    #include "commctrl.h"
    
    #include "resource.h"
    
    
    
    #include "This.h"
    
    
    
    #pragma comment(lib,"comctl32.lib")
    
    
    
    
    
    //循环变量,单选框变量,已输入学生人数
    
    int i,iRadio,stuNum = 0;
    
    //存储实例句柄的变量
    
    HANDLE hInst = NULL;
    
    //存储列表框句柄的变量
    
    HWND hList  = NULL;
    
    HWND hList2 = NULL;
    
    //列表框记录的属性
    
    LVITEM LvItem;
    
    //列表框字段的属性
    
    LVCOLUMN LvCol;
    
    //最好成绩存储数组
    
    double maxScore[3] = {0,0,0};
    
    //最差成绩存储数组
    
    double minScore[3] = {100,100,100};
    
    //平均成绩存储数组
    
    double aveScore[3];
    
    //学生成绩记录数组
    
    double stuScore[30][4];
    
    //学生姓名学号数组
    
    wchar_t stuNameId[30][2][255];
    
    //定义字符缓冲区
    
    wchar_t tmpBuf[255];
    
    //列表记录存储数组
    
    wchar_t itemRec[6][255];
    
    
    
    
    
    void SetItemData(HANDLE hList)
    
    {
    
    	int i = 0;
    
    	memset(&LvItem,0,sizeof(LvItem)); //将列表框结构体清零
    
    
    
    	LvItem.mask = LVIF_TEXT;	//设定列表显示内容为文本
    
    	LvItem.cchTextMax = 256;	//最大文本数量
    
    	LvItem.iItem = 0;			//选择第0条记录
    
    	LvItem.iSubItem = 0;		//放在第一列
    
    	LvItem.pszText = itemRec[0];//显示的内容
    
    
    
    	SendMessage(hList,LVM_INSERTITEM,0,(LPARAM)&LvItem); //发信息到控件,让其显示
    
    
    
    	for(i=1;i<=5;i++) //用一个循环来添加记录
    
    	{
    
    		LvItem.iSubItem=i;
    
    		LvItem.pszText=itemRec[i];
    
    		SendMessage(hList,LVM_SETITEM,0,(LPARAM)&LvItem);
    
    	}
    
    }
    
    
    
    void SetIdRec(wchar_t *pszStuID,wchar_t *pszStuName,double dMath ,double dMacDraw,
    
    					double dProgram,double dAverage)
    
    {
    
    	wcscpy(itemRec[0],pszStuID);
    
    	wcscpy(itemRec[1],pszStuName);
    
    
    
    	swprintf(itemRec[2],L"%5.2lf",dMath);
    
    	swprintf(itemRec[3],L"%5.2lf",dMacDraw);
    
    	swprintf(itemRec[4],L"%5.2lf",dProgram);
    
    	swprintf(itemRec[5],L"%5.2lf",dAverage);
    
    
    
    	SetItemData(hList);
    
    }
    
    
    
    void SetSubRec(wchar_t *pszSubName,double daveScore,double dmaxScore,double dminScore)
    
    {
    
    	wchar_t Scores[3][255];
    
    	memset(Scores,0,sizeof(Scores));
    
    
    
    	swprintf(Scores[0],L"%lf",daveScore);
    
    	swprintf(Scores[1],L"%lf",dmaxScore);
    
    	swprintf(Scores[2],L"%lf",dminScore);
    
    
    
    	memset(&LvItem,0,sizeof(LvItem)); 
    
    	
    
    	LvItem.mask = LVIF_TEXT; 
    
    	LvItem.cchTextMax = 256;
    
    	LvItem.iItem = 0;        
    
    	LvItem.iSubItem = 0;       
    
    	LvItem.pszText = pszSubName; 
    
    	SendMessage(hList2,LVM_INSERTITEM,0,(LPARAM)&LvItem); 
    
    
    
    	for(i = 0; i<3 ; i++)
    
    	{
    
    		LvItem.iSubItem=i+1;
    
    		LvItem.pszText=Scores[i];
    
    		SendMessage(hList2,LVM_SETITEM,0,(LPARAM)&LvItem); 
    
    	}
    
    }
    
    
    
    void SetListImage(wchar_t *pos)
    
    {
    
    	LVBKIMAGE plvbki={0};   
    
    	plvbki.ulFlags=LVBKIF_SOURCE_URL;		// 从路径读取图像
    
    	plvbki.pszImage=pos;					// 设定图像路径
    
    	plvbki.xOffsetPercent=40;				// x坐标
    
    	plvbki.yOffsetPercent=15;				// y坐标
    
    	OleInitialize(NULL);					// 初始化OLE控件以读取JPG图像
    
    	SendMessage(hList,LVM_SETTEXTBKCOLOR,	//设定背景 
    
    					0,(LPARAM)CLR_NONE);
    
    	SendMessage(hList,LVM_SETBKIMAGE,0,
    
    					(LPARAM)(LPLVBKIMAGE)&plvbki); //通知控件执行绘图
    
    }
    
    
    
    void SetListColumn(HANDLE hList,HANDLE hList2)
    
    {
    
    
    
    	memset(&LvCol,0,sizeof(LvCol));                  
    
    	LvCol.mask=LVCF_TEXT|LVCF_WIDTH|LVCF_SUBITEM;			//成员属性
    
    	LvCol.pszText=L"学生学号";								// 表头文字
    
    	LvCol.cx= 0x55;											// 表项宽度
    
    	SendMessage(hList,LVM_INSERTCOLUMN,0,(LPARAM)&LvCol);	// 插入表项
    
    
    
    	LvCol.pszText=L"学生姓名";								// 下个字段
    
    	SendMessage(hList,LVM_INSERTCOLUMN,1,(LPARAM)&LvCol);	// ...
    
    	LvCol.pszText=L"高等数学";								//
    
    	SendMessage(hList,LVM_INSERTCOLUMN,2,(LPARAM)&LvCol);	//
    
    	LvCol.pszText=L"机械制图";								//
    
    	SendMessage(hList,LVM_INSERTCOLUMN,3,(LPARAM)&LvCol);	//
    
    	LvCol.pszText=L"程序设计";								//
    
    	SendMessage(hList,LVM_INSERTCOLUMN,4,(LPARAM)&LvCol);	//
    
    	LvCol.pszText=L"平均成绩";								//
    
    	SendMessage(hList,LVM_INSERTCOLUMN,5,(LPARAM)&LvCol);	// ...跟上面一样
    
    
    
    	SendMessage(hList,LVM_SETEXTENDEDLISTVIEWSTYLE,
    
    							0,LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES); // 设置风格
    
    
    
    
    
    	LvCol.cx= 0x7C;
    
    	LvCol.pszText=L"考试科目";								// 跟上面一样
    
    	SendMessage(hList2,LVM_INSERTCOLUMN,0,(LPARAM)&LvCol); 
    
    
    
    	LvCol.pszText=L"平均成绩";                            
    
    	SendMessage(hList2,LVM_INSERTCOLUMN,3,(LPARAM)&LvCol); 
    
    	LvCol.pszText=L"最高成绩";                            
    
    	SendMessage(hList2,LVM_INSERTCOLUMN,4,(LPARAM)&LvCol); 
    
    	LvCol.pszText=L"最低成绩";                            
    
    	SendMessage(hList2,LVM_INSERTCOLUMN,5,(LPARAM)&LvCol); 
    
    
    
    	SendMessage(hList2,LVM_SETEXTENDEDLISTVIEWSTYLE,
    
    							0,LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);
    
    	return;
    
    }
    
    
    
    BOOL CALLBACK DialogProc(HWND hWnd, UINT Message, WPARAM wParam, LPARAM lParam)
    
    {
    
      switch(Message)
    
      {
    
            case WM_CLOSE:
    
    			{
    
    				PostQuitMessage(0);
    
    				EndDialog(hWnd,0);
    
    				return TRUE;
    
    			}
    
    		case WM_INITDIALOG:
    
    			{   
    
    				//获取列表框句柄
    
    				hList  = GetDlgItem(hWnd,IDC_LIST3);
    
    				hList2 = GetDlgItem(hWnd,IDC_LIST1);
    
    
    
    				//设置列表框字段值
    
    				SetListColumn(hList,hList2);
    
    				//设置列表框背景图
    
    				SetListImage(L"C://RES.dll");
    
    				
    
    				//选定第一个单选按钮
    
    				CheckDlgButton(hWnd, IDC_RADIO1, BST_CHECKED);
    
    				iRadio = 1;
    
    				
    
    				//设定所有的列表框最多可写不超过12个字符
    
    				for(i= 1003; i<=1008; i++)
    
    					SendDlgItemMessage(hWnd,i,EM_LIMITTEXT,12,0);
    
    
    
    				return TRUE;
    
    			}
    
    		case WM_COMMAND:
    
    			{
    
    				//当确定按钮被按下的时候
    
    				if(LOWORD(wParam) == IDC_BUTTON1)
    
    				{
    
    					SaveRecord(hWnd);
    
    					return TRUE;
    
    				}
    
    				//当查询按钮被按下的时候
    
    				if(LOWORD(wParam) == IDC_BUTTON3)
    
    				{
    
    					QueryScore(hWnd);
    
    					return TRUE;
    
    				}
    
    				//当单选钮全部科目被按下
    
    				if(LOWORD(wParam) == IDC_RADIO3)
    
    				{
    
    					SetDlgItemText(hWnd,IDC_EDIT7,L"");							//清空关键字框
    
    					SendDlgItemMessage(hWnd,IDC_EDIT7,EM_SETREADONLY,TRUE,0);	//置为只读
    
    					iRadio = 3;													//设定单选按钮标志
    
    					return TRUE;
    
    				}
    
    				//当单选按钮全部学生被按下
    
    				if(LOWORD(wParam) == IDC_RADIO4)
    
    				{
    
    					SetDlgItemText(hWnd,IDC_EDIT7,L"");							//同上
    
    					SendDlgItemMessage(hWnd,IDC_EDIT7,EM_SETREADONLY,TRUE,0);
    
    					iRadio = 4;
    
    					return TRUE;
    
    				}
    
    				//当单选按钮按学号被按下
    
    				if(LOWORD(wParam) == IDC_RADIO1)
    
    				{
    
    					SendDlgItemMessage(hWnd,IDC_EDIT7,EM_SETREADONLY,FALSE,0);	//还原关键字框
    
    					iRadio = 1;
    
    					return TRUE;
    
    				}
    
    				if(LOWORD(wParam) == IDC_RADIO2)
    
    				{
    
    					SendDlgItemMessage(hWnd,IDC_EDIT7,EM_SETREADONLY,FALSE,0);	//同上
    
    					iRadio = 2;
    
    					return TRUE;
    
    				}
    
    				return TRUE;
    
    			}
    
      }
    
      return FALSE;
    
    }
    
    
    
    int WINAPI WinMain (HINSTANCE hInstance,
    
                        HINSTANCE hPrevInstance,
    
                        LPSTR lpszArgument,
    
                        int nFunsterStil)
    
    {
    
    	INITCOMMONCONTROLSEX InitCtrls;															//注册并初始化控件库
    
        InitCtrls.dwICC = ICC_LISTVIEW_CLASSES;
    
        InitCtrls.dwSize = sizeof(INITCOMMONCONTROLSEX);
    
    	InitCommonControlsEx(&InitCtrls);
    
    	
    
    	hInst = hInstance;																		//保存实例句柄
    
    				
    
    	DialogBoxParam(hInstance, MAKEINTRESOURCE(IDD_DIALOG1), NULL, (DLGPROC)DialogProc,0);	//指定对话框处理过程,创建对话框
    
    	return 0;
    
    }
    
    
    
    double   GetDlgItemDouble(HWND hDlg, int nlDDlgItem, BOOL* lpTranslated) 
    
    {   
    
    	TCHAR   szBuffer[256]; 
    
        TCHAR*   endptr; 
    
        if(GetDlgItemText(hDlg,   nlDDlgItem,   szBuffer,   sizeof(szBuffer))) 
    
        {   const   double   dValue   =   wcstod(szBuffer,   &endptr); 
    
            if   (lpTranslated)   *lpTranslated   =   (*endptr== '/0 '); 
    
            return   dValue; 
    
        } 
    
        else 
    
        {   if   (lpTranslated)   *lpTranslated=FALSE; 
    
            return   0; 
    
        } 
    
    } 
    
    
    
    void SaveRecord(HANDLE hWnd)
    
    {
    
    	//建立映射获取存储索引位置
    
    	int index = 0;
    
    	BOOL ret = FALSE;
    
    	GetDlgItemText(hWnd,IDC_EDIT1,tmpBuf,250);
    
    	swscanf(tmpBuf, L"%*10s%d",&index);
    
    
    
    	index--;
    
    
    
    	if(index<0 || index>29)
    
    	{
    
    		MessageBox(NULL,L"错误的学号范围,请检查后重新输入",L"错误",MB_OK);
    
    		return;
    
    	}
    
    	
    
    	stuNum++;
    
    	
    
    	//存储学号
    
    	wcscpy(stuNameId[index][0],tmpBuf);
    
    	
    
    	//存储姓名
    
    	GetDlgItemText(hWnd,IDC_EDIT2,tmpBuf,250);
    
    	wcscpy(stuNameId[index][1],tmpBuf);
    
    	
    
    	//存储成绩
    
    	stuScore[index][0] = GetDlgItemDouble(hWnd,IDC_EDIT3,&ret);
    
    	stuScore[index][1] = GetDlgItemDouble(hWnd,IDC_EDIT4,&ret);
    
    	stuScore[index][2] = GetDlgItemDouble(hWnd,IDC_EDIT5,&ret);
    
    	stuScore[index][3] = (stuScore[index][0]+stuScore[index][1]+stuScore[index][2])/3.0;
    
    	
    
    	//设定最高成绩
    
    	maxScore[0] = stuScore[index][0]>maxScore[0]?stuScore[index][0]:maxScore[0];
    
    	maxScore[1] = stuScore[index][1]>maxScore[1]?stuScore[index][1]:maxScore[1];
    
    	maxScore[2] = stuScore[index][2]>maxScore[2]?stuScore[index][2]:maxScore[2];
    
    	
    
    	//设定最低成绩
    
    	minScore[0] = stuScore[index][0]<minScore[0]?stuScore[index][0]:minScore[0];
    
    	minScore[1] = stuScore[index][1]<minScore[1]?stuScore[index][1]:minScore[1];
    
    	minScore[2] = stuScore[index][2]<minScore[2]?stuScore[index][2]:minScore[2];
    
    	
    
    	//设定平均成绩
    
    	aveScore[0] = GetAveScore(0);
    
    	aveScore[1] = GetAveScore(1);
    
    	aveScore[2] = GetAveScore(2);
    
    	
    
    	//通知列表显示
    
    	SetIdRec(stuNameId[index][0],stuNameId[index][1],stuScore[index][0],stuScore[index][1],
    
    		stuScore[index][2],stuScore[index][3]);
    
    	
    
    	//清空文本框
    
    	for(i = 1003 ; i<=1008 ; i++)
    
    		SetDlgItemText(hWnd,i,L"");
    
    
    
    	return;
    
    }
    
    
    
    void QueryScore(HANDLE hWnd)
    
    {
    
    	int index = 0;
    
    	BOOL ret = FALSE;
    
    	switch(iRadio)
    
    	{
    
    	case 1:
    
    		{
    
    			GetDlgItemText(hWnd, IDC_EDIT7, tmpBuf, 250);
    
    			swscanf(tmpBuf, L"%*10s%d",&index);
    
    
    
    			index--;
    
    
    
    			if(index)
    
    			{
    
    				SendMessage(hList,LVM_DELETEALLITEMS,0,0);
    
    				SetIdRec(stuNameId[index][0],stuNameId[index][1],stuScore[index][0],stuScore[index][1],
    
    					stuScore[index][2],stuScore[index][3]);
    
    				return;
    
    			}
    
    			else
    
    			{
    
    				MessageBox(NULL,L"请输入正确的学号!",L"出错",MB_OK);
    
    				return;
    
    			}
    
    		}
    
    	case 2:
    
    		{
    
    			GetDlgItemText(hWnd, IDC_EDIT7, tmpBuf, 250);
    
    			
    
    			if(!wcscmp(tmpBuf,L"高等代数"))
    
    			{
    
    				SendMessage(hList2,LVM_DELETEALLITEMS,0,0);
    
    				SetSubRec(L"高等代数",aveScore[0],maxScore[0],minScore[0]);
    
    				return;
    
    			}
    
    			else if(!wcscmp(tmpBuf,L"机械制图"))
    
    			{
    
    				SendMessage(hList2,LVM_DELETEALLITEMS,0,0);
    
    				SetSubRec(L"机械制图",aveScore[1],maxScore[1],minScore[1]);
    
    				return;
    
    			}
    
    			else if(!wcscmp(tmpBuf,L"程序设计"))
    
    			{
    
    				SendMessage(hList2,LVM_DELETEALLITEMS,0,0);
    
    				SetSubRec(L"程序设计",aveScore[2],maxScore[2],minScore[2]);
    
    				return;
    
    			}
    
    			else
    
    			{
    
    				MessageBox(NULL,L"错误的科目名称!",L"错误",MB_OK);
    
    				return;
    
    			}
    
    		}
    
    	case 3:
    
    		{
    
    			SendMessage(hList2,LVM_DELETEALLITEMS,0,0);
    
    			SetSubRec(L"机械制图",aveScore[1],maxScore[1],minScore[1]);
    
    			SetSubRec(L"程序设计",aveScore[2],maxScore[2],minScore[2]);
    
    			SetSubRec(L"高等代数",aveScore[0],maxScore[0],minScore[0]);
    
    			return;
    
    		}
    
    	case 4:
    
    		{
    
    			SendMessage(hList,LVM_DELETEALLITEMS,0,0);
    
    			for(i=30;i>0;i--)
    
    				if((int)stuNameId[i][0][0] == (int)stuNameId[i][0][1] == 0)
    
    					SetIdRec(stuNameId[i][0],stuNameId[i][1],stuScore[i][0],stuScore[i][1],
    
    							stuScore[i][2],stuScore[i][3]);	
    
    			return;
    
    		}
    
    	}
    
    }
    
    
    
    double GetAveScore(int isubId)
    
    {
    
    	double result = 0;
    
    
    
    	for(i = 0;i<30;i++)
    
    	{
    
    		result += stuScore[i][isubId];
    
    	}
    
    
    
    	return (result/stuNum);
    
    }
    
    

     
    展开全文
  • 在武功差的对手剑还没拨出来的时候,他已杀死对方并刺上了一朵花。  所以真正的软件高手,他并不满足于他的代码能有效地工作了,他认为编程是艺术,并醉心于其中。在低手能写出一个版本的时间里,他已经写出了第...
  • 但工程不是基于一个假设和可能性的,而是现在就有,让一个OS可以支持广泛的硬件,应用,架构,不是一日之功,也不是一个可以列支预算在几年的有限时间内可完成的任务,它只能是进化出来的,随着实际发生的软硬件和...
  • 大数据操作导致Data Guard延迟 91 Oracle重做日志切换频繁导致的性能问题 92 一次ORA-01438错误的解决办法 93 使用LogMiner查找日志信息 95 通过合并碎片来优化Oralce的存储结构 97 RAC环境下GES报警情况的...
  • PID算法的运用

    2015-06-14 20:23:54
    PID_Operation()函数看似很复杂,其实就一直在做一件事:根据提供的数据,用PID公式把最终的PID值算出来。 [C] 纯文本查看 复制代码 ? 001 002 003 004 005 006 007 008 009 010 011 012 013 014 015 016 017 018 ...
  • 你开始知道什么叫电路设计,天天捧着本教科书在草稿纸上狂一气。你也经常开始提起一些技术参数,Vdsat、lamda、early voltage、GWB、ft之类的。总觉得有时候电路和手算得差不多,有时候又觉得差别挺大。你也开始...
  • WPF初接触

    2014-12-11 16:46:34
    最初从Winform转到WPF的动力来源于网络上大量评价WPF做出来的界面Winform更好看,于是对于我这种给小企业编小项目单打独斗型的选手来说,自己一排脑袋,转吧。不管怎么说,做出来界面好看,老板满意,客户满意,对...

    最初从Winform转到WPF的动力来源于网络上大量评价WPF做出来的界面比Winform更好看,于是对于我这种给小企业编小项目单打独斗型的选手来说,自己一排脑袋,转吧。不管怎么说,做出来界面好看,老板满意,客户满意,对自己也赏心悦目,更有成就感。

    到现在差不多一个月时间,也算看完成了一个小项目了,越发对WPF爱不释手,利用它做UI的编程简直行云流水,以前在Winform中很想尝试又无从下手的功能都有了一下实现,现在总结一下自己对它的感受。

    1)界面与代码的完全分离

    虽说编程的目标之一就是界面呈现与后台代码的完全解耦,或许是因为自己水平有限,总觉得Winform实现起来有点力不从心,但是WPF就不一样了,MS甚至看法了专门由于界面设计的blender,将界面的设计操作独立出来,两者可完全互不影响。

    2)基于XAML的自由

    Winform的空间可以用鼠标拖来拖去,属性也是点来点去,对于初学者来说,或许会觉得更直观,更方便;但当你适应了XAML就能感受到它设计的自由。复制移动控件只需要对XAML文本剪来剪去;任意的一组控件你可以轻松建立子空间实现复用;子控件的父控件可随意变化,修改起来完全无压力;父控件想加什么样的子空间,只要你想得到就可实现;绑定,再也不用在意自己的数据变化后去刷新呈现。

    待补充...



    展开全文
  • 16.我们拖动标签一角的蓝点,将全部文字显示出来。 17.再次按下运行按钮,便会出现helloworld。 到这里helloworld 程序便完成了。 Qt Creator 编译的程序,在其工程文件夹下会有一个debug 文件夹,其中有程序的.exe ...
  • 摄像头.zip

    2019-07-23 23:33:32
    不管你以后在什么地方工作学习,必须要学会怎么去团队合作,这样才能发挥出最大的团队作用、这样才能提高团队做事的效率。在团队里有分歧是必不可少的,但是你们的目标一定要都是一样的,不要因为一个分歧影响你们...
  • TITAN V的内存带宽也是这样算出来的,TITAN V的显存频率是850MHz,等效频率是1700MHz,显存位宽是3072bit,那么TITAN V的内存带宽就是1700×3072÷8000=652.8GB/s。 显存位宽的话,HBM显存一块显存能提供1024bit的...
  • 答:“软件危机”(Software Crisis)的出现是由于软件的规模越来越大,复杂度不断增 加,软件需求增大。而软件开发过程是一种高密集度的脑力劳动,软件开发的模式及技术 不能适应软件发展的需要。致使大量质量低劣...
  • 大话数据结构

    2018-12-14 16:02:18
    高斯在上小学的一天,老师要求每个学生都计算1+2+…+100的结果,谁先算出来谁先回家…… 2.4算法定义 20 现实世界中的算法千变万化,没有通用算法可以解决所有问题。甚至一个小问题,某个解决此类问题很优秀的算法...
  • 依分数高低名次成绩排名 美国式排名 中国式排名 求最精简的自动排名公式 排序后排名 位次排名 根据双列成绩进行共同排名 在双列间排名 等次排名 不等次排名(行小排先) 不等次排名(行大排先) 顺次排名 有并列排名...
  • 我有一个专业的Nikon相机,我就喜欢自己手动调光圈、快门,这样照出来的照片才专业,但MM可不懂这些,教了半天也不会。幸好相机有Facade设计模式,把相机调整到自动档,只要对准目标按快门就行了,一切由相机自动...
  • 2007 年时做了几个传统游戏后开始研究快速动作游戏的同步问题,期间写过不少文章,算是国内比较早研究同步问题的人,然而发现不管怎么解决同步都需要在网络传输方面有所突破,后来离开游戏转行互联网后也发现不少...
  • 客观的讲,工作需求上DSP的需求ARM要多,而ARM和FPGA差不多。 DSP因为数字处理与通信领域的空前发展而火暴,小到MP3 射象头,大到我们军品里的控制器,应用面很广。 FPGA的兄弟一般做ANSIC(特殊芯片设计,好象...
  • 有了以上的几个问题,我就一直在想,到底是怎么样才能是学英语是更快更理想的方式?学语言的基本要点是听说读写。这个各种语言的学习方法已经定义过不知道多少次了,在此就不在说明。听和说是最难的,要对一个单词...
  • EXCEL函数公式集

    热门讨论 2010-03-16 03:26:38
    依分数高低名次成绩排名 美国式排名 中国式排名 求最精简的自动排名公式 排序后排名 位次排名 根据双列成绩进行共同排名 在双列间排名 等次排名 不等次排名(行小排先) 不等次排名(行大排先) 顺次排名 有并列排名...
  • C#23种设计模式

    2013-06-02 16:49:43
    我有一个专业的Nikon相机,我就喜欢自己手动调光圈、快门,这样照出来的照片才专业,但MM可不懂这些,教了半天也不会。幸好相机有Facade设计模式,把相机调整到自动档,只要对准目标按快门就行了,一切由相机自动...
  • 共享的句子就是 Flyweight,MM 的名字就是提取出来的外部特 征,根据上下文情况使用。 享元模式:FLYWEIGHT 在拳击比赛中指最轻级。享元模式以共享的方式高效的支持大量 享元模式 的细粒度对象。 享元模式能...

空空如也

空空如也

1 2 3 4
收藏数 66
精华内容 26
关键字:

量比怎么算出来的