***大學
《資料庫原理及應用課程設計》
設計報告
題 目
職工工資管理系統
學生姓名
學 號
專業班級
學 院
指導教師
完成時間
本系統的主要目的是,明確查詢公司職工某年某月的工資情況,通過職工工資管理系統,能明確的察看到從入職以來,每位職工的每月工資情況。同時也能查詢到職工本身的一些基本資訊。(這次的設計以2023年5月為例)
設計如下面所示的資料項:
職工資訊包括讀者職工號,姓名,性別,出生日期,年齡,部門,職位,入職時間;
工資資訊包括職工號,
工資年份
,月份,
原始工資,津貼,所得稅,最終工資。
概念結構e-r圖
如下所示。
(1)e-r圖轉換成關係模式如下:
職工(職工號,姓名,性別,出生日期,年齡,部門,職位,入職時間)
f =
候選碼:職工號,最高符合bcfn。
工資(職工號,
工資年份
,月份,
原始工資,津貼,所得稅,最終工資
)f =
候選碼:職工號
,工資年份,月份
,最高符合bcnf。
(2)關係模式中屬性的詳細說明。
職工資訊表
欄位名資料型別
約束條件
說明mno
int主鍵,
自增職工號
mname
varchar(50)
唯一,不能為空
職工姓名
***varchar(2)
不能為空
職工性別
birthday
date
不能為空
出生日期
ageint
可以為空
職工年齡
dept
varchar(50)
可以為空
所在部門
post
varchar(50)
可以為空
職工職位
start_date
date
可以為空
入職時間
工資資訊表
欄位名資料型別
約束條件
說明mno
varchar(50)
主鍵,自增
職工號year
varchar(50)
主鍵工資年份
month
varchar(50)
主鍵月份
wage_jop
float
可以為空
原始工資
allowance
float
可以為空
津貼tax
float
可以為空
所得稅real_wage
float
可以為空
最終工資
(1)建立基本表
//create database mis;
//use mis;
//職工表
create table member(
mno char(15) not null,
mname varchar(15) unique,
*** char(5) not null check(***='男' or ***='女'),
birthday date not null,
age int not null,
dept varchar(10) not null,
post varchar(15) not null,
start_date date not null
);//職工工資表
create table wage(
mno char(15) not null,
year
varchar(10)
,month
varchar(10)
,wage_jop float not null,
allowance float , /*津貼*/
tax float not null,/*所得稅*/
real_wage float not null
);(2)錄入模擬資料
insert into member
values('0001','李勇','男',('1985-01-02'),'33','研發部','研發部長',('2012-05-11'));
insert into member
values('0002','劉晨','男',('1987-01-02'),'31','研發部','專案策劃',('2012-06-01'));
insert into member
values('0003','王敏','女',('1985-11-02'),'33','財務部','財務會計',('2011-06-11'));
insert into member
values('0004','張立','男',('1990-01-02'),'20','人事部','人事部長',('2011-05-11'));
工資表(
以2023年5月為例
)insert into wage
values('0001','
2018
','5',
'5400','0','100','5300');
insert into wage
values('0002','
2018
','5
','5000','500','100','4900');
insert into wage
values('0003','
2018
','5',
'4000','100','150','3850');
insert into wage
values('0004','
2018
','5
','4000','0','150','3850');
(3)常用查詢
/*查詢某個人的所得工資,以查詢工號為0002的員工為例*/
select
member
.mname,wage_jop ,allowance ,tax,real_wage
from member , wage
where wage.mno='0002' and wage.mno=member.mno;
/*查詢某個部門工資不少於三千的人員資訊*/
select * from member
where mno in(
select mno
from wage
where dept='研發部' and member.mno=wage.mno and real_wage>=3000);
/*修改員工資訊
*/update member
set post = '財務部長'
where mname='王敏';
/*分組查詢—統計每個部門的職工人數*/
select dept,count(mno) from member group by dept;
/*巢狀查詢—查詢津貼為零的職工號和職工姓名*/
select mno,mname from member
where mno in(select mno from wage where allowance='0');
c 程式課程設計的內容 職工工資管理系統
1 課程設計題目 學生成績管理系統 職工工資管理系統 2 課程設計內容 1 簡單的系統與功能分析 2 建立資料結構表 1 欄位名 不少於 10個 2 真實的二維表 3 要建立乙個測試的資料表,至少要有 20個測試資料 4 使用結構體陣列實現資料的 錄入 查詢 修改 增加 刪除 統計 輸出 5 使用資...
職工工資管理系統程式
編寫乙個職工工資管理系統程式,該程式輸入職工工號和應發工資,由系統對其完成的實發工資實現計算。其中職工資訊包括職工號 姓名 性別 應發工資 稅金 實發工資等 職工號不重複 功能要求及說明 系統以選單方式工作 職工基本資訊和應發工資的錄入功能 用檔案儲存 從鍵盤輸入資料,建立磁碟資料檔案salary....
職工工資管理小軟體
題目是 職工工資管理小軟體 職工數假設為10人登陸的時候要輸入密碼如果錯誤3次,自動退出系統。成功要顯示圖形介面 要求1,職工資訊輸入 使用者輸入要填加的職工號,姓名,年齡,性別,基本工資,崗位工資等資訊,系統逐個儲存職工資訊。當使用者輸入序號為0時,輸入結束。輸入資料時,必須驗證資料輸入格式正確,...