亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? thesystemofworkerssalary.txt

?? 職工工資管理系統源程序
?? TXT
?? 第 1 頁 / 共 2 頁
字號:
//***************************************************************************************************************************
//------------>職工成績管理系統
//程序清單:
#include <iomanip>
#include <iostream>
#include <fstream>
#include <malloc.h>
#include <stdlib.h>
#include <string.h>
#define NULL 0
int const N=20;
#define LEN sizeof(struct student)
using namespace std;  
void Menu(); 
void Pass();
int n=0;       //定義一個全局變量統計職工人數 
//——--------->定義一個職工信息的結構體
struct student
{ 
char name[N];        //用來存放姓名
char sex[N];        //用來存放性別
long id;           //用來存放編號
float paid[3];   //用來存放工資
int total;       //用來存放總工資
struct student *next;
};

//-------------->職工類
class Information
{ 
public:
Information() ;       //構造函數. 
~Information() ;     //析構函數. 
student *creat();   //建立鏈表
void output(student *head);         //顯示職工信息
int count(student *head);          //定義函數count()統計職工總數
student *insert(student*head);    //指針函數*insert()用來添加職工信息.
student *cancel(student *head,long id);    //指針函數*cancel()用來刪除職工信息.
student *find(student *head,long id);     //指針函數*find()用來查找職工信息.
student *modify(student *head,long id);  //指針函數*modife()用來修改職工的信息.
void paixu(student *head);              //定義paixu()函數將職工的總額從大到小排列并輸出
void average(student *head);           //定義職工工資平均值的函數
void save(student *head);             //保存文件信息
student *Read();                     //讀取文件信息
private:
student *p1,*p2,*p3,*head,st; 
};

Information::Information() 
{cout<<" ******************************************************************************\n";
cout<<" ------------------------<<歡迎您使用職工工資管理系統>>------------------------\n"; 
cout<<" ******************************************************************************\n\n"; 
}


void zuozhe()
{
 cout<<"按<Enter>鍵進入登陸界面!!";
 
}

Information::~Information()
{ cout<<" ******************************************************************************\n";
cout<<" ------------------------<<謝謝您使用職工工資管理系統>>------------------------\n"; 
cout<<" ******************************************************************************\n";
}

//------------>建立鏈表信息
student *Information::creat(void) 
{//定義一個指向struct student的結構體指針函數*creat()用來錄入職工信息. 
char ch[N];n=0;       //用來存放職工姓名 
p1=p2=(student *)malloc(LEN);//調用malloc()函數用來開辟一個新的存儲單元 
cout<<" -------------<<請建立職工信息表,在姓名處鍵以 # 結束輸入!>>--------------"<<endl;
cout<<" 姓名:";
cin>>ch;
head=NULL;      //給指針head賦初值
while (strcmp(ch,"#")!=0) 
{     //調用字符比較函數strcmp()用來判斷是否繼續輸入
p1=(student *)malloc(LEN);         //調用malloc()函數用來開辟一個新的存儲單元
strcpy(p1->name,ch);              //將循環結構前面輸入的姓名復制到結構體名為p1的數組name中
cout<<" 性別:";
cin>>p1->sex;
cout<<" 編號:";
cin>>p1->id;
while((p1->id)<0||(p1->id)>100000)     //判斷輸入的編號是否有效(100000個)
{
cout<<" 對不起您的輸入錯誤!請重新輸入(>0<1000000): ";
cin>>p1->id;
} 
cout<<" 基本工資:";
cin>>p1->paid[0];
while((p1->paid[0])<0||(p1->paid[0])>100000)      //判斷輸入的分數是否有效(>=0 <=100000)
{
cout<<" 對不起您的輸入錯誤!請重新輸入(>0<100000): ";
cin>>p1->paid[0];
} 
cout<<" 加班工資:";
cin>>p1->paid[1];
while((p1->paid[1])<0||(p1->paid[1])>100000)      //判斷輸入的分數是否有效(>=0 <=100000)
{
cout<<" 對不起您的輸入錯誤!請重新輸入(>0<100000): ";
cin>>p1->paid[1];
} 
cout<<" 其他獎金:";
cin>>p1->paid[2];
while((p1->paid[2])<0||(p1->paid[2])>100000)      //判斷輸入的分數是否有效(>=0 <=100000)
{
cout<<" 對不起您的輸入錯誤!請重新輸入(>0<100000): ";
cin>>p1->paid[2];
} 
p1->total=p1->paid[0]+p1->paid[1]+p1->paid[2];       //計算總額 
if(n==0)head=p1;      //如果是輸入第一組職工信息就將指針p1賦給指針head
else p2->next=p1;    //否則將p1賦給p2所指結構體的next指針
p2=p1;              //將指針p1賦給指針p2
n++;               //將職工人數n的值加1
cout<<"\n 姓名:";
cin>>ch;         //將輸入的姓名存放到字符數組ch中
}
p2->next=NULL; //將p2所指結構體的next指針重新賦空值
return (head);//將輸入的第一組職工信息返回
}

//--------------->定義output()函數將職工的信息從頭指針所指內容開始輸出
void Information::output(student *head) 
{
system("cls");
if(head==NULL) cout<<" 這是一個空表,請先輸入職工信息!\n";
else{
cout<<"-------------------------------------------------------------------------------\n";
cout<<" *職工工資信息表*\n";
cout<<"-------------------------------------------------------------------------------\n"; 
cout<<"|編 號|     |姓 名|   |性別|   |基本工資|   |加班工資|  |其他獎金|     |總額|\n";
cout<<"-------------------------------------------------------------------------------\n"; 
p1=head;   //將頭指針賦給p 
do
{
cout<<setw(6)<<p1->id
<<setw(10)<<p1->name
<<setw(10)<<p1->sex
<<setw(10)<<p1->paid[0]
<<setw(10)<<p1->paid[1]
<<setw(12)<<p1->paid[2]
<<setw(12)<<p1->total<<endl;
cout<<"-------------------------------------------------------------------------------\n"; 
p1=p1->next;          //將下一組職工信息的next指針賦給p
}while(p1!=NULL);    //若指針p非空則繼續,目的是把所有的職工信息都傳給指針p然后輸出.
}
}

//------------>統計職工人數的函數
int Information::count(struct student *head)     //定義函數count()統計職工總數
{
if(head==NULL)return(0);                       //若指針head為空返回值為0
else return(1+count(head->next));             //函數的遞歸調用
}

//----------->添加職工的成績的函數
student *Information::insert( student *head) 
//插入新結點定義一個指向struct student的結構體指針函數*insert()用來添加職工信息.
{
system("cls");
cout<<"\t----------------<<請輸入新增職工成績信息>>----------------\n"<<endl;
p1=(student *)malloc(LEN);      //使p1指向插入的新結點
cout<<" 編號:";
cin>>p1->id;
while((p1->id)<0||(p1->id)>100000)
{
cout<<" 對不起您的輸入錯誤!請重新輸入(>0<100000): ";
cin>>p1->id;         //將輸入的編號存放到p1所指結構體的數組id中
} 
cout<<" 姓名:";
cin>>p1->name;     //將輸入的姓名存放到結構體名為p1的數組name中
cout<<" 性別:";
cin>>p1->sex; 
cout<<" 基本工資:";
cin>>p1->paid[0];
while((p1->paid[0])<0||(p1->paid[0])>100000)
{
cout<<" 對不起您的輸入錯誤!請重新輸入(>0<100000): ";
cin>>p1->paid[0];     //將輸入的基本工資存放到p1所指結構體的數組paid中
}
cout<<" 加班工資:";
cin>>p1->paid[1];
while((p1->paid[1])<0||(p1->paid[1])>100000)
{
cout<<" 對不起您的輸入錯誤!請重新輸入(>0<100000): ";
cin>>p1->paid[1];    //將輸入的加班工資存放到p1所指結構體的數組paid中
}
cout<<" 其他獎金:";
cin>>p1->paid[2];
while((p1->paid[2])<0||(p1->paid[2])>100000)
{
cout<<" 對不起您的輸入錯誤!請重新輸入(>0<100000): ";
cin>>p1->paid[2];   //將輸入的其他獎金存放到p1所指結構體的數組paid中
} 
p1->total=p1->paid[0]+p1->paid[1]+p1->paid[2];//計算總分 
p2=head;         //將頭指針賦給p2
if(head==NULL)  //若沒調用次函數以前的頭指針head為空
{
head=p1;p1->next=NULL;
}        //則將p1賦給頭指針head并將p1所指結構體成員指針next賦空值
else 
{
while((p1->id>p2->id)&&(p2->next!=NULL))
{
p3=p2;        //p3指向原p2指向的結點
p2=p2->next;
}           //p2后移一個結點
if(p1->id<=p2->id)
{
if(head==p2)
{
p1->next=head;
head=p1;
}       //插入到第一個結點之前
else 
{
p3->next=p1;
p1->next=p2;
}    //插入到p3所指結點之后
}
else
{
p2->next=p1;
p1->next=NULL;
}  //插入到尾結點之后
}
n++;  //將職工人數加1
cout<<"\t----------------<<你輸入的職工信息已經成功插入>>----------------"<<endl;
return (head);
}

//------------>刪除職工信息
student *Information::cancel(student *head,long id)   //定義一個指向struct student的結構體指針函數*delete()用來刪除考生信息.
{ 
system("cls");
if(head==NULL)      //若調用次函數以前的頭指針head為空
{ 
return(head);
}
else
{
p1=head;        //否則將頭指針賦給p1
while(id!=p1->id&&p1->next!=NULL)   //尋找要刪除的結點當p1所指的職工編號不是輸入的職工編號并且p1所指的next指針不為空
{
p2=p1;
p1=p1->next;
}                    //p2指向原p1指向的結點p1后移一個結點
if(id==p1->id)      //如果輸入的職工編號是p1所指的職工編號//結點找到后刪除
{
if(p1==head) head=p1->next;   //如果head指針和p1指針相等則將下一個結點賦給指針head 
else 
p2->next=p1->next;           //否則將p1所指結點賦給p2所指結點將要刪除的職工信息跳過去
cout<<" 刪除編號為"<<id<<"的職工\n";
n--;               //將職工人數減1 
}
return(head);     //將頭指針返回
}
}

/**************************修改職工數據**************************/
student *Information::modify(student *head,long id)
{
system("cls");
cout<<"\t----------------<<請輸入須修改的職工工資信息>>----------------\n"<<endl;
p1=(student *)malloc(LEN); //使p1指向輸入的結點
p1=head;                  //否則將頭指針賦給p1
while(id!=p1->id&&p1->next!=NULL)
//尋找結點當p1所指的職工編號不是輸入的職工編號并且p1所指的next指針不為空
{
p1=p1->next;        //p2指向原p1指向的結點p1后移一個結點
}          
if(id==p1->id)       //如果要查找的職工編號是p1所指的職工編號
{
cout<<"你需要修改的職工信息如下:\n";
cout<<"------------------------------------------------------------------------------\n";
cout<<"|編 號|   |姓 名|   |性別|   |基本工資|   |加班工資|    |其他獎金|    |總額|\n";
cout<<"------------------------------------------------------------------------------\n";
cout<<setw(6)<<p1->id
<<setw(10)<<p1->name
<<setw(10)<<p1->sex
<<setw(10)<<p1->paid[0]
<<setw(10)<<p1->paid[1]
<<setw(12)<<p1->paid[2]
<<setw(12)<<p1->total<<endl;
cout<<"------------------------------------------------------------------------------\n";
cout<<" 編號:";
cin>>p1->id;
while((p1->id)<0||(p1->id)>100000)
{
cout<<" 對不起您的輸入錯誤!請重新輸入(>0<100000): ";
cin>>p1->id;       //將輸入的編號存放到p1所指結構體的數組id中
} 
cout<<" 姓名:";
cin>>p1->name;    //將輸入的姓名存放到結構體名為p1的數組name中
cout<<" 性別:";
cin>>p1->sex; 
cout<<" 基本工資:";
cin>>p1->paid[0];
while((p1->paid[0])<0||(p1->paid[0])>100000)
{
cout<<" 對不起您的輸入錯誤!請重新輸入(>0<100000): ";
cin>>p1->paid[0];  //將輸入的基本工資存放到p1所指結構體的數組paid中
}
cout<<" 加班工資:";
cin>>p1->paid[1];
while((p1->paid[1])<0||(p1->paid[1])>100000)
{
cout<<" 對不起您的輸入錯誤!請重新輸入(>0<100000): ";
cin>>p1->paid[1];  //將輸入的加班工資存放到p1所指結構體的數組paid中
}
cout<<" 其他獎金:";
cin>>p1->paid[2];
while((p1->paid[2])<0||(p1->paid[2])>100000)
{
cout<<" 對不起您的輸入錯誤!請重新輸入(>0<100000): ";
cin>>p1->paid[2];  //將輸入的其他獎金存放到p1所指結構體的數組paid中
} 
p1->total=p1->paid[0]+p1->paid[1]+p1->paid[2];  //計算總分 
}
else 
cout<<" 需要修改的信息中沒有編號為"<<id<<"的職工.\n\n"; //沒有想要修改的結點信息
getchar();
return(head);
}

//------------>查找職工信息
student *Information::find(student *head,long id) 
//定義一個指向struct student的結構體指針函數*find()用來查找職工信息.
{

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
av网站一区二区三区| 国产xxx精品视频大全| 中文字幕免费观看一区| 亚洲日本电影在线| 偷拍日韩校园综合在线| 国产精品99久久久久久久女警 | 国产一区二区三区黄视频| 午夜精品成人在线视频| 偷窥国产亚洲免费视频| 91在线看国产| 国产一区二区三区综合| 久久9热精品视频| 精品在线免费视频| 国产成人在线视频免费播放| 国产**成人网毛片九色 | 在线一区二区三区四区五区| 91免费看片在线观看| 欧洲一区二区三区在线| 欧美群妇大交群中文字幕| 日韩欧美你懂的| 国产视频在线观看一区二区三区| 国产精品久久国产精麻豆99网站| 午夜精品福利一区二区三区av| 亚洲精品中文在线影院| 亚洲色图在线视频| 亚洲福利一区二区| 麻豆成人免费电影| 成人毛片老司机大片| 99久久99久久综合| 欧美肥妇bbw| 欧美国产1区2区| 亚洲自拍偷拍网站| 激情久久久久久久久久久久久久久久| 国产成人在线看| 在线视频你懂得一区二区三区| 7777精品伊人久久久大香线蕉最新版| 精品国产乱码久久久久久夜甘婷婷 | 99免费精品视频| 美女脱光内衣内裤视频久久影院| 日韩理论片网站| 亚洲午夜久久久久久久久电影院| 丝袜亚洲精品中文字幕一区| 经典三级视频一区| 色哟哟一区二区三区| 日韩欧美国产麻豆| 亚洲日本中文字幕区| 久久精品国产成人一区二区三区| 99re在线精品| 国产婷婷色一区二区三区四区 | 久久综合狠狠综合| 一区二区三区不卡视频| 黄色成人免费在线| 欧美日本一区二区在线观看| 欧美老女人第四色| 国产日韩三级在线| 日韩av二区在线播放| 91原创在线视频| 国产性色一区二区| 日日欢夜夜爽一区| 色婷婷av久久久久久久| 国产精品视频免费| 国产一区视频网站| 欧美精品一区二区高清在线观看| 一区二区三区欧美在线观看| 成人精品一区二区三区中文字幕| 日韩一区二区在线看| 午夜精品久久久久久久久久久| 91色九色蝌蚪| 国产精品美女久久久久久2018| 国产精品18久久久久| 欧美不卡一二三| 免费看精品久久片| 日韩一区二区影院| 青青青伊人色综合久久| 91精品国产综合久久国产大片 | 久久久美女艺术照精彩视频福利播放| 日韩精品午夜视频| 欧美日韩夫妻久久| 亚洲成av人片观看| 91麻豆精品国产91久久久使用方法 | 成人午夜av在线| 国产精品色婷婷久久58| 91在线免费播放| 伊人开心综合网| 欧美日韩在线一区二区| 三级亚洲高清视频| 日韩区在线观看| 国产一区欧美日韩| 国产精品传媒入口麻豆| 色综合久久久久网| 日韩激情中文字幕| 久久香蕉国产线看观看99| 国产 欧美在线| 亚洲日本一区二区| 欧美日韩国产片| 欧美aaaaa成人免费观看视频| 亚洲精品一区二区三区蜜桃下载| 国产不卡高清在线观看视频| 亚洲欧美综合网| 欧美区视频在线观看| 韩国毛片一区二区三区| 国产精品欧美一区二区三区| 日本久久一区二区| 麻豆高清免费国产一区| 国产精品乱码一区二区三区软件| 色视频欧美一区二区三区| 日韩电影一区二区三区四区| 久久久久久久综合| 欧美无砖砖区免费| 91老司机福利 在线| 欧美sm美女调教| 国产呦精品一区二区三区网站| 中文字幕免费在线观看视频一区| 色哟哟精品一区| 男女男精品网站| 亚洲久本草在线中文字幕| 91精品黄色片免费大全| av亚洲产国偷v产偷v自拍| 午夜成人免费视频| 国产精品美女久久久久久久| 日韩欧美二区三区| 欧美三级三级三级爽爽爽| 国产91精品精华液一区二区三区| 日日夜夜一区二区| 国产精品久久久久久一区二区三区 | 成人欧美一区二区三区白人| 欧美一区二区三区精品| 色乱码一区二区三区88| 黄色小说综合网站| 日本欧美韩国一区三区| 亚洲永久精品国产| 欧美激情在线看| 精品国产一区二区在线观看| 欧美日韩一二三| 色94色欧美sute亚洲线路一ni| 国产mv日韩mv欧美| 国产精品夜夜嗨| 麻豆国产精品视频| 免费成人在线播放| 调教+趴+乳夹+国产+精品| 亚洲欧美偷拍三级| 中文字幕一区视频| 欧美激情自拍偷拍| 久久久久久久综合| 久久午夜羞羞影院免费观看| 日韩欧美国产三级电影视频| 欧美日韩另类一区| 日本高清不卡在线观看| 成人av午夜电影| 99久久久久免费精品国产| 成人深夜视频在线观看| 国产呦萝稀缺另类资源| 国产一区视频在线看| 国产精品一卡二卡| 国产精品一区三区| 成人毛片视频在线观看| 成人app下载| 色综合天天综合给合国产| 色欲综合视频天天天| 在线视频一区二区三| 欧美午夜在线观看| 欧美精品精品一区| 日韩欧美二区三区| 久久这里只有精品视频网| 久久久精品人体av艺术| 国产精品入口麻豆原神| 国产精品福利一区| 一区二区三区高清| 美女国产一区二区三区| 男男gaygay亚洲| 麻豆精品新av中文字幕| 精品在线观看免费| 国产精品911| 91麻豆免费看| 91麻豆精品国产91久久久资源速度| 日韩女优av电影| 国产精品久久二区二区| 亚洲动漫第一页| 国产毛片一区二区| 91视频com| 日韩欧美亚洲另类制服综合在线| www日韩大片| 亚洲一区在线免费观看| 精品一区二区三区欧美| 91浏览器打开| 久久夜色精品国产噜噜av| 亚洲同性同志一二三专区| 午夜成人免费视频| 成人免费看黄yyy456| 91精品麻豆日日躁夜夜躁| 国产精品久久久久三级| 免费精品视频最新在线| 99久久亚洲一区二区三区青草| 欧美日韩亚洲另类| 国产欧美日韩不卡| 免费人成黄页网站在线一区二区| 成人综合在线观看| 日韩一区二区三区电影| 亚洲精品乱码久久久久久| 国产精品一二二区|