if(n==worker[i].num)
{
printf(“找到該職工的信息(任意鍵繼續(xù))!”);
printf(“n請(qǐng)輸入職工的信息!n”);
printf(“請(qǐng)輸入姓名:n”);scanf(“%s”,p.name);
printf(“請(qǐng)輸入性別:n”);scanf(“%s”,p.sex);
printf(“請(qǐng)輸入出身年月:n”);scanf(“%d”,&p.birth);printf(“請(qǐng)輸入工作年月:n”);scanf(“%lf”,&p.deta);
printf(“請(qǐng)輸入學(xué)歷(中專=zz,大專=dz,yjs):n”);scanf(“%s”,p.education);printf(“請(qǐng)輸入工資:n”);scanf(“%lf”,&t);
p.salary=t;printf(“請(qǐng)輸入職務(wù):n”);scanf(“%s”,p.work);
printf(“請(qǐng)輸入住址:n”);scanf(“%s”,p.addr);
本科=bk,研究生=
}
printf(“請(qǐng)輸入電話:n”);scanf(“%s”,p.tel);p.num=n;
if((fp=fopen(“worker.txt”,“r+”))==NULL)//以讀寫的方式將修改的信息寫入磁盤文件
{
printf(“ncannot open filen”);
exit(0);
}
fseek(fp,i*sizeof(struct worker),0);//將位置指針移到i*sizeof(struct worker)個(gè)字節(jié)處
fwrite(&p,sizeof(struct worker),1,fp);
fclose(fp);
printf(“修改成功!n”);
break;} } if(i>=N)printf(“n未找到該職工!n”);
VB學(xué)生信息管理系統(tǒng)及源代碼
Option Explicit
'標(biāo)識(shí)是否能關(guān)閉
Dim mbClose As Boolean
'標(biāo)識(shí)當(dāng)前要顯示的照片的文件 Dim mstrFileName As String Private Sub Form_Load()
On Error Resume Next
If frmMain.mnUserType = 1 Then
'學(xué)生用戶
fraSeek.Enabled = False
fraBrowse.Enabled = False
cmdAdd.Enabled = False
cmdDelete.Enabled = False
txtSerial.Enabled = False
dcbClass.Enabled = False
grdScan.Enabled = False
If Not(DataEnv.rsStudent.EOF And DataEnv.rsStudent.BOF)Then
Dim Temp As String
Temp = “name = ” & “'” & frmMain.msUserName & “'”
DataEnv.rsStudent.MoveFirst
DataEnv.rsStudent.Find Temp
'刷新所綁定的控件
Call RefreshBinding
End If
Exit Sub
Else
fraSeek.Enabled = True
fraBrowse.Enabled = True
cmdAdd.Enabled = True
cmdDelete.Enabled = True
txtSerial.Enabled = True
dcbClass.Enabled = True
grdScan.Enabled = True
End If
Dim rsDep As New ADODB.Recordset, rsClass As New ADODB.Recordset
Set rsDep = DataEnv.rsDepartment
Set rsClass = DataEnv.rsClass
rsDep.Open
'從Department表中讀取數(shù)據(jù),填充cboDep組合框到中
cboDep.Clear
cboDep.AddItem “全部”
'將各個(gè)系的id號(hào)作為ItemData附加到組合框中
cboDep.ItemData(0)= 0
While Not rsDep.EOF
cboDep.AddItem rsDep(“Name”)
cboDep.ItemData(cboDep.ListCount1)
ChunkAry = blobColumn.GetChunk(Fragment)
Put FileNumber, , ChunkAry
'寫入文件
End If
ReDim ChunkAry(ChunkSize-1)
'為數(shù)據(jù)塊重新開辟空間
For lngI = 1 To Chunks
'循環(huán)讀出所有塊
ChunkAry = blobColumn.GetChunk(ChunkSize)
'在數(shù)據(jù)庫(kù)中連續(xù)讀數(shù)據(jù)塊
Put FileNumber, , ChunkAry()
'將數(shù)據(jù)塊寫入文件中
Next lngI
Close FileNumber
ReadImage = strFileName
Exit Function
errHander:
ReadImage = “" End Function
Private Sub imgPhoto_Click()End
'關(guān)閉文件 Sub
Option Explicit '表示當(dāng)前的用戶類型:0---管理員類型的用戶;1---學(xué)生類型的用戶 Public mnUserType As Integer '表示當(dāng)前登錄的用戶名 Public msUserName As String
Private Sub MDIForm_Load()
'根據(jù)不同的用戶類型,使相應(yīng)的菜單項(xiàng)可見
Select Case mnUserType
Case 0:
'以管理員身份登錄
mnuFind.Visible = True
tlbMain.Buttons.Item(3).Visible = True
tlbMain.Buttons.Item(4).Visible = True
Exit Sub
Case 1:
'以學(xué)生身份登錄,只能查詢自己的信息
mnuFind.Visible = False
'“信息查詢”菜單不可見
tlbMain.Buttons.Item(3).Visible = False
'“信息查詢”按鈕不可見
tlbMain.Buttons.Item(4).Visible = False
'第二個(gè)分隔條不可見
Exit Sub
End Select End Sub
Private Sub MDIForm_QueryUnload(Cancel As Integer, UnloadMode As Integer)
If MsgBox(”真的要對(duì)出本系統(tǒng)嗎?“, vbQuestion + vbYesNo + vbDefaultButton2, ”退出“)= vbNo Then
Cancel = 1
End If End Sub Private Sub mnuAbout_Click()
Load frmSplash
frmSplash.mbAbout = True
frmSplash.Show vbModal End Sub
Private Sub mnuArr_Click()
frmMain.Arrange(3)
'設(shè)置主窗體中所有最小化MDI子窗體圖標(biāo)重排 End Sub
Private Sub mnuCas_Click()
frmMain.Arrange(0)
'設(shè)置主窗體中所有非最小化MDI子窗體層疊顯示 End Sub
Private Sub mnuExit_Click()
Unload Me End Sub
Private Sub mnuFind_Click()
frmFind.Show End Sub
Private Sub mnuHori_Click()
frmMain.Arrange(1)
'設(shè)置主窗體中所有非最小化MDI子窗體水平平鋪 End Sub
Private Sub mnuLog_Click()
If MsgBox(”若重新登錄,所有窗體都將關(guān)閉!“ & vbCrLf & ”
是否重新登錄?“, _
vbQuestion + vbYesNo + vbDefaultButton2, ”重新登錄“)= vbYes Then
Unload Me
frmLogin.Show
End If End Sub
Private Sub mnuStudent_Click()
Load frmStudent
frmStudent.Show End Sub Private Sub mnuVer_Click()
frmMain.Arrange(2)
'設(shè)置主窗體中所有非最小化MDI子窗體垂直平鋪 End Sub
Private Sub tlbMain_ButtonClick(ByVal Button As MSComctlLib.Button)
Select Case Button.Key
Case ”Student“
mnuStudent_Click
Exit Sub
Case ”Find“
mnuFind_Click
Exit Sub
Case ”Login“
mnuLog_Click
Exit Sub
Case ”Exit“
mnuExit_Click
Exit Sub
End Select End SubOption Explicit
'表示當(dāng)前用戶登錄所選擇的身份,即用戶類型, 0-表示教務(wù)管理人員;1-表示學(xué)生 Dim mnUserType As Integer Private Sub cmdCancel_Click()
Unload Me End Sub
Private Sub cmdOK_Click()
'取得用戶輸入的用戶名和密碼
Dim user As String, pwd As String
user = Trim(txtUser)
pwd = Trim(txtPwd)
'根據(jù)不同的身份,選擇不同的表用以查詢
Dim r As New ADODB.Recordset
Set r = DataEnv.rssqlSeek
Dim strSQL As String
Select Case mnUserType
Case 0: '若身份為管理員
strSQL = ”select * from 系統(tǒng)人員表 where name='“ & user & ”' and pwd='“ & pwd & ”'“
Case 1: '若身份為學(xué)生
strSQL = ”select * from 學(xué)生信息表 where name='“ & user & ”' and serial='“ & pwd & ”'“
End Select
On Error Resume Next
'查詢DataEnv.rssqlSeek的狀態(tài),如果已經(jīng)打開,則先關(guān)閉
If r.State = adStateOpen Then r.Close
r.Open strSQL
'根據(jù)strSQL的內(nèi)容刷新DataEnv.rssqlSeek
'用戶密碼錯(cuò)誤的次數(shù),如果錯(cuò)誤次數(shù)超過3次,則退出系統(tǒng)
Static nTryCount As Integer
If r.EOF Then
'登錄失敗
MsgBox ”對(duì)不起,無此用戶或者密碼不正確!請(qǐng)重新輸入!“, vbCritical, ”錯(cuò)誤“
txtUser.SetFocus
txtUser.SelStart = 0
txtUser.SelLength = Len(txtUser)
nTryCount = nTryCount + 1
If nTryCount >= 3 Then
MsgBox ”您無權(quán)操作本系統(tǒng)!“, vbCritical, ”錯(cuò)誤“
Unload Me
End If
Else
'登陸成功
'顯示MDI窗體, 并將用戶類型和用戶名傳到MDI窗體中的mnUserType, msUserName中
With frmMain
.mnUserType = mnUserType
.msUserName = user
End With
Load frmMain
frmMain.Show
Unload Me
End If End Sub Private Sub Form_Load()
optUserType(0).Value = True End Sub
Private Sub optUserType_Click(Index As Integer)
mnUserType = Index End Sub Explicit
Private Sub Command1_Click()
Dim strCon1 As String
Dim strCon2 As String
On Error GoTo myerr
If Trim(Text1.Text)= ”“ Or Trim(Text2.Text)= ”“ Then
If MsgBox(”請(qǐng)輸入查詢條件!“, vbInformation, ”提示“)Then GoTo myerr
End If
Select Case Trim(Combo1.Text)
Case ”學(xué)號(hào)“
strCon1 = ”Serial“
Case ”姓名“
strCon1 = ”Name“
Case ”班級(jí)“
strCon1 = ”Class“
Option
Case ”生日“
strCon1 = ”Birthday“
Case ”性別“
strCon1 = ”Sex“
Case ”家庭地址“
strCon1 = ”Address“
Case ”電話“
strCon1 = ”Tel“
End Select
Select Case Trim(Combo4.Text)
Case ”學(xué)號(hào)“
strCon2 = ”Serial“
Case ”姓名“
strCon2 = ”Name“
Case ”班級(jí)“
strCon2 = ”Class“
Case ”生日“
strCon2 = ”Birthday“
Case ”性別“
strCon2 = ”Sex“
Case ”家庭地址“
strCon1 = ”Address“
Case ”電話“
strCon2 = ”Tel“
End Select
DataEnv.rsStudent.Close
DataEnv.rsStudent.Open ”select * from 學(xué)生信息表
where “ & _
strCon1 & Trim(Combo2.Text)& ” '“ & Trim(Text1.Text)_
& ”'“ & ” “ & Trim(Combo3.Text)& ” “ & strCon2 & _
Trim(Combo5.Text)& ”'“ & Trim(Text2.Text)& ”'“
dgdCX.DataMember = ”“
dgdCX.Refresh
DataEnv.rsStudent.Requery
dgdCX.DataMember = ”Student“
dgdCX.Refresh myerr: End Sub
Private Sub Command3_Click()
Unload Me End Sub
Private Sub dgdCX_Click()
End Sub
Private Sub Form_Load()
'添加Combo1的子項(xiàng)作為查詢標(biāo)準(zhǔn)
Combo1.AddItem(”學(xué)號(hào)“)
Combo1.AddItem(”姓名“)
Combo1.AddItem(”班級(jí)“)
Combo1.AddItem(”生日“)
Combo1.AddItem(”性別“)
Combo1.AddItem(”家庭地址“)
Combo1.AddItem(”電話“)
Combo1.ListIndex = 0
'添加Combo2的子項(xiàng)作為關(guān)系符
Combo2.AddItem(”=“)
Combo2.AddItem(”>“)
Combo2.AddItem(”>=“)
Combo2.AddItem(”<“)
Combo2.AddItem(”<=“)
Combo2.AddItem(”<>“)
Combo2.ListIndex = 0
'添加Combo3的子項(xiàng)作為邏輯連接符
Combo3.AddItem(”And“)
Combo3.AddItem(”O(jiān)r“)
Combo3.ListIndex = 0
'添加Combo4的子項(xiàng)作為第二種查詢標(biāo)準(zhǔn)
Combo4.AddItem(”學(xué)號(hào)“)
Combo4.AddItem(”姓名“)
Combo4.AddItem(”班級(jí)“)
Combo4.AddItem(”生日“)
Combo4.AddItem(”性別“)
Combo4.AddItem(”家庭地址“)
Combo4.AddItem(”電話“)
Combo4.ListIndex = 0
'添加Combo5的子項(xiàng)作為第二種關(guān)系符
Combo5.AddItem(”=“)
Combo5.AddItem(”>“)
Combo5.AddItem(”>=“)
Combo5.AddItem(”<“)
Combo5.AddItem(”<=“)
Combo5.AddItem(”<>")
Combo5.ListIndex = 0 End Sub
Private Sub Form_Unload(Cancel As Integer)
frmMain.Enabled = True
frmMain.Show End Sub
教職工信息管理系統(tǒng)源碼
#include #include #include #include
#define maxsize 100 fstream iofile;//文件指針
class Time //時(shí)間類 {
public:
int year;
int month;
int day;};
class Telem //個(gè)人信息 {
public:
char name[20];
char sex[10];
Time birthtime;//組合Time類
char num[20];
char wage[20];
Time worktime;
int year;
char department[20];
friend istream& operator>>(istream& input,Telem& T);
friend ostream& operator<<(ostream& output,Telem& T);
friend int operator-(Time & t1,Time & t2);};
class People:virtual public Telem //雇員類 {
public:
People();
virtual void AddF()=0;//添加
virtual void Addall()=0;
virtual void Add()=0;
virtual void Display();//輸出數(shù)組的內(nèi)容
virtual void Displaypart(char p[]);
virtual void Findname(char n[]);
virtual void Findyear(int);
virtual void Del(char n[])=0;
virtual void Del(int);protected:
Telem data[maxsize];
Time now;
int length;};
class Teacher:virtual public People //派生虛基類 {
public:
virtual void AddF();
virtual void Addall();
virtual void Add();
virtual void Display();
virtual void Del(int i);
virtual void Del(char n[]);};
class worker:virtual public People //派生虛基類 {
public:
virtual void AddF();
virtual void Addall();
virtual void Add();
virtual void Display();
virtual void Del(int i);
virtual void Del(char n[]);};
People::People()//系統(tǒng)自動(dòng)生成的構(gòu)造函數(shù) {
length=0;
now.year=2010;
now.month=7;
now.day=6;}
void People::Display()//引用 {
int i;
for(i=0;icout<void People::Displaypart(char p[])//引用數(shù)組
{
int i,c;
for(i=0;iif(strcmp(data[i].wage,p)==0)
{
cout<<“輸出選擇姓名1 性別2 編號(hào)3 工資4 出生日期5 工作時(shí)間6 年齡7 系別8 退出選擇9”<while(cin>>c)
{
switch(c)
{
case 1: cout<<“姓名:”<case 2: cout<<“性別:”<case 3: cout<<“編號(hào):”<case 4: cout<<“工資:”<case 5: cout<<“出生日期:”<case 6: cout<<“工作時(shí)間:”<case 7: cout<<“年齡:”<case 8: cout<<“系別:”<case 9: goto loop;
default:cout<<“操作錯(cuò)誤......”<}
}
loop:;
} }
void People::Findname(char n[])//引用 {
int i;
for(i=0;iif(strcmp(data[i].name,n)==0)//對(duì)象引用
cout<void People::Findyear(int y){
int i;
for(i=0;iif(data[i].year==y)
cout<void People::Del(int i){
int j;
if(i<1||i>length)
cout<<“不存在第”<
for(j=i;jdata[j-1]=data[j];
length--;}
void worker::AddF(){
int flag=0;
iofile.open(“worker_information.txt”,ios::in|ios::binary);//文件的打開與關(guān)閉
while(iofile.seekg(ios::cur))
{
iofile.seekg(length*sizeof(data[length]),ios::beg);
iofile.read((char*)&data[length],sizeof(data[length]));//文件的隨機(jī)訪問
length++;
if(length==maxsize)
{
flag=1;
goto loop;
}
}
People::Del(length);
cout<<“添加人員信息成功......”<loop:
if(1==flag)
cout<<“人員信息儲(chǔ)存空間已滿......”<iofile.close();}
void worker::Addall(){
char ans;
int flag=0;
iofile.open(“worker_information.txt”,ios::out|ios::binary);
do
{
cin>>data[length];
data[length].year=now-data[length].birthtime;
iofile.write((char*)&data[length],sizeof(data[length]));
cout<<“添加人員信息成功......”<length++;
if(length==maxsize)
{
flag=1;
goto loop;
}
cout<<“contine(Y|N)?”;
cin>>ans;
}while('y'==ans||'Y'==ans);loop:
if(1==flag)
cout<<“人員信息儲(chǔ)存空間已滿......”<iofile.close();}
void worker::Add(){
int flag=0;
iofile.open(“worker_information.txt”,ios::app|ios::out|ios::binary);
if(length==maxsize)
{
flag=1;
goto loop;
}
cin>>data[length];
data[length].year=now-data[length].birthtime;
iofile.write((char*)&data[length],sizeof(data[length]));
cout<<“添加人員信息成功......”<length++;
loop:
if(1==flag)
cout<<“人員信息儲(chǔ)存空間已滿......”<iofile.close();}
void worker::Display(){
cout<<“ ★ ☆ ★ ☆ ★ ☆ ★ ☆ ★ ☆工人信息 ★ ☆ ★ ☆ ★ ☆ ★ ☆ ★ ☆”<if(0==length)
cout<<“無......”<int i;
for(i=0;icout<int i,j,k;
for(i=0;iif(strcmp(data[i].name,n)==0){
k=i+1;break;}
if(k<1)
cout<<“不存在姓名”<for(j=k;jdata[j-1]=data[j];
length--;
cout<<“刪除人員信息成功......”<void worker::Del(int i){
int j;
if(i<1||i>length)
cout<<“不存在第”<
for(j=i;jdata[j-1]=data[j];
length--;
cout<<“刪除成功......”<}
void Teacher::AddF(){
int flag=0;
iofile.open(“Teacher_information.txt”,ios::in|ios::binary);
while(iofile.seekg(sizeof(data[length]),ios::cur))
{
if(iofile.seekg(length*sizeof(data[length]),ios::beg))
iofile.read((char*)&data[length],sizeof(data[length]));
else
break;
length++;
if(length==maxsize)
{
flag=1;
goto loop;
}
}
People::Del(length);
cout<<“添加人員信息成功......”<if(1==flag)
cout<<“人員信息儲(chǔ)存空間已滿......”<iofile.close();}
void Teacher::Addall(){
char ans;
int flag=0;
iofile.open(“Teacher_information.txt”,ios::in|ios::out|ios::binary);
do
{
cin>>data[length];
data[length].year=now-data[length].birthtime;
iofile.write((char*)&data[length],sizeof(data[length]));
cout<<“添加人員信息成功......”<length++;
if(length==maxsize)
{
flag=1;
goto loop;
}
cout<<“contine(Y|N)?”;
cin>>ans;
}while('y'==ans||'Y'==ans);loop:
if(1==flag)
cout<<“人員信息儲(chǔ)存空間已滿......”<iofile.close();}
void Teacher::Add(){
int flag=0;
iofile.open(“Teacher_information.txt”,ios::app|ios::out|ios::binary);
if(length==maxsize)
{
flag=1;
goto loop;
}
cin>>data[length];
data[length].year=now-data[length].birthtime;
iofile.write((char*)&data[length],sizeof(data[length]));
cout<<“添加人員信息成功......”<length++;loop:
if(1==flag)
cout<<“人員信息儲(chǔ)存空間已滿......”<iofile.close();}
void Teacher::Display(){
cout<<“ ★ ☆ ★ ☆ ★ ☆ ★ ☆ ★ ☆教師信息 ★ ☆ ★ ☆ ★ ☆ ★ ☆ ★ ☆”<if(0==length)
cout<<“無......”<int i;
for(i=0;icout<void Teacher::Del(char n[]){
int i,j,k;
for(i=0;iif(strcmp(data[i].name,n)==0)
{
k=i+1;break;
}
if(k<1)cout<<“不存在姓名”<for(j=k;jdata[j-1]=data[j];
length--;
cout<<“刪除人員信息成功......”<void Teacher::Del(int i){
int j;
if(i<1||i>length)
cout<<“不存在第”<
for(j=i;jdata[j-1]=data[j];
length--;
cout<<“刪除成功......”<istream& operator>>(istream& input,Telem& T){
int y,m,d;
cout<<“請(qǐng)輸入姓名(以*結(jié)尾):”<input.getline(T.name,20,'*');
cout<<“請(qǐng)輸入性別(以*結(jié)尾 男或女):”<input.getline(T.sex,10,'*');
cout<<“編號(hào)(以*結(jié)尾):”<input.getline(T.num,20,'*');
cout<<“工資(以*結(jié)尾):”<input.getline(T.wage,20,'*');
cout<<“請(qǐng)輸入出生日期:”<input>>y>>m>>d;
T.birthtime.year=(y>=1900&&y<=2100)?y:1900;
T.birthtime.month=(m>=1&&m<=12)?m:1;
T.birthtime.day=(d>=1&&d<=31)?d:1;
cout<<“請(qǐng)輸入系別(以*結(jié)尾):”<input.getline(T.department,20,'*');
cout<<“參加工作時(shí)間:”<input>>y>>m>>d;
T.worktime.year=(y>=1900&&y<=2100)?y:1900;
T.worktime.month=(m>=1&&m<=12)?m:1;
T.worktime.day=(d>=1&&d<=31)?d:1;
return input;}
ostream& operator<<(ostream& output,Telem& T){
cout<<“姓名:”;
output<cout<<“性別:”;
output<cout<<“編號(hào):”;
output<cout<<“工資:”;
output<cout<<“出生日期:”;
output<cout<<“系別:”;
output<cout<<“參加工作時(shí)間:”;
output<cout<<“年齡:”;
output<return output;}
int operator-(Time & t1,Time & t2){
return t1.year-t2.year;}
void Showmenu(){
cout<cout<<“
歡 迎 進(jìn) 入 教 職 工 信 息 管 理 系 統(tǒng)”<cout<<“
2010 年7月7日發(fā)布”<<“
版權(quán)所有: swa”<cout<<“
★ ☆ ★ ☆ ★ ☆ ★ ☆ ★人員信息管理系統(tǒng)★ ☆ ★ ☆ ★ ☆ ★ ☆ ★”<cout<<“
★
1-從鍵盤錄入全部人員記錄
☆ ”<cout<<“
☆ 2-增加一位人員記錄
★”<cout<<“
★
3-顯示全部人員記錄
☆”<cout<<“
☆ 4-按系別輸出人員信息(可選)★ ”<cout<<“
★
5-按姓名或年齡檢索所有信息☆ ”<cout<<“
☆ 6-顯示菜單目錄
★ ”<cout<<“
★
7-結(jié)束程序運(yùn)行
☆ ”<cout<<“
★ ☆ ★ ☆ ★ ☆ ★ ☆ ★ ☆ ★ ☆ ★ ☆ ★ ☆ ★ ☆ ★ ☆ ★ ☆ ★ ☆”<int main(){
Teacher tea;
worker stu;
People *pt=&tea;
People *ps=&stu;
int c=0,k=0,l=0,i=0;
char nam[20],part[20];Showmenu();
for(;;)
{
cout<<“請(qǐng)根據(jù)菜單執(zhí)行相應(yīng)操作: ”;
cin>>c;
switch(c)
{
case 1:
{
cout<<“ ★ ☆ ★ ☆ ★ ☆ ★錄入全部人員記錄 ★ ☆ ★ ☆ ★ ☆ ★”<cout<<“ ★ ☆ ★ ☆ ★從鍵盤輸入教師信息 ☆ ★ ☆ ★ ☆”<pt->Addall();
cout<<“ ★ ☆ ★ ☆ ★ ☆ ★ ☆ ★ ☆從鍵盤輸入工人信息 ★ ☆ ★ ☆ ★ ☆ ★ ☆ ★ ☆”<ps->Addall();
break;
}
case 2:
{
cout<<“ ★ ☆ ★ ☆ ★ ☆ ★ ☆從鍵盤增加一位人員記錄 ★ ☆ ★ ☆ ★ ☆ ★ ☆”<cout<<“ ★ ☆ ★ ☆ ★ ☆ ★ ☆教師操作請(qǐng)按1 工人操作請(qǐng)按2 ★ ☆ ★ ☆ ★ ☆ ★ ☆”<cin>>k;
if(1==k)
pt->Add();
else if(2==k)
ps->Add();
else
cout<<“操作錯(cuò)誤...”<break;
}
case 3:
{
cout<<“ ★ ☆ ★ ☆ ★ ☆ ★ ☆ ★ ☆顯示全部人員記錄 ★ ☆ ★ ☆ ★ ☆ ★ ☆ ★ ☆”<pt->Display();
ps->Display();
break;
}
case 4:
{
cout<<“ ★ ☆ ★ ☆ ★ ☆ ★ ☆ ★ ☆按部門輸出人員信息(可選)★ ☆ ★ ☆ ★ ☆ ★ ☆ ★ ☆”<cout<<“ ★ ☆ ★ ☆ ★ ☆教師操作請(qǐng)按1 工人操作請(qǐng)按2 ★ ☆ ★ ☆ ★ ☆”<cin>>k;
if(1==k)
{
cout<<“請(qǐng)輸入要輸出人員的系別(以*結(jié)尾):”<pt->Displaypart(part);
}
else if(2==k)
{
cout<<“請(qǐng)輸入要輸出人員的系別(以*結(jié)尾):”<ps->Displaypart(part);
}
else
cout<<“操作錯(cuò)誤......”<break;
}
case 5:
{
cout<<“ ★ ☆ ★ ☆ ★ ☆ ★按姓名或年齡檢索所有信息 ★ ☆ ★ ☆ ★ ☆ ★”<cout<<“ ★ ☆ ★ ☆ ★ ☆ ★按姓名查找1 按年齡查找2 ★ ☆ ★ ☆ ★ ☆ ★”<cin>>k;
if(1==k)
{
cout<<“按姓名查找1 按年齡查找2”<>l;
if(1==l)
{
cout<<“請(qǐng)輸入要查找人員的姓名(以*結(jié)尾):”<pt->Findname(nam);
}
else if(2==l)
{
cout<<“請(qǐng)輸入要查找人的年齡:”<>i;
pt->Findyear(i);
}
else
cout<<“操作錯(cuò)誤......”<}
else if(2==k)
{
cout<<“按姓名查找1 按年齡查找2”<>l;
if(1==l)
{
cout<<“請(qǐng)輸入要查找人員的姓名(以*結(jié)尾):”<ps->Findname(nam);
}
else if(2==l)
{
cout<<“請(qǐng)輸入要查找人的年齡:”<>i;
ps->Findyear(i);
}
else
cout<<“操作錯(cuò)誤......”<}
else
cout<<“操作錯(cuò)誤......”<break;
}
case 6:
{
cout<<“ ★ ☆ ★ ☆ ★ ☆ ★ ☆ ★ ☆顯示菜單目錄 ★ ☆ ★ ☆ ★ ☆ ★ ☆ ★ ☆”<Showmenu();
break;
}
case 7:
{
cout<<“ ★ ☆ ★ ☆ ★ ☆ ★ ☆ ★ ☆結(jié)束程序運(yùn)行 ★ ☆ ★ ☆ ★ ☆ ★ ☆ ★ ☆”<exit(0);
}
default:cout<<“操作錯(cuò)誤......”<}
}
return 0;}
#include #include #include using namespace std;
const N=5000;// 定義系統(tǒng)可錄入的職工最大數(shù)值
string Ename[N];long Enum[N];char Esex[N];int Eage[N];
char Emarriage[N];int Edepart[N];int Eposition[N];int Edegree[N];int Eworktime[N];float Epay[N];
class Employee {
public:
string Employeename;
long Employeenum;
char Employeesex;
int Employeeage;
char Employeemarriage;
int Employeedepart;
int Employeeposition;
int Employeedegree;
int Employeeworktime;
float Employeepay;
static long EmployeeMaxNum;
static float EmployeeBasePay;
void NewInfo();
void ShowInfo();
void showall();
void showdepart(int depart);
void showdegree(int degree);
void showage(int min,int max);
void shownum(long number);
void RefreshInfo();
void DeleteInfo();
float Pay(int Employeegrade);
static int MaxNum();};
class DBOperate {
public:
string Employeename;
long Employeenum;
char Employeesex;
int Employeeage;
char Employeemarriage;
int Employeedepart;
int Employeeposition;
int Employeedegree;
int Employeeworktime;
float Employeepay;
static long EmployeeMaxNum;
static float EmployeeBasePay;
void WriteIn(int iflag);
void ReadOut();
void RefreshMaxNum(int iflag);//iflg=1 or-1 or 0 };
long Employee::EmployeeMaxNum = 1000;float Employee::EmployeeBasePay = 1500;
int Employee::MaxNum()//返回系統(tǒng)已經(jīng)存儲(chǔ)的人數(shù)
{
int MN = 0;
ifstream myf;
myf.open(“EmployeeMaxNum.txt”);
myf>>MN;
cout<myf.close();
return MN;}
void Employee::NewInfo()//添加新職工函數(shù)
{
cout<<“新職工姓名: ”;
cin>>Employee::Employeename;
Employee::Employeenum = EmployeeMaxNum + Employee::MaxNum()+1;
cout<<“新職工性別(F為女性,M為男性): ”;
cin>>Employee::Employeesex;
cout<<“新職工年齡: ”;
cin>>Employee::Employeeage;
cout<<“新職工婚姻狀況(Y為已婚,N為未婚): ”;
cin>>Employee::Employeemarriage;
cout<<“新職工學(xué)歷,請(qǐng)輸入相應(yīng)學(xué)歷的序號(hào): ”<cout<<“ [1:小學(xué) 2:初中 3:高中 4:本科 5:碩士 6:博士] ”;
cin>>Employee::Employeedegree;
while(Employee::Employeedegree!=1&&Employee::Employeedegree!=2&&Employee::Employeedegree!=3&&Employee::Employeedegree!=4&&Employee::Employeedegree!=5&&Employee::Employeedegree!=6)
{
cout<<“輸入有誤,請(qǐng)重新輸入:”<cout<<“ [1:小學(xué) 2:初中 3:高中 4:本科 5:碩士 6:博士] ”;
cin>>Employee::Employeedegree;
}
cout<<“新職工所在部門,請(qǐng)輸入相應(yīng)部門的序號(hào):”<cout<<“ [1:董事會(huì) 2:銷售部 3:人事部 4:客服中心 5:財(cái)務(wù)部 6:技術(shù)研發(fā)部 7:安全監(jiān)察部] ”;
cin>>Employee::Employeedepart;
while(Employee::Employeedepart!=1&&Employee::Employeedepart!=2&&Employee::Employeedepart!=3&&Employee::Employeedepart!=4&&Employee::Employeedepart!=5&&Employee::Employeedepart!=6&&Employee::Employeedepart!=7)
{
cout<<“輸入有誤,請(qǐng)重新輸入:”<