当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 11 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : 一个C++作业问题{加急}
帖子发表于 : 2011-01-14 22:37 
头像

注册: 2010-05-27 1:50
帖子: 80
送出感谢: 0 次
接收感谢: 0 次
如何加入
{该系统的每个用户都有自己的用户名和密码。应用程序的管理员具有最高的优先访问使他/她来执行所有的功能,在应用中存在。除此之外,管理员能够从人力资源登记部门的用户。该公司的员工有最低的访问优先权,只有使他们能够查看他们的个人信息。}
这样的功能。。。要交作业了,还没闹明白。。。回答请通俗易懂。。。。本人商科刚转到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;
}


_________________
DoubleX


页首
 用户资料  
 
2 楼 
 文章标题 : Re: 一个C++作业问题{加急}
帖子发表于 : 2011-01-15 19:09 
头像

注册: 2010-05-27 1:50
帖子: 80
送出感谢: 0 次
接收感谢: 0 次
为什么。。。总是没人回答。。。。


_________________
DoubleX


页首
 用户资料  
 
3 楼 
 文章标题 : Re: 一个C++作业问题{加急}
帖子发表于 : 2011-01-18 23:52 
头像

注册: 2010-11-21 1:53
帖子: 560
地址: 河蟹墙堡
送出感谢: 0 次
接收感谢: 0 次
:em05 惊现作业党

楼主应该去百度贴吧问问,那里有很多闲得蛋疼的人.话说我也经常去灌水 :em09


_________________
代码:
#touch cock
touch: failed to touch 'cock': Permission denied


页首
 用户资料  
 
4 楼 
 文章标题 : Re: 一个C++作业问题{加急}
帖子发表于 : 2011-02-13 15:06 
头像

注册: 2010-12-24 19:52
帖子: 217
送出感谢: 0 次
接收感谢: 0 次
额……作业都问到这里来了呀………………表示作业太长了 :em03


_________________
顶人一帖,胜造七级浮屠。。。


页首
 用户资料  
 
5 楼 
 文章标题 : Re: 一个C++作业问题{加急}
帖子发表于 : 2011-06-06 11:29 

注册: 2011-06-06 11:23
帖子: 1
送出感谢: 0 次
接收感谢: 0 次
:em05 新手赐教


页首
 用户资料  
 
6 楼 
 文章标题 : Re: 一个C++作业问题{加急}
帖子发表于 : 2011-06-06 11:43 
头像

注册: 2007-02-02 18:14
帖子: 30702
系统: debian sid
送出感谢: 1
接收感谢: 34
这个什么用dos的画界面的...图形界面的话可能简单多了


_________________
醉了星星,醉月亮●●●●●The Long Way To Go(*^_^*)


页首
 用户资料  
 
7 楼 
 文章标题 : Re: 一个C 作业问题{加急}
帖子发表于 : 2011-06-06 13:06 
头像

注册: 2011-01-20 20:57
帖子: 2431
送出感谢: 1
接收感谢: 2
作业党。。。= =!
水一下


_________________
1、myspace-高达数字实验室
2、这是好东西啊,戳我一下试试
3、没米的孩子可以看看SAE云平台


页首
 用户资料  
 
8 楼 
 文章标题 : Re: 一个C++作业问题{加急}
帖子发表于 : 2011-07-23 21:56 

注册: 2008-10-31 22:12
帖子: 6546
系统: 践兔
送出感谢: 18
接收感谢: 25
代码:
system("cls");

这算啥.应该是clear吧.
代码:
● which clear
/usr/bin/clear


_________________
代码:
] ls -ld //


页首
 用户资料  
 
9 楼 
 文章标题 : Re: 一个C++作业问题{加急}
帖子发表于 : 2011-08-17 13:00 
头像

注册: 2011-08-17 12:54
帖子: 287
送出感谢: 0 次
接收感谢: 4
看到stdafx.h,conio.h,我觉得楼主已经发错地方了。。。。
找个vc论坛去问问吧。。。


页首
 用户资料  
 
10 楼 
 文章标题 : Re: 一个C++作业问题{加急}
帖子发表于 : 2011-08-17 13:35 
头像

注册: 2009-07-29 20:11
帖子: 2245
地址: Gensokyo
系统: Arch Linux
送出感谢: 4
接收感谢: 23
:em20

缩进哪.....??


_________________
Phoenix's island
Loliplus Web Services


页首
 用户资料  
 
11 楼 
 文章标题 : Re: 一个C++作业问题{加急}
帖子发表于 : 2011-08-17 15:23 
头像

注册: 2010-04-02 16:44
帖子: 528
系统: openSUSE 13.2 x64
送出感谢: 2
接收感谢: 11
引用:
#include "stdafx.h"

lz应该去VC论坛问问的。

lz你既然要使用C++,就不用struct了,应该学会使用class。
class中添加一个bool值,public或者private随便,值为1时表示为管理员用户,拥有最高权限,为0时为普通用户。
为了查找方便,还可以将链表的结构接合进来,每声明一个对象,就将此对象作为节点加入链表中。


_________________
正在建设中的个人博客


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 11 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 2 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译