C语言大作业--小型工资管理系统
课程大作业目的
通过该大作业,考察学生分析、解决复杂问题的能力,考察学生编写较大程序的能力,检验和评价《程序设计基础》课程的学习效果
大作业内容
编写一个小型工资管理系统,用来管理职工的个人基本信息及工资薪酬等数据
基本要求
- 每个职工的数据应包括:工号、姓名、性别、部门、基本工资、绩效工资、奖金、应发工资(应发工资=基本工资+绩效工资+奖金)。职工数据要求采用结构体数据类型。
- 菜单显示:显示系统的一级功能菜单(数据输入、数据修改、数据处理、数据输出、退出)。
数据输入:至少输入10个职工的各项数据(应发工资由系统自动计算,不需要输入)。**录入的第一条记录用自已的真实姓名,部门为自己的真实班级。**并将有自己真实姓名、班级的输出结果截屏保存到大作业总结报告中。
数据修改:输入工号,修改指定工号的各项数据。输出修改完成后的全部职工数据。
数据处理:处理方式包括:排序、查询。可提供子菜单让用户选择。其中:
(1) 排序:按工号排序,显示所有职工的全部数据。
(2) 查询:按工号查询,显示指定工号的全部数据。
数据输出:输出全部职工的各项数据。
- 新增 删除职工数据
- 新增 统计职工男女数量
退出:退出整个工资管理系统。
代码如下
#include <stdio.h>
#include <string.h>
struct staff
{char number[20];char name[20];char gender[10];char bumen[20];double jbgz;double jxgz;double bonus;double yfgz;
};
double jbgz,jxgz,bonus,yfgz;
struct staff sta[10];
void inputdata(); //1.定义数据输入函数 input data
void modifydata(); //2.定义数据修改函数 modify data
void processdata(); //3.定义数据处理函数 process data
void sortdata(); //定义数据处理函数中的按工号排序数据函数 sort data
void searchdata(); //定义数据处理函数中的按工号查询数据函数 search data
void outputdata(); //4.定义数据输出函数 output data
void deldata(); //5.定义数据删除函数 delete data 新增
void countgender(); //6.定义统计男女职工数量函数 count gender 新增
int main()
{int i,choice; while(1){for(i=1;i<90;i++)printf("*");printf("\n");printf("1.数据输入 2.数据修改 3.数据处理 4.数据输出 5.数据删除 6.统计男女职工数量 7.退出\n");for(i=1;i<90;i++)printf("*");printf("\n");do{printf("请根据菜单输入数字:");scanf("%d",&choice);}while(choice!=1&&choice!=2&&choice!=3&&choice!=4&&choice!=5&&choice!=6&&choice!=7);if(choice==7)break;else{if(choice==1) inputdata();else if(choice==2) modifydata();else if(choice==3) processdata();else if(choice==4) outputdata();else if(choice==5) deldata();else if(choice==6) countgender();else printf("该数不合法;\n"); //另加}}return 0;
}
void inputdata()
{int i;for(i=1;i<=10;i++){printf("请输入第%d位职工的工号,姓名,性别,部门,基本工资,绩效工资,奖金:",i);scanf("%s %s %s %s %lf %lf %lf",&sta[i].number,&sta[i].name,&sta[i].gender,&sta[i].bumen,&sta[i].jbgz,&sta[i].jxgz,&sta[i].bonus); //输入第i位职工的工号,姓名,性别,部门,基本工资,绩效工资,奖金sta[i].yfgz=sta[i].jbgz+sta[i].jxgz+sta[i].bonus;printf("输入成功\n");}
}
void modifydata()
{int i;char num[20];printf("请输入您想要修改职工的数据的工号:");scanf("%s",&num);for(i=1;i<10;i++){if(strcmp(num,sta[i].number)==0){printf("请输入新工号,姓名,性别,部门,基本工资,绩效工资,奖金\n");scanf("%s %s %s %s %lf %lf %lf",&sta[i].number,&sta[i].name,&sta[i].gender,&sta[i].bumen,&sta[i].jbgz,&sta[i].jxgz,&sta[i].bonus);sta[i].yfgz=sta[i].jbgz+sta[i].jxgz+sta[i].bonus;}printf("修改成功!\n");printf("修改后的数据为:\n");printf(" 工号 姓名 性别 部门 基本工资 绩效工资 奖金 应发工资\n");printf("%s %s %s %s %f %f %f %f\n",sta[i].number,sta[i].name,sta[i].gender,sta[i].bumen,sta[i].jbgz,sta[i].jxgz,sta[i].bonus,sta[i].yfgz);break;}
}
void processdata()
{int choice,i;for(i=1;i<30;i++)printf("*");printf("\n");printf("二级菜单:\n");printf("1.排序 2.查询\n");for(i=1;i<30;i++)printf("*");printf("\n");printf("请根据菜单输入数字:");scanf("%d",&choice);if(choice==1) sortdata();else searchdata();
}
void sortdata()
{int i,j,k;char n[10];for(i=1;i<=10;i++){for(j=1;j<=10;j++){if(strcmp(sta[i].number,sta[j].number)>0){strcpy(n,sta[j].number);strcpy(sta[j].number,sta[i].number);strcpy(sta[i].number,n);}}}for(k=1;k<=10;k++){printf("%s %s %s %s %lf %lf %lf\n",sta[k].number,sta[k].name,sta[k].gender,sta[k].bumen,sta[k].jbgz,sta[k].jxgz,sta[k].bonus,sta[k].yfgz);}
}
void searchdata()
{int i;char snum[20]; //snum = searchnumberprintf("请输入您想要查询的职工工号:");scanf("%s",&snum);for(i=1;i<10;i++){if(strcmp(snum,sta[i].number)==0){printf("该职工的数据为:\n");printf(" 工号 姓名 性别 部门 基本工资 绩效工资 奖金 应发工资\n\n");printf(" %s %s %s %s %f %f %f %f\n",sta[i].number,sta[i].name,sta[i].gender,sta[i].bumen,sta[i].jbgz,sta[i].jxgz,sta[i].bonus,sta[i].yfgz);}break;}
}
void outputdata()
{int i;printf(" 工号 姓名 性别 部门 基本工资 绩效工资 奖金 应发工资\n");for(i=1;i<=10;i++){printf(" %s %s %s %s %f %f %f %f\n",sta[i].number,sta[i].name,sta[i].gender,sta[i].bumen,sta[i].jbgz,sta[i].jxgz,sta[i].bonus,sta[i].yfgz);}
}
void deldata()
{int i,j,choi;//char Y=Y;//char N=N;char delnum[20];printf("请输入您想要删除职工数据的工号:");scanf("%s",&delnum);for(i=1;i<10;i++){if(strcmp(delnum,sta[i].number)==0){printf("该职工的数据为:\n");printf(" 工号 姓名 性别 部门 基本工资 绩效工资 奖金 应发工资\n");printf(" %s %s %s %s %f %f %f %f\n",sta[i].number,sta[i].name,sta[i].gender,sta[i].bumen,sta[i].jbgz,sta[i].jxgz,sta[i].bonus,sta[i].yfgz);printf("确认删除该名职工的数据吗?(1.确认 2.取消)\n");scanf("%d",&choi);if(choi==1){for(i=1,j=2;j<=10;i++,j++){strcpy(sta[i].number,sta[j].number);strcpy(sta[i].name,sta[j].name);strcpy(sta[i].gender,sta[j].gender);strcpy(sta[i].bumen,sta[j].bumen);sta[i].jbgz=sta[j].jbgz;sta[i].jxgz=sta[j].jxgz;sta[i].bonus=sta[j].bonus;}printf("删除成功!!\n"); }else break;}}
}
void countgender()
{int i,count=0,fecount=0;char gen[10]="男";for(i=1;i<=10;i++){if(strcmp(gen,sta[i].gender)==0) count++;}fecount=10-count;printf("该公司有%d名男职工,有%d名女职工\n",count,fecount);
}
C语言大作业--小型工资管理系统相关推荐
- 学委作业管理系统c语言,c语言大作业-学生信息管理系统.doc
c语言大作业-学生信息管理系统.doc 课程设计报告书 题目:学生信息管理系统设计 学 院 电子与信息学院 专 业 电子信息类 学生姓名 学生学号 指导教师 课程编号 135160 课程学分 1学分 ...
- 哈工大C语言大作业-学生成绩管理系统
哈工大C语言大作业-学生成绩管理系统 完整项目地址:https://github.com/944613709/Student-Performance-Management-System-ByC 说明 ...
- 【C】C语言大作业——学生学籍管理系统
文章目录 学生管理系统 界面 主界面 登陆界面 注册界面 管理界面 学生界面 退出界面 链接 注意 学生管理系统 学C语言时写的一个大作业,弄了一个带图形界面的,使用的是VS配合EasyX图形库进行实 ...
- c语言大作业教室预约管理系统,C语言程序设计——教室管理系统(源代码))
C语言程序设计--教室管理系统(源代码) 非常有用的. #include #include #include #define szSTR 64 #define fileDB "c:\\con ...
- c语言大作业书店图书管理系统,c语言课程设计 书店管理系统.pdf
c语言课程设计 书店管理系统 计算机程序设计(C语言) 课程设计报告 题目:图书管理系统 学院: 专业: 班级: 学号: 姓名: 指导教师: 设计日期:2013年06月24 日 一.选题背景: 设计一 ...
- c语言大作业书店图书管理系统,C语言_课程设计—书店图书管理系统.doc
计算机程序设计(C语言) 课程设计报告 题目:图书管理系统 学院: 专业: 班级: 学号: 姓名: 指导教师: 设计日期:2013年06月24日 一.选题背景: 设计一个图书管理系统,管理员通过登陆账 ...
- c语言大作业书店图书管理系统,C语言课程设计书店管理系统.pdf
计算机程序设计(C语言) 课程设计报告 题目:图书管理系统 学院: 专业: 班级: 学号: 姓名: 指导教师: 设计日期:2013年06月24 日 一.选题背景: 设计一个图书管理系统,管理员通过登陆 ...
- 学生证选课系统c语言大作业,学生选课管理系统c语言程序
#include #include #include int N1,N2; struct couse * head1; struct student * head2; struct couse //课 ...
- 程序设计大作业:教务管理系统(C语言)
写在前头: 这个大作业是大一写的,所以比较低能,全篇只涉及C语言相关知识,且有些内容我自己看了都嫌弃.嘿嘿. 我整理了资源,可以免费下载:程序设计大作业:教务管理系统(C语言)-C文档类资源-CSDN ...
- C语言大作业:车辆管理系统
C语言大作业:车辆管理系统 声明 此代码使用VS2019编译器进行编译 使用 vc 和 dev-c 的有可能会出现编译警告,需要自己去网上查找相关的编译环境的问题 其次使用vs编译器也可能会报 C49 ...
最新文章
- 简易快速的开发,需要一个快速开发平台来支持
- .ini文件的读写操作
- 全球及中国七氟二甲基辛二酸铜(II)行业竞争策略与投资前景研究报告2022版
- linux 搭建github,github在linux上的环境搭建-Go语言中文社区
- 演示方法:有抱负的分析师
- Android实现动画Dialog
- C语言项目:黑客帝国之数字雨
- Java工作笔记-Java函数参传值传引用问题
- 怎样在word文档画虚线_班级工作小技巧——怎样在word里画出美观正式的四线三格?...
- SQLmap下载和安装教程(详细附图)
- php找100到1000之间的素数_php编程输出100以内的素数
- ESP32利用百度智能云实现图像识别 文字识别
- 处理24人!又一批科研不端案例被通报批评
- qq空间的相册名称java_空间相册名称大全
- pip3 install -U qcloud-python-sts 安装失败解决方法
- 协同感知综述:从异质单体到分层合作
- Result Maps collection already contains value for com.anoxia.mapper.XXXMapper.BaseResultMap
- guava异步线程使用
- Spring boot 配置文件yml的用法
- 通过域控组策略自动获取公司内电脑硬件配置详细方案
热门文章
- Weblogic 部署两个应用
- android课程设计多彩的霓虹,Android-自定义TextView(彩色字体与霓虹灯字体以及TextView的多项字体效果)...
- 数据结构1800题-错题集-第七章
- Android 垃圾回收机制★★★
- 如何在新系统下重玩老游戏
- linux中vi后如何退出命令,linux用VI编辑后保存退出命令是什么啊?
- 论Web App、Hybrid App、Native App三类主流APP设计差异
- 编译 mobileTerminal
- 微型计算机技术试题,《微型计算机技术》试题库
- 知网caj文件怎么转换成Word文档?