{该系统的每个用户都有自己的用户名和密码。应用程序的管理员具有最高的优先访问使他/她来执行所有的功能,在应用中存在。除此之外,管理员能够从人力资源登记部门的用户。该公司的员工有最低的访问优先权,只有使他们能够查看他们的个人信息。}
这样的功能。。。要交作业了,还没闹明白。。。回答请通俗易懂。。。。本人商科刚转到IT的。。。属于小白。。。
现在code如下:
代码: 全选
#include "stdafx.h"
#include <string>
#include <iostream>
#include <fstream>
#include <iomanip>
#include <memory.h>
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
using namespace std;
struct Employee
{
string m_Code;
string m_Name;
unsigned short int m_Year;
string m_Sex;
string m_Post;
string m_Department;
unsigned int m_Wage;
struct Employee* Next;
};
typedef struct Employee Node;
typedef Node* Link;
Link Create(Link Head);
void Release(Link Head);
Link Add(Link Head);
bool Search(Link Head);
Link Search_Unique(Link Head);
void Display_List(Link Head);
void Display_Node(Link pNode);
Link Modify(Link Head);
Link Del(Link Head);
void Save_ByFile(Link Head,fstream& ofile);
Link Sort(Link Head);
Link Create(Link Head)
{
Head=(Link)new Node;
if(!Head)
{
cout<<"分配内存失败!"<<endl;
return NULL;
}
Head->m_Code="";
Head->m_Name="";
Head->m_Year=0;
Head->m_Sex="";
Head->m_Post="";
Head->m_Department="";
Head->m_Wage=0;
Head->Next=NULL;
return Head;
}
void Release(Link Head)
{
Link ptr;
while(Head!=NULL)
{
ptr=Head;
Head=Head->Next;
delete ptr;
}
}
Link Add(Link Head)
{
system("cls");
Link pNew;
char again;
string code,name,sex,post,department;
unsigned short int year;
unsigned int wage;
do
{
pNew=(Link)new Node;
cout<<"请输入职工代码:";
cin>>code;
cout<<endl<<"请输入职工姓名:";
cin>>name;
cout<<endl<<"请输入职工出生年份:";
cin>>year;
while(cin.fail())
{
cout<<"请输入正确的年份格式。"<<endl;
cin.clear();
fflush(stdin);
cin>>year;
}
cout<<endl<<"请输入职工性别:";
cin>>sex;
cout<<endl<<"请输入职工职称:";
cin>>post;
cout<<endl<<"请输入职工部门:";
cin>>department;
cout<<endl<<"请输入职工工资:";
cin>>wage;
while(cin.fail())
{
cout<<"请输入正确的工资数据。"<<endl;
cin.clear();
fflush(stdin);
cin>>wage;
}
cout<<endl;
pNew->m_Code=code;
pNew->m_Name=name;
pNew->m_Year=year;
pNew->m_Sex=sex;
pNew->m_Post=post;
pNew->m_Department=department;
pNew->m_Wage=wage;
pNew->Next=Head->Next;
Head->Next=pNew;
cout<<"数据添加成功!是否继续添加?(Y/N)"<<endl;
cin>>again;
}while(again=='Y'||again=='y');
return Head;
}
bool Search(Link Head)
{
system("cls");
Link ptr;
string department;
string name;
ptr=Head->Next;
cout<<"请输入部门:";
cin>>department;
cout<<endl<<"请输入姓名:";
cin>>name;
cout<<endl<<"----------------查询结果------------------"<<endl;
while(ptr)
{
if((ptr->m_Name==name)&&(ptr->m_Department==department))
{
Display_Node(ptr);
system("Pause");
return true;
}
ptr=ptr->Next;
}
cout<<"无此职工的信息。"<<endl;
system("Pause");
return false;
}
Link Search_Unique_Front(Link Head)
{
Link ptr;
string code;
ptr=Head;
cout<<"请输入职工代码:";
cin>>code;
cout<<endl<<"----------------查询结果------------------"<<endl;
while(ptr->Next)
{
if(ptr->Next->m_Code==code)
return ptr;
ptr->Next=ptr->Next->Next;
}
return ptr;
}
void Display_List(Link Head)
{
system("cls");
Link ptr;
ptr=Head->Next;
cout<<"==================所有职工信息=================="<<endl;
while(ptr)
{
Display_Node(ptr);
ptr=ptr->Next;
}
system("Pause");
}
void Display_Node(Link pNode)
{
cout<<"职工编号: "<<setw(10)<<left<<pNode->m_Code <<endl
<<"姓名: "<<setw(10)<<left<<pNode->m_Name <<endl
<<"出生年份: "<<setw(10)<<left<<pNode->m_Year <<endl
<<"性别: "<<setw(10)<<left<<pNode->m_Sex <<endl
<<"职称: "<<setw(10)<<left<<pNode->m_Post <<endl
<<"部门: "<<setw(10)<<left<<pNode->m_Department <<endl
<<"工资: "<<setw(10)<<left<<pNode->m_Wage<<endl;
}
Link Modify(Link Head)
{
system("cls");
Link ptr;
ptr=Search_Unique_Front(Head);
string code,name,sex,post,department;
unsigned short int year;
unsigned int wage;
if(ptr->Next)
{
cout<<"-------你现在可以修改此职工的信息了-------"<<endl;
cout<<"请输入职工代码:";
cin>>code;
cout<<endl<<"请输入职工姓名:";
cin>>name;
cout<<endl<<"请输入职工出生年份:";
cin>>year;
while(cin.fail())
{
cout<<"请输入正确的年份格式。"<<endl;
cin.clear();
fflush(stdin);
cin>>year;
}
cout<<endl<<"请输入职工性别:";
cin>>sex;
cout<<endl<<"请输入职工职称:";
cin>>post;
cout<<endl<<"请输入职工部门:";
cin>>department;
cout<<endl<<"请输入职工工资:";
cin>>wage;
while(cin.fail())
{
cout<<"请输入正确的工资数据。"<<endl;
cin.clear();
fflush(stdin);
cin>>wage;
}
cout<<endl;
ptr->Next->m_Code=code;
ptr->Next->m_Name=name;
ptr->Next->m_Year=year;
ptr->Next->m_Sex=sex;
ptr->Next->m_Post=post;
ptr->Next->m_Department=department;
ptr->Next->m_Wage=wage;
cout<<"修改成功";
system("Pause");
return Head;}
cout<<"没找到此职工的记录,无法修改。"<<endl;
system("Pause");
return Head;
}
Link Del(Link Head)
{
system("cls");
Link ptr;
Link ptr_front;
ptr_front=Search_Unique_Front(Head);
ptr=ptr_front->Next;
if(ptr)
{
ptr_front->Next=ptr->Next;
delete ptr;
cout<<"删除成功!";
system("pause");
return Head;
}
cout<<"没找到此职工的记录,无法删除。"<<endl;
system("Pause");
return Head;
}
void Save_ByFile(Link Head,fstream& ofile)
{
system("cls");
Link pNode;
pNode=Head->Next;
ofile.clear();
while(pNode)
{
ofile<<setw(10)<<left<<pNode->m_Code
<<setw(10)<<left<<pNode->m_Name
<<setw(10)<<left<<pNode->m_Year
<<setw(10)<<left<<pNode->m_Sex
<<setw(10)<<left<<pNode->m_Post
<<setw(10)<<left<<pNode->m_Department
<<setw(10)<<left<<pNode->m_Wage<<endl;
pNode=pNode->Next;
}
cout<<"数据文件保存成功!"<<endl;
system("Pause");
}
Link Sort(Link Head)
{
system("cls");
if((Head->Next==NULL)||(Head->Next->Next==NULL))
{
cout<<"数据少于2个,不用排序!"<<endl;
system("Pause");
return Head;
}
Link ptr;
Link ptr_F;
Link ptr_N;
ptr=Head->Next->Next;
ptr_F=Head;
Head->Next->Next=NULL;
while(ptr)
{
ptr_N=ptr->Next;
ptr_F=Head;
while(ptr_F->Next)
{
if(ptr->m_Wage>ptr_F->Next->m_Wage)
{
ptr->Next=ptr_F->Next;
ptr_F->Next=ptr;
break;
}
else
{
ptr_F=ptr_F->Next;
}
}
if(ptr_F->Next==NULL)
{
ptr->Next=ptr_F->Next;
ptr_F->Next=ptr;
}
ptr=ptr_N;
}
cout<<"从高到低,排序成功!"<<endl;
system("pause");
return Head;
}
int main()
{
Link Head=0;
Head=Create(Head);
fstream iofile;
iofile.open("d:\\iofile.txt",ios_base::in|ios_base::out|ios_base::app);
if(!iofile)
{
cout<<"打开文件失败!"<<endl;
system("pause");
return -1;
}
int menu;
while(1)
{
system("cls");
cout<<"*****************************************************"<<endl;
cout<<"*====================菜单选顶=======================*"<<endl;
cout<<"*===================================================*"<<endl;
cout<<"* 1.注册职工 2.修改信息 3.删除信息 4.信息查询 *"<<endl;
cout<<"* 5.保存文件 6.工资排行 7.信息显示 0.退出系统 *"<<endl;
cout<<"*****************************************************"<<endl;
cout<<endl<<"请选择相应操作菜单项:";
cin>>menu;
while(cin.fail())
{
cout<<"请选择正确的菜单选项。"<<endl;
cin.clear();
fflush(stdin);
cin>>menu;
}
switch(menu)
{
case 0:
system("cls");
cout<<"成功退出系统!"<<endl;
system("Pause");
return 0;
case 1:
Head=Add(Head);
break;
case 2:
Head=Modify(Head);
break;
case 3:
Head=Del(Head);
break;
case 4:
Search(Head);
break;
case 5:
Save_ByFile(Head,iofile);
break;
case 6:
Sort(Head);
break;
case 7:
Display_List(Head);
break;
default:
cout<<"请选择正确的菜单项进行操作。多谢合作!"<<endl;
}
}
Release(Head);
iofile.close();
return 0;
}