VC++结构体中的枚举变量类型 5C

typedef struct sja1000_chan
{
unsigned long xtal;

enum baudr baudRate;

unsigned char sja_rmc;
unsigned char sja_rbsa;

}SJA1000_CHAN;

enum baudr {B1000,B800,B500,B320,B250,B160,B125,B100,B80,B40,B20,B10,B5,USR};

请问结构体中的 baudRate ,换成VB.net的结构体应该怎样处理?

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
VC++结构体中的枚举变量类型
typedef struct sja1000_chan { unsigned long xtal; enum baudr baudRate; unsigned char sja_rmc; unsigned char sja_rbsa; }SJA1000_CHAN; enum baudr {B1000,B800,B500,B320,B250,B160,B125,B100,B80,B40,B20,B10,B5,USR}; 请问结构体中的 baudRate ,换成VB.net的结构体应该怎样处理?
C语言BOOL变量是不是用枚举更好一些?
我是写单片机C语言程序的。 我看一般定义BOOL是: typedef unsigned int BOOL; #define TRUE 1 #define FALSE 0 我自己一般是用枚举定义BOOL: typedef enum{ FALSE; TRUE; } BOOL; 实际应用中两者没发现啥区别,都是 BOOL flag=TRUE; 我自己感觉用枚举的更好一些,能够避免对BOOL变量赋值时出现FALSE和TRUE以外的数值,因为是枚举嘛,会报错,能够提醒程序员。 想看看大家意见,枚举的这种方法有没有我没想到的隐患?为啥VC6这些大平台都不用这种呢?
C++ 关于数据的一些问题(SQL SERVER)
刚学数据库有一些问题没明白,我现在以sql server作为测试的数据库。 第一个问题是怎么枚举局域网的数据库服务器名称,网上搜索的方案是SQL目录下的include里面有相关的头文件可以搜索SQL SERVER列表,由于我这里的数据库不是开发版好像没有那些文件 第二个问题,vc以odbc开发数据库一般是Crecordset,但这个类不知道怎么动态获取结果集,生成的都是绑定了成员变量,数量也自动设置了,如果执行了SQL结果集不是这些该怎么得到结果呢
mfc VC 想请各位帮忙看下问题出在哪里 在list控件上显示不出我所想要的文件夹名称
void Cdm_01Dlg::TravelFolder(CString strDir, int nDepth) { CFileFind filefind; //声明CFileFind类型变量 CString strWildpath = strDir + _T("//*.*"); //所有文件都列出。 int i = 0; CListCtrl *pList = (CListCtrl*)GetDlgItem(IDC_LIST); pList -> InsertItem(0, _T("")); if(filefind.FindFile(strWildpath, 0)) //开始检索文件 { BOOL bRet = TRUE; while(bRet) { bRet = filefind.FindNextFile(); //枚举一个文件 if(filefind.IsDots()) //如果是. 或 .. 做下一个 continue; if(!filefind.IsDirectory()) //不是子目录,把文件名打印出来 { CString strTextOut = strDir + CString(_T("//")) + filefind.GetFileName(); pList->SetItemText(i, 0, strTextOut); i++; //m_StrOut += strTextOut; //m_StrOut += _T("\r\n"); } else //如果是子目录,递归调用该函数 { CString strTextOut = strDir + CString(_T("//")) + filefind.GetFileName(); pList->SetItemText(i, 0, strTextOut); i++; TravelFolder(strTextOut, nDepth + 1);//递归调用该函数打印子目录里的文件 } } filefind.Close(); } } ``` ``` ``` ``` ``` ``` ``` ```
vc6升级为vs10出现Debug
求大神解答,vc6升级为vs10,出现Debug Assersion Failed afxwin2.inl line752,查了可能是控件listbox的原因 ON_COMMAND(IDC_ADD_FILE,OnAddAllFiles) ON_COMMAND(IDC_ADD,OnAddOneFile) ON_COMMAND(IDC_DEL,OnDelOneFile) ON_COMMAND(IDC_DEL_FILE,OnDelAllFiles) ON_LBN_DBLCLK(IDC_SOURCE_FILE_LIST, OnDblclkSourceFileList) ON_LBN_DBLCLK(IDC_AIM_FILE_LIST, OnDblclkAimFileList) ON_BN_CLICKED(IDC_OK, OnFileOpen) ON_BN_CLICKED(IDC_CANCEL,OnExit) ON_WM_SIZE() END_MESSAGE_MAP() CMyOpenDlg::CMyOpenDlg() : CFileDialog(TRUE, NULL, // no default extension NULL, // ..or file name OFN_HIDEREADONLY|OFN_ALLOWMULTISELECT, _T("原始数据 (*.TT)|*.TT|自动测桩文件 (*.ZT)|*.ZT|测桩结果文件(*.SP)|*.SP||")) { GetProfileString("Path","1","",cPath,100); m_Path = cPath; m_ofn.lpstrTitle = _T("请选择文件或文件夹"); strcpy_s(cPath,m_Path); m_ofn.lpstrInitialDir=cPath; char filter[10]; GetProfileString("FILTER","1","",filter,100); m_ofn.nFilterIndex = atoi(filter); m_bPreVer=FALSE; } BOOL CMyOpenDlg::m_bFirst=TRUE; BOOL CMyOpenDlg::OnInitDialog() { // subclass controls... m_ListBox1.SubclassDlgItem(IDC_SOURCE_FILE_LIST, this); m_ListBox2.SubclassDlgItem(IDC_AIM_FILE_LIST, this); CWnd * pWnd = FindWindow(NULL,"请选择文件或文件夹"); CString sCtrlName; CWnd *pedit; CWnd* pStatic; CString filename; TCHAR BUF[512]; CString sPath; CString strText; m_dlghelper.Init(this); int count=0; if(pWnd) { CWnd *pwnd=pWnd->GetWindow(GW_CHILD);//枚举保存对话框的所有子控件 char buf[512]; while(pwnd!=NULL) { ::GetClassName(pwnd->GetSafeHwnd(),buf,512);//得到枚举的控件是什么类型的, CString str=buf; str.TrimRight(); if(str=="Edit")//如果枚举到保存文件名的EDIT { pedit=pwnd;//保存EDIT句柄用来发消息 pedit->ShowWindow(SW_HIDE); filename=BUF;//完成第一步保存原始的文件名 } if(str=="Static") { pStatic = pwnd; pStatic->GetWindowText(strText); if(strText=="文件名(&N):") { pStatic->ShowWindow(SW_HIDE); } if(strText=="文件类型(&T):") { pwnd->MoveWindow(10,185,100,30,TRUE); } } if(str=="ComboBox") { count++; if(count==2) { pwnd->MoveWindow(90,180,320,200,TRUE); } } if(str=="Button")//枚举到按钮,有保存和取消按钮 { pwnd->GetWindowText(strText); if(strText=="打开(&O)")//如果是保存按钮 { pwnd->ShowWindow(SW_HIDE); } if(strText=="取消")//如果是保存按钮 { pwnd->ShowWindow(SW_HIDE); } } if(str=="ListBox") { // pwnd->SendMessage(WM_GETTEXT,sizeof(BUF)/sizeof(TCHAR),(LPARAM)(void*)BUF); } pwnd = pwnd->GetNextWindow(); } } m_bOpen = FALSE; if (m_bFirst) { CButton* CheckPole = (CButton*)GetDlgItem(IDC_CHECK_POLE); CheckPole->SetCheck(1); } else { CButton* CheckPole = (CButton*)GetDlgItem(IDC_CHECK_POLE); CheckPole->SetCheck(0); } UpdateData(FALSE); return CFileDialog::OnInitDialog(); } void CMyOpenDlg::OnTypeChange() { ShowFileInfo(); } ////////////////// CDM_GETFILEPATH // Common helper: show information in the preview and debug panes // void CMyOpenDlg::ShowFileInfo() { CFileDlgHelper& fdh = m_dlghelper; // m_ofn.lpstrInitialDir = cPath; CString path = GetPathName(); CString fldr = GetFolderPath(); CString flext = GetFileExt(); int nFilterIndex = m_ofn.nFilterIndex; int nSelected = 0; int ncount=m_ListBox1.GetCount(); int i=0; for(i=0;i<ncount;i++) { m_ListBox1.DeleteString(0); } path = fldr+"\\"; m_Path = path; CString strFilePath; switch(nFilterIndex) { case 1: { strFilePath = "*.TT"; strFilePath=path+strFilePath; CFileFind m_strFile; CString strShowFiles; i=0; BOOL bFinished=m_strFile.FindFile(strFilePath); while(bFinished) { bFinished=m_strFile.FindNextFile(); strShowFiles=m_strFile.GetFileName(); m_ListBox1.InsertString(i,strShowFiles); i++; } break; } case 2: { strFilePath = "*.ZT"; strFilePath=path+strFilePath; CFileFind m_strFile; CString strShowFiles; i=0; BOOL bFinished=m_strFile.FindFile(strFilePath); while(bFinished) { bFinished=m_strFile.FindNextFile(); strShowFiles=m_strFile.GetFileName(); m_ListBox1.InsertString(i,strShowFiles); i++; } break; } case 3: { strFilePath = "*.SP"; strFilePath=path+strFilePath; CFileFind m_strFile; CString strShowFiles; i=0; BOOL bFinished=m_strFile.FindFile(strFilePath); while(bFinished) { bFinished=m_strFile.FindNextFile(); strShowFiles=m_strFile.GetFileName(); m_ListBox1.InsertString(i,strShowFiles); i++; } break; } } } ////////////////// // Preview: Read first 256 characters of text file // CString CMyOpenDlg::GetTextPreview(LPCTSTR pszPath) { CString buf; CFile f; if (f.Open(pszPath,CFile::modeRead)) { int len = f.Read(buf.GetBuffer(256),256); buf.ReleaseBuffer(); if (len==256) buf += "..."; } return buf; } ////////////////// // Helper adds text to an edit control that I've added to the open dialog // void CMyOpenDlg::AddText(CEdit& wndEdit, LPCTSTR lpText, BOOL bClear) { if (wndEdit) { // Convert \n to \n\r for Windows brain-damaged edit control !&#%! // It's 2001, and I'm still writing code like this! // LPCTSTR src = lpText; TCHAR buf[1024]; TCHAR* dst = buf; TCHAR* endbuf = buf + sizeof(buf) - 1; while (*src && dst < endbuf) { if (*src == '\n') *dst++ = '\r'; *dst++ = *src++; } *dst = 0; wndEdit.SetSel(bClear ? 0 : -1, -1); // end of edit text wndEdit.ReplaceSel(buf); // append string.. wndEdit.SendMessage(EM_SCROLLCARET); // ..and show caret } } ////////////////// // Dialog was sized: reposition my controls. Zzzzz. // void CMyOpenDlg::OnAddAllFiles() { CString FileName; int iNum = m_ListBox1.GetCount(); for(int i = 0; i < iNum; i++) { m_ListBox1.GetText(i,FileName); m_ListBox2.AddString(FileName); } } void CMyOpenDlg::OnAddOneFile() { if(!m_ListBox1.GetSelCount()) { MessageBox("您还没选择要添加的文件,请选择......","提示",MB_OK | MB_ICONEXCLAMATION | MB_ICONWARNING); return; } int iNum = m_ListBox1.GetCurSel(); CString FileName; if(iNum>=0) { m_ListBox1.GetText(iNum,FileName); m_ListBox2.AddString(FileName); } //相同桩号文件打开 CButton* CheckPole = (CButton*)GetDlgItem(IDC_CHECK_POLE); if (CheckPole->GetCheck()) { if (m_ofn.nFilterIndex==3) { return; } OnDelAllFiles(); CString filename,filename1; int currentnum = m_ListBox1.GetCurSel(); if (currentnum>=0) { m_ListBox1.GetText(currentnum,filename1); CString pathname; pathname=m_Path+filename1; TestDataBody* head=new TestDataBody; if (m_ofn.nFilterIndex==1) { CFile hFile(pathname, CFile::modeRead); TT_FILE_HEAD m_TtFileHead; ReadTTFile(&m_TtFileHead, &hFile); } if (m_ofn.nFilterIndex==2) { ReadFromZtFile(head,pathname); } filename=m_Filename; } int num = m_ListBox1.GetCount(); for(int i=0;i<num;i++) { m_ListBox1.GetText(i,filename1); CString pathname; pathname=m_Path+filename1; TestDataBody* head=new TestDataBody; if (m_ofn.nFilterIndex==1) { CFile hFile(pathname, CFile::modeRead); TT_FILE_HEAD m_TtFileHead; ReadTTFile(&m_TtFileHead, &hFile); } if (m_ofn.nFilterIndex==2) { ReadFromZtFile(head,pathname); } if (filename==m_Filename) { if (m_bPreVer&&m_ofn.nFilterIndex==1) { m_ListBox1.GetText(currentnum,filename1); m_ListBox2.AddString(filename1); break; } m_ListBox2.AddString(filename1); } } } } } void CMyOpenDlg::AddFiles(CString FilePath) { } void CMyOpenDlg::OnDblclkSourceFileList() { if(!m_ListBox1.GetSelCount()) { MessageBox("您还没选择要添加的文件,请选择......","提示",MB_OK | MB_ICONEXCLAMATION | MB_ICONWARNING); return; } int iNum = m_ListBox1.GetCount(); CString FileName; CString FileFullName; CString CurDir; CButton* CheckPole = (CButton*)GetDlgItem(IDC_CHECK_POLE); for(int i = 0; i < iNum; i++) { if(m_ListBox1.GetSel(i)) { m_ListBox1.GetText(i,FileName); m_ListBox2.AddString(FileName); if (CheckPole->GetCheck()) { if (m_ofn.nFilterIndex==3) { OnDelAllFiles(); } OnAddOneFile(); } } } } void CMyOpenDlg::OnDblclkAimFileList() { int iNum = 0; int iFileNum =m_ListBox2.GetCount(); if(!iFileNum) return; iNum=m_ListBox2.GetCurSel(); if( iNum < 0) { MessageBox("您没有选择要删除的文件,请选择......","提示",MB_OK | MB_ICONEXCLAMATION | MB_ICONWARNING); return; } m_ListBox2.DeleteString(iNum); } void CMyOpenDlg::OnFileOpen() { CString strFileName; if(m_ListBox2.GetCount()<=6&&m_ListBox2.GetCount()>0) { for(int i=0;i<10;i++) { m_OpenFilePath[i]=""; } for(int i=0;i<m_ListBox2.GetCount();i++) { m_ListBox2.GetText(i,strFileName); m_OpenFilePath[i]=m_Path+strFileName; } SavePath(); m_bOpen = TRUE; if (IsDlgButtonChecked(IDC_CHECK_POLE))//判断是否选择相同桩号 2009.12.15 { m_bFirst=TRUE; } else { m_bFirst=FALSE; } this->GetParent()->PostMessage(WM_CLOSE,0,0); } else { AfxMessageBox("请确认在[打开文件列表]中的文件个数在1~6个!"); } } INT_PTR CMyOpenDlg::DoModal() { // TODO: 在此添加专用代码和/或调用基类 m_ofn.lpTemplateName = MAKEINTRESOURCE(IDD_FILEOPEN); m_ofn.Flags |= OFN_ENABLETEMPLATE; return CFileDialog::DoModal(); }
函数releaselinklist()和finishprogram()的具体代码是不是这样写的?有什么其他错误请指教一下?
``` //vc++6.0实现的C++版链表 //课题名称:彩票自动生成与对比系统 //主要功能:用目前社会上已经存在的22选5的彩票玩法,编写出用户购买彩票,计算机自动给出彩票,以及模拟当天彩票推出的结果,同时给出对比结果. #include <iostream.h> #include <windows.h> #include <fstream.h> #include <iomanip.h> #include <time.h> enum returninfo{success,fail};//用枚举类型保存各种返回信息的英语单词,以便分类处理 const int CUTTINGLINESTART=1;//定义切分线开始位置 const int CUTTINGLINELENGTH=25;//定义切分线长度 const int GETRONDMAXNUMBER=22;//定义系统自动产生数据的最大值 const int TICKETNUMSLENTH=5;//定义彩票中选取的号码个数 ofstream outdet("彩票购买清单.txt");//彩票购买清单写入文件数据流 ofstream outpro("彩票得奖细节.txt");//彩票得奖细节写入文件数据流 ofstream outres("彩票得奖统计.txt");//彩票得奖统计写入文件数据流 int number1=0,number2=0;//判断彩票是否已经购买和兑奖 /* 定义一个彩票类lotteryticket */ class lotteryticket { public: lotteryticket(lotteryticket *initnext=NULL);//构造函数 ~lotteryticket(){};//析构函数 void displaynums();//显示彩票号码串函数 void ticknumsintofile(int kinds);//将彩票号码串写入文件 void ticketnumssort();//彩票数据自动排序函数 int compticketnums(int nums[]);//彩票兑奖函数 void inputticketnums(int kinds);//获取彩票号码串函数 bool examineticketnums();//审核彩票号码串函数 int ticketnums[TICKETNUMSLENTH];//彩票5个数字 lotteryticket *next; }; /***************************************************************** *函数功能:类lotteryticket的构造函数 *****************************************************************/ lotteryticket::lotteryticket(lotteryticket *initnext) { next=initnext; } /***************************************************************** *函数功能:DOS窗口显示彩票号码信息 *****************************************************************/ void lotteryticket::displaynums() { for(int i=0;i<TICKETNUMSLENTH;i++) { if(ticketnums[i]<10)//号码数字小于10则显示为:OX cout<<"0"; cout<<ticketnums[i]<<" "; } } /***************************************************************** *函数功能:将彩票号码串写入文件 *参数说明:kinds==0时,信息写入"彩票购买清单.txt"; * kinds==1时,信息写入"彩票得奖细节.txt"; *****************************************************************/ void lotteryticket::ticknumsintofile(int kinds) { for(int i=0;i<TICKETNUMSLENTH;i++) { if(kinds==0) { if(ticketnums[i]<10)//号码数字小于10则写为:OX,确保总是两位 outdet<<"0"; outdet<<ticketnums[i]<<" "; } else { if(ticketnums[i]<10) outpro<<"0"; outpro<<ticketnums[i]<<" "; } } } /***************************************************************** *函数功能:彩票号码排序操作(小-->大)冒泡排序 *****************************************************************/ void lotteryticket::ticketnumssort() { int temp; for(int i=TICKETNUMSLENTH-1;i>0;i--) { for(int j=1;j<=i;j++) { if(ticketnums[j]<ticketnums[j-1]) { temp=ticketnums[j-1]; ticketnums[j-1]=ticketnums[j]; ticketnums[j]=temp; } } } } /***************************************************************** *函数功能:彩票兑奖函数 *参数说明:nums[]开奖时一等奖号码 *函数返回:本彩票与一等奖号码相同的个数 *****************************************************************/ int lotteryticket::compticketnums(int nums[]) { int result=0; for(int i=0;i<TICKETNUMSLENTH;i++) { for(int j=0;j<TICKETNUMSLENTH;j++) { if(ticketnums[i]==nums[j]) result++; } } return result; } /***************************************************************** *函数功能:输入彩票号码 *参数说明:kinds==0时,系统自动产生彩票号码串; * kinds==1时,手动输入彩票号码串。 *****************************************************************/ void lotteryticket::inputticketnums(int kinds) { if(kinds==0)//系统自动产生彩票号码串 { for(int i=0;i<TICKETNUMSLENTH;i++) { ticketnums[i]=rand()%GETRONDMAXNUMBER+1;//系统产生1~GETRONDMAXNUMBER之间任意数字 } } else//手动输入彩票号码串 { cout<<"请输入想购买的彩票号码(限制在"<<TICKETNUMSLENTH<<"位,可以乱序)"<<endl; for(int i=0;i<TICKETNUMSLENTH;i++) { cin>>ticketnums[i]; } } } /***************************************************************** *函数功能:检测彩票是否合格(检测数据大小,排除数据相等) *返回信息:true代表此彩票合格; * false代表此彩票不合格。 *****************************************************************/ bool lotteryticket::examineticketnums() { if(ticketnums[0]>GETRONDMAXNUMBER) return false; for(int i=1;i<TICKETNUMSLENTH;i++) { if(ticketnums[i]==ticketnums[i-1]||ticketnums[i]>GETRONDMAXNUMBER) return false; } return true; } /* 定义一个彩票操作类sweepstakes */ class sweepstakes { public: sweepstakes();//构造函数 ~sweepstakes(){};//析构函数 returninfo getlotteryticket();//彩票购买通道 returninfo exchangeprizes();//彩票兑奖通道 void releaselinklist();//释放已购买彩票链表数据空间 void finishprogram();//退出程序前扫尾操作 void simulationsweepstakes(int nums[]);//模拟电视摇奖函数 lotteryticket *headp;//购买彩票指针 lotteryticket target;//中奖彩票 }; /***************************************************************** *函数功能:类sweepstakes构造函数,完成一些基本数据初始化工作 *****************************************************************/ sweepstakes::sweepstakes() { headp=new lotteryticket();//申请新结点,作为头结点 headp->next=NULL; } /***************************************************************** *函数功能:购买彩票函数 *****************************************************************/ returninfo sweepstakes::getlotteryticket() { if(number1!=0) return fail; char cho,icho; int count,i=1,ticketcout=0; lotteryticket *newtickp,*followtickp=headp; cout<<endl<<">>>正在进入购票通道..."<<endl<<endl; Sleep(1000); releaselinklist();//释放上次购买彩票数据空间给系统 cout<<"购买彩票通道说明"<<endl; cout<<"⊙购买彩票的方式有两种:手工和自动;"<<endl; cout<<"⊙购买方式有先后区分:先手工后自动;"<<endl; cout<<"⊙同一个用户均可参与两种购票方式。"<<endl; cout<<"===================================="<<endl; cout<<endl<<"一您需要手工选购彩票吗?(Y/N):"; do{ cin>>cho; }while(cho!='Y'&&cho!='y'&&cho!='N'&&cho!='n'); if(cho=='Y'||cho=='y') { outdet<<"手工选购彩票信息如下:"; do{ newtickp=new lotteryticket(); followtickp->next=newtickp; do{ newtickp->inputticketnums(1); newtickp->ticketnumssort(); if(!newtickp->examineticketnums()) cout<<"系统提示您输入的号码不符合要求!"<<endl; }while(!(newtickp->examineticketnums())); ticketcout++; cout<<"您已成功购得彩票号码:"; newtickp->displaynums(); outdet<<endl<<"手工输入的第"<<setw(3)<<i++<<"张彩票号码为:"; newtickp->ticknumsintofile(0); newtickp->next=NULL; followtickp=followtickp->next; cout<<endl<<">>>还继续手工选购彩票吗?(Y/N):"; cin>>icho; }while(icho=='Y'||icho=='y'); outdet<<endl<<endl; } cout<<endl<<"二您需要自动选购彩票吗?(Y/N):"; do{ cin>>cho; }while(cho!='Y'&&cho!='y'&&cho!='N'&&cho!='n'); if(cho=='Y'||cho=='y') { i=0;//i的值恢复为0 cout<<">>>请输入希望计算机自动产生的彩票张数:"; cin>>count; outdet<<"自动选购彩票信息如下:"; while(count) { newtickp=new lotteryticket(); followtickp->next=newtickp; do{//自动产生彩票号码串 newtickp->inputticketnums(0); newtickp->ticketnumssort(); if(!newtickp->examineticketnums()) cout<<""<<endl; }while(!(newtickp->examineticketnums())); ticketcout++; outdet<<endl<<"系统产生第"<<setw(3)<<++i<<"张彩票号码为:"; newtickp->ticknumsintofile(0); newtickp->next=NULL; followtickp=followtickp->next; count--; } outdet.flush();//词句很关键,要不然最后一张彩票信息无法及时写入文件中 } if(ticketcout!=0) { cout<<endl<<endl<<"您已经购买"<<ticketcout<<"张彩票."<<endl; cout<<endl<<"三您需要查看您已购得的彩票信息吗?(Y/N):"; do{ cin>>cho; }while(cho!='Y'&&cho!='y'&&cho!='N'&&cho!='n'); if(cho=='Y'||cho=='y') ShellExecute(NULL,"open","彩票购买清单.txt",NULL,NULL,SW_SHOWNORMAL); cout<<endl<<"提示:您本次购买彩票工序已结束!"<<endl; } else cout<<endl<<"提示:您本次没有购买彩票,此工序已结束!"<<endl; number1++; number2=0; return success; } /***************************************************************** *函数功能:彩票兑奖函数 *****************************************************************/ returninfo sweepstakes::exchangeprizes() { if(number2!=0) return fail; int i=0,num,count[3]={0,0,0},iticketnums[TICKETNUMSLENTH]; char prizes[3][3]={"一","二","三"},cho; lotteryticket *followtickp=headp->next; cout<<endl<<">>>正在进入兑奖通道..."<<endl<<endl; Sleep(1000); do{//自动产生中奖彩票号码串 target.inputticketnums(0); for(int j=0;j<TICKETNUMSLENTH;j++) iticketnums[j]=target.ticketnums[j];//保存排序前的摇奖信息 target.ticketnumssort(); }while(!target.examineticketnums()); simulationsweepstakes(iticketnums);//模拟摇奖信息 cout<<"目前正在重新排序..."<<endl; Sleep(4000); cout<<endl<<"本次中奖号码为:"; target.displaynums();//显示中奖号码 outpro<<"您本次所购彩票号码以及兑奖情况如下:"<<endl; while(followtickp!=NULL) { outpro<<"第"<<setw(3)<<++i<<"张彩票号码:"; followtickp->ticknumsintofile(1); num=followtickp->compticketnums(target.ticketnums); if(num>TICKETNUMSLENTH-3) { outpro<<"-->"<<prizes[TICKETNUMSLENTH-num]<<"等奖!"<<endl; count[TICKETNUMSLENTH-num]++; } else cout<<"-->"<<"¤"<<endl; followtickp=followtickp->next; } outpro.flush(); outres<<"小助手提示您"<<endl; outres<<"您本次账目如下:"<<endl; outres<<"1、中奖情况:"<<endl; outres<<"一等奖:"<<setw(3)<<count[0]<<"注 每注奖金1000元 计"<<1000*count[0]<<"元;"<<endl; outres<<"二等奖:"<<setw(3)<<count[1]<<"注 每注奖金50元 计"<<50*count[1]<<"元;"<<endl; outres<<"三等奖:"<<setw(3)<<count[2]<<"注 每注奖金5元 计"<<5*count[2]<<"元."<<endl; outres<<"奖金总计:"<<1000*count[0]+50*count[1]+5*count[2]<<"元."<<endl; outres<<"2、选购彩票情况:"<<endl; outres<<"购得彩票数目:"<<setw(3)<<i<<"注 每注彩票2元 计"<<2*i<<"元."<<endl; outres<<"3、盈亏情况分析:"<<endl; if(1000*count[0]+50*count[1]+5*count[2]>2*i) outres<<"此次您赢得"<<1000*count[0]+50*count[1]+5*count[2]-2*i<<"元!"<<endl; else if(1000*count[0]+50*count[1]+5*count[2]==2*i) outres<<"此次您收支平衡!"<<endl; else outres<<"此次您亏损"<<2*i-1000*count[0]-50*count[1]-5*count[2]<<"元!"<<endl; outpro.flush(); ShellExecute(NULL,"open","彩票得奖统计.txt",NULL,NULL,SW_SHOWNORMAL); cout<<endl<<"提示:彩票兑奖结果信息文件已打开!请您查看..."<<endl; cout<<endl<<"提示:您需要查看您的彩票兑奖详细信息吗?(Y/N)"; do{ cin>>cho; }while(cho!='Y'&&cho!='y'&&cho!='N'&&cho!='n'); if(cho=='Y'||cho=='y') ShellExecute(NULL,"open","彩票得奖细节.txt",NULL,NULL,SW_SHOWNORMAL); number2++; number1=0; return success; } /***************************************************************** *函数功能:释放已购买彩票链表数据空间 *****************************************************************/ void sweepstakes::releaselinklist() { lotteryticket *searchp=headp->next,*followp=headp;//初始化两个指针 while(searchp!=NULL) { followp=searchp; searchp=searchp->next; delete followp; } headp->next=NULL;//保留了最后一个结点,就是头结点,并且链域置为空 } /***************************************************************** *函数功能:退出程序前扫尾操作 *****************************************************************/ void sweepstakes::finishprogram() { releaselinklist(); delete headp;//把头结点也释放掉 } /***************************************************************** *函数功能:模拟电视摇奖函数 *****************************************************************/ void sweepstakes::simulationsweepstakes(int nums[]) { char *location[TICKETNUMSLENTH]={"一","二","三","四","五"}; cout<<">>>现在启动开奖程序..."<<endl; cout<<"----------------------"<<endl; for(int i=0;i<TICKETNUMSLENTH;i++) { cout<<endl<<"目前正在摇第"<<location[i]<<"个数字..."; cout<<endl; Sleep(3000); cout<<"第"<<location[i]<<"个数字已经出现:"; if(nums[i]<10) cout<<"0"; cout<<nums[i]<<endl; cout<<"----------------------"<<endl; } } /* 定义一个实现彩票功能的菜单处理类interfacebase */ class interfacebase { private: sweepstakes sweepstakesonface; public: void clearscreen(void);//清屏 void showmenu(void);//显示菜单函数 int userchoice(void);//用户的选项 returninfo processmenu(int menuchoice);//菜单函数 }; /***************************************************************** *函数功能:清屏 *****************************************************************/ void interfacebase::clearscreen(void) { system("cls"); } /***************************************************************** *函数功能:显示菜单函数 *****************************************************************/ void interfacebase::showmenu(void) { cout<<"彩票购买及兑奖基本功能菜单"<<endl; cout<<"=========================="<<endl; cout<<"1.彩票购买通道"<<endl; cout<<"2.彩票兑奖通道"<<endl; cout<<"0.退出程序"<<endl; cout<<"=========================="<<endl; } /***************************************************************** *函数功能:用户的选项 *****************************************************************/ int interfacebase::userchoice(void) { int menuchoice; cout<<"请输入您的选择:"; cin>>menuchoice; return menuchoice; } /***************************************************************** *函数功能:菜单函数 *****************************************************************/ returninfo interfacebase::processmenu(int menuchoice) { int returnvalue; switch(menuchoice)//根据用户的选择进行相应的操作 { case 1: clearscreen(); returnvalue=sweepstakesonface.getlotteryticket(); if(returnvalue==fail) cout<<"对不起,您已经购买彩票,请兑奖后再继续购买彩票!"<<endl; else cout<<"彩票购买成功,请去彩票兑奖通道兑奖!"<<endl; break; case 2: clearscreen(); returnvalue=sweepstakesonface.exchangeprizes(); if(returnvalue==fail) cout<<"对不起,彩票已经兑奖,请购买彩票后再继续兑奖!"<<endl; else cout<<"彩票已经兑奖,欢迎再次购买!"<<endl; break; case 0: sweepstakesonface.finishprogram(); exit(0); default: cout<<"对不起,您输入的功能编号有错!请重新输入!!!"<<endl; break; } return success; } /* 程序主入口 */ void main(void) { int menuchoice;//定义变量,菜单选单项的选择 interfacebase interfacenow; sweepstakes sweepstakesnow; system("color f0");//修改屏幕的背景色和字的颜色 interfacenow.clearscreen();//清屏 while(1)//永真循环 { interfacenow.showmenu();//显示菜单 menuchoice=interfacenow.userchoice();//获取用户的选择 interfacenow.processmenu(menuchoice);//处理用户的选择 system("pause");//暂停 interfacenow.clearscreen();//清屏 } }//主函数结束 ```
爬虫福利二 之 妹子图网MM批量下载
爬虫福利一:27报网MM批量下载    点击 看了本文,相信大家对爬虫一定会产生强烈的兴趣,激励自己去学习爬虫,在这里提前祝:大家学有所成! 目标网站:妹子图网 环境:Python3.x 相关第三方模块:requests、beautifulsoup4 Re:各位在测试时只需要将代码里的变量 path 指定为你当前系统要保存的路径,使用 python xxx.py 或IDE运行即可。
Java学习的正确打开方式
在博主认为,对于入门级学习java的最佳学习方法莫过于视频+博客+书籍+总结,前三者博主将淋漓尽致地挥毫于这篇博客文章中,至于总结在于个人,实际上越到后面你会发现学习的最好方式就是阅读参考官方文档其次就是国内的书籍,博客次之,这又是一个层次了,这里暂时不提后面再谈。博主将为各位入门java保驾护航,各位只管冲鸭!!!上天是公平的,只要不辜负时间,时间自然不会辜负你。 何谓学习?博主所理解的学习,它
程序员必须掌握的核心算法有哪些?
由于我之前一直强调数据结构以及算法学习的重要性,所以就有一些读者经常问我,数据结构与算法应该要学习到哪个程度呢?,说实话,这个问题我不知道要怎么回答你,主要取决于你想学习到哪些程度,不过针对这个问题,我稍微总结一下我学过的算法知识点,以及我觉得值得学习的算法。这些算法与数据结构的学习大多数是零散的,并没有一本把他们全部覆盖的书籍。下面是我觉得值得学习的一些算法以及数据结构,当然,我也会整理一些看过
大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了
大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、PDF搜索网站推荐 对于大部
毕业设计 微信小程序 音乐播放器
大学室友根据网易云的API自己制作的微信小程序,获得校级优秀毕业设计(如果你是大佬请绕行),下面简单介绍一下: 根据多次的使用不同的音乐APP发现,网易云音乐的页面设计最适合作为本微信小程序的页面基础模板。由于本作品是微信小程序,就需要剔除APP中的各种冗余的功能,页面设计也需要尽可能的简单直接,内容也要充实。然后根据以上几点,对应用的功能模块进行大量的分析与重构...
想查看微信好友撤回的消息?Python帮你搞定
要说微信最让人恶心的发明,消息撤回绝对能上榜。 比如你现在正和女朋友用微信聊着天,或者跟自己喜欢的女孩子聊着天,一个不留神,你没注意到对方发的消息就被她及时撤回了,这时你很好奇,好奇她到底发了什么?于是你打算问问她发了什么,结果她回一句"没什么"。这一回复,让你的好奇心更加强烈了,顿时就感觉消息撤回这一功能就是用来折磨人的。 那么有没有什么办法能够知道你心爱的她(他)到底撤回了什么呢?不要着急,P...
程序员必备的8个学习工具
取其精华,去其糟粕
2019年12月中国编程语言排行榜
2019年12月4日,我统计了某招聘网站,获得有效程序员招聘数据9万条。针对招聘信息,提取编程语言关键字,并统计如下: 编程语言比例 rank pl_ percentage 1 java 33.60% 2 c/c++ 16.58% 3 c# 12.59% 4 javascript 12.21% 5 python 7.96% 6 go 7.19% 7 php ...
拼不过 GO?阿里如何重塑云上的 Java
阿里妹导读:Java 诞生于20年前,拥有大量优秀的企业级框架,践行 OOP 理念,更多体现的是严谨以及在长时间运行条件下的稳定性和高性能。反观如今,在要求快速迭代交付的云场景下,语言的简单性似乎成了首要的要求,而传统的 Java 语言显得有一些过于重量了。今天,阿里 JVM 团队技术专家郁磊(花名:梁希)分享 JVM 团队是如何面对和处理集团巨大的业务规模和复杂的业务场景的。 音乐无国...
Java知识体系最强总结(2020版)
更新于2020-01-05 18:08:00 本人从事Java开发已多年,平时有记录问题解决方案和总结知识点的习惯,整理了一些有关Java的知识体系,这不是最终版,会不定期的更新。也算是记录自己在从事编程工作的成长足迹,通过博客可以促进博主与阅读者的共同进步,结交更多志同道合的朋友。特此分享给大家,本人见识有限,写的博客难免有错误或者疏忽的地方,还望各位大佬指点,在此表示感激不尽。 整理的Ja
一个“/”键,封锁了整个互联网
正所谓无BUG不生活,从你含辛茹苦地码着第一行代码开始,bug就如影随形。 其实,bug 被自己或者是测试人员发现都是好事;但如果是被用户发现,又或者导致了客户和公司的巨额损失……这些未知后果,就如同悬在头顶的一把利刃,让人脊背发凉…… 但一个小小的bug,可能带给你惊吓,也可能带来惊喜。接下来,我们就来看看 bug 都能带来哪些意想不到的影响呢? 1.来自 Amazon 的圣诞大礼包~ 201...
计算机专业的书普遍都这么贵,你们都是怎么获取资源的?
介绍几个可以下载编程电子书籍的网站。 1.Github Github上编程书资源很多,你可以根据类型和语言去搜索。推荐几个热门的: free-programming-books-zh_CN:58K 星的GitHub,编程语言、WEB、函数、大数据、操作系统、在线课程、数据库相关书籍应有尽有,共有几百本。 Go语言高级编程:涵盖CGO,Go汇编语言,RPC实现,Protobuf插件实现,Web框架实
自学系列 | 就谈兴趣!
最近接到很多读者的私信,基本都是有关方向的选择上以及如何自学上,还有部分读者问到有关前端的方向,能不能详细写写如果从零学习,能够达到找工作的标准。而且这个自学能力是我们一辈子的生存技能,无论干什么,都离开这种能力,这是毋容置疑的。 之前有关自学的文章确实挺零散的,而且还不够详细。所以小鹿打算利用业余时间把如何自学写成一整个系列《如何成为一个优秀的自学者》。写之前呢,希望我们每个人先放下心中的执念...
卸载 x 雷某度!GitHub 标星 1.5w+,从此我只用这款全能高速下载工具!
作者 | Rocky0429 来源 | Python空间 大家好,我是 Rocky0429,一个喜欢在网上收集各种资源的蒟蒻… 网上资源眼花缭乱,下载的方式也同样千奇百怪,比如 BT 下载,磁力链接,网盘资源等等等等,下个资源可真不容易,不一样的方式要用不同的下载软件,因此某比较有名的 x 雷和某度网盘成了我经常使用的工具。 作为一个没有钱的穷鬼,某度网盘几十 kb 的下载速度让我
毕业5年,我问遍了身边的大佬,总结了他们的学习方法
你知道的越多,你不知道的越多 点赞再看,养成习惯 本文 GitHub https://github.com/JavaFamily 已收录,有一线大厂面试点思维导图,也整理了很多我的文档,欢迎Star和完善,大家面试可以参照考点复习,希望我们一起有点东西。 前言 很多次小伙伴问到学习方法,我也很想写这样的一篇文章来跟大家讨论下关于学习方法这件事情。 其实学习方法这个事情,我没啥发言权
推荐10个堪称神器的学习网站
每天都会收到很多读者的私信,问我:“二哥,有什么推荐的学习网站吗?最近很浮躁,手头的一些网站都看烦了,想看看二哥这里有什么新鲜货。” 今天一早做了个恶梦,梦到被老板辞退了。虽然说在我们公司,只有我辞退老板的份,没有老板辞退我这一说,但是还是被吓得 4 点多都起来了。(主要是因为我掌握着公司所有的核心源码,哈哈哈) 既然 4 点多起来,就得好好利用起来。于是我就挑选了 10 个堪称神器的学习网站,推
这些软件太强了,Windows必装!尤其程序员!
Windows可谓是大多数人的生产力工具,集娱乐办公于一体,虽然在程序员这个群体中都说苹果是信仰,但是大部分不都是从Windows过来的,而且现在依然有很多的程序员用Windows。 所以,今天我就把我私藏的Windows必装的软件分享给大家,如果有一个你没有用过甚至没有听过,那你就赚了......,这可都是提升你幸福感的高效率生产力工具哦! 走起!...... NO、1 ScreenToGif 屏幕,摄像头和
还看不懂同事代码?快来补一波 Java 7 语法特性
前言 Java 平台自出现到目前为止,已经 20 多个年头了,这 20 多年间 Java 也一直作为最流行的程序设计语言之一,不断面临着其他新兴编程语言的挑战与冲击。Java 语言是一种静态强类型语言,这样的语言特性可以让 Java 编译器在编译阶段发现错误,这对于构建出一个稳定安全且健壮的应用来说,尤为重要。但是也因为这种特性,让 Java 开发似乎变得缺少灵活性,开发某些功能的应用时,代码量可...
为什么TCP建立连接协议是三次握手,而关闭连接却是四次挥手呢?
看到了一道面试题:“为什么TCP建立连接协议是三次握手,而关闭连接却是四次握手呢?为什么不能用两次握手进行连接?”,想想最近也到金三银四了,所以就查阅了相关资料,整理出来了这篇文章,希望对你们有所帮助。 TCP 连接 我们先来补一下基础什么是 TCP 协议?传输控制协议( Transmission Control Protocol, TCP )是种面向连接、确保数据在端到端间可靠传输的协议。面向连...
大学四年因为知道了这32个网站,我成了别人眼中的大神!
依稀记得,毕业那天,我们导员发给我毕业证的时候对我说“你可是咱们系的风云人物啊”,哎呀,别提当时多开心啦......,嗯,我们导员是所有导员中最帅的一个,真的...... 不过,导员说的是实话,很多人都叫我大神的,为啥,因为我知道这32个网站啊,你说强不强......,这次是绝对的干货,看好啦,走起来! PS:每个网站都是学计算机混互联网必须知道的,真的牛杯,我就不过多介绍了,大家自行探索,觉得没用的,尽管留言吐槽吧?
看完这篇HTTP,跟面试官扯皮就没问题了
我是一名程序员,我的主要编程语言是 Java,我更是一名 Web 开发人员,所以我必须要了解 HTTP,所以本篇文章就来带你从 HTTP 入门到进阶,看完让你有一种恍然大悟、醍醐灌顶的感觉。 最初在有网络之前,我们的电脑都是单机的,单机系统是孤立的,我还记得 05 年前那会儿家里有个电脑,想打电脑游戏还得两个人在一个电脑上玩儿,及其不方便。我就想为什么家里人不让上网,我的同学 xxx 家里有网,每
阿里程序员写了一个新手都写不出的低级bug,被骂惨了。
你知道的越多,你不知道的越多 点赞再看,养成习惯 本文 GitHub https://github.com/JavaFamily 已收录,有一线大厂面试点思维导图,也整理了很多我的文档,欢迎Star和完善,大家面试可以参照考点复习,希望我们一起有点东西。 前前言 为啥今天有个前前言呢? 因为你们的丙丙啊,昨天有牌面了哟,直接被微信官方推荐,知乎推荐,也就仅仅是还行吧(心里乐开花)
2020年,冯唐49岁:我给20、30岁IT职场年轻人的建议
点击“技术领导力”关注∆每天早上8:30推送 作者|Mr.K 编辑| Emma 来源|技术领导力(ID:jishulingdaoli) 前天的推文《冯唐:职场人35岁以后,方法论比经验重要》,收到了不少读者的反馈,觉得挺受启发。其实,冯唐写了不少关于职场方面的文章,都挺不错的。可惜大家只记住了“春风十里不如你”、“如何避免成为油腻腻的中年人”等不那么正经的文章。 本文整理了冯...
一文带你看清 HTTP 所有概念
上一篇文章我们大致讲解了一下 HTTP 的基本特征和使用,大家反响很不错,那么本篇文章我们就来深究一下 HTTP 的特性。我们接着上篇文章没有说完的 HTTP 标头继续来介绍(此篇文章会介绍所有标头的概念,但没有深入底层) HTTP 标头 先来回顾一下 HTTP1.1 标头都有哪几种 HTTP 1.1 的标头主要分为四种,通用标头、实体标头、请求标头、响应标头,现在我们来对这几种标头进行介绍 通用
世界上有哪些代码量很少,但很牛逼很经典的算法或项目案例?
点击上方蓝字设为星标下面开始今天的学习~今天分享四个代码量很少,但很牛逼很经典的算法或项目案例。1、no code 项目地址:https://github.com/kelseyhight...
作为一个程序员,CPU的这些硬核知识你必须会!
CPU对每个程序员来说,是个既熟悉又陌生的东西? 如果你只知道CPU是中央处理器的话,那可能对你并没有什么用,那么作为程序员的我们,必须要搞懂的就是CPU这家伙是如何运行的,尤其要搞懂它里面的寄存器是怎么一回事,因为这将让你从底层明白程序的运行机制。 随我一起,来好好认识下CPU这货吧 把CPU掰开来看 对于CPU来说,我们首先就要搞明白它是怎么回事,也就是它的内部构造,当然,CPU那么牛的一个东
破14亿,Python分析我国存在哪些人口危机!
2020年1月17日,国家统计局发布了2019年国民经济报告,报告中指出我国人口突破14亿。 猪哥的朋友圈被14亿人口刷屏,但是很多人并没有看到我国复杂的人口问题:老龄化、男女比例失衡、生育率下降、人口红利下降等。 今天我们就来分析一下我们国家的人口数据吧! 更多有趣分析教程,扫描下方二维码关注vx公号「裸睡的猪」 即可查看! 一、背景 1.人口突破14亿 2020年1月17日,国家统计局发布
Python实战:抓肺炎疫情实时数据,画2019-nCoV疫情地图
今天,群里白垩老师问如何用python画武汉肺炎疫情地图。白垩老师是研究海洋生态与地球生物的学者,国家重点实验室成员,于不惑之年学习python,实为我等学习楷模。先前我并没有关注武汉肺炎的具体数据,也没有画过类似的数据分布图。于是就拿了两个小时,专门研究了一下,遂成此文。
面试官问你MyBatis SQL是如何执行的?把这篇文章甩给他
初识 MyBatis MyBatis 是第一个支持自定义 SQL、存储过程和高级映射的类持久框架。MyBatis 消除了大部分 JDBC 的样板代码、手动设置参数以及检索结果。MyBatis 能够支持简单的 XML 和注解配置规则。使 Map 接口和 POJO 类映射到数据库字段和记录。 MyBatis 的特点 那么 MyBatis 具有什么特点呢?或许我们可以从如下几个方面来描述 MyBati...
作为一个程序员,内存和磁盘的这些事情,你不得不知道啊!!!
截止目前,我已经分享了如下几篇文章: 一个程序在计算机中是如何运行的?超级干货!!! 作为一个程序员,CPU的这些硬核知识你必须会! 作为一个程序员,内存的这些硬核知识你必须懂! 这些知识可以说是我们之前都不太重视的基础知识,可能大家在上大学的时候都学习过了,但是嘞,当时由于老师讲解的没那么有趣,又加上这些知识本身就比较枯燥,所以嘞,大家当初几乎等于没学。 再说啦,学习这些,也看不出来有什么用啊!
这个世界上人真的分三六九等,你信吗?
偶然间,在知乎上看到一个问题 一时间,勾起了我深深的回忆。 以前在厂里打过两次工,做过家教,干过辅导班,做过中介。零下几度的晚上,贴过广告,满脸、满手地长冻疮。 再回首那段岁月,虽然苦,但让我学会了坚持和忍耐。让我明白了,在这个世界上,无论环境多么的恶劣,只要心存希望,星星之火,亦可燎原。 下文是原回答,希望能对你能有所启发。 如果我说,这个世界上人真的分三六九等,...
B 站上有哪些很好的学习资源?
哇说起B站,在小九眼里就是宝藏般的存在,放年假宅在家时一天刷6、7个小时不在话下,更别提今年的跨年晚会,我简直是跪着看完的!! 最早大家聚在在B站是为了追番,再后来我在上面刷欧美新歌和漂亮小姐姐的舞蹈视频,最近两年我和周围的朋友们已经把B站当作学习教室了,而且学习成本还免费,真是个励志的好平台ヽ(.◕ฺˇд ˇ◕ฺ;)ノ 下面我们就来盘点一下B站上优质的学习资源: 综合类 Oeasy: 综合...
作为程序员的我,大学四年一直自学,全靠这些实用工具和学习网站!
我本人因为高中沉迷于爱情,导致学业荒废,后来高考,毫无疑问进入了一所普普通通的大学,实在惭愧???? 我又是那么好强,现在学历不行,没办法改变的事情了,所以,进入大学开始,我就下定决心,一定要让自己掌握更多的技能,尤其选择了计算机这个行业,一定要多学习技术。 在进入大学学习不久后,我就认清了一个现实:我这个大学的整体教学质量和学习风气,真的一言难尽,懂的人自然知道怎么回事? 怎么办?我该如何更好的提升自...
B站 MySQL学习随手记 全是满满的干货!
业务级别的MySQL学习与使用 1、数据库分类 1. 关系型数据库(SQL) MySQL,Oracle,SQL Server,DB2,SQLlite 通过表和表之间的,行与列之间的关系进行数据的存储。(例如:学生信息表) 2. 非关系型数据库(NoSQL)Not Only SQL Redis,MongDB 对象存储,通过对象的自身的属性来决定 2、MySQL安装与配置 下载压缩文件...
技术总监灵魂一问:精通那么多技术,为何还是做不好一个项目?
编写高质量可维护的代码既是程序员的基本修养,也是能决定项目成败的关键因素,本文试图总结出问题项目普遍存在的共性问题并给出相应的解决方案。 1. 程序员的宿命? 程序员的职业生涯中难免遇到烂项目,有些项目是你加入时已经烂了,有些是自己从头开始亲手做成了烂项目,有些是从里到外的烂,有些是表面光鲜等你深入进去发现是个“焦油坑”,有些是此时还没烂但是已经出现问题征兆走在了腐烂的路上。 国内基本上是这样,国...
强烈推荐 10 款珍藏的 Chrome 浏览器插件
Firebug 的年代,我是火狐(Mozilla Firefox)浏览器的死忠;但后来不知道为什么,该插件停止了开发,导致我不得不寻求一个新的网页开发工具。那段时间,不少人开始推荐 Chrome 浏览器,我想那就试试吧,期初我觉得用起来很别扭,毕竟我不是一个“喜新厌旧”的人。但用的次数越来越多,也就习惯了。 Chrome 浏览器有一个好处,就是插件极其丰富,只有你想不到的,没有你找不到的,这恐怕是...
我以为我对数据库索引十分了解,直到我遇到了阿里面试官。
索引的数据结构分析,数据库面试到索引最常见的问题分析,我总结了一下。
史上最牛逼的 VSCode 插件,提高开发效率!
这篇文章收集了一些常用的vscode插件,提高开发效率。
Java第二周学习
Java第二周学习 1. 数组 1.1 定义数组格式 数据类型[] 数组名 = new 数据类型[容量]; int[] arr = new int[10]; 赋值左侧 数据类型: 告知编译器,当前数组中能够保存的数据类型到底是什么?并且在确定数据类型之后,整个数组中保存的数据类型无法修改!!! []: 告知编译器这里定义的是一个数组类型数据。 明确告知编译器,数组名是一个【引用数据类型...
有没有简单一点的 Python 小例子或小项目?
分享一波Github上适合新手入门、又十分有趣的Python项目~ 1. 人脸识别 star:30.5k 最简洁的人脸识别库。可以使用Python和命令行工具提取、识别、操作人脸。其人脸识别是基于业内领先的C++开源库dlib中的深度学习模型,用Labeled Faces in the Wild人脸数据集进行测试,准确率高达99.38%。 而且有中文版README哟~ 2. faceai sta...
看完这篇JVM,阿里面试官都不怕!
前言 只有光头才能变强 本已收录至我的GitHub精选文章,欢迎Star:https://github.com/ZhongFuCheng3y/3y 学习JVM的目的也很简单: 能够知道JVM是什么,为我们干了什么,具体是怎么干的。能够理解到一些初学时不懂的东西 在面试的时候有谈资 能装逼 (图片来源:https://zhuanlan.zhihu.com/p/25511795,侵删) 声...
Java基础知识面试题(2020最新版)
文章目录Java概述何为编程什么是Javajdk1.5之后的三大版本JVM、JRE和JDK的关系什么是跨平台性?原理是什么Java语言有哪些特点什么是字节码?采用字节码的最大好处是什么什么是Java程序的主类?应用程序和小程序的主类有何不同?Java应用程序与小程序之间有那些差别?Java和C++的区别Oracle JDK 和 OpenJDK 的对比基础语法数据类型Java有哪些数据类型switc...
Spring面试题(2020最新版)
文章目录Spring概述(10)什么是spring?Spring框架的设计目标,设计理念,和核心是什么Spring的优缺点是什么?Spring有哪些应用场景Spring由哪些模块组成?Spring 框架中都用到了哪些设计模式?详细讲解一下核心容器(spring context应用上下文) 模块Spring框架中有哪些不同类型的事件Spring 应用程序有哪些不同组件?使用 Spring 有哪些方式...
C语言写个贪吃蛇游戏
贪吃蛇是个非常经典的游戏,用C语言来实现也是一个好玩的事情。这个游戏我写完后放在知乎,竟然点赞的人数超级多。我觉得大家喜欢,一个方面是因为写得简单,大家都能看得懂,一个可扩展性还是非常强...
相关热词 c# singleton c#中类的默认值是 c#各种进制之间的转换 c# 正则表达式保留汉字 c#后台跨域 c#基础代码大全 c#指定combox选择 c#关系 mono c# 相差毫秒 用c#做一个简易计算器
立即提问