资源简介
完成功能:
(1)从文件读取职工信息
(2)能插入新员工的信息并保存到原来的文件中
(3)能从键盘输入员工信息并将其与原有的信息合并(把产品数相加)存储到原文件中
(4)能从键盘输入所有职工信息并将其与原有的信息合并(产品数相加)将结果输出到屏幕的同时保存到原文件中去。
(5)输出所有员工的排名:系统按完成的产品数量由多到少的顺序,输出名次、同一名次的职工人数及他们的工号(工号由小到大顺序输出)。
![](http://www.nz998.com/pic/44738.jpg)
代码片段和文件信息
#include
#include
#include
#include
using namespace std;
struct Node
{int num;
string name;
char sex;
int product;
Node *next;
};
typedef Node* NodePtr;
int main()
{char n;
do{
struct Node *IN_PUT(); //用于从文件内读出数据
void New_producter(struct Node *head); //用于建立并输入新来员工信息并将结果输出到文件
void IN_PUT_INFORM(struct Node *head); //用于输入员工工作量并将结果输出到文件
void SCANF_INFORM(struct Node *head); //输入员工信息并浏览所有员工信息
void RANKING(struct Node *head); // 将员工按产品数从大到小(若产品数相等时按工号从小到大排)排,并输出名次,同一名次的输出人数
NodePtr heada;
int x;
head=IN_PUT();
cout<<“当前文件中职工的信息为:“< a=head;
do{cout<num<<“ “;
cout<name;
cout<<“ “<sex<<“ “<product< a=a->next;
}while(a!=NULL);
cout<<“a.新来职工信息登记请按1.\n“
<<“b.职工工作量信息输入请按2.\n“
<<“c.职工信息输入并浏览请按3.\n“
<<“d.查看职工排名请按4.“< cin>>x;
switch(x)
{ case 1:New_producter(head);break;
case 2: IN_PUT_INFORM(head);break;
case 3:SCANF_INFORM(head);break;
case 4:RANKING(head);break;
default:break;
}
cout<<“是否继续其他操作?继续(y/Y)退出按任意键!“ < cin>>n;
}while(n==‘y‘||n==‘Y‘);
return 0;
}
struct Node *IN_PUT() //从文件读入数据进入链表
{ NodePtr PtrPQheadR;
ifstream in_stream;
head=new Node;
head->next=NULL;
P=Q=head;
int i; //i控制数组变量
char NAME[30];
for(i=0;i<30;i++){NAME[i]=‘ ‘;} NAME[--i]=‘\0‘; //数组结束必须是以“\0”结尾
i=0;
in_stream.open(“in_file.txt“);
if(in_stream.fail())
{cout<<“Input file opening failed.“< exit(1);
}
in_stream>>head->num;
in_stream>>NAME[i]; //输入姓名-
while(NAME[i]!=‘ ‘)
{ i++;
in_stream.get(NAME[i]); //用get()函数可以读取空格等字符
} //while
head->name=NAME;
in_stream>>head->sex>>head->product;
if(head->product<0)
{ cout<<“文件中有的产品数不能为负数!“< exit(0);
}
do{ Ptr=new Node;
Ptr->next=NULL;
in_stream>>Ptr->num;
for(i=0;i<30;i++){NAME[i]=‘ ‘;}//从新对数组进行初始化,把上次在数组中的内容去掉
NAME[--i]=‘\0‘; //数组结束必须是以“\0”结尾
i=0;
in_stream>>NAME[i]; //输入姓名-
while(NAME[i]!=‘ ‘)
{ i++;
in_stream.get(NAME[i]);
} //while
Ptr->name=NAME;
in_stream>>Ptr->sex>>Ptr->product;
if(Ptr->product<0&&(!in_stream.eof())) // ------------------------------------------------
{cout<<“文件中产品数不能为负数!“< exit(0);
}
do{if(Ptr->num==Q->num)
{cout<<“文件中职工号重复!“< exit(0);
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 395776 2009-09-24 13:22 职工工作量统计实验报告.doc
文件 126 2009-09-22 16:12 in_file.txt
文件 21166 2009-09-23 12:09 职工工作量统计.cpp
----------- --------- ---------- ----- ----
417068 3
- 上一篇:NSG2及使用方法
- 下一篇:USB HUB usb分线器 电路原理图
相关资源
- 数学建模实验报告(八个全)
- 数字逻辑与数字系统实验报告
- 多媒体综合设计报告(附作品)
- ubuntu9.10 可加载内核模块和字符设备驱
- 操作系统 LRU算法 实验报告 及 程序代
- 迈克尔逊干涉仪的调整与使用实验报
- 利用启发式搜索解决八数码难题程序
- 比较两个字符串大小汇编语言源代码
- linux实验报告及心得体会
- 数据结构实验-魔王语言-源码加实验报
- 2FSK2PSK信号产生器实验实验报告
- 软件工程课程设计【网上选课系统】
- 表达式求值C 代码(附实验报告)
- 真正!!!概率论与数理统计浙江大
- 具有非扩展统计力学的线性Sigma模型中
- 烃靶上6 GeV的中微子准弹性样散射的高
- 湖南大学操作系统实验报告
- eclipse统计代码工具
- 代码统计工具
- SourceCount代码统计
- 程序源代码行数统计工具
- 源程序量统计小工具
- TS16949:2009-SPC统计过程控制培训教材
- 概率论与数理统计习题与解答 (茆诗
- jacoco统计手动测试覆盖率工具文件
- 高校图书馆统计工作的规范化建设探
- 计算机408天勤2019数据结构计算机考研
- 数理统计学导论第7版霍格著.pdf
- 统计思维:程序员数学之概率统计-带
- 统计模拟及其R实现
评论
共有 条评论