C语言程序设计--职工工资管理系统

一.程序设计思路

1、设计思路

(1)根据题目要求,应该把职工工资信息用结构体形式输入,在定义一个全局变量和文件指针进行整个程序的运行,然后把职工工资信息送到文件中,所以应该提供一个结构体和文件的输入输出等操作;

(2)在程序中需实现职工工资浏览、查询、统计等功能的操作,所以需要建立相应的功能模块来实现;

(3)另外还需要提供键盘式选择菜单实现功能,在运行时达到所要的目的。

2、总体设计

整个系统可以分为信息输入、信息新增、信息浏览、信息排序和信息查询五个主要模块。

3、详细设计

1)信息输入

printf("请您输入姓名:"); 

scanf("%s",p->data.name); 

getchar(); 

printf("请您输入性别(m/f):"); 

scanf("%s",p->data.sex); 

getchar(); 

printf("请您输入上旬完成(百分比):"); 

scanf("%f",&p->data.spercent); 

getchar(); 

printf("请您输入中旬完成(百分比):"); 

scanf("%f",&p->data.zpercent); 

getchar(); 

printf("请您输入下旬完成(百分比):"); 

scanf("%f",&p->data.xpercent); 

getchar(); 

p->data.totle=p->data.spercent+p->data.zpercent+p->data.xpercent; 

p->data.ave=p->data.totle / 3; 

if(p->data.totle<100)

{p->data.jiangjin=(p->data.totle-100)*10;}

else p->data.jiangjin=(p->data.totle-100)*10;

//信息输入已经完成 

2)浏览模块

调用排序模块的排序功能,可以浏览排序后的所有职工信息。

3)排序模块

排序模块提供菜单选择,实现按照工资卡号升序、实发工资升序排序。排序方法可以选择冒泡排序、插入排序、选择排序等,本系统用的是冒泡排序。

4)查询模块

实现按照编号和姓名的查询,采用基本的查找方法即可。

二.功能模块图

 

.数据结构设计

系统用将职工各项信息以结构体类型char dir来定义,它包括num,name[15]等不同类型的数据项,同时定义了结构体数组,包括N个数组元素,对应N个职工,每一个元素用来存放一个职工的数据;每个职工的信息以结构体方式从内存和磁盘文件中进行存储和导出。以结构体方式来整合职工的不同信息,将不同的数据组合成一个有机整体,非常方便程序的调用。

四.算法设计

1、主函数

主函数一般设计比较简单,只提供输入、处理和输出部分的函数调用。各功能模块用菜单方式选择。

#include "stdio.h" 
#include "stdlib.h"  
#include "string.h" 
int shoudsave=0;  
char dir[15]; 
struct member  
{  
char num[5];//编号 
char name[15];  
char sex[1];  
float spercent;  
float zpercent;  
float xpercent;  
float jiangjin; 
float totle;  
float ave;  
}; //一个结构体 
typedef struct node  
{  
struct member data;//指向结构体的结构体  
struct node *next;  
}Node,*Link;  
void explain() 
{printf("=============================关于此程序的操作说明==============================\n"); 
printf("===1>:员工每旬应该完成量为33.3个百分点,输入只输数字部分。\n"); 
printf("===2>:员工每月应该完成量完成量为100个百分点。\n"); 
printf("===3>:员工奖金按其超额总应该完成量(即百分之百)的多少计算。\n"); 
printf("===4>:奖金=(总完成比-1)*1000。\n"); 
printf("===5>:员工底金为1000元。\n");  
printf("===6>:逻辑删除资料必须在已经保存了先前记录的基础上方可进行。\n");  
printf("===7>:进行逻辑删除资料后如果保存即变为物理删除。\n");  
printf("===8>:本程序在c++环境中完成,程序文件扩展名为.c。\n");  

} 

void menu() //菜单  
{  
printf("********************************************************************************");  
printf("\t1获取说明信息\t\t\t\t\t 2输入员工资料\n");  
printf("\t3删除员工资料\t\t\t\t\t 4查询员工资料\n");  
printf("\t5修改员工资料\t\t\t\t\t 6显示员工资料\n");  
printf("\t7统计员工业绩\t\t\t\t\t 8排序员工实发工资\n");  
printf("\t9保存员工资料\t\t\t\t\t10逻辑删除员工资料\n"); 
printf("\t0退出系统\n"); 
printf("********************************************************************************\n");  
}  2、各功能模块设计
(1) 输入模块
struct member  
{  
char num[5];//编号 
char name[15];  
char sex[1];  
float spercent;  
float zpercent;  
float xpercent;  
float jiangjin; 
float totle;  
float ave;  
}; //一个结构体 [流程图]

 

文章借鉴于此纷传

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值