【源码】C/C++员工信息管理系统 期末课设

学长抄作业 2023-06-05 15:57:08
加精

目录

  • 学长敲代码
  • 题目介绍
  • 部分代码

学长敲代码

获取源码:

更多题目源码,可以访问学长敲代码首页
订做课设,C、C++、C#、数据库、java课设 : 点我跳转:学长敲代码首页 http://www.codeying.top

题目介绍

使用语言:有两个版本,一个是C语言,一个是C++,自行选择

题目介绍:系统带有文件读写功能,下次启动自动读取数据。

//定义人员信息结构体
struct Employee{
    char empname[10];    // 人员姓名
    char empnum[10];    // 编号
    char tele[20];    // 电话
    char depart[10];    // 部门
    char sex;    // 性别
};

//定义部门信息结构体
struct Department{
    char number[10];    // 编号
    char name[10];    // 部门名字
    char leader[10];    // 部门领导
};

在这里插入图片描述

查找

在这里插入图片描述


条件查找

在这里插入图片描述


部门信息

在这里插入图片描述


删除功能:

在这里插入图片描述


删除后:

在这里插入图片描述

部分代码


//添加Employee
void addEmployee(Employee* employeeList,Department* deparmentList){
    printf("输入你要录入的人员信息个数:\n"); 
    
    //用户输入要录入的人员信息个数:
    int count;
    scanf("%d",&count); 
    printf("**输入人员信息**\n"); 
    printf("依次输入:人员姓名 编号 电话 部门 性别(w/m) \n"); 

    for(int i = COUNTEmployee ; i < count+COUNTEmployee ;i++){
        scanf("%s %s %s %s %c",
            employeeList[i].empname,
            employeeList[i].empnum,
            employeeList[i].tele,
            employeeList[i].depart,
            &employeeList[i].sex
        );
        //判断部门是否存在; 
        int flag = 0;
        for(int j = 0;j<COUNTDepartment;j++){
            if(strcmp(employeeList[i].depart,deparmentList[j].name)==0 || strcmp(employeeList[i].depart,"无")==0){
                flag = 1; 
                break;
            }
        }
        if(flag == 0){
            i--;
            printf("该部门不存在!请先添加部门或者填‘无’\n");
        }
    }
    
    //COUNTEmployee,是全局变量 
    COUNTEmployee += count;

    printf("\n*****************************\n");
    printf("录入完成\n");
    printf("*****************************\n");
}


//删除Employee
void delEmployee(Employee* employeeList){
    printf("请输入您要删除的人员信息序号(输入-1退出):");
    int index = -1;
    scanf("%d",&index);
    
    //要删除的下标为index  
    index = index - 1;
    delEmp(employeeList,index);
}
void delEmp(Employee* employeeList,int index){
    if(index == -2){
        //不干任何事 
    } 
    else if(index < 0 || index >COUNTEmployee){
        printf("输入有误\n"); 
    } else{
        //开始删除! 
        for(int i = index; i <COUNTEmployee-1 ; i++){
            //元素全部往前移一位。 
            employeeList[i] = employeeList[i+1];
        }
        //最后令栈的长度减一 
        COUNTEmployee = COUNTEmployee - 1;
        printf("删除成功!\n"); 
    }
} 


//修改Employee
void modifyEmployee(Employee* employeeList,Department* departmentList){

    printf("请输入您要修改的人员信息序号(输入-1退出):");
    int i = -1;
    scanf("%d",&i);
    
    //要修改的下标为i  
    i = i - 1;
    if(i == -2){
        //退出 
    }
    else if(i < 0 || i >= COUNTEmployee){
        printf("输入有误\n"); 
    } else{
        int flag = 1;
        while (flag==1){
            //开始修改 
            printf("依次输入:人员姓名 编号 电话 部门 性别(m/w) \n"); 
            scanf("%s %s %s %s %c",
                employeeList[i].empname,
                employeeList[i].empnum,
                employeeList[i].tele,
                employeeList[i].depart,
                &employeeList[i].sex
            ); 
            //判断部门是否存在; 
            
            for(int j = 0;j<COUNTDepartment;j++){
                if(strcmp(employeeList[i].depart,departmentList[j].name)==0 || strcmp(employeeList[i].depart,"无")==0){
                    flag=0; 
                    break;
                }
            }
            if(flag){
                printf("该部门不存在!请先添加部门或者填‘无’\n");
            } 
        }
        printf("修改成功!\n"); 
    }
}

//罗列信息Employee
void queryAllEmployee(Employee* employeeList){
    printf("\n序号 人员姓名 编号 电话 部门 性别(m/w) \n"); 
    int i;
    int count =0;
    if(employeeList){
        for (i = 0;i < COUNTEmployee ; i++) 
        {
            printf("%-5d%-10s%-10s%-20s%-10s%-5c\n",
            i+1,
            employeeList[i].empname,
            employeeList[i].empnum,
            employeeList[i].tele,
            employeeList[i].depart,
            employeeList[i].sex); 
            count++;

        } 
        printf("\n");
    }

    printf("共%d条结果\n\n",count);

    
}
...全文
1460 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
内容概要:本文围绕可变桨叶四旋翼无人机的规范控制与点对点运动模拟展开,重点研究优化推力分配策略在翻转动作中的应用与性能比较。通过Matlab代码实现,构建了四旋翼动力学模型,并设计了多种控制算法以实现精确的姿态调整与轨迹跟踪。研究对比了不同推力分配方案在执行高机动性翻转动作时的稳定性、能耗效率与响应速度,旨在提升无人机在复杂飞行任务中的动态性能与控制精度。该仿真研究为无人机飞控系统的设计与优化提供了理论依据和技术支持。; 适合人群:具备一定自动控制理论基础和Matlab编程能力,从事无人机控制、飞行器动力学或机器人系统研究的科研人员及研究生。; 使用场景及目标:① 实现四旋翼无人机在三维空间中的精确点对点运动控制;② 对比分析不同推力分配策略在执行翻转等高难度动作时的控制效果与能耗表现,优化飞行性能;③ 为无人机自主飞行、特技飞行及复杂环境下的机动控制提供算法验证平台。; 阅读建议:此资源以Matlab仿真为核心,建议读者结合相关控制理论知识,深入理解代码实现细节,重点关注动力学建模、控制律设计与推力分配模块。在学习过程中,应动手调试参数,复现文中翻转动作的仿真结果,并尝试拓展至其他复杂飞行任务,以加深对无人机控制机理的理解。

156

社区成员

发帖
与我相关
我的任务
社区描述
学长敲代码,专业订做课设Java、C#、C++、数据库
java-eec#mysql 个人社区 福建省·厦门市
社区管理员
  • 学长敲代码
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧