c語言工資管理系統程序
❶ 怎樣用c語言編寫工資管理系統
程序名稱:工資管理系統
程序說明:該系統在磁碟上儲存了某單位上月全體員工的工資信息,對於每一位職工存儲以下信息:
月份,職工編號,基本工資,津貼,崗貼,補貼,房貼,交通補貼,應發數,房租,儲蓄,
會費,個人所得稅,應扣數,實發數。
❷ 用C語言編寫一個程序,內容為職工工資管理系統的設計與實現
就這樣吧,工資排序就是比較數的大小,這個會吧?既然只有3個人,就這么簡單。如果要查詢,就要先保存,寫保存函數,再寫讀取函數,我就不寫了。最後建議這種用鏈表比較好。
#include<stdio.h>
#include<stdlib.h>
void main()
{
char num[3];
char name[3][9];
char type[3][9];
float money[3];
float sum = 0;
int i;
float average;
printf("請輸入職工的信息,\n:");
for(i = 0;i<3;i++)
{
num[i] = i+1;
printf("請輸入第%d個信息name:\n",i+1);
scanf("%s",name[i]);
printf("請輸入第%d個信息type:\n",i+1);
scanf("%s",type[i]);
printf("請輸入第%d個信息money:\n",i+1);
scanf("%f",&money[i]);
}
for(i = 0;i<3;i++)
{
printf("%d %s %s %f",num[i],name[i],type[i],money[i]);
printf("\n");
}
for(i = 0;i<3;i++)
{
sum+=money[i];
}
average = sum/3;
printf("平均工資是:%f\n",average);
getch();
}
❸ 工資管理系統 C語言源代碼
代碼還沒有完善好,實在沒時間了,最近太忙。先給你吧
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int addmenu();
int menu();
typedef struct teacher{
char name[32];
char unit[32];
float salary;
float allowance;
float tax;
float total;
struct teacher *next;
}TEACHER; //節點的結構體,包含數據和指針.
TEACHER *head;//頭節點
void init() //初始化頭節點
{
head=(TEACHER *)malloc(sizeof(TEACHER));
head->next=NULL;
}
void add(TEACHER *nod) //添加節點
{
if(head->next==NULL){
head=nod;
}
else
{
nod->next=head->next;
head->next=nod;
}
}
TEACHER *search(char *s) //遍歷整個鏈表並列印數據
{
TEACHER *nod=head;
while(nod->next !=NULL)//!循環到最後一個節點,有問題。。
{
if((!strcmp(nod->name,s)) || (!strcmp(nod->unit,s))){
printf("姓名:%s\n單位:%s\n基本工資:%f\n津貼:%f\n扣稅:%f\n總工資:%f\n",nod->name,nod->unit,nod->salary,nod->allowance,nod->tax,nod->tax);
return nod;
}
nod++;
}
printf("未找到數據\n");
return NULL;
}
void modify(TEACHER *s)
{
char name[16],unit[16];
float salary,allowance,tax,total;
gets(name);
strcpy(s->name,name);
gets(unit);
strcpy(s->unit,unit);
scanf("%f",&salary);
s->salary=salary;
scanf("%f",&allowance);
s->allowance=allowance;
scanf("%f",&tax);
s->tax=tax;
scanf("%f",&total);
s->total=total;
}
void del(char *s)
{
TEACHER *nod=head;
while(nod->next !=NULL)
{
if((!strcmp(nod->next->name,s))||(!strcmp(nod->next->unit,s))){
nod->next=nod->next->next;
nod->next=NULL;
}
}
}
int addmenu()//添加教師信息子菜單
{
TEACHER *node;
char command;
float salary,allowance,tax,total;
system("cls");
printf("****************************\n");
printf("* 添加子菜單 *\n");
printf("****************************\n");
printf("說明:4.返回主菜單 5.添加\n");
printf("請選擇需要使用的功能:");
fflush(stdin);
while((command=getchar())!='4')
{
if(command==4)
break;
printf("添加信息:\n");
node=(TEACHER *)malloc(sizeof(TEACHER));
fflush(stdin);
printf("姓名:");
fflush(stdin);
gets(node->name);
printf("單位:");
fflush(stdin);
gets(node->unit);
printf("基本工資:");
fflush(stdin);
scanf("%f",&salary);
node->salary=salary;
printf("津貼:");
scanf("%f",&allowance);
node->allowance=allowance;
fflush(stdin);
printf("扣稅:");
scanf("%f",&tax);
node->tax=tax;
fflush(stdin);
printf("總工資:");
scanf("%f",&total);
node->total=total;
fflush(stdin);
add(node);
fflush(stdin);
printf("輸入c退出,其他字元繼續\n");
if((command=getchar())=='c')
break;
}
return 0;
}
int save()
{
TEACHER *nod=head;
FILE *fp;
if((fp=fopen("teacher.txt","w+")) == NULL)
{
printf("打開文件異常\n");
return 0;
}
while(nod->next != NULL)
{
if(fwrite(nod,sizeof(TEACHER),1,fp)!=1){
printf("寫入異常\n");
return 0;
}
nod++;
}
fclose(fp);
return 1;
}
int searchmenu()
{
char name[16];
char command;
system("cls");
printf("****************************\n");
printf("* 查詢和修改子菜單 *\n");
printf("****************************\n");
printf("說明:4.返回主菜單 5.通過姓名/查找 6.修改 \n");
fflush(stdin);
printf("請輸出需要實現的操作:");
while((command=getchar()) !='4')
{
switch(command)
{
case '4': break;
case '5':
printf("請輸入需要查找的姓名:");
fflush(stdin);
gets(name);
search(name);
break;
// case '6': modify();break;
}
printf("請輸出需要實現的操作:");
}
return 0;
}
int menu()
{
char command;
int i,j=10;
system("cls");
printf("****************************\n");
printf("* 工資管理系統 *\n");
printf("****************************\n");
printf("----------------------------\n");
printf("說明:1.添加 2.查詢/修改 3.保存 4.退出\n");
printf("----------------------------\n");
printf("請輸出需要實現的操作:");
while((command=getchar())!='4'){
switch(command)
{
case '1': addmenu(); break;
case '2': searchmenu();break;
case '3': i=save();if(i)printf("保存成功!\n"); while(j--);break;
}
fflush(stdin);
/*子函數退出後再次顯示主界面*/
system("cls");
printf("****************************\n");
printf("* 工資管理系統 *\n");
printf("****************************\n");
printf("----------------------------\n");
printf("說明:1.添加 2.查詢/修改 3.保存 4.退出\n");
printf("----------------------------\n");
printf("請輸出需要實現的操作:");
}
printf("******感謝您使用本系統******\n");
return 0;
}
int main()
{
init();
menu();
return 0;
}
❹ 求工資管理系統(C語言)
#include <iostream>
#include <string>
#define MaxHEAP 100
using namespace std;
class Elem{
private:
int objectID;
int priority;
string proName;
public:
Elem(int objectID=0,int priority=0){
setID(objectID);
setPri(priority);
setProN(proName);
}
int getID(){
return objectID;
}
int getPri(){
return priority;
}
string getProN(){
return proName;
}
void setID(int id){
objectID=id;
}
void setPri(int pri){
priority=pri;
}
void setProN(string s)
{
proName=s;
}
};
class Heap
{
private:
Elem items[MaxHEAP];
int size;
public :
Heap(){
Elem items[MaxHEAP];
setSize(0);}
void setSize(int sz)
{size=sz;}
int heapIsEmpty(){
return size==0;
}
void heapInsert(Elem newItem)
{if(size<MaxHEAP)
{
items[size]=newItem;
int place=size;
int parent=(place-1)/2;
while((parent>=0)&&(items[parent].getPri()<items[place].getPri()))
{
Elem temp=items[parent];
items[parent]=items[place];
items[place]=temp;
place=parent;
parent=(place-1/2);
}
++size;
}
heapRebuild(0);
}
Elem heapDelete(int ID)
{
Elem rootItem;
if(!heapIsEmpty())
{
for(int i=0;i<size;i++)
if(items[i].getID()==ID)
{rootItem=items[i];
swap(items[i],items[0]);
}
items[0]=items[--size];
heapRebuild(0);
}
else cout<<"\n錯誤:目錄為空"<<endl;
return rootItem;
}
void heapInit(){
setSize(0);
cout<<"空的項目"<<endl;}
void heapView(){
if(size==0){
cout<<"空的項目!"<<endl;
}
else{
cout<<"共有項目數: "<<size<<endl;
for(int ct=0;ct<size;ct++){
cout<<"ID: "<<items[ct].getID()<<" 優先順序: "<<items[ct].getPri()
<<" 工資數目: " <<items[ct].getProN()<<endl;
}
}
}
void search(int ID)
{ int N=0;
for(int i=0;i<size;i++)
if(items[i].getID()==ID)
{N++;
cout<<"ID: "<<items[i].getID()<<" 優先順序: "<<items[i].getPri()
<<" 名稱: " <<items[i].getProN()<<endl; }
if(!N) cout<<"未找到匹配的ID"<<endl;
}
void heapRebuild(int root)
{
int child=2*root+1;
if(child<size)
{
int rightChild=child+1;
if((rightChild<size)&&(items[rightChild].getPri()>=items[child].getPri()))
{child=rightChild;
}
if(items[root].getPri()<=items[child].getPri())
{
Elem temp=items[root];
items[root]=items[child];
items[child]=temp;
heapRebuild(child);
}
}
}
};
class priQueue
{private:
Heap h;
public:
priQueue(){
Heap();
}
int priIsEmpty(){
return h.heapIsEmpty();
}
void priInit(){
h.heapInit();
}
void priInsert(Elem newItem){
h.heapInsert(newItem);
}
Elem priDelete(int ID){
return h.heapDelete(ID);
}
void priView(){h.heapView();
}
void search(int ID)
{
h.search(ID);
}
};
void showMenu(){
cout<<"------------------------------------------------"<<endl;
cout<<"-----------------*工資管理系統*-----------------"<<endl;
cout<<"------------------------------------------------"<<endl;
cout<<" 1.重置"<<endl;
cout<<" 2.輸入"<<endl;
cout<<" 3.刪除"<<endl;
cout<<" 4.查詢"<<endl;
cout<<" 5.列印"<<endl;
cout<<" 0.退出"<<endl;
cout<<"------------------------------------------------"<<endl;
}
void showTip(){
cout<<"---------------------------------^_^--操作完成!"<<endl;
cout<<"------------------------------------選擇0-5繼續"<<endl;
}
int main(){
string i="-1";
int ID,PRI;
string proName;
Elem in;
priQueue PQ;
PQ.priInit();
system("cls");
showMenu();
cout<<"選擇菜單中的數字以便處理數據!"<<endl;
cin>>i;
system("cls");
while(i!="0")
{ if(i=="1")
{ system("cls");
showMenu();
cout<<"你選擇了1,項目將全部清空:"<<endl;
PQ.priInit();
showTip();
}
else if(i=="2")
{system("cls");
showMenu();
cout<<"你選擇了2,輸入ID,優先順序,工資"<<endl;
cout<<"輸入 ID(數字):"<<endl;
cin>>ID;
cout<<"輸入優先順序(數字):"<<endl;
cin>>PRI;
cout<<"輸入工資數目(數字):"<<endl;
cin>>proName;
in.setID(ID);
in.setPri(PRI);
in.setProN(proName);
PQ.priInsert(in);
showTip();
}
else if(i=="3")
{system("cls");
showMenu();
cout<<"你選擇了3,請選擇你要刪除的ID號"<<endl;
cin>>ID;
PQ.priDelete(ID);
showTip();
}
else if(i=="4")
{system("cls");
showMenu();
cout<<"你選擇了4,輸入要查找的項目ID號"<<endl;
cin>>ID;
PQ.search(ID);
showTip();
}
else if(i=="5")
{system("cls");
showMenu();
cout<<"你選擇了5,整個系統工資情況顯示如下:"<<endl;
PQ.priView();
showTip();
}
else {
system("cls");
showMenu();
cout<<"無效輸入!"<<endl;
}
cin>>i;
system("cls");
}
return 0;
}
❺ C語言編寫程序----工資信息管理系統
二樓,
一個字-----牛!
二個字-----牛B!
三個字-----太B了!
❻ C語言工資管理系統
已經私信你了
❼ C語言程序設計--工資管理系統
#include "stdio.h"
#include "stdlib.h"
#include "string.h"
typedef struct empl
{
char number[20];
char name[20];
int pay;
int subsidy;
int costlive;
empl *next;
};
int show(empl *p)
{
if(!p)return 0;
printf("number\t mame\t pay\t subsidey\t costlive\n");
printf("%s\t %s\t %d\t %d\t %d\n",p->number,p->name,p->pay,p->subsidy,p->costlive);
return 1;
}
int menu()
{
int i;
char c;
printf("1.add employee 2.demand employee 3.statistical \n4.delete employee 5.list 6.quit\n");
printf("Input Option: ",&i);
scanf("%d",&i);
while((c=getchar())!='\n'&& c!=EOF);
return i;
}
int addem(empl *p)
{
empl *pb;
if(!p) return 0;
while(p->next)p=p->next;
pb=(empl *)malloc(sizeof(empl));
if(!pb) return 0;
scanf("%s%s%d%d%d",pb->number,pb->name,&(pb->pay),&(pb->subsidy),&(pb->costlive));
p->next=pb;
pb->next=NULL;
return 1;
}
int removeem(empl *p)
{
if(!p)return 0;
empl *pb;
char code[20];
scanf("%s",code);
while(p && strcmp(p->next->number,code))p=p->next;
if(!p->next) return 0;
if(p->next->next){
pb=p->next;p->next=pb->next;
free(pb);
}
else{
pb=p->next;p->next=NULL;
free(pb);
}
return 1;
}
int demand(empl *p)
{
char code[20];
scanf("%s",code);
while(p && strcmp(p->next->number,code))p=p->next;
if(!p->next) return 0;
show(p->next);
return 1;
}
int list(empl *p)
{
if(!p)return 0;
while(p->next){
show(p->next);
p=p->next;
}
return 1;
}
empl *create()
{
empl *p;
p=(empl *)malloc(sizeof(empl));
if(!p) return NULL;
p->next=NULL;
return p;
}
int statistical(empl *p)
{
if(!p) return 0;
while(p->next){
printf("%s\t %d\t %d\n",p->next->name,p->next->pay+p->next->subsidy,p->next->pay+p->next->subsidy-p->next->costlive);
p=p->next;
}
return 1;
}
int quit()
{
return 0;
}
int main()
{
int i;
empl *p;
p=create();
while(i){
switch(menu()){
case 1:{if(addem(p))
printf("succeed !\n");
else
printf("fail !\n");
}
break;
case 2:{if(demand(p))
printf("succeed !\n");
else
printf("fail !\n");
}
break;
case 3:{if(statistical(p))
printf("succeed !\n");
else
printf("fail !\n");
}
break;
case 4:{if(removeem(p))
printf("succeed !\n");
else
printf("fail !\n");
}
break;
case 5:{if(list(p))
printf("succeed !\n");
else
printf("fail !\n");
}
break;
case 6:i=quit();break;
default:printf("Option Error!\n");
}
}
return 0;
}
...簡單的寫了下..要就自己改了
❽ C語言程序設計--職工工資管理系統 急!!!!!!!!!!!
你是哪個學校的,,我現在也在做這個,,我已經做好了,,如果你不是跟我一個學校的話,我就發給你。。
我已經張貼在我的網路空間的博客里了。。你加我為好友就看的到了
❾ C語言 工資管理系統
這個要靠調試了,不過有時候調試可能還不如重寫快,可以幫寫
❿ c語言程序設計、工資管理系統
#include <stdio.h>
#include <malloc.h>
#include <string.h>
typedef struct
{
char num[10];
char name[20];
char date[15];
double pay;
}employee;
typedef struct node
{
employee p;
struct node *pre;
struct node *next;
}node,*linklist;
linklist head,last;
void setData(linklist p)
{
printf("編號:");
scanf("%s",&p->p.num);
printf("姓名:");
scanf("%s",&p->p.name);
printf("入職時間:");
scanf("%s",&p->p.date);
printf("工資:");
scanf("%lf",&p->p.pay);
}
void Insert(linklist p)
{
setData(p);
p->next=last;
last->pre->next=p;
p->pre=last->pre;
last->pre=p;
}
void Add()
{
char ch;
do
{
linklist p=(linklist)malloc(sizeof(node));
system("cls");
Insert(p);
printf("是否繼續?");
scanf(" %c",&ch);
}while(ch=='y'||ch=='Y');
}
linklist Qur(int method)
{
char ch[20];
linklist p=head->next;
if(method==0)
{
printf("選擇查詢方式:(1 姓名、2 年月)");
scanf("%d",&method);
}
if(method==1)
{
printf("輸入姓名:");
scanf("%s",ch);
while(p!=last)
{
if(strcmp(ch,p->p.name)==0) break;
p=p->next;
}
}
else if(method==2)
{
printf("輸入年月:");
scanf("%s",ch);
while(p!=last)
{
if(strcmp(ch,p->p.date)==0) break;
p=p->next;
}
}
if(p==last) {printf("未找到\n");system("pause");}
return p;
}
void Del()
{
linklist p=Qur(1);
if(p==last) return;
p->pre->next=p->next;
p->next->pre=p->pre;
free(p);
printf("刪除成功\n");
system("pause");
}
void Modify()
{
linklist p=Qur(1);
if(p==last) return ;
setData(p);
}
void printTitle()
{
printf("編號\t名稱\t入職日期\t工資\n");
}
void show(linklist p)
{
printf("%s\t%s\t%s\t%.2lf\n",p->p.num,p->p.name,p->p.date,p->p.pay);
}
void Sort()
{
linklist p,q;
for (p=head->next;p!=last;p=p->next)
{
for (q=p->next;q!=last;q=q->next)
{
if(p->p.pay<q->p.pay)
{
employee temp=p->p;
p->p=q->p;
q->p=temp;
}
}
}
printf("完成\n");
system("pause");
}
void Tongji()
{
linklist p=head->next;
Sort();
printTitle();
while(p!=last)
{
show(p);
p=p->next;
}
system("pause");
}
void Wrong()
{
printf("輸入錯誤!\n");
system("pause");
}
void menu(void)
{
system("cls");
printf("********工資管理系統*******\n");
printf("* *\n");
printf("* 1:添加 *\n");
printf("* 2:刪除 *\n");
printf("* 3:查詢 *\n");
printf("* 4:修改 *\n");
printf("* 5:統計 *\n");
printf("* 6:排序 *\n");
printf("* 0:退出 *\n");
printf("* *\n");
printf("*******************************\n");
}
int select()
{
int choose;
scanf("%d",&choose);
switch(choose)
{
case 1:Add();break;
case 2:Del();break;
case 3:
{
linklist p=Qur(0);
if(p!=last) {show(p);system("pause");}break;
}
case 4:Modify();break;
case 5:Tongji();break;
case 6:Sort();break;
case 0:break;
default:Wrong();break;
}
return choose;
}
void destroy()
{
linklist p=head->next;
while(p!=last)
{
head->next=p->next;
free(p);
p=head->next;
}
free(head);
free(last);
}
int main(void)
{
head=(linklist)malloc(sizeof(node));
last=(linklist)malloc(sizeof(node));
head->next=last;
last->next=NULL;
last->pre=head;
head->pre=NULL;
do
{
menu();
} while (select()!=0);
destroy();
return 0;
}