亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

C語言實(shí)現(xiàn)企業(yè)員工管理系統(tǒng)開發(fā)

 更新時間:2022年08月05日 08:35:12   作者:D@@  
這篇文章主要為大家詳細(xì)介紹了C語言實(shí)現(xiàn)企業(yè)員工管理系統(tǒng)開發(fā),文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實(shí)例為大家分享了C語言實(shí)現(xiàn)企業(yè)員工管理系統(tǒng)的具體代碼,供大家參考,具體內(nèi)容如下

程序介紹

系統(tǒng)介紹

企業(yè)員工信息管理系統(tǒng)主要是對企業(yè)員工的基本信息進(jìn)行增、刪、改、查的相關(guān)操作,以便用戶可以快速地對這些信息進(jìn)行管理。本系統(tǒng)對管理者的控制更加嚴(yán)格,只設(shè)置一個管理賬號。

操作流程

用戶在編譯完成后會產(chǎn)生一個系統(tǒng)的可執(zhí)行文件,用戶只要雙擊可執(zhí)行文件就可以進(jìn)入系統(tǒng),如果是第一次進(jìn)入系統(tǒng),首先要對系統(tǒng)進(jìn)行初始化,如圖所示,初始化完成后,再次雙擊系統(tǒng)執(zhí)行文件,進(jìn)入如圖的界面。

用戶在輸入正確密碼后,進(jìn)入系統(tǒng)的功能選擇界面如圖所示。在這個界面用戶可以選擇相應(yīng)的操作。

代碼

//頭文件
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

//存儲員工信息的結(jié)構(gòu)體
typedef struct employee ? ? ? ??? ?
{
? ? int num; ? ? ? ? ? ? ? ? ? ?? ?//員工號
? ? char duty[10]; ? ? ? ? ? ? ?? ?//員工職務(wù)
? ? char name[10]; ? ? ? ? ? ? ?? ?//員工姓名
? ? char sex[3]; ? ? ? ? ? ? ? ?? ?//員工性別
? ? unsigned char age; ? ? ? ? ?? ?//員工年齡
? ? char edu[10]; ? ? ? ? ? ? ??? ?//教育水平
? ? int salary; ? ? ? ? ? ? ? ??? ?//員工工資
? ? char tel_office[13]; ? ? ? ?? ?//辦公電話
? ? char tel_home[13]; ? ? ? ? ?? ?//家庭電話
? ? char mobile[13]; ? ? ? ? ? ?? ?//手機(jī)
? ? char qq[11]; ? ? ? ? ? ? ? ?? ?//qq號碼
? ? char address[31]; ? ? ? ? ??? ?//家庭住址
? ? struct employee *next;
}EMP;


//全局變量
char password[9]; ? ? ? ? ??? ??? ?//系統(tǒng)密碼
EMP *emp_first,*emp_end; ? ?? ??? ?//定義指向鏈表的頭結(jié)點(diǎn)和尾節(jié)點(diǎn)的指針
char gsave,gfirst; ? ? ? ? ?? ??? ?//判斷標(biāo)示

//自定義函數(shù)聲明
void addemp(void); ? ? ? ? ?? ? ?? ?//添加員工信息的函數(shù)
void findemp(void); ? ? ? ??? ? ?? ?//查找員工信息的函數(shù)
void listemp(void); ? ? ? ??? ??? ?//顯示員工信息列表的函數(shù)
void modifyemp(void); ? ? ??? ? ?? ?//修改員工信息的函數(shù)
void summaryemp(void); ? ? ?? ? ?? ?//統(tǒng)計(jì)員工信息的函數(shù)
void delemp(void); ? ? ? ? ?? ? ?? ?//刪除員工信息的函數(shù)
void resetpwd(void); ? ? ? ?? ??? ?//重置系統(tǒng)的函數(shù)
void readdata(void); ? ? ? ?? ??? ?//讀取文件數(shù)據(jù)的函數(shù)
void savedata(void); ? ? ? ?? ??? ?//保存數(shù)據(jù)的函數(shù)
int modi_age(int s); ? ? ? ?? ??? ?//修改員工年齡的函數(shù)
int modi_salary(int s); ? ??? ? ?? ?//修改員工工資的函數(shù)
char *modi_field(char *field,char *s,int n); ? ? ??? ??? ?//修改員工其他信息的函數(shù)
EMP *findname(char *name); ? ? ? ? ? ? ? ? ? ? ? ??? ??? ?//按員工姓名查找員工信息
EMP *findnum(int num); ? ? ? ? ? ? ? ? ? ? ? ? ? ??? ? ?? ?//按員工工號查找員工信息
EMP *findtelephone(char *name); ? ? ? ? ? ? ? ? ? ?? ??? ?//按員工的通訊號碼查找員工信息
EMP *findqq(char *name); ? ? ? ? ? ? ? ? ? ? ? ? ??? ? ?? ?//按員工的QQ號查找員工信息
void displayemp(EMP *emp,char *field,char *name); ?? ??? ?//顯示員工信息
void checkfirst(void); ? ? ? ? ? ? ? ? ? ? ? ? ? ??? ??? ?//初始化檢測
void bound(char ch,int n); ? ? ? ? ? ? ? ? ? ? ? ??? ??? ?//畫出分界線
void login(); ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? ??? ?//登錄檢測
void menu(); ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??? ??? ?//主菜單列表


/**
* ?員工信息添加
*/
void addemp()
{
? ? FILE *fp; ? ? ? ? ? ? ? //聲明一個文件型指針
? ? EMP *emp1; ? ? ? ? ? ? ?//聲明一個結(jié)構(gòu)型指針
? ? int i=0;
? ? char choice='y';
? ??
? ? if((fp=fopen("employee.dat","ab"))==NULL) ? ? ? //判斷信息文件中是否有信息
? ? {
? ? ? ? printf("打開文件employee.dat出錯!\n");
? ? ? ? getch();
? ? ? ? return; ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
? ? } ? ??
? ??
? ? do{
? ? ? ? ?i++;
? ? ? ? ?emp1=(EMP *)malloc(sizeof(EMP)); ? ? ? ?? ?//申請一段內(nèi)存
? ? ? ? ?if(emp1==NULL) ? ? ? ? ? ? ? ? ? ? ? ? ? ? //判斷內(nèi)存是否分配成功
? ? ? ? ?{
? ? ? ? ? ? ?printf("內(nèi)存分配失敗,按任意鍵退出!\n");
? ? ? ? ? ? ?getch();
? ? ? ? ? ? ?return; ? ? ? ? ? ? ?
? ? ? ? ?}
? ? ? ? ?printf("請輸入第%d個員工的信息,\n",i);
? ? ? ? ?bound('_',30);
? ? ? ? ?printf("工號:");
? ? ? ? ?scanf("%d",&emp1->num);
? ? ? ? ?
? ? ? ? ?printf("職務(wù):");
? ? ? ? ?scanf("%s",&emp1->duty);
? ? ? ? ?
? ? ? ? ?printf("姓名:");
? ? ? ? ?scanf("%s",&emp1->name);
? ? ? ? ?
? ? ? ? ?printf("性別:");
? ? ? ? ?scanf("%s",&emp1->sex);
? ? ? ? ?
? ? ? ? ?printf("年齡:");
? ? ? ? ?scanf("%d",&emp1->age);
? ? ? ? ?
? ? ? ? ?printf("文化程度:");
? ? ? ? ?scanf("%s",&emp1->edu);
? ? ? ? ?
? ? ? ? ?printf("工資:");
? ? ? ? ?scanf("%d",&emp1->salary);
? ? ? ? ?
? ? ? ? ?printf("辦公電話:");
? ? ? ? ?scanf("%s",&emp1->tel_office);
? ? ? ? ?
? ? ? ? ?printf("家庭電話:");
? ? ? ? ?scanf("%s",&emp1->tel_home);
? ? ? ? ?
? ? ? ? ?printf("移動電話:");
? ? ? ? ?scanf("%s",&emp1->mobile);
? ? ? ? ?
? ? ? ? ?printf("QQ:");
? ? ? ? ?scanf("%s",&emp1->qq);
? ? ? ? ?
? ? ? ? ?printf("地址:");
? ? ? ? ?scanf("%s",&emp1->address);
? ? ? ? ?
? ? ? ? ?emp1->next=NULL;
? ? ? ? ?if(emp_first==NULL) ? ? ? ? ? ?//判斷鏈表頭指針是否為空
? ? ? ? ?{
? ? ? ? ? ? ?emp_first=emp1;
? ? ? ? ? ? ?emp_end=emp1; ? ? ? ? ? ? ? ? ??
? ? ? ? ?}else {
? ? ? ? ? ? ?emp_end->next=emp1;
? ? ? ? ? ? ?emp_end=emp1; ? ? ?
? ? ? ? ?}
? ? ? ? ?
? ? ? ? ?fwrite(emp_end,sizeof(EMP),1,fp); ?//對數(shù)據(jù)流添加數(shù)據(jù)項(xiàng)
? ? ? ? ?
? ? ? ? ?gfirst=0;
? ? ? ? ?printf("\n");
? ? ? ? ?bound('_',30);
? ? ? ? ?printf("\n是否繼續(xù)輸入?(y/n)");
? ? ? ? ?fflush(stdin); ? ? ? ? ? ? ? ? ? ? //清除緩沖區(qū)
? ? ? ? ?choice=getch();
? ? ? ? ?
? ? ? ? ?if(toupper(choice)!='Y') ? ? ? ? ? //把小寫字母轉(zhuǎn)換成大寫字母
? ? ? ? ?{
? ? ? ? ? ? ?fclose(fp); ? ? ? ? ? ? ? ? ? ?//關(guān)閉文件流
? ? ? ? ? ? ?printf("\n輸入完畢,按任意鍵返回\n");
? ? ? ? ? ? ?getch();
? ? ? ? ? ? ?return; ? ? ? ? ? ? ? ? ? ? ? ?
? ? ? ? ?}
? ? ? ? ?system("cls"); ? ? ?
? ? }while(1);
}

void bound(char ch,int n)
{
? ?while(n--)
? ? ? ?putch(ch);
? ? ? ?
? ?printf("\n");
? ?return; ? ??
}


/*首次使用,進(jìn)行用戶信息初始化*/
void checkfirst()
{
? ? FILE *fp,*fp1; ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//聲明文件型指針
? ? char pwd[9],pwd1[9],pwd2[9],pwd3[9],ch;
? ? int i;
? ? char strt='8'; ? ?
? ??
? ? if((fp=fopen("config.bat","rb"))==NULL) ? ? //判斷系統(tǒng)密碼文件是否為空
? ? {
? ? ? ? printf("\n新系統(tǒng),請進(jìn)行相應(yīng)的初始化操作!\n");
? ? ? ? bound('_',50);
? ? ? ? getch();
? ? ? ??
? ? ? ? do{
? ? ? ? ? ? printf("\n設(shè)置密碼,請不要超過8位:");
? ? ? ? ? ? for(i=0;i<8&&((pwd[i]=getch())!=13);i++)
? ? ? ? ? ? ? ? putch('*');
? ? ? ? ? ? printf("\n再確認(rèn)一次密碼:");
? ? ? ? ? ? for(i=0;i<8&&((pwd1[i]=getch())!=13);i++)?
? ? ? ? ? ? ? ? putch('*'); ? ?
? ? ? ? ? ? ? ??
? ? ? ? ? ? pwd[i]='\0'; ?
? ? ? ? ? ? pwd1[i]='\0';
? ? ? ? ? ??
? ? ? ? ? ? if(strcmp(pwd,pwd1)!=0) ? ? ? ? ? ? //判斷兩次新密碼是否一致
? ? ? ? ? ? {
? ? ? ? ? ? ? ? printf("\n兩次密碼輸入不一致,請重新輸入!\n\n");
? ? ? ? ? ? }
? ? ? ? ? ? else break;
? ? ? ? ? ??
? ? ? ? }while(1);
? ? ? ??
? ? ? ? if((fp1=fopen("config.bat","wb"))==NULL)
? ? ? ? {
? ? ? ? ? ? printf("\n系統(tǒng)創(chuàng)建失敗,請按任意鍵退出!");
? ? ? ? ? ? getch();
? ? ? ? ? ? exit(1); ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
? ? ? ? }
? ? ? ??
? ? ? ? i=0;
? ? ? ? while(pwd[i])
? ? ? ? {
? ? ? ? ? ? ? ? ?
? ? ? ? ? ? pwd2[i]=(pwd[i]^ strt); ? ? ? ?
? ? ? ? ? ? putw(pwd2[i],fp1); ? ? ? ? ? ? ? ? ?//將數(shù)組元素送入文件流中
? ? ? ? ? ? i++; ? ? ? ? ? ??
? ? ? ? }
? ? ? ??
? ? ? ? fclose(fp1); ? ? ? ? ? ? ? ? ? ? ? ? ? ?//關(guān)閉文件流
? ? ? ? printf("\n\n系統(tǒng)初始化成功,按任意鍵退出后,再重新進(jìn)入!\n");
? ? ? ? getch();
? ? ? ? exit(1);
? ? ? ??
? ? }else{
? ? ? ? i=0;
? ? ? ? while(!feof(fp)&&i<8) ? ? ? ? ? ? ? ? ? //判斷是否讀完密碼文件
? ? ? ? ? ? pwd[i++]=(getw(fp)^strt); ? ? ? ? ? //從文件流中讀出字符賦給數(shù)組
? ? ? ? ? ??
? ? ? ? ? ??
? ? ? ? pwd[i]='\0';
? ? ? ??
? ? ? ? if(i>=8) i--;
? ? ? ? while(pwd[i]!=-1&&i>=0)
? ? ? ? ? ? i--;
? ? ? ??
? ? ? ? pwd[i]='\0'; ? ? ? ? ? ? ? ? ? ? ? ? ? ?//將數(shù)組最后一位設(shè)定為字符串的結(jié)束符
? ? ? ? strcpy(password,pwd); ? ? ? ? ? ? ? ? ? //將數(shù)組pwd中的數(shù)據(jù)復(fù)制到數(shù)組password中
? ? }?
}


void delemp()
{
? ? int findok=0;
? ? EMP *emp1,*emp2;
? ? char name[10],choice;
? ? system("cls"); ? ? ? ? ? ? ?//對屏幕清屏
? ? printf("\n輸入要刪除的員工姓名:");
? ? scanf("%s",name);
? ??
? ? emp1=emp_first;
? ? emp2=emp1;
? ? while(emp1)
? ? {
? ? ? ? if(strcmp(emp1->name,name)==0)
? ? ? ? {
? ? ? ? ? ? findok=1;
? ? ? ? ? ? system("cls");
? ? ? ? ? ??
? ? ? ? ? ? printf("員工:%s的信息如下:\n",emp1->name);
? ? ? ? ? ? bound('_',40);
? ? ? ? ? ? printf("工號:%d\n",emp1->num);
? ? ? ? ? ? printf("職務(wù):%s\n",emp1->duty);
? ? ? ? ? ? printf("姓名:%s\n",emp1->name);
? ? ? ? ? ? printf("性別:%s\n",emp1->sex);
? ? ? ? ? ? printf("年齡:%d\n",emp1->age);
? ? ? ? ? ? printf("文化程度:%s\n",emp1->edu);
? ? ? ? ? ? printf("工資:%d\n",emp1->salary);
? ? ? ? ? ? printf("辦公電話:%s\n",emp1->tel_office);
? ? ? ? ? ? printf("家庭電話:%s\n",emp1->tel_home);
? ? ? ? ? ? printf("移動電話:%s\n",emp1->mobile);
? ? ? ? ? ? printf("QQ號碼:%s\n",emp1->qq);
? ? ? ? ? ? printf("住址:%\n",emp1->address);
? ? ? ? ? ? bound('_',40);
? ? ? ? ? ? printf("您真的要刪除該員工嗎?(y/n)");
? ? ? ? ? ??
? ? ? ? ? ? fflush(stdin); ? ? ? ? ?//清除緩沖區(qū)
? ? ? ? ? ? choice=getchar();
? ? ? ? ? ??
? ? ? ? ? ? if(choice!='y' && choice!='Y')
? ? ? ? ? ? {
? ? ? ? ? ? ?? ?return;
?? ??? ??? ?}
? ? ? ? ? ? if(emp1==emp_first)
?? ??? ??? ?{
?? ??? ??? ??? ?emp_first=emp1->next;
?? ??? ??? ?}
? ? ? ? ? ? else
?? ??? ??? ?{
?? ??? ??? ??? ?emp2->next=emp1->next;
? ? ? ? ? ? }
? ? ? ? ? ? printf("員工%s已被刪除",emp1->name);
? ? ? ? ? ? getch();
? ? ? ? ? ? free(emp1);
? ? ? ? ? ? gsave=1;
? ? ? ? ? ? savedata(); ? ? ? ? ? ? //保存數(shù)據(jù)
? ? ? ? ? ? return; ? ? ? ? ? ? ? ? ? ? ? ? ??
? ? ? ? } ?else{ ? ? ? ?
? ? ? ? ? ? emp2=emp1;
? ? ? ? ? ? emp1=emp1->next;
? ? ? ? }
? ? } ? ?
? ? if(!findok)
? ? {
? ? ? ? bound('_',40);
? ? ? ? printf("\n沒有找到姓名是:%s的信息!\n",name); ?//沒找到信息后的提示
? ? ? ? getch(); ? ? ? ? ??
? ? }?
? ? return;
}


void displayemp(EMP *emp,char *field,char *name)
{
? ? if(emp)
? ? {
? ? ? ? printf("\n%s:%s信息如下:\n",field,name);
? ? ? ? bound('_',30);?
? ? ? ? printf("工號:%d\n",emp->num);
? ? ? ? printf("職務(wù):%s\n",emp->duty);
? ? ? ? printf("姓名:%s\n",emp->name);
? ? ? ? printf("性別:%s\n",emp->sex);
? ? ? ? printf("年齡:%d\n",emp->age);
? ? ? ? printf("文化程度:%s\n",emp->edu);
? ? ? ? printf("工資:%d\n",emp->salary);
? ? ? ? printf("辦公電話:%s\n",emp->tel_office);
? ? ? ? printf("家庭電話:%s\n",emp->tel_home);
? ? ? ? printf("移動電話:%s\n",emp->mobile);
? ? ? ? printf("QQ號碼:%s\n",emp->qq);
? ? ? ? printf("住址:%s\n",emp->address);
? ? ? ? bound('_',30); ? ? ?
? ? }else {
? ? bound('_',40);
? ? printf("資料庫中沒有%s為:%s的員工!請重新確認(rèn)!",field,name);
? ? }
? ? return;
}

/**
* 按照姓名查找員工信息
*/
EMP *findname(char *name)
{
? ? EMP *emp1;
? ? emp1=emp_first;
? ??
? ? while(emp1)
? ? {
? ? ? ? if(strcmp(name,emp1->name)==0) ? ? ?//比較輸入的姓名和鏈表中的記載姓名是否相同
? ? ? ? {
?? ??? ??? ?return emp1;
?? ??? ?}
? ? ? ? emp1=emp1->next; ? ? ? ? ?
? ? } ? ?
? ? return NULL;
}

/**
* 按照員工號查詢
*/
EMP *findnum(int num) ? ? ? ? ? ? ? ? ? //聲明一個結(jié)構(gòu)體指針
{
? ?EMP *emp1;
? ?
? ?emp1=emp_first;
? ?while(emp1)
? ?{
? ? ? ?if(num==emp1->num) ?return emp1;
? ? ? ?emp1=emp1->next; ? ? ? ? ??
? ?} ?
? ?return NULL; ?
}
/**
* 按照通訊號碼查詢員工信息
*/
EMP *findtelephone(char *name)
{
? ? ?EMP *emp1;
? ? ?
? ? ?emp1=emp_first;
? ? ?while(emp1)
? ? ?{
? ? ? ? ?if((strcmp(name,emp1->tel_office)==0)||
? ? ? ? ?(strcmp(name,emp1->tel_home)==0)||
? ? ? ? ?(strcmp(name,emp1->mobile)==0)) ? ? ? ?//使用邏輯或判斷通訊號碼
? ? ? ? ?return emp1;
? ? ? ? ?emp1=emp1->next;
? ? ? ? ? ? ? ? ?
? ? ?} ?
? ? ? return NULL; ? ? ??
}

/**
* 按照員工QQ號查詢員工信息
*/
EMP *findqq(char *name)
{
? ? EMP *emp1;
? ??
? ? emp1=emp_first;
? ? while(emp1)
? ? {
? ? ? ? if(strcmp(name,emp1->qq)==0) ?return emp1;
? ? ? ? emp1=emp1->next; ? ? ? ? ??
? ? } ?
? ? return NULL; ?
}

/**
* 查詢員工信息
*/
void findemp()
{
? ? ?int choice,ret=0,num;
? ? ?char str[13];
? ? ?EMP *emp1;
? ? ?
? ? ?system("cls");
? ? ?
? ? ?do{
? ? ? ? ?printf("\t查詢員工信息\n");
? ? ? ? ?bound('_',30);
? ? ? ? ?printf("\t1.按姓名查詢\n");
? ? ? ? ?printf("\t2.按工號查詢\n");
? ? ? ? ?printf("\t3.按電話查詢\n");
? ? ? ? ?printf("\t4.按QQ號查詢\n");
? ? ? ? ?printf("\t0.返回主菜單\n");
? ? ? ? ?bound('_',30);
? ? ? ? ?printf("\n請選擇菜單:");
? ? ? ? ?
? ? ? ? ?do{
? ? ? ? ? ? ?fflush(stdin);
? ? ? ? ? ? ?choice=getchar();
? ? ? ? ? ? ?system("cls");
? ? ? ? ? ? ?
? ? ? ? ? ? ?switch(choice)
? ? ? ? ? ? ?{
? ? ? ? ? ? ? ? ?case '1':
? ? ? ? ? ? ? ? ? ? ? printf("\n輸入要查詢的員工姓名:");
? ? ? ? ? ? ? ? ? ? ? scanf("%s",str);
? ? ? ? ? ? ? ? ? ? ??
? ? ? ? ? ? ? ? ? ? ? emp1=findname(str);
? ? ? ? ? ? ? ? ? ? ? displayemp(emp1,"姓名",str);
? ? ? ? ? ? ? ? ? ? ? getch();
? ? ? ? ? ? ? ? ? ? ? break;?
? ? ? ? ? ? ? ? ? ? ??
? ? ? ? ? ? ? ? ?case '2':
? ? ? ? ? ? ? ? ? ? ? printf("\n請輸入要查詢的員工的工號");?
? ? ? ? ? ? ? ? ? ? ? scanf("%d",&num);?
? ? ? ? ? ? ? ? ? ? ??
? ? ? ? ? ? ? ? ? ? ? emp1=findnum(num);
? ? ? ? ? ? ? ? ? ? ? itoa(num,str,10);
? ? ? ? ? ? ? ? ? ? ? displayemp(emp1,"工號",str);
? ? ? ? ? ? ? ? ? ? ? getch();
? ? ? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? ? ? ? ??
? ? ? ? ? ? ? ? ? case '3':
? ? ? ? ? ? ? ? ? ? ? ?printf("\n輸入要查詢員工的電話:");
? ? ? ? ? ? ? ? ? ? ? ?scanf("%s",str);
? ? ? ? ? ? ? ? ? ? ? ?
? ? ? ? ? ? ? ? ? ? ? ?emp1=findtelephone(str);?
? ? ? ? ? ? ? ? ? ? ? ?displayemp(emp1,"電話",str);
? ? ? ? ? ? ? ? ? ? ? ?getch();
? ? ? ? ? ? ? ? ? ? ? ?break;
? ? ? ? ? ? ? ? ? ? ? ?
? ? ? ? ? ? ? ? ? case '4':
? ? ? ? ? ? ? ? ? ? ? ?printf("\n輸入要查詢的員工的QQ號:");
? ? ? ? ? ? ? ? ? ? ? ?scanf("%s",str);

?? ??? ??? ??? ??? ? ? emp1=findqq(str);
? ? ? ? ? ? ? ? ? ? ? ?displayemp(emp1,"QQ號碼",str);
? ? ? ? ? ? ? ? ? ? ? ?getch();
? ? ? ? ? ? ? ? ? ? ? ?break;
? ? ? ? ? ? ? ? ? ? ? ?
? ? ? ? ? ? ? ? ? ?case '0':
? ? ? ? ? ? ? ? ? ? ? ? ret=1;
? ? ? ? ? ? ? ? ? ? ? ? break; ? ? ? ? ?
? ? ? ? ? ? ?} ? ? ? ? ? ? ? ? ? ? ? ??
? ? ? ? ?}while(choice<'0'||choice>'4');
? ? ? ? ?
? ? ? ? ?system("cls");
? ? ? ? ?if(ret) break;
? ? ?}while(1); ? ? ? ??
}


void listemp()
{
? ? EMP *emp1;
? ? printf("\n資料庫中的員工信息列表\n");
? ? bound('_',40);
? ? emp1=emp_first;
? ? while(emp1)?
? ? {
? ? ? ? printf("工號:%d\n",emp1->num);
? ? ? ? printf("職務(wù):%s\n",emp1->duty);
? ? ? ? printf("姓名:%s\n",emp1->name);
? ? ? ? printf("性別:%s\n",emp1->sex);
? ? ? ? printf("年齡:%d\n",emp1->age);
? ? ? ? printf("文化程度:%s\n",emp1->edu);
? ? ? ? printf("工資:%d\n",emp1->salary);
? ? ? ? printf("辦公電話:%s\n",emp1->tel_office);
? ? ? ? printf("家庭電話:%s\n",emp1->tel_home);
? ? ? ? printf("移動電話:%s\n",emp1->mobile);
? ? ? ? printf("QQ號碼:%s\n",emp1->qq);
? ? ? ? printf("住址:%s\n",emp1->address); ?
? ? ? ? bound('_',40);
? ? ? ? emp1=emp1->next; ? ? ?
? ? } ? ?
? ? printf("\n顯示完畢,按任意鍵退出!\n");
? ? getch();
? ? return;
}


/*檢測登錄密碼*/
void login()
{
? ? int i,n=3;
? ? char pwd[9];
? ? do{
? ? ? ? printf("請輸入密碼:");
? ? ? ? for(i=0;i<8 && ((pwd[i]=getch())!=13);i++)
? ? ? ? ? ? putch('*');
? ? ? ? pwd[i]='\0';

? ? ? ?if(!strcmp(pwd,password))
? ? ? ? {
? ? ? ? ? ? printf("\n密碼錯誤,請重新輸入!\n");
? ? ? ? ? ? getch();
? ? ? ? ? ? system("cls");
? ? ? ? ? ? n--;
? ? ? ? }
?? ??? ?else
?? ??? ? break;
? ? } while(n>0); ? ? ? ? ? ? ? ? ? ? ? //密碼輸入三次的控制
? ? if(!n)
? ? {
? ? ? ? printf("請退出,你已輸入三次錯誤密碼!");
? ? ? ? getch();
? ? ? ? exit(1);
? ? }
}


void menu()
{
? ? char choice;
? ? system("cls");
? ? do{
? ? ?? ?printf("\n\t\t\t\t 企業(yè)員工管理系統(tǒng)\n\n");
? ? ? ? printf("\t\t\t-------------------------------------\n");
? ? ? ? printf("\t\t\t|\t\t\t\t ? ?|\n");
? ? ? ? printf("\t\t\t| ?\t1、輸入員工信息\t\t ? ?|\n");
? ? ? ? printf("\t\t\t|\t\t\t\t ? ?|\n");
? ? ? ? printf("\t\t\t| ?\t2、查詢員工信息\t\t ? ?|\n");
? ? ? ? printf("\t\t\t|\t\t\t\t ? ?|\n");
? ? ? ? printf("\t\t\t| ?\t3、顯示員工信息\t\t ? ?|\n");
? ? ? ? printf("\t\t\t|\t\t\t\t ? ?|\n");
? ? ? ? printf("\t\t\t| ?\t4、修改員工信息\t\t ? ?|\n");
? ? ? ? printf("\t\t\t|\t\t\t\t ? ?|\n");
? ? ? ? printf("\t\t\t| ?\t5、刪除員工信息\t\t ? ?|\n");
? ? ? ? printf("\t\t\t|\t\t\t\t ? ?|\n");
? ? ? ? printf("\t\t\t| ?\t6、統(tǒng)計(jì)員工信息\t\t ? ?|\n");
? ? ? ? printf("\t\t\t|\t\t\t\t ? ?|\n");
? ? ? ? printf("\t\t\t| ?\t7、重置系統(tǒng)密碼\t\t ? ?|\n");
? ? ? ? printf("\t\t\t|\t\t\t\t ? ?|\n");
? ? ? ? printf("\t\t\t| ?\t0、退出系統(tǒng)\t\t ? ?|\n");
? ? ? ? printf("\t\t\t|\t\t\t\t ? ?|\n");
? ? ? ? printf("\t\t\t-------------------------------------\n");
? ? ? ? printf("\n\t\t\t請選擇您需要的操作:");
? ? ? ??
? ? ? ? do{
? ? ? ? ? ?? ?fflush(stdin);
? ? ? ? ? ? choice=getchar();
? ? ? ? ? ? system("cls");
? ? ? ? ? ? switch(choice)
? ? ? ? ? ? {
? ? ? ? ? ? ? ? case '1':
? ? ? ? ? ? ? ? ? ?addemp(); ? ? ? ?//調(diào)用員工信息添加函數(shù)
? ? ? ? ? ? ? ? ? ?break;
? ? ? ? ? ? ? ? case '2':
? ? ? ? ? ? ? ? ? ?if(gfirst)
? ? ? ? ? ? ? ? ? ?{
? ? ? ? ? ? ? ? ? ? ? ?printf("系統(tǒng)信息中無員工信息,請先添加員工信息!\n");
? ? ? ? ? ? ? ? ? ? ? ?getch();
? ? ? ? ? ? ? ? ? ? ? ?break; ? ? ? ? ?
? ? ? ? ? ? ? ? ? ?} ?
? ? ? ? ? ? ? ? ? ?findemp(); ? ? ? //調(diào)用員工信息查找函數(shù)
? ? ? ? ? ? ? ? ? ?break;
? ? ? ? ? ? ? ? case '3':
? ? ? ? ? ? ? ? ? ?if(gfirst)
? ? ? ? ? ? ? ? ? ?{
? ? ? ? ? ? ? ? ? ? ? ?printf("系統(tǒng)信息中無員工信息,請先添加員工信息!\n");
? ? ? ? ? ? ? ? ? ? ? ?getch();
? ? ? ? ? ? ? ? ? ? ? ?break; ? ? ??
? ? ? ? ? ? ? ? ? ?}
? ? ? ? ? ? ? ? ? ?listemp(); ? ? ? //員工列表函數(shù)
? ? ? ? ? ? ? ? ? ?break;
? ? ? ? ? ? ? ?case '4':
? ? ? ? ? ? ? ? ? ?if(gfirst)
? ? ? ? ? ? ? ? ? ?{
? ? ? ? ? ? ? ? ? ? ? ?printf("系統(tǒng)信息中無員工信息,請先添加員工信息!\n");
? ? ? ? ? ? ? ? ? ? ? ?getch();
? ? ? ? ? ? ? ? ? ? ? ?break; ? ? ??
? ? ? ? ? ? ? ? ? ?}
? ? ? ? ? ? ? ? ? ?modifyemp(); ? ? //員工信息修改函數(shù)
? ? ? ? ? ? ? ? ? ?break;
? ? ? ? ? ? ? ?case '5':
? ? ? ? ? ? ? ? ? ? if(gfirst)
? ? ? ? ? ? ? ? ? ?{
? ? ? ? ? ? ? ? ? ? ? ?printf("系統(tǒng)信息中無員工信息,請先添加員工信息!\n");
? ? ? ? ? ? ? ? ? ? ? ?getch();
? ? ? ? ? ? ? ? ? ? ? ?break; ? ? ??
? ? ? ? ? ? ? ? ? ?}
? ? ? ? ? ? ? ? ? ?delemp(); ? ? ? ?//刪除員工信息的函數(shù)
? ? ? ? ? ? ? ? ? ?break;
? ? ? ? ? ? ? ?case '6':
? ? ? ? ? ? ? ? ? ? if(gfirst)
? ? ? ? ? ? ? ? ? ?{
? ? ? ? ? ? ? ? ? ? ? ?printf("系統(tǒng)信息中無員工信息,請先添加員工信息!\n");
? ? ? ? ? ? ? ? ? ? ? ?getch();
? ? ? ? ? ? ? ? ? ? ? ?break; ? ? ??
? ? ? ? ? ? ? ? ? ?}
? ? ? ? ? ? ? ? ? ?summaryemp(); ? ? //統(tǒng)計(jì)函數(shù)
? ? ? ? ? ? ? ? ? ?break;?
? ? ? ? ? ? ? ?case '7':
? ? ? ? ? ? ? ? ? ?resetpwd(); ? ? ?//重置系統(tǒng)的函數(shù)
? ? ? ? ? ? ? ? ? ?break;
? ? ? ? ? ? ? ?case '0':
? ? ? ? ? ? ? ? ? ?savedata(); ? ? ?//保存數(shù)據(jù)的函數(shù)
? ? ? ? ? ? ? ? ? ?exit(0);
?? ??? ??? ??? ?default:
?? ??? ??? ??? ??? ?printf("請輸入0~7之間的數(shù)字");
?? ??? ??? ??? ??? ?getch();
?? ??? ??? ??? ??? ?menu();
? ? ? ? ? ? } ? ? ? ? ? ? ? ? ? ? ? ? ? ??
? ? ? ? } while(choice<'0'||choice>'7'); ?
? ? ? ? system("cls");
? ? }while(1); ? ?
}


int modi_salary(int salary)
{
? ? int newsalary;
? ? printf("原來的工資數(shù)為:%d",salary);
? ? printf("新的工資數(shù):");
? ? scanf("%d",&newsalary); ? ?
? ? return(newsalary);
}

int modi_age(int age)
{
?? ?int newage;
? ? printf("原來的年齡為:%d",age);
? ? printf("新的年齡:");
? ? scanf("%d",&newage); ? ?
? ? return(newage);
}

char *modi_field(char *field,char *content,int len)
{
? ? ?char *str;
? ? ?str=malloc(sizeof(char)*len);
? ? ?if(str==NULL)
? ? ?{
? ? ? ? ?printf("內(nèi)存分配失敗,按任意鍵退出!");
? ? ? ? ?getch();
? ? ? ? ?return NULL; ? ? ? ? ? ??
? ? ?}
? ? ?printf("原來%s為:%s\n",field,content);
? ? ?printf("修改為(內(nèi)容不要超過%d個字符?。?,len);
? ? ?scanf("%s",str); ? ??
? ? ?return str;
}

void modifyemp()
{
? ? ?EMP *emp1;
? ? ?char name[10],*newcontent;
? ? ?int choice;
? ? ?
? ? ?printf("\n請輸入您要修改的員工的姓名:");
? ? ?scanf("%s",&name);
? ? ?
? ? ?emp1=findname(name);
? ? ?displayemp(emp1,"姓名",name);
? ? ?
? ? ?if(emp1)
? ? ?{
? ? ??? ? printf("\n 請輸入你要修改的內(nèi)容選項(xiàng)!\n");
? ? ? ? ?bound('_',40);
? ? ? ? ?printf("1.修改職務(wù) ? ? ? ? ? ? ? ?2.修改年齡\n");
? ? ? ? ?printf("3.修改文化程度 ? ? ? ? ? ?4.修改工資\n");
? ? ? ? ?printf("5.修改辦公室電話 ? ? ? ? ?6.修改家庭電話\n");
? ? ? ? ?printf("7.修改移動電話 ? ? ? ? ? ?8.修改QQ號碼 \n");
? ? ? ? ?printf("9.修改住址 ? ? ? ? ? ? ? ?0.返回\n ?");
? ? ? ? ?bound('_',40);
? ? ? ? ?
? ? ? ? ?do{
? ? ? ? ? ? ?fflush(stdin); ? ? ? ? //清除緩沖區(qū)
? ? ? ? ? ? ?choice=getchar();
? ? ? ? ? ? ?switch(choice) ? ? ? ? //操作選擇函數(shù)
? ? ? ? ? ? ?{
? ? ? ? ? ? ? ? ?case '1':
? ? ? ? ? ? ? ? ? ? ? newcontent=modi_field("職務(wù)",emp1->duty,10); ?//調(diào)用修改函數(shù)修改基本信息
? ? ? ? ? ? ? ? ? ? ? if(newcontent!=NULL)
? ? ? ? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? ? ? ? strcpy(emp1->duty,newcontent);
? ? ? ? ? ? ? ? ? ? ? ? ? free(newcontent); ? ? ? ? ? ? ? ? ? ?
? ? ? ? ? ? ? ? ? ? ? }?
? ? ? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? ? ?case '2':
? ? ? ? ? ? ? ? ? ? ? emp1->age=modi_age(emp1->age);
? ? ? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? ? ? case '3':
? ? ? ? ? ? ? ? ? ? ? newcontent=modi_field("文化程度",emp1->edu,10);
? ? ? ? ? ? ? ? ? ? ? if(newcontent!=NULL)
? ? ? ? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? ? ? ? strcpy(emp1->edu,newcontent); ? ? ? ? //獲取新信息內(nèi)容
? ? ? ? ? ? ? ? ? ? ? ? ? free(newcontent); ? ? ? ? ? ? ? ? ? ?
? ? ? ? ? ? ? ? ? ? ? }?
? ? ? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? ? ? case '4':
? ? ? ? ? ? ? ? ? ? ? emp1->salary=modi_salary(emp1->salary);
? ? ? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? ? ?case '5':
? ? ? ? ? ? ? ? ? ? ? newcontent=modi_field("辦公室電話",emp1->tel_office,13);
? ? ? ? ? ? ? ? ? ? ? if(newcontent!=NULL)
? ? ? ? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? ? ? ? strcpy(emp1->tel_office,newcontent);
? ? ? ? ? ? ? ? ? ? ? ? ? free(newcontent); ? ? ? ? ? ? ? ? ? ?
? ? ? ? ? ? ? ? ? ? ? }?
? ? ? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? ? ?case '6':
? ? ? ? ? ? ? ? ? ? ? newcontent=modi_field("家庭電話",emp1->tel_home,13);
? ? ? ? ? ? ? ? ? ? ? if(newcontent!=NULL)
? ? ? ? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? ? ? ? strcpy(emp1->tel_home,newcontent);
? ? ? ? ? ? ? ? ? ? ? ? ? free(newcontent); ? ? ? ? ? ? ? ? ? ?
? ? ? ? ? ? ? ? ? ? ? }?
? ? ? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? ? ? case '7':
? ? ? ? ? ? ? ? ? ? ? newcontent=modi_field("移動電話",emp1->mobile,12);
? ? ? ? ? ? ? ? ? ? ? if(newcontent!=NULL)
? ? ? ? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? ? ? ? strcpy(emp1->mobile,newcontent);
? ? ? ? ? ? ? ? ? ? ? ? ? free(newcontent); ? ? ? ? ? ? ? ? ? ?
? ? ? ? ? ? ? ? ? ? ? }?
? ? ? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? ? ? case '8':
? ? ? ? ? ? ? ? ? ? ? newcontent=modi_field("QQ號碼",emp1->qq,10);
? ? ? ? ? ? ? ? ? ? ? if(newcontent==NULL)
? ? ? ? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? ? ? ? strcpy(emp1->qq,newcontent);
? ? ? ? ? ? ? ? ? ? ? ? ? free(newcontent); ? ? ? ? ? ? ? ? ? ?
? ? ? ? ? ? ? ? ? ? ? }?
? ? ? ? ? ? ? ? ? ? ? break; ?
? ? ? ? ? ? ? ? ? case '9':
? ? ? ? ? ? ? ? ? ? ? newcontent=modi_field("住址",emp1->address,30);
? ? ? ? ? ? ? ? ? ? ? if(newcontent!=NULL)
? ? ? ? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? ? ? ? strcpy(emp1->address,newcontent);
? ? ? ? ? ? ? ? ? ? ? ? ? free(newcontent); ? ? ? ? ? ? ? ? //釋放內(nèi)存空間
? ? ? ? ? ? ? ? ? ? ? }?
? ? ? ? ? ? ? ? ? ? ? break; ? ??
? ? ? ? ? ? ? ? ? case '0':
? ? ? ? ? ? ? ? ? ? ? return; ? ? ? ? ? ??
? ? ? ? ? ? ?} ? ? ? ? ? ??
? ? ? ? ?}while(choice<'0' || choice>'9');
? ? ? ? ?
? ? ? ? ?gsave=1;
? ? ? ? ?savedata(); ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//保存修改的數(shù)據(jù)信息
? ? ? ? ?printf("\n修改完畢,按任意鍵退出!\n");
? ? ? ? ?getch();
? ? ?} ?
? ? ?return; ??
}

/*讀取數(shù)據(jù)*/?
void readdata(void)
{
? ? FILE *fp;
? ? EMP *emp1;
? ??
? ? if((fp=fopen("employee.dat","rb"))==NULL)
? ? {
? ? ? ? gfirst=1;
? ? ? ? return; ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
? ? } ? ??
? ??
? ? while(!feof(fp))
? ? {
? ? ? ? emp1=(EMP *)malloc(sizeof(EMP));
? ? ? ? if(emp1==NULL)
? ? ? ? {
? ? ? ? ? ? printf("內(nèi)存分配失敗!\n");
? ? ? ? ? ? getch();
? ? ? ? ? ? return; ? ? ? ? ? ? ?
? ? ? ? } ? ? ? ? ?
? ? ? ??
? ? ? ? fread(emp1,sizeof(EMP),1,fp);
? ? ? ? if(feof(fp)) ?break;
? ? ? ??
? ? ? ? if(emp_first==NULL)
? ? ? ? {
? ? ? ? ? ?emp_first=emp1;
? ? ? ? ? ?emp_end=emp1; ? ? ? ? ? ? ? ? ??
? ? ? ? }else{
? ? ? ? ? ? emp_end->next=emp1;
? ? ? ? ? ? emp_end=emp1; ??
? ? ? ? }
? ? ? ? emp_end->next=NULL;
? ? }
? ? gfirst=0;
? ? fclose(fp);
}


void resetpwd()
{
?? ?char pwd[9],pwd1[9],ch;
? ? int i;
? ? FILE *fp1;
? ??
? ? system("cls");
? ??
? ? printf("\n請輸入舊密碼:\n");
? ? ?for(i=0;i<8 && ((pwd[i]=getch())!=13);i++)
? ? ? ? ? ? putch('*');
? ? ? ? ? ??
? ? ? ? pwd[i]='\0';
? ? ? ? if(strcmp(password,pwd))
? ? ? ? {
? ? ? ? ? ? printf("\n密碼錯誤,請按任意鍵退出!\n"); ? ? ? //比較舊密碼,判斷用戶權(quán)限
? ? ? ? ? ? getch();
? ? ? ? ? ? return; ? ? ? ? ? ??
? ? ? ? } ??
? ? ?do{
? ? ? ? ??? ?printf("\n設(shè)置新密碼,請不要超過8位:");
? ? ? ? ? ? for(i=0;i<8&&((pwd[i]=getch())!=13);i++)
? ? ? ? ? ? ? ? putch('*');
? ? ? ? ? ? printf("\n再確認(rèn)一次密碼:");
? ? ? ? ? ? for(i=0;i<8&&((pwd1[i]=getch())!=13);i++)?
? ? ? ? ? ? ? ? putch('*'); ? ? ? ? ? ? ? ? ? ? ? ? ? ? //屏幕中輸出提示字符
? ? ? ? ? ? ? ??
? ? ? ? ? ? pwd[i]='\0'; ?
? ? ? ? ? ? pwd1[i]='\0';
? ? ? ? ? ??
? ? ? ? ? ? if(strcmp(pwd,pwd1)!=0)
? ? ? ? ? ? ? ? printf("\n兩次密碼輸入不一致,請重新輸入!\n\n");
? ? ? ? ? ? else break;
? ? ? ? ? ??
? ? }while(1);
? ? ? ??
? ? if((fp1=fopen("config.bat","wb"))==NULL) ? ? ? ?//打開密碼文件
? ? {
? ? ? ? printf("\n系統(tǒng)創(chuàng)建失敗,請按任意鍵退出!");
? ? ? ? getch();
? ? ? ? exit(1);
? ? }
? ? ? ??
? ? i=0;
? ? while(pwd[i])
? ? {
? ? ? ? putw(pwd[i],fp1);
? ? ? ? i++;
? ? }
? ? ? ??
? ? fclose(fp1); ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//關(guān)閉文件流
? ? printf("\n密碼修改成功,按任意鍵退出!\n");
? ? getch();
? ? return;
}


void savedata()
{
?? ?FILE *fp;
? ? EMP *emp1;
? ? ??
? ? if(gsave==0) return;
? ? ??
? ? if((fp=fopen("employee.dat","wb"))==NULL)
? ? {
? ? ? ? printf("打開文件employee.dat出錯!\n");
? ? ? ? getch();
? ? ? ? return;
? ? }
? ? ??
? ? emp1=emp_first;
? ? while(emp1)
? ? {
? ? ? ? fwrite(emp1,sizeof(EMP),1,fp);
? ? ? ? emp1=emp1->next;
? ? }
? ? ??
? ? gsave=0;
? ? ?fclose(fp);
}


void summaryemp()
{
? ??? ?EMP *emp1;
? ??? ?int sum=0,num=0,man=0,woman=0;
? ?
? ??? ?emp1=emp_first;
? ??? ?while(emp1)
? ??? ?{
? ? ? ??? ?num++;
? ? ? ??? ?sum+=emp1->salary;
? ? ? ??? ?char strw[2];
? ? ? ??? ?strncpy(strw,emp1->sex,2);
? ? ? ??? ?if((strcmp(strw,"ma")==0)||(strcmp(emp1->sex,"男")==0)) man++;
? ? ? ??? ?else woman++;
? ? ? ??? ?emp1=emp1->next;
? ??? ?}
? ?
? ?? ?printf("\n下面是相關(guān)員工的統(tǒng)計(jì)信息!\n");
? ??? ?bound('_',40);
? ??? ?printf("員工總數(shù)是:%d\n",num);
? ?? ?printf("員工的工資總數(shù)是:%d\n",sum);
? ?? ?printf("男員工數(shù)為:%d\n",man);
? ??? ?printf("女員工數(shù)為:%d\n",woman);
? ??? ?bound('_',40);
? ??? ?printf("按任意鍵退出!\n");
? ??? ?getch();
? ??? ?return;
}


int main(void)
{
?? ?system("color f0\n");?? ??? ?//白底黑字
? ?? ?emp_first=emp_end=NULL;
? ?? ?gsave=gfirst=0;
??
? ?? ?checkfirst();
? ?? ?login();
? ?? ?readdata();
? ?? ?menu();
? ?? ?system("PAUSE");
? ?? ?return 0;
}

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

相關(guān)文章

  • C++實(shí)現(xiàn)LeetCode(84.直方圖中最大的矩形)

    C++實(shí)現(xiàn)LeetCode(84.直方圖中最大的矩形)

    這篇文章主要介紹了C++實(shí)現(xiàn)LeetCode(84.直方圖中最大的矩形),本篇文章通過簡要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-07-07
  • LZ77壓縮算法原理的理解

    LZ77壓縮算法原理的理解

    這篇文章主要介紹了LZ77壓縮算法原理的理解的相關(guān)資料,數(shù)據(jù)壓縮是一個減小數(shù)據(jù)存儲空間的過程,目前被應(yīng)用在軟件工程的各個地方,了解其一些原理,方便我們更好的甄選壓縮方案,需要的朋友可以參考下
    2017-08-08
  • 簡單了解C++常見編程問題解決方案

    簡單了解C++常見編程問題解決方案

    這篇文章主要介紹了C++常見編程問題解決方案,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-07-07
  • 淺析C++中strlen函數(shù)的使用與模擬實(shí)現(xiàn)strlen的方法

    淺析C++中strlen函數(shù)的使用與模擬實(shí)現(xiàn)strlen的方法

    這篇文章主要介紹了strlen函數(shù)的使用與模擬實(shí)現(xiàn)strlen的方法,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-03-03
  • C++中的整型

    C++中的整型

    這篇文章我們來聊聊C++中的整型,整型即整數(shù),與小數(shù)對應(yīng)。許多語言只能表示一種整型(如Python),而在C++當(dāng)中根據(jù)整數(shù)的范圍提供了好幾種不同的整型,下面文章我們就來看看具體是哪幾種,需要的朋友也可以參考一下
    2021-11-11
  • Qt之ui在程序中的使用-多繼承法介紹

    Qt之ui在程序中的使用-多繼承法介紹

    本文將介紹Qt之ui在程序中的使用-多繼承法,需要的朋友可以參考
    2012-11-11
  • C語言遞歸實(shí)現(xiàn)歸并排序詳解

    C語言遞歸實(shí)現(xiàn)歸并排序詳解

    這篇文章主要為大家詳細(xì)介紹了C語言遞歸實(shí)現(xiàn)歸并排序,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下,?希望能夠給你帶來幫助
    2022-03-03
  • C語言直接插入排序算法介紹及示例

    C語言直接插入排序算法介紹及示例

    插入排序是把一個記錄插入到已排序的有序序列中,使整個序列在插入該記錄后仍然有序。插入排序中較簡單的種方法是直接插入排序,其插入位置的確定方法是將待插入的記錄與有序區(qū)中的各記錄自右向左依次比較其關(guān)鍵字值的大小
    2022-08-08
  • C++簡明圖解分析靜態(tài)成員與單例設(shè)計(jì)模式

    C++簡明圖解分析靜態(tài)成員與單例設(shè)計(jì)模式

    與靜態(tài)數(shù)據(jù)成員不同,靜態(tài)成員函數(shù)的作用不是為了對象之間的溝通,而是為了能處理靜態(tài)數(shù)據(jù)成員,靜態(tài)成員函數(shù)沒有this指針。既然它沒有指向某一對象,也就無法對一個對象中的非靜態(tài)成員進(jìn)行默認(rèn)訪問
    2022-06-06
  • opencv利用矩形框選中某一區(qū)域并保存為新圖片

    opencv利用矩形框選中某一區(qū)域并保存為新圖片

    這篇文章主要為大家詳細(xì)介紹了opencv利用矩形框選中某一區(qū)域并保存為新圖片,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-01-01

最新評論