⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 select_max.h

📁 职工信息管理系统的功能是设置职工最大数.职工信息查询.增加职工记录.删除职工记录.生成信息简表.显示原始记录.显示简表记录.显示工资平均值.帮助菜单,退出该系统
💻 H
字号:
//文件select_max.h(设置职工最大数函数select_max()的实现。
#include<iostream>
#include<string>
#include<fstream>
#include<cstdlib>
#include"str.h"
using namespace std;


/******************************************************
 为了程序便于控制,要求职工最大数只能是100、1000或10000.
 如果职工最大数已经设置,则提示用户是否重新初始化系统,
 或者退出此菜单,返回主目录。如果同意重新初始化系统,则
 初始化系统,向数据文件中写入原始职工记录,并且覆盖原来
 的记录,否则返回主菜单,执行其它操作。
 ******************************************************/
void select_max()
{
	int max;              //从文件读取的职工最大数变量。
	char max_char[256];    //用户输入的职工最大数。
	bool temp_bool=false;       //检查用户的输入格式是否正确。
    
    ifstream fcin("max.dat");   
    if(fcin.fail())
    {
	   cout<<"文件max.dat打开失败,程序将结束"<<endl;
	   exit(1);
    }
	fcin>>max;            //从文件读取职工最大数到内存。
	fcin.close();

	if(max>3)           //判断用户是否已经设置过职工最大数。
	{
	    cout<<"*************警告!职工最大数已经设置,不能再次设置!************"<<endl;
		cout<<"您是否想重新初始化该职工信息管理系统?"<<endl;
		cout<<"重新初始化后您将可以重新设置职工最大数!"<<endl;
		cout<<"重新初始化将丢失原来所有的职工信息!"<<endl;
		cout<<"重新初始化请按1,否则按0返回主菜单。"<<endl;
		cout<<"请输入:";
		char ch;
		cin>>ch;
		if(ch!='0' && ch!='1')
		{
			cout<<"您的输入有误,请重新输入!"<<endl;
			cout<<"重新初始化请按1,否则按0返回主菜单。"<<endl;
		    cout<<"请输入:";
			cin>>ch;
		}
		if(ch=='1')
		{
			 max=3; //允许用户重新设置职工最大数。 
		}
	}
	if(max==3)    //如果未设置职工最大数,或者要重新设置,就开始执行。
	{   
		char temp='2';       //引入一个新的局部变量,为了在设置完职工最大数后再次确认。
		while(temp=='2')
		{
	        cout<<"请您输入职工的最大数,必须输入数字:";
	        cin>>max_char;                            //用户输入职工最大数。   
			temp_bool=check_num(max_char);
			while(!temp_bool)
			{
				cout<<"您的输入有误,只能含有阿拉伯数字!"<<endl;
				cout<<"请重新输入:";
				cin>>max_char;                          
			    temp_bool=check_num(max_char);
			}
			max=atoi(max_char);

			while(max!=100 && max!=1000 && max!=10000)
			{
				cout<<"请注意,职工最大数只能是100、1000或10000"<<endl;
				cout<<"请重新输入您想要设置的职工最大数:";
				cin>>max_char;
				temp_bool=check_num(max_char);
				while(!temp_bool)
				{
				   cout<<"您的输入有误,只能含有阿拉伯数字!"<<endl;
				   cout<<"请重新输入:";
				   cin>>max_char;                          
			       temp_bool=check_num(max_char);
				}
			    max=atoi(max_char);
			}
			
			
			cout<<"您确定的职工最大数是:"<<max<<endl;      
			//询问是否还要修改职工最大数。
            cout<<"确定请按1,重新设置请按2,暂不设置回到主菜单请按0"<<endl;      
			//用户做出判断,是否重新设置职工最大数。
			cout<<"请输入:";
		    cin>>temp;

			if(temp=='1')       //用户确定自己所设置的职工最大数以后,把它写入文件。
			{
				ofstream fcout3("max.dat");
                if(fcout3.fail())
				{
	                cout<<"文件max.dat打开失败,程序将结束"<<endl;
	                exit(1);
				}
				fcout3<<max;                          //把职工最大数写入文件。
				fcout3.close();                       //关闭数据文件。
				cout<<"******职工最大数设置完毕!******"<<endl;
				cout<<"****开始初始化原始数据文件*****"<<endl; 
                ofstream fcout2("name.dat");   
                if(fcout2.fail())
				{
	                cout<<"文件name.dat打开失败,程序将结束"<<endl;
	                exit(1);
				}
			    
				//初始化数据文件name.dat
			    fcout2<<max+1<<" "<<"李欢欢"<<" "<<"男"<<" "<<21<<" "<<3000;
				fcout2<<endl;
				fcout2<<max+2<<" "<<"王小雨"<<" "<<"女"<<" "<<20<<" "<<3200;
				fcout2<<endl;
				fcout2<<max+3<<" "<<"张帆"<<" "<<"女"<<" "<<21<<" "<<2000;
			    fcout2.close();  //关闭数据文件。
				cout<<"******初始化原始数据文件结束******"<<endl;
			}
			else
				if(temp=='2')      //重新设置职工最大数。
					;
				else
					break;         //退出while循环,回到主菜单。

		}     //while循环结束。
      
	}         //else 下面的语句段结束。

}             //设置职工最大数函数select_max函数结束。


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -