首页 > 编程语言 >C++ 职工信息管理系统项目的二次开发 2252423 ywx

C++ 职工信息管理系统项目的二次开发 2252423 ywx

时间:2024-03-05 17:22:51浏览次数:36  
标签:case cout temp int C++ next flag 二次开发 ywx

来源:同学大二下的期末大作业:网上购书系统项目。
运行环境:VisualStudio 2022

①项目结构:

②运行结果截图:

主菜单界面:

功能选择界面:

工资总额输出界面:

平均工资输出界面:

显示输出界面:

增加正式员工界面:

增加临时员工界面:

修改数据界面:

③主要问题:
查询功能未完善,有时会出现乱码

④详细代码:

点击查看代码
#include<iostream>
#include<stdio.h>
#include"employee.h"
#include"function.h"
#include"print.h"
using namespace std;

int main() {
	listpoint1 *temp1, *head1;
	listpoint2 *temp2, *head2;

	temp1 = head1 = (listpoint1*)malloc(sizeof(listpoint1));
	temp2 = head2 = (listpoint2*)malloc(sizeof(listpoint2));

	while (true) {
		readCsv(temp1);
		readCsv(temp2);

		printFunction();
		
		int flag;
		cin >> flag;
		
		system("cls");

		if (flag == 8) {
			exit(1);
		}

		int i, j;
		switch (flag)
		{
		case 1://匹配数据
			printFunction1();
			cin >> i;
			system("cls");
			if (i == 1 || i == 2) {
				printFunction1(head1, i);
				printFunction1(head2, i);
			}
			else
			{
				cout << "                                                       输入错误,请重新输入\n";
			}
			cout << "                                                 ";
			system("pause");
			break;
		case 2://按照实发工资排序输出
			printFunction2(head1, head2);
			cout << "                                                 ";
			system("pause");
			break;
		case 3://增加新员工
			printFunction3();
			cin >> i;
			if (i == 1) {
				addEmployee(temp1);
			}
			else if (i == 2) {
				addEmployee(temp2);
			}
			else {
				cout << "                                                       输入错误,请重新输入\n";
			}
			break;
		case 4://修改记录
			printFunction4();
			cin >> i;
			system("cls");
			changeEmplpoyee(i, head1, head2);
			cout << "\n                                                   ";
			system("pause");
			break;
		case 5://删除记录
			printFunction4();
			cin >> i;//要选择删除的员工类型
			printFunction6();
			cin >> j;//要选择删除的方式
			deleteEmplpoyee(i, j, head1, head2);
			cout << "\n                                                   ";
			system("pause");
			break;
		case 6:
			cout << "                                **********************************************************\n";
			cout << endl;
			cout << "                                                   正式员工:" << endl;
			printEmployees(head1);
			cout << endl;
			cout << "                                **********************************************************\n" << endl;
			cout << "                                                   临时员工:" << endl;
			printEmployees(head2);
			cout << endl;
			cout << "                                **********************************************************\n";
			cout << "                                                   ";
			system("pause");
			break;
		default:
			cout << "                                                       输入错误,请重新输入\n";
			break;
		}
		system("cls");
		saveEmployee(head1);
		saveEmployee(head2);
	}

	return 0;
}

⑤改进新代码

增加新查询功能,详细代码:

点击查看代码
listpoint1* findEmplpoyee(listpoint1 *head, int i) {
	listpoint1 *temp = head->next;
	string name;

	switch (i)
	{
	case 1:
		int num;
		cout << "                                                   请输入编号:";
		cin >> num;
		for (; temp; temp = temp->next) {
			if (abs(temp->e->getNum()) == num) {
				return temp;
			}
		}
		break;
	case 2:
		cout << "                                                   请输入姓名:";
		cin >> name;
		for (; temp; temp = temp->next) {
			if (temp->e->getName() == name) {
				return temp;
			}
		}
		break;
	case 3:
		int money;
		cout << "                                                   请输入工资:";
		cin >> money;
		for (; temp; temp = temp->next) {
			if (temp->e->getSumMoney() == money) {
				return temp;
			}
		}
		break;
	default:
		cout << "                                                   输入格式有误,请重新输入";
		break;
	}

	return NULL;
}
listpoint2* findEmplpoyee(listpoint2 *head, int i) {
	listpoint2 *temp = head->next;
	string name;

	switch (i)
	{
	case 1:
		int num;
		cout << "                                                   请输入编号:";
		cin >> num;
		for (; temp; temp = temp->next) {
			if (abs(temp->e->getNum()) == num) {
				return temp;
			}
		}
		break;
	case 2:
		cout << "                                                   请输入姓名:";
		cin >> name;
		for (; temp; temp = temp->next) {
			if (temp->e->getName() == name) {
				return temp;
			}
		}
		break;
	case 3:
		int money;
		cout << "                                                   请输入工资:";
		cin >> money; 
		for (; temp; temp = temp->next) {
			if (temp->e->getSumMoney() == money) {
				return temp;
			}
		}
		break;
	default:
		cout << "                                                   输入格式有误,请重新输入";
		break;
	}

	return NULL;
}

void printEmplpoyee(int i, int j, listpoint1 *head1, listpoint2 *head2) {
	if (i == 1) {
		listpoint1 *flag = findEmplpoyee(head1, j);
		if (flag == NULL) {
			cout << "                                                   未找到目标职员或目标以全部输出";
		}
		else{
			print(flag);
		}
		if (j == 3 && flag->next) {
			printEmplpoyee(1, 3, flag, head2);
		}
	}
	else if(i == 2){
		listpoint2 *flag = findEmplpoyee(head2, j);
		if (flag == NULL) {
			cout << "                                                   未找到目标职员或目标以全部输出";
		}
		else {
			print(flag);
		}
		if (j == 3 && flag->next) {
			printEmplpoyee(1, 3, head1, flag);
		}
	}
	else{
		cout << "                                                   输入员工类型有误";
	}
}

功能截图:

⑥总结

二次开发的过程是对开发过程的深入理解和灵活运用的过程,需要理解原有系统的架构、功能、数据结构等,这要求开发者对开发工作有更深入的理解。同时,二次开发需要解决原有系统存在的问题,这要求开发者具备灵活的思维和解决问题的能力。

标签:case,cout,temp,int,C++,next,flag,二次开发,ywx
From: https://www.cnblogs.com/Decoi/p/18054476

相关文章

  • 基于c/c++的公司职工管理系统软件的二次开发
    引言:经过在网络上的广泛搜索和比较,我了解了一款基于C/C++的公司职工管理系统软件,这款软件在基本功能方面表现相当完善,能够满足日常的使用需求。然而,在实际使用过程中,我也发现它存在一些问题和不足,所以我决定对该软件进行二次开发。原始代码:点击查看代码**main.cpp**#include......
  • 基于JAVA的2048小游戏的二次开发
    引言《2048Numberpuzzlegame》是一款数字益智游戏,而《2048》的初始数字则是由2+2组成的基数4。在操作方面的不同则表现为一步一格的移动,变成更为爽快的一次到底。相同数字的方框在靠拢、相撞时会相加。系统给予的数字方块不是2就是4,玩家要想办法在这小小的16格范围中凑出「2048」......
  • 基于JAVA的康威生命游戏二次开发
    引言:       康威生命游戏(Conway'sGameofLife)是一种基于细胞自动机的零玩家游戏,由数学家约翰·康威(JohnConway)于1970年创建。这个游戏并不是传统意义上的游戏,而是一种模拟生命演变的规则系统。康威生命游戏的“宇宙”是一个由无限的二维网格组成的平面,每个格子被称为......
  • 超市管理系统C++
    超市管理系统(摘自大一小学期同学作品)一、C++语言程序设计------《超市管理系统设计》问题分析这个超市商品管理系统的主要功能是为超市的管理层提供货物查询及银行转帐货物管理服务,方便超市管理层工作,提高管理层的服务质量和服务效率。超市商品的信息必须经由各部门及人事初及......
  • JAVA项目 贪吃蛇游戏二次开发
    基于java实现贪吃蛇小游戏,主要通过绘制不同的图片并以一定速度一帧一帧地在窗体上进行展示。原代码地址:https://gitee.com/jay_musu/games-and-tools.gitpackagecom.snake.view;importjava.awt.Color;importjava.awt.EventQueue;importjava.awt.Font;importjava.awt......
  • 从Python语言的角度看C++的指针
    技术背景从一个PythonCoder的角度来说,其实很羡慕C++里面指针类型的用法,即时指针这种用法有可能会给程序带来众多的不稳定因素(据C++老Coder所说)。本文主要站在一个C++初学者的角度来学习一下指针的用法,当然,最好是带着一定的Python基础再去学习C++的逻辑,会更容易一些。内存地址赋......
  • C++面试,实现memcpy,strcpy这2个函数的功能
    `strcpy`和`memcpy`都是用于内存复制的函数,但它们之间有几个关键的区别:1.**复制的对象**:-`strcpy`主要用于复制字符串,它将从源字符串的起始位置开始复制字符,直到遇到源字符串的空字符('\0'),然后将空字符也复制到目标字符串中,表示字符串的结束。-`memcpy`则是通用的内存复......
  • 36C++语言级的四种类型转换
    C++语言级的四种类型转换const_cast:去掉常量属性的类型转换static_cast:提供编译器认为安全的类型转换reinterpret_cast:类似C风格的强制类型转化dynamic_cast:主要用在继承结构中,可以支持RTTI类型识别的上下转换#include<iostream>usingnamespacestd;classBas......
  • C++游戏飞翔的小鸟软件二次开发
    引言:在快节奏的现代生活中,人们总是在寻找一种方式来放松自己,释放内心的压力。游戏作为一种娱乐方式,早已深入人心。今天,我要向大家介绍的是一款简单而又充满挑战的小游戏——飞翔的小鸟。这款游戏的核心玩法是控制一只小鸟在无尽的天空中飞翔,通过点击屏幕使小鸟上升,避开各种障碍......
  • C++网上购书系统项目的二次开发 2252416 hzx
    1、来源:同学大二下的期末大作业:网上购书系统项目。2、运行环境:VisualStudio2019代码:点击查看代码#include"StdAfx.h"#include<iostream>#include"person.h"#include<string.h>#include"globalfunction.h"#include"book.h"#include"adm.h&......