资源简介
完成功能:
(1)从文件读取职工信息
(2)能插入新员工的信息并保存到原来的文件中
(3)能从键盘输入员工信息并将其与原有的信息合并(把产品数相加)存储到原文件中
(4)能从键盘输入所有职工信息并将其与原有的信息合并(产品数相加)将结果输出到屏幕的同时保存到原文件中去。
(5)输出所有员工的排名:系统按完成的产品数量由多到少的顺序,输出名次、同一名次的职工人数及他们的工号(工号由小到大顺序输出)。
代码片段和文件信息
#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分线器 电路原理图
相关资源
- 实验报告心得体会通用版
- 流水灯实验报告
- spring-websocket实时统计报表
- CAD统计多线段长度总和已测过,没问
- 浙江省统计年鉴2017分享数据
- 武汉理工大学中间件实验报告
- 软件体系结构实验报告
- 教学计划编制问题实验报告我自己做
- POI和JFreeChart框架实现生成Excel文件生
- Fragment懒加载 友盟统计Fragment时长
- 现代密码学实验报告包含DES算法
- 进程的管道通信 实验报告
- 用opencv做的统计车流量的程序包
- 软件测试实验报告测试用例,代码,
- 中小企业典型网络组网实验报告
- 信息理论与编码实验报告
- 数据结构课程设计实验报告详细
- 微机原理与接口课程设计实验报告详
- 单相全桥逆变电路仿真实验报告
- 多级反馈进程调度算法 实验报告 及程
- 二叉树遍历实验报告
- 遗传算法和蚂蚁算法求解TSP旅行商问
- spooling技术源代码+word实验报告
- 多表密码破解密文Cipher
- DML练习:UPDATEDELETEINSERT操作 数据库实
- 科学计算导论实验报告
- 魏凤英的现代气候统计诊断与预测技
- 操作系统银行家算法实验报告
- 山东大学机器学习实验报告K平均算法
- 北邮微机原理硬件实验报告报告内
评论
共有 条评论