最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C語言員工信息管理系統(tǒng)源代碼

 更新時間:2020年12月27日 12:42:26   投稿:daisy  
這篇文章主要為大家詳細介紹了C語言員工信息管理系統(tǒng)源代碼,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

今天分享: C語言員工信息管理系統(tǒng)源代碼,供大家參考,具體內(nèi)容如下

/*******************************************************************************
* 文件名:UI.Cpp   *
*          *
* 文件功能: 該文件主要是定義(實現(xiàn))和用戶操作有關的一些函數(shù),之所以把和用戶 *
* 操作有關的函數(shù)單獨放到ui.c中,是為了使程序結構更加清晰,源代碼更  *
* 容易管理,這也是遵循結構化程序設計的要求(模塊化、層次化) *
*   *
* 作者:         *
*          *
*******************************************************************************/
 
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "ui.h"
 
 
//選擇身份
void UserOperateChoose(ListType L)
{
 int option = 0;

 do
 {
 
 //提示用戶操作選擇
 PrintOptionChoose( );
 scanf("%d", &option );
 
 //根據(jù)用戶選擇調(diào)用相關函數(shù)完成指定的操作
 switch(option )
 {
 //添加一個員工
 /* case 1: 
 
 UserOperateOne(L);
 break;*/
 
 //刪除員工
 /* case 2:
 DelStu(L);
 break;
 
 //修改員工
 case 3:
 ModifyStu(L);
 break;  */
 
 //查詢某個員工
 case 1:
 UserOperatemanager(L);
 
 break;

 //排序
 /* case 3:
 UserOperateThree(L);
 break;*/
 //打印所有員工信息
 case 2:
 UserOperateVisitor(L);
 
 break;
 
 default: break;
 }
 }while(option );
 
 //程序退出時,顯示BYEBYE
 PrintHello( );
}
 
//該函數(shù)根據(jù)管理員的選擇,完成指定的操作
void UserOperateVisitor(ListType L)
{
 int option = 0;
 
 //顯示歡迎信息
 
 do
 {
 //提示用戶操作選擇
 PrintOptionVisitor( );
 scanf("%d", &option );
 
 //根據(jù)用戶選擇調(diào)用相關函數(shù)完成指定的操作
 switch(option )
 {
 //添加一個員工
 /* case 1: 
 
 UserOperateOne(L);
 break;*/
 
 //刪除員工
 /* case 2:
 DelStu(L);
 break;
 
 //修改員工
 case 3:
 ModifyStu(L);
 break;  */
 
 //查詢某個員工
 case 1:
 UserOperateTwo(L);
 
 break;
 
 //排序
 /* case 3:
 UserOperateThree(L);
 break;*/
 //打印所有員工信息
 case 2:
 PrntAll(L);
 
 break;
 
 default: break;
 }
 }while(option );
 
 //程序退出時,顯示BYEBYE
 
}
 
//該函數(shù)根據(jù)管理員的選擇,完成指定的操作
void UserOperatemanager(ListType L)
{
 int option = 0;
 
 
 //用密碼進入系統(tǒng)
 password();
 
 
 do
 {
 //提示用戶操作選擇
 PrintOption( );
 scanf("%d", &option );
 
 //根據(jù)用戶選擇調(diào)用相關函數(shù)完成指定的操作
 switch(option )
 {
 //添加一個員工
 case 1: 
 
 UserOperateOne(L);
 break;
 
 //刪除員工
 /* case 2:
 DelStu(L);
 break;
 
 //修改員工
 case 3:
 ModifyStu(L);
 break;  */
 
 //查詢某個員工
 case 2:
 UserOperateTwo(L);
 
 break;
 
 //排序
 case 3:
 UserOperateThree(L);
 break;
 //打印所有員工信息
 case 4:
 PrntAll(L);
 
 break;
 
 
 default: break;
 }
 }while(option );
 
 //程序退出時,顯示BYEBYE
 
}
 
//該函數(shù)為基本操作的二級菜單,完成指定的操作
void UserOperateOne(ListType L)
{
 int option = 0;
 
 
 do
 {
 //提示用戶操作選擇
 PrintOptionOne( );
 scanf("%d", &option );
 
 //根據(jù)用戶選擇調(diào)用相關函數(shù)完成指定的操作
 switch(option )
 {
 //添加一個員工
 case 1: 
 AddStu(L);
 break;
 
 //刪除員工
 case 2:
 DelStu(L);
 break;
 
 //修改員工
 case 3:
 ModifyStu(L);
 break;
 
 //返回上級菜單
 case 0:
 return;
 break;
 
 /* //查詢某個員工
 case 5:
 chkStuname(L);
 break;
 
 
 //打印所有員工信息
 case 6:
 PrntAll(L);
 break;
 
 //按ID號排序
 case 7:
 sortbyID(L);
 
 break;
 case 8:
 //按姓名排序
 sortbyname(L);
 break;
 case 9:
 //按部門分類顯示信息
 sortbyoffice(L);
 break;*/
 
 default: break;
 }
 }while(option );
 
 //程序退出時,顯示BYEBYE
 //PrintHello( );
}
 
 
//該函數(shù)為基本操作的第二個二級菜單,完成指定的操作
void UserOperateTwo(ListType L)
{
 int option = 0;
 
 
 do
 {
 //提示用戶操作選擇
 PrintOptionTwo( );
 scanf("%d", &option );
 
 //根據(jù)用戶選擇調(diào)用相關函數(shù)完成指定的操作
 switch(option )
 {
 //查詢某個員工
 case 1:
 chkStu(L);
 break;
 
 //查詢某個員工
 case 2:
 chkStuname(L);
 
 break;
 
 //返回上級菜單
 case 0:
 return;
 break;
 
 /* //查詢某個員工
 case 5:
 chkStuname(L);
 break;
 
 
 //打印所有員工信息
 case 6:
 PrntAll(L);
 break;
 
 //按ID號排序
 case 7:
 sortbyID(L);
 
 break;
 case 8:
 //按姓名排序
 sortbyname(L);
 break;
 case 9:
 //按部門分類顯示信息
 sortbyoffice(L);
 break;*/
 
 default: break;
 }
 }while(option );
 
 //程序退出時,顯示BYEBYE
 //PrintHello( );
}
 
//該函數(shù)為基本操作的第三個二級菜單,完成指定的操作
void UserOperateThree(ListType L)
{
 int option = 0;
 
 
 do
 {
 //提示用戶操作選擇
 PrintOptionThree( );
 scanf("%d", &option );
 
 //根據(jù)用戶選擇調(diào)用相關函數(shù)完成指定的操作
 switch(option )
 {
 //按ID號排序
 case 1:
 sortbyID(L);
 
 break;
 case 2:
 //按姓名排序
 sortbyname(L);
 break;
 case 3:
 //按部門分類顯示信息
 sortbyoffice(L);
 break;
 
 //按性別排序顯示信息
 case 4:
 
 sortbysex(L);
 break;
 
 //按年齡排序顯示信息
 case 5:
 sortbyage(L);
 break;
 
 //按電話排序顯示信息 
 
 case 6:
 sortbyphone( L);
 break;
 //按地址排序顯示信息
 case 7:
 sortbyaddress( L);
 break;
 
 
 //按工資排序顯示信息 
 case 8:
 sortbypay( L);
 break;
 
 //按電子郵件排序顯示信息
 case 9:
 
 sortbyemil( L);
 break;
 
 //返回上級菜單
 case 0:
 return;
 break;
 
 /* //查詢某個員工
 case 5:
 chkStuname(L);
 break;
 
 
 //打印所有員工信息
 case 6:
 PrntAll(L);
 break;
 
 //按ID號排序
 case 7:
 sortbyID(L);
 
 break;
 case 8:
 //按姓名排序
 sortbyname(L);
 break;
 case 9:
 //按部門分類顯示信息
 sortbyoffice(L);
 break;*/
 
 default: break;
 }
 }while(option );
 
 //程序退出時,顯示BYEBYE
 //PrintHello( );
}
 
 
 
/* 用戶操作界面啟動時,在顯示器上顯示一些歡迎信息 */
void PrintWelcome( )
{
 puts(" ");
 puts("********************************************************************" );
 puts("   歡迎使用員工管理系統(tǒng)!" );
 puts("********************************************************************" );
 puts("  若有有問題請在留言區(qū)交流");
 puts("********************************************************************" );
 
}
 

/* 在顯示器上顯示用戶可以進行的操作,以及操作的方法 */
void PrintOption( )
{
 puts(" ");
 puts("請選擇操作:" );
 puts("0:返回 " );
 puts("1:進入基本操作菜單");
 puts("2:進入員工查詢系統(tǒng)");
 puts("3:進入信息排序系統(tǒng)");
 puts("4:打印員工信息");
 
}
 
 
//選擇身份
void PrintOptionChoose( )
 
{
 puts(" ");
 puts("請選擇身份:" );
 puts("0:退出系統(tǒng) " );
 puts("1:以管理員身份進入 " );
 puts("2:以游客身份進入 " );
 
}
 
//顯示第一個二級的提示信息
void PrintOptionOne( )
{
 puts(" ");
 puts("請選擇操作:" );
 puts("0:返回 " );
 puts("1:添加員工  2:刪除員工  3:修改員工信息" );
 
}
//顯示第二個二級的提示信息
void PrintOptionTwo( )
{
 puts(" ");
 puts("請選擇操作:" );
 puts("0:返回 " );
 puts("1:按員工ID號查詢  2:按員工姓名查詢" );
 
}
 
//顯示第三個二級的提示信息
void PrintOptionThree( )
{
 puts(" ");
 puts("請選擇操作:" );
 puts("0:返回 " );
 puts("1:按ID號排序顯示信息 2:按姓名排序顯示信息 3:按部門分類顯示信息");
 puts("4:按性別排序顯示信息 5:按年齡排序顯示信息 6:按電話排序顯示信息");
 puts("7:按地址排序顯示信息 8:按工資排序顯示信息 9:按電子郵件排序顯示信息");
 
}
 
//顯示游客查詢系統(tǒng)
void PrintOptionVisitor( )
{
 puts(" ");
 puts("請選擇操作:" );
 puts("0:返回 " );
 
 puts("1:進入員工查詢系統(tǒng)");
 
 puts("2:打印員工信息");
}
 
 
 
 
/* 程序退出時,在顯示器上顯示一些感謝語言,以給使用者一個好印象 */
void PrintHello( )
{
 
 puts("********************************************************************" );
 puts("   謝謝使用員工管理系統(tǒng),再見!" );
 puts("********************************************************************" );
 puts(" ");
 
}
 
 
//比較兩個員工信息的學號是否相等
//若相等則返回TRUE,否則返回FALSE
//當調(diào)用線性表操作函數(shù)int LocateElem(ListType L, ElemType e, STATUS (*compare)(ElemType e1, ElemType e2) 
//的時候,將該函數(shù)名作為第三個參數(shù)傳遞給compare
STATUS IsEqual(ElemType e1, ElemType e2 )
{
 if( strcmp(e1.ID, e2.ID)==0 )
 return TRUE;
 
 return FALSE;
}
STATUS IsEqual2(ElemType e1, ElemType e2 )
{
 if( strcmp(e1.name, e2.name)==0 )
 return TRUE;
 
 return FALSE;
}
 
//往線性表中添加一個員工
void AddStu(ListType L)
{
 ElemType stu;
 
 printf("請輸入員工的ID號(不超過15位):" );
 getchar(); //吃掉前面的回車鍵,否則后面的字符串輸入時會出錯
 gets(stu.ID );
 printf("請輸入員工的姓名(不超過15位):" );
 gets(stu.name );
 printf("請輸入員工的性別(輸入M/W):" );
 stu.sex=getchar();
 printf("請輸入員工的年齡:" );
 scanf("%d",&stu.age);
 printf("請輸入員工的電話(不超過20位):" );
 getchar(); //吃掉前面的回車鍵,否則后面的字符串輸入時會出錯
 gets(stu.phone);
 printf("請輸入員工的地址(不超過100位):" );
 gets(stu.address);
 printf("請輸入員工的電子郵件(不超過50位):" );
 gets(stu.email);
 printf("請輸入員工的工資(不超過10位):" );
 gets(stu.pay);
 printf("請輸入員工的工齡:" );
 scanf("%d",&stu.workingyears);
 getchar(); //吃掉前面的回車鍵,否則后面的字符串輸入時會出錯
 printf("請輸入員工的所在部門(不超過100位):" );
 gets(stu.office);
 
 
 //判斷線性表中是否已經(jīng)存在該ID號的員工,如果已經(jīng)存在,則放棄插入操作
 if( LocateElem(L, stu, IsEqual) )
 {
 puts("操作失敗,該員工已經(jīng)存在" );
 return ;
 }
 
 //將該學生放入線性表中
 //為簡單起見,我們把新添加的結點放到線性表的前面
 if( ListInsert(L, 1, stu ) )
 puts("操作成功" );
 else
 puts("操作失敗" );
}
 
//從線性表中刪除一個員工,根據(jù)員工的ID號決定刪除哪個員工
void DelStu(ListType L)
{
 ElemType stu;
 int pos;
 
 printf("請輸入員工的ID號(不超過15位):" );
 getchar(); //吃掉前面的回車鍵,否則后面的字符串輸入時會出錯
 gets(stu.ID );
 pos = LocateElem(L, stu, IsEqual ); //如果存在該ID號的V,則返回其在線性表中的位序,如果不存在返回0
 if(pos ) 
 {
 if(ListDelete(L, pos, stu) )
 {
 puts("操作成功");
 return;
 }
 }
 
 puts("操作失敗" );
}
 

//修改員工成績,根據(jù)ID號決定修改哪個員工的成績
void ModifyStu(ListType L)
{
 int pos;
 ElemType stu;
 
 printf("請輸入員工的ID號(不超過15位):" );
 getchar(); //吃掉前面的回車鍵,否則后面的字符串輸入時會出錯
 gets(stu.ID );
 printf("請輸入員工的姓名(不超過15位):" );
 gets(stu.name );
 printf("請輸入員工的性別(輸入M/W):" );
 scanf("%c",&stu.sex);
 printf("請輸入員工的年齡:" );
 scanf("%d",&stu.age);
 printf("請輸入員工的電話(不超過20位):" );
 getchar(); //吃掉前面的回車鍵,否則后面的字符串輸入時會出錯
 gets(stu.phone);
 printf("請輸入員工的地址(不超過100位):" );
 gets(stu.address);
 printf("請輸入員工的電子郵件(不超過50位):" );
 gets(stu.email);
 printf("請輸入員工的工資(不超過10位):" );
 gets(stu.pay);
 printf("請輸入員工的工齡:" );
 scanf("%d",&stu.workingyears);
 getchar(); //吃掉前面的回車鍵,否則后面的字符串輸入時會出錯
 printf("請輸入員工的所在部門:" );
 gets(stu.office);
 
 pos = LocateElem(L, stu, IsEqual );
 if(pos > 0 )
 {
 ListModify(L, pos, stu );
 puts("操作成功" );
 }
 else
 {
 puts("操作失敗" );
 }
 
 
}
 

//根據(jù)學號查詢某個員工的成績
void chkStu(ListType L)
{
 int pos;
 ElemType stu;
 
 printf("請輸入員工的ID號(不超過15位):" );
 getchar(); //吃掉前面的回車鍵,否則后面的字符串輸入時會出錯
 gets(stu.ID );
 
 if(pos = LocateElem(L, stu, IsEqual) )
 {
 GetElem(L, pos, stu );
 PrntOneStu(stu );
 }
 else
 {
 puts("操作失敗" );
 }
 
}
 

//根據(jù)姓氏查詢某個員工的成績
void chkStuname(ListType L)
{
 int pos;
 ElemType stu;
 
 printf("請輸入員工的姓氏(不超過15位):" );
 getchar(); //吃掉前面的回車鍵,否則后面的字符串輸入時會出錯
 gets(stu.name);
 
 if(pos = LocateElem(L, stu, IsEqual2) )
 {
 GetElem(L, pos, stu );
 PrntOneStu(stu );
 }
 else
 {
 puts("操作失敗" );
 }
 
}
 
//成績統(tǒng)計,統(tǒng)計全體員工的平均成績
/*void StateScore(ListType L)
{
float total[2] = {0.0, 0.0};
int num = 0;
ElemType e;
 while(GetElem(L, num+1, e ) ) //GetElem(...)返回值為FALSE時說明沒有位序為num+1的數(shù)據(jù)
 {
 num++;
 total[0] += e.score[0];
 total[1] += e.score[1];
 }
 
 if(num > 0 )
 {
 printf("平均成績分別為:%.2f, %.2f\n", total[0]/num, total[1]/num );
 }
 else
 {
 puts("沒有數(shù)據(jù)信息" );
 }
 
 
}*/
 
 
//打印一個員工的信息
//調(diào)用ListTraverse()函數(shù)的時候,將該函數(shù)的名字作為第二個參數(shù)傳遞給visit
STATUS PrntOneStu(ElemType stu )
{
 printf("ID號:%s 姓名:%s 性別:%c 年齡:%d 電話:%s 地址:%s 電子郵件:%s 工資:%s 工齡:%d 所在部門:%s\n", stu.ID, stu.name, stu.sex,stu.age,stu.phone,stu.address,
 stu.email,stu.pay, stu.workingyears ,stu.office);
 
 return OK;
}
 
//打印所有學生信息
void PrntAll(ListType L)
{
 
 ListTraverse(L, PrntOneStu );
 
}
 
//用于做新的鏈表 
 
//按ID排序
void sortbyID(struct lnode *head)
{
 struct lnode *p1,*p2,*l;
 
 l=(struct lnode *)malloc(sizeof(struct lnode));   
 l->next=NULL;
 
 for (p1=head;p1->next!=NULL;p1=p1->next)
 {
 for (p2=p1->next;p2!=NULL;p2=p2->next)
 {
 if (strcmp(p1->data.ID,p2->data.ID)==-1)
 {
 l->data=p1->data;
 p1->data=p2->data;
 
 p2->data=l->data;
 
 
 }
 }
 }
 printf("降序排序成功\n");
 PrntAll(head);
 
}
 
 
//按姓名排序
void sortbyname(struct lnode *head)
{
 struct lnode *p1,*p2,*l;
 
 l=(struct lnode *)malloc(sizeof(struct lnode));   
 l->next=NULL;
 
 for (p1=head;p1->next!=NULL;p1=p1->next)
 {
 for (p2=p1->next;p2!=NULL;p2=p2->next)
 {
 if (strcmp(p1->data.name,p2->data.name)==-1)
 {
 l->data=p1->data;
 p1->data=p2->data;
 
 p2->data=l->data;
 
 
 }
 }
 }
 printf("降序排序成功\n");
 PrntAll(head);
 
}
 
//按性別分類顯示信息
void sortbysex(struct lnode *head)
{
 struct lnode *p1,*p2,*l;
 
 l=(struct lnode *)malloc(sizeof(struct lnode));   
 l->next=NULL;
 
 for (p1=head;p1->next!=NULL;p1=p1->next)
 {
 for (p2=p1->next;p2!=NULL;p2=p2->next)
 {
 if (p1->data.sex>p2->data.sex)
 {
 l->data=p1->data;
 p1->data=p2->data;
 
 p2->data=l->data;
 
 
 }
 }
 }
 PrntAll(head);
 
}
 
 
//按年齡分類顯示信息
void sortbyage(struct lnode *head)
{
 struct lnode *p1,*p2,*l;
 
 l=(struct lnode *)malloc(sizeof(struct lnode));   
 l->next=NULL;
 
 for (p1=head;p1->next!=NULL;p1=p1->next)
 {
 for (p2=p1->next;p2!=NULL;p2=p2->next)
 {
 if (p1->data.age>p2->data.age)
 {
 l->data=p1->data;
 p1->data=p2->data;
 
 p2->data=l->data;
 
 
 }
 }
 }
 PrntAll(head);
 
}
 
 
//按電話分類顯示信息
void sortbyphone(struct lnode *head)
{
 struct lnode *p1,*p2,*l;
 
 l=(struct lnode *)malloc(sizeof(struct lnode));   
 l->next=NULL;
 
 for (p1=head;p1->next!=NULL;p1=p1->next)
 {
 for (p2=p1->next;p2!=NULL;p2=p2->next)
 {
 if (strcmp(p1->data.phone,p2->data.phone)==-1)
 {
 l->data=p1->data;
 p1->data=p2->data;
 
 p2->data=l->data;
 
 
 }
 }
 }
 PrntAll(head);
 
}
 
 
//按地址分類顯示信息
void sortbyaddress(struct lnode *head)
{
 struct lnode *p1,*p2,*l;
 
 l=(struct lnode *)malloc(sizeof(struct lnode));   
 l->next=NULL;
 
 for (p1=head;p1->next!=NULL;p1=p1->next)
 {
 for (p2=p1->next;p2!=NULL;p2=p2->next)
 {
 if (strcmp(p1->data.address,p2->data.address)==-1)
 {
 l->data=p1->data;
 p1->data=p2->data;
 
 p2->data=l->data;
 
 
 }
 }
 }
 PrntAll(head);
 
}
 
 
//按工資分類顯示信息
void sortbypay(struct lnode *head)
{
 struct lnode *p1,*p2,*l;
 
 l=(struct lnode *)malloc(sizeof(struct lnode));   
 l->next=NULL;
 
 for (p1=head;p1->next!=NULL;p1=p1->next)
 {
 for (p2=p1->next;p2!=NULL;p2=p2->next)
 {
 if (strcmp(p1->data.pay,p2->data.pay)==-1)
 {
 l->data=p1->data;
 p1->data=p2->data;
 
 p2->data=l->data;
 
 
 }
 }
 }
 PrntAll(head);
 
}
//按郵件地址分類顯示信息
void sortbyemil(struct lnode *head)
{
 struct lnode *p1,*p2,*l;
 
 l=(struct lnode *)malloc(sizeof(struct lnode));   
 l->next=NULL;
 
 for (p1=head;p1->next!=NULL;p1=p1->next)
 {
 for (p2=p1->next;p2!=NULL;p2=p2->next)
 {
 if (strcmp(p1->data.email,p2->data.email)==-1)
 {
 l->data=p1->data;
 p1->data=p2->data;
 
 p2->data=l->data;
 
 
 }
 }
 }
 PrntAll(head);
 
}
 
//按部門分類顯示信息
void sortbyoffice(struct lnode *head)
{
 struct lnode *p1,*p2,*l;
 
 l=(struct lnode *)malloc(sizeof(struct lnode));   
 l->next=NULL;
 
 for (p1=head;p1->next!=NULL;p1=p1->next)
 {
 for (p2=p1->next;p2!=NULL;p2=p2->next)
 {
 if (strcmp(p1->data.office,p2->data.office)==-1)
 {
 l->data=p1->data;
 p1->data=p2->data;
 
 p2->data=l->data;
 
 
 }
 }
 }
 PrntAll(head);
 
}
 
//按密碼進入系統(tǒng)
void password()
{
 char password[7]="123456"; 
 
 int choice; 
 char s[7]; 
 int flag=0; 
 int n=3; 
 do 
 { 
 printf("請你輸入密碼:\n"); 
 scanf("%s",s); 
 if(strcmp(s,password)==0)//若密碼正確 
 { 
 printf("恭喜你成功登陸了\n\n\n"); 
 flag=1; 
 
 break; 
 } 
 else 
 { 
 printf("輸入有錯誤請重新輸入:\n"); 
 n--; 
 } 
 }while(n>0); 
 
 if(!flag) 
 { 
 printf("哈哈,O(∩_∩)O哈!,想暴力破解是行不通的\n"); 
 puts("若有有問題留言區(qū)交流");
 exit(0); 
 
 }
}

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • C++ deque容器的具體使用

    C++ deque容器的具體使用

    deque又稱雙端隊列容器。deque容器中存儲元素并不能保證所有元素都存儲到連續(xù)的內(nèi)存空間中,本文詳細的介紹了C++ deque容器的使用,感興趣的可以了解一下
    2021-05-05
  • zlib庫壓縮和解壓字符串STL string的實例詳解

    zlib庫壓縮和解壓字符串STL string的實例詳解

    這篇文章主要介紹了zlib庫壓縮和解壓字符串STL string的實例詳解的相關資料,希望通過本文能幫助到大家,需要的朋友可以參考下
    2017-10-10
  • ??C++11系列學習之Lambda表達式

    ??C++11系列學習之Lambda表達式

    這篇文章主要介紹了??C++11系列學習之Lambda表達式,C++11終于也引入了lambda表達式,lambda最早來源于函數(shù)式編程,現(xiàn)代語言慢慢都引入了這個語法,下文關于??C++11Lambda表達式相關內(nèi)容需要的小伙伴可以參考一下
    2022-04-04
  • Qt透明無邊框窗口的實現(xiàn)示例

    Qt透明無邊框窗口的實現(xiàn)示例

    這篇文章主要介紹了Qt透明無邊框窗口的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-11-11
  • 詳解C語言之單鏈表

    詳解C語言之單鏈表

    這篇文章主要為大家介紹了C語言的單鏈表,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2021-11-11
  • C語言之整數(shù)與浮點數(shù)運算的類型轉換規(guī)則詳解

    C語言之整數(shù)與浮點數(shù)運算的類型轉換規(guī)則詳解

    這篇文章主要介紹了C語言之整數(shù)與浮點數(shù)運算的類型轉換規(guī)則,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2025-03-03
  • 一文搞懂Codec2框架解析

    一文搞懂Codec2框架解析

    這篇文章主要介紹了Codec2框架解析,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-09-09
  • 關于VS2019 C++項目同時出現(xiàn)LNK2005 和LNK1169 error 的解決辦法

    關于VS2019 C++項目同時出現(xiàn)LNK2005 和LNK1169 error 的解決辦法

    這篇文章主要介紹了關于VS2019 C++項目同時出現(xiàn)LNK2005 和LNK1169 error 的解決辦法,本文給大家介紹的非常詳細,對大家的學習工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-04-04
  • C語言實現(xiàn)漢諾塔(圖文詳解)

    C語言實現(xiàn)漢諾塔(圖文詳解)

    個人覺得漢諾塔這個遞歸算法比電子老鼠的難了一些,不過一旦理解了也還是可以的,其實網(wǎng)上也有很多代碼,可以直接參考。記得大一開始時就做過漢諾塔的習題,但是那時代碼寫得很長很長,也是不理解遞歸的結果。今天重新來實現(xiàn)一下
    2021-08-08
  • CLion安裝、漢化、配置圖文詳解

    CLion安裝、漢化、配置圖文詳解

    這篇文章主要介紹了CLion安裝、漢化、激活、配置圖文詳解,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-11-11

最新評論

即墨市| 南漳县| 上蔡县| 中卫市| 满洲里市| 海宁市| 隆子县| 磴口县| 灌阳县| 望江县| 涞水县| 修文县| 岚皋县| 周宁县| 巴塘县| 二连浩特市| 嘉禾县| 饶阳县| 加查县| 尼木县| 库尔勒市| 时尚| 扶绥县| 桑日县| 通渭县| 栾川县| 揭东县| 龙井市| 孟州市| 睢宁县| 阜南县| 桑植县| 龙川县| 宜黄县| 六枝特区| 泰州市| 南皮县| 勐海县| 电白县| 庆云县| 汾阳市|