資料庫工資管理系統課程設計
Ⅰ 資料庫課程設計 c語言源代碼 工資管理系統 5.1目標: ⑴實現月工資計
你這個這么復雜,如果不給錢很難有人給你做的,望採納!
Ⅱ 資料庫課程設計—員工薪資管理系統
我給你講個思路
表設計:
人事檔案表
工資登記表(用做每月的工資登記)
考勤內表容(記錄員工考勤數據,工資計算要參照這張表)
工資匯總表(每月對工資的結轉數據流入此表)
系統用戶表
系統許可權分配表
表大體是這幾張表
其它你說的這一套套大都過時了,現在做軟體的需求分析都不是這個了,但學習下也是必須的,出來後就又學新東西了
Ⅲ 求資料庫課程設計報告(職工工資管理系統)。要求如下。需要用SQL Server建立資料庫,以及結合web界面
畢業都好多年了 ,大學這教育也太老化了吧 ,每年都是出這么個題來考學生,創新一下會si人的我估計.....
還是勞駕自己開發吧,別對不起你媽交給你的學費!學點對自己沒壞處的!
答案:已刪除!
對於這些話。這位師兄或師姐,允許我這么稱呼你。雖然你的出發點是好的,但是我實在忍不住要說一下。你知道些什麼。既然你說這些教育太老化,每年都是這些題。那麼自己開發,然後就對得起老媽的學費,話說對不對得起我自己知道。我求這份報告並不代表我就是要全抄,我也沒說我一點都不去做。而且。你知道我們課程設計這兩周怎麼過的。web作業要交,弄一個大系統。然後軟體工程五份文檔(每份文檔基本上都要花一星期的實際來弄),然後17周考軟體工程。剛考完。18周考Java.這兩周是課程設計設計,完了。19周還要考計算機組成原理。交這個報告。我們弄web作業幾乎都要熬好幾個通宵來弄。加上還有資料庫的實驗報告以及java的實驗報告。我不認為要一份課程設計報告有什麼錯?你有的話就想發就發。而且你似乎是沒有的。那麼勞駕你不要對我說對不起老媽的學費。對不對得起我自己知道,我媽也知道。OK?雖然你的出發點不知道是不是好的。但是對我來說不需要。。。不然還要網路知道來幹嘛。。。。嗯~沒有,看到你的評論我有點火大。所以一不小心就打了那麼長。況且怎麼都好。就算最後沒得交也好。我也覺得沒關系。。。好了~睡覺了。呼呼~
Ⅳ 工資管理信息系統課程設計開發背景怎麼寫
我認為中心應該是:
(在市場經濟的大環境下,越來越多的人士逐漸認識專到用計算機技術進行屬各類管理,交流的便捷,其中最突出的要算企事業單位的人事工資管理了,為了提高人事工資管理效率,減輕勞動強度,提高信息處理速度和准確性,在對其組成結構和系統功能進行了全面地分析,提出了人事工資管理系統的實現和解決方案,該方案利用計算機支持高效率地完成人事工資管理的日常事務,是適應現代企事業單位制度要求、推動企事業單位人事工資管理走向科學化、規范化的必要條件。)
設計的思路:
應該以Visual Basic6.0為開發語言和ACCESS2000為資料庫以及其他第三方控制項等軟體作為設計工具,以工資為對象,開發的一個能夠滿足企事業單位的工資管理的要求的「人事工資管理系統」。
要求本系統具有完成單位人員工資管理的全過程,包括用戶管理,員工管理,維護不同職務,職稱,其他工資的工資標准以及瀏覽與結算和查詢等。
關鍵詞:工資管理系統; VB; ACCESS
Ⅳ 資料庫原理與應用課程設計報告 xx管理系統。 例如工資管理系統,這個是例題就不要了。
可以使用Bai Hi聯系抄我你的任務
有機會可解決你遇到的任務
如果你有類似的要求也可聯系我
ES:\\
交易提醒:預付定金是詐騙
交易提醒:勿輕信網路名中的聯系方式
Ⅵ 課程設計,工資管理系統完整源代碼
#include <stdio.h>
#include <string.h>
#include <ctype.h>
#include <stdlib.h>
#define MONTH_NUM 5 /* 最多的月份 */
struct worker
{
int number; /* 每個工人的工號 */
char name[15]; /* 每個工人的姓名 */
int salary[MONTH_NUM]; /* 每個工人M月的工資 */
int sum; /* 每個工人的總工資 */
float average; /* 每個工人的平均工資 */
struct worker *next;
};
typedef struct worker STU;
char Menu(void);
int Ascending(int a, int b);
int Descending(int a, int b);
void IntSwap(int *pt1, int *pt2);
void CharSwap(char *pt1, char *pt2);
void FloatSwap(float *pt1, float *pt2);
STU *AppendNode(STU *head, const int m);
STU *DeleteNode(STU *head, int nodeNum);
STU *ModifyNode(STU *head, int nodeNum, const int m);
STU *SearchNode(STU *head, int nodeNum);
STU *Appendsalary(STU *head, const int m);
void Totalsalary(STU *head, const int m);
void Printsalary(STU *head, const int m);
STU *Deletesalary(STU *head, const int m);
void Modifysalary(STU *head, const int m);
void Sortsalary(STU *head, const int m, int (*compare)(int a, int b));
void Searchsalary(STU *head, const int m);
void DeleteMemory(STU *head);
main()
{
char ch;
int m;
STU *head = NULL;
printf("輸入要記錄的月份(m<10):");
scanf("%d", &m);
while (1)
{
ch = Menu();
switch (ch)
{
case'1':head = Appendsalary(head, m);
Totalsalary(head, m);
break;
case'2':Printsalary(head, m);
break;
case'3':head = Deletesalary(head, m);
printf("\nAfter deleted\n");
Printsalary(head, m);
break;
case'4':Modifysalary(head, m);
Totalsalary(head, m);
printf("\nAfter modified\n");
Printsalary(head, m);
break;
case'5':Searchsalary(head, m);
break;
case'6':Sortsalary(head, m, Descending);
printf("\nsorted in descending order by sum\n");
Printsalary(head, m);
break;
case'7':Sortsalary(head, m, Ascending);
printf("\nsorted in ascending order by sum\n");
Printsalary(head, m);
break;
case'0':exit(0);
DeleteMemory(head);
printf("End of program!");
break;
default:printf("Input error!");
break;
}
}
}
char Menu(void)
{
char ch;
printf("\n管理工人的工資\n");
printf(" 1.添加記錄\n");
printf(" 2.列出記錄\n");
printf(" 3.刪除記錄\n");
printf(" 4.修改記錄\n");
printf(" 5.查找記錄\n");
printf(" 6.降序排列\n");
printf(" 7.升序排列\n");
printf(" 0.退出\n");
printf("請輸入你的選擇:");
scanf(" %c", &ch); /*在%c前面加一個空格,將存於緩沖區中的回車符讀入*/
return ch;
}
STU *Appendsalary(STU *head, const int m)
{
int i = 0;
char c;
do{
head = AppendNode(head, m); /*向鏈表末尾添加一個節點*/
printf("你想添加一個新的記錄嗎(Y/N)?");
scanf(" %c",&c); /*%c前面有一個空格*/
i++;
}while (c=='Y' || c=='y');
printf("%d new nodes have been apended!\n", i);
return head;
}
STU *Deletesalary(STU *head, const int m)
{
int i = 0, nodeNum;
char c;
do{
printf("請輸入你想刪除的記錄編號:");
scanf("%d", &nodeNum);
head = DeleteNode(head, nodeNum); /*刪除工號為nodeNum的工人信息*/
Printsalary(head, m); /*顯示當前鏈表中的各節點信息*/
printf("Do you want to delete a node(Y/N)?");
scanf(" %c",&c); /*%c前面有一個空格*/
i++;
}while (c=='Y' || c=='y');
printf("%d nodes have been deleted!\n", i);
return head;
}
void Modifysalary(STU *head, const int m)
{
int i = 0, nodeNum;
char c;
do{
printf("請輸入你想修改的記錄編號:");
scanf("%d", &nodeNum);
head = ModifyNode(head, nodeNum, m); /*修改工號為nodeNum的節點*/
printf("Do you want to modify a node(Y/N)?");
scanf(" %c",&c); /*%c前面有一個空格*/
i++;
}while (c=='Y' || c=='y');
printf("%d nodes have been modified!\n", i);
}
void Totalsalary(STU *head, const int m)
{
STU *p = head;
int i;
while (p != NULL) /*若不是表尾,則循環*/
{
p->sum = 0;
for (i=0; i<m; i++)
{
p->sum += p->salary[i];
}
p->average = (float)p->sum / m;
p = p->next; /*讓p指向下一個節點*/
}
}
void Sortsalary(STU *head, const int m, int (*compare)(int a, int b))
{
STU *pt;
int flag = 0, i;
do{
flag = 0 ;
pt = head;
/*若後一個節點的總工資比前一個節點的總工資高,則交換兩個節點中的數據
注意只交換節點數據,而節點順序不變,即節點next指針內容不進行交換*/
while (pt->next != NULL)
{
if ((*compare)(pt->next->sum, pt->sum))
{
IntSwap(&pt->number, &pt->next->number);
CharSwap(pt->name, pt->next->name);
for (i=0; i<m; i++)
{
IntSwap(&pt->salary[i], &pt->next->salary[i]);
}
IntSwap(&pt->sum, &pt->next->sum);
FloatSwap(&pt->average, &pt->next->average);
flag = 1;
}
pt = pt->next;
}
}while(flag);
}
/*交換兩個整型數*/
void IntSwap(int *pt1, int *pt2)
{
int temp;
temp = *pt1;
*pt1 = *pt2;
*pt2 = temp;
}
/*交換兩個實型數*/
void FloatSwap(float *pt1, float *pt2)
{
float temp;
temp = *pt1;
*pt1 = *pt2;
*pt2 = temp;
}
/*交換兩個字元串*/
void CharSwap(char *pt1, char *pt2)
{
char temp[15];
strcpy(temp, pt1);
strcpy(pt1, pt2);
strcpy(pt2, temp);
}
/*決定數據是否按升序排序,a<b為真,則按升序排序*/
int Ascending(int a, int b)
{
return a < b;
}
/* 決定數據是否按降序排序,a>b為真,則按降序排序 */
int Descending(int a, int b)
{
return a > b;
}
void Searchsalary(STU *head, const int m)
{
int number, i;
STU *findNode;
printf("請輸入你想查找的記錄編號:");
scanf("%d", &number);
findNode = SearchNode(head, number);
if (findNode == NULL)
{
printf("Not found!\n");
}
else
{
printf("\nNo.%3d%8s", findNode->number, findNode->name);
for (i=0; i<m; i++)
{
printf("%7d", findNode->salary[i]);
}
printf("%9d%9.2f\n", findNode->sum, findNode->average);
}
}
void Printsalary(STU *head, const int m)
{
STU *p = head;
char str[100] = {'\0'}, temp[3];
int i, j = 1;
strcat(str, "Number Name ");
for (i=1; i<=m; i++)
{
strcat(str, "salary");
itoa(i,temp, 10);
strcat(str, temp);
strcat(str, " ");
}
strcat(str," sum average");
printf("%s", str); /* 列印表頭 */
while (p != NULL) /*若不是表尾,則循環列印*/
{
printf("\nNo.%3d%15s", p->number, p->name);
for (i=0; i<m; i++)
{
printf("%7d", p->salary[i]);
}
printf("%9d%9.2f", p->sum, p->average);
p = p->next; /*讓p指向下一個節點*/
j++;
}
printf("\n");
}
STU *AppendNode(STU *head, const int m)
{
STU *p = NULL;
STU *pr = head;
int j;
p = (STU *)malloc(sizeof(STU)); /*為新添加的節點申請內存*/
if (p == NULL) /*若申請內存失敗,則列印錯誤信息,退出程序*/
{
printf("No enough memory to alloc");
exit(0);
}
if (head == NULL) /*若原鏈表為空表,則將新建節點置為首節點*/
{
head = p;
}
else /*若原鏈表為非空,則將新建節點添加到表尾*/
{
/*若未到表尾,則繼續移動指針pr,直到pr指向表尾*/
while (pr->next != NULL)
{
pr = pr->next;
}
pr->next = p; /*將新建節點添加到鏈表的末尾*/
}
pr = p; /*讓pr指向新建節點*/
printf("Input node data......");
printf("\nInput number:");
scanf("%d", &p->number);
printf("Input name:");
scanf("%s", p->name);
for (j=0; j<m; j++)
{
printf("Input salary%d:", j+1);
scanf("%d", p->salary+j);
}
pr->next = NULL; /*將新建節點置為表尾*/
return head; /*返回添加節點後的鏈表的頭節點指針*/
}
STU *ModifyNode(STU *head, int nodeNum, const int m)
{
int j;
STU *newNode;
newNode = SearchNode(head, nodeNum);
if (newNode == NULL)
{
printf("Not found!\n");
}
else
{
printf("Input the new node data:\n");
printf("Input name:");
scanf("%s", newNode->name);
for (j=0; j<m; j++)
{
printf("Input salary%d:", j+1);
scanf("%d", newNode->salary+j);
}
}
return head;
}
STU *DeleteNode(STU *head, int nodeNum)
{
STU *p = head, *pr = head;
if (head == NULL) /*鏈表為空,沒有節點,無法刪除節點*/
{
printf("No Linked Table!\n");
return(head);
}
/*若沒找到節點nodeNum且未到表尾,則繼續找*/
while (nodeNum != p->number && p->next != NULL)
{
pr = p;
p = p->next;
}
if (nodeNum == p->number) /*若找到節點nodeNum,則刪除該節點*/
{
if (p == head) /*若待刪節點為首節點,則讓head指向第2個節點*/
{
head = p->next;
}
else /*若待刪節點非首節點,則將前一節點指針指向當前節點的下一節點*/
{
pr->next = p->next;
}
free(p); /*釋放為已刪除節點分配的內存*/
}
else /*沒有找到待刪除節點*/
{
printf("This Node has not been found!\n");
}
return head; /*返回刪除節點後的鏈表的頭節點指針*/
}
STU *SearchNode(STU *head, int nodeNum)
{
STU *p = head;
int j = 1;
while (p != NULL) /*若不是表尾,則循環*/
{
if (p->number == nodeNum) return p;
p = p->next; /*讓p指向下一個節點*/
j++;
}
return NULL;
}
void DeleteMemory(STU *head)
{
STU *p = head, *pr = NULL;
while (p != NULL) /*若不是表尾,則釋放節點佔用的內存*/
{
pr = p; /*在pr中保存當前節點的指針*/
p = p->next; /*讓p指向下一個節點*/
free(pr); /*釋放pr指向的當前節點佔用的內存*/
}
}
湊合著用吧,一些缺少的功能自己加上去就行了。。。
Ⅶ 《資料庫系統》課程設計實例(2
新華社北京12月12日電按照中央國家機關房改方案,住房補貼是補給1998年12月31日前參加工作且住房未達標或無房的老職工,以及1999年1月1日後參加工作的新職工。這部分補貼並不直接發到職工手裡,而是參照住房公積金的管理方式計入職工個人賬戶,專項用於住房消費。
住房補貼包括兩部分,即一次性發放的住房補貼和月住房補貼。其中月住房補貼只補給無房老職工和新職工。住房補貼數額與職工工齡、職務和建立住房公積金時間密切相關。
按照方案,無房老職工住房補貼採取一次性發放和按月發放相結合。一次性發放的住房補貼額=月均標准工資×月住房補貼系數×1998年底前的工作月之和+年度工齡補貼額×建立住房公積金制度前的工齡×購房補貼建築面積標准;按月發放的住房補貼=當月標准工資×月住房補貼系數。
新職工按月住房補貼與無房老職工按月住房補貼計算公式一致。
住房未達標的老職工,差額面積由所在單位一次性計發差額補貼。差額補貼=(年度基準補貼額+年度工齡補貼額×建立住房公積金前的工齡)×差額面積。
已有住房的公務員職務晉升、工勤人員晉升技術等級,將獲得一次性發放的級差補貼。級差補貼=(屆時基準補貼額+屆時工齡補貼額×建立住房公積金前的工齡)×級差面積。
據了解,2000年度工齡補貼額為13元,年度基準補貼額為1265元,月住房補貼系數為0.66,與去年一致。以一位到1998年已工作10年的副處級無房職工為例,副處級購房補貼建築面積標准為80平方米,如果單位在1997年設立住房公積金,而他每月的標准工資為600元。按公式計算:他應獲得的一次性住房補貼額為(600×0.66×120)+(13×9×80)=56880元;每月的住房補貼為600×0.66=396元。還以這位職工為例,如果他現有住房建築面積只有60平方米,而其他參數不變,按照公式計算,他應獲得的差額補貼=(1265+13×9)×20=27640元。
據了解,國家公務員購房補貼建築面積標准為科級以下60平方米,正、副科級70平方米,副處級80平方米,正處級90平方米,副司(局)級105平方米,正司(局)級120平方米。
機關工勤人員補貼建築面積標准為初、中級技術工人和25年以下工齡的普遍工人60平方米,高級技術工人、技師和25年以上工齡的普遍工人70平方米,高級技師80平方米。