C语言课程设计_职工工资管理系统

要求

设计一个职工工资管理系统:

  1. (1)输入记录:将每一个职工的姓名、ID号以及基本工资、职务工资、岗位津贴、医疗保险、公积金的数据作为一个记录。该软件能建立一个新的数据文件或给已建立好的数据文件增加记录。
  2. (2)显示记录:根据用户提供的记录或者根据职工姓名显示一个或几个职工的各项工资和平均工资。
  3. (3)修改记录:可以对数据文件的任意记录的数据进行修改并在修改前后对记录内容进行显示。
  4. (4)查找记录:可以对数据文件的任意记录的数据进行查找并在查找前后对记录内容进行显示。
  5. (5)删除记录:可删除数据文件中的任一记录。 
  6. (6)统计: (A)计算各项工资平均工资及总工资, (B)统计符合指定条件(如职工工资前三项之和在3000元以上、3000~2000元、2000~1000元) 以内的工资职工人数及占总职工人数的百分比。(C)按字符表格形式打印全部职工工资信息表及平均工资(包括各项总的平均工资)。 
  7. (7)保存数据文件功能。

课程设计说明书

(1)系统分析:包括系统功能模块划分、数据的存储和记录属性分析
(2)概要设计:本程序功能模块根据程序设计的要求,将程序划分为6个模块分别编写。六个模块分别为:
1.输入职工基本信息模块
2.显示职工基本信息模块
3.修改职工基本信息模块
4.查找职工基本信息模块
5.删除职工基本信息模块 
6.统计职工基本信息模块C语言课程设计_职工工资管理系统_第1张图片
 

C语言课程设计_职工工资管理系统_第2张图片

C语言课程设计_职工工资管理系统_第3张图片

C语言课程设计_职工工资管理系统_第4张图片

源代码 

#include
#include
#include
#include
#define N 100
struct clerk
{
 	int num;         
 	char name[20];   
 	int jbgz;        
 	int zwgz;       
 	int jt;          
 	int yb;         
 	int gjj;        
 	int total;       
}em[100];       
void menu();        //菜单界面
void input();       //输入
void save(int);     //保存文件
void display();     //显示职工文件
void del();         //删除
void search();      //查找
void search_num();  //按工号
void search_name(); //按姓名
void modify();      //修改
void sta();         //统计
void start();       //开始
void start() 
{
    	system("cls");    //清屏
	printf("\n\n\n\n\n\n");
	printf("********进入职工工资管理系统**********");
}
void menu() 
{
	system("cls"); 
	printf("***菜单***\n\n");
	printf(">>>>>>>>>>>>>>>>>>>>>>>>>  1  输入  \n\n");
	printf(">>>>>>>>>>>>>>>>>>>>>>>>>  2  显示  \n\n");
	printf(">>>>>>>>>>>>>>>>>>>>>>>>>  3  查找  \n\n");
	printf(">>>>>>>>>>>>>>>>>>>>>>>>>  4  删除  \n\n");
	printf(">>>>>>>>>>>>>>>>>>>>>>>>>  5  添加  \n\n");
	printf(">>>>>>>>>>>>>>>>>>>>>>>>>  6  修改  \n\n");
	printf(">>>>>>>>>>>>>>>>>>>>>>>>>  7  统计  \n\n");
	printf(">>>>>>>>>>>>>>>>>>>>>>>>>  8  退出  \n\n");
	}
void input()   
{
   	int i,m;
   	system("cls");
  	printf("职工人数(1--100):");
   	scanf("%d",&m);
	for (i=0;i=1&&t<=3)
    		{
    			button=1;
    			break;
    		}
    		else
    		{
   			button=0;
   			printf("输入错误");
    		}
 	}
    	while(button==0);
    	while(button==1)
 	{
    		switch(t)   //选择查询方式
    		{ 
     			case 1:printf("按工号查询");search_num();break;
     			case 2:printf("按姓名查询");search_name();break;
				case 3:button=1;break;
				default:break;
    		}
    
 	}

}
void search_num()   //按职工号查询
{
  int a;
  int i,t;
  int m=load();
  printf("请输入要查找的职工号:\n");
  scanf("%d",&a);
  for(i=0;i8||c<1)  
         				printf("\n选择错误,请重新选择!\n");  
   			}
        		button=0;
  		}		
        
 	}
    	if(button==1)
 	printf("\n查无此人\n");
		do  
 	{
  		switch(c)      
  		{  
           		case 1:printf("职工号改为: ");
      		 	       scanf("%d",&num);
      			       em[i-1].num=num;
           		       break;  
           		case 2:printf("姓名改为: ");
                               scanf("%s",name);
                               strcpy(em[i-1].name,name); 
                               break;  
           		case 3:printf("基本工资改为: ");
                               	getchar();
                               	scanf("%d",&jbgz);
                               	em[i-1].jbgz=jbgz;
      			       	em[i-1].total=( em[i-1].jbgz+ em[i-1].zwgz + em[i-1].jt- em[i-1].yb- em[i-1].gjj);
           			break;  
           		case 4:printf("职务工资改为: ");
      				scanf("%d",&zwgz);
      				em[i-1].zwgz=zwgz;
     		 		em[i-1].total=( em[i-1].jbgz+ em[i-1].zwgz + em[i-1].jt- em[i-1].yb- em[i-1].gjj);
           			break;  
           		case 5:printf("津贴改为: ");
      				scanf("%d",&jt);
      				em[i-1].jt=jt; 
      				em[i-1].total=( em[i-1].jbgz+ em[i-1].zwgz + em[i-1].jt- em[i-1].yb- em[i-1].gjj);
           			break;  
           		case 6:printf("医疗保险改为: ");
      				scanf("%d",&yb);
      				em[i-1].yb=yb;
      				em[i-1].total=( em[i-1].jbgz+ em[i-1].zwgz + em[i-1].jt- em[i-1].yb- em[i-1].gjj);
           			break;  
           		case 7:printf("公积金改为: ");
      				scanf("%d",&gjj);
      				em[i-1].gjj=gjj;
      				em[i-1].total=( em[i-1].jbgz+ em[i-1].zwgz + em[i-1].jt- em[i-1].yb- em[i-1].gjj);
           			break;  
           		case 8:modify(); 
           			break;  
  		}
		printf("\n");
  		printf("\n\n 确定修改 请按1 ; 重新修改 请按2:  \n"); 
  		scanf("%d",&b);
 	}	  
   	while(b==2);
   	printf("\n修改后的所有职工信息:\n");
   	printf("\n");
   	save(m);
   	display();
   	printf("\n按1 继续修改 ,不再修改请按0\n");
   	scanf("%d",&t);
   	switch(t)
 	{
    		case 1:modify();break;
    		case 0:break;
    		default :break;
 	}
}
void sta()    //统计
{
 	int i;
 	int sum=0; 
 	int a=0,b=0,c=0;
 	int m=load();
	system("cls");
 	for(i=0;i=1000) 
    			{a++;}
  		if(em[i].total>2000&&em[i].total<=3000) 
    			{b++;}
  		if(em[i].total>3000) 
    			{c++;}
		}
	printf("\n\n工资总额为:%d\n",sum);
	printf("平均工资为:%d\n",sum/m);
	printf("\n基本工资、职务工资、津贴之和\n");
	printf("在1000-2000圆的员工占总员工的百分之%d\n",a*100/m); 
	printf("在2000-3000圆的员工占总员工的百分之%d\n",b*100/m); 
	printf("在3000圆以上的员工占总员工的百分之%d\n",c*100/m);
	printf("\n\n按任意键继续");
	getch();
	menu();
}
void main()
{   
	int n,button;
 	start();
	getch();
 	menu();
	do
 	{
    		printf("功能选择(1--7):");
    		scanf("%d",&n);
    		if(n>=1&&n<=7)
    		{
    			button=1;
    			break;
    		}
    		else
    		{
   			button=0;
   			printf("您输入有误,请重新选择!");
    		}
 	}
    	while(button==0);
    	while(button==1)
     {
			switch(n)
  	{	
       		case 1: input();break;
       		case 2: display();break;
       		case 3: search();break; 
       		case 4:del();break;
       		case 5:modify();break;
       		case 6:sta();break;
       		case 7:exit(0);break;
       		default :break;
  	}
			getchar();
  	printf("\n");
  	printf("按任意键继续\n");
  	getch();
     	system("cls");  
     	menu();
     	printf("功能选择(1--7):");
     	scanf("%d",&n);
     	printf("\n");
     }
 
}

设计心得 

 这两周的c语言课程设计,我加深了对c语言程序设计的理解,使自己的操作更加熟练,发现了自己的不足,为自己今后的继续学习指明了方向。在我看来,考试考察的仅仅是个别知识点,而课程设计就比较的全面。虽然说只是做了一个程序,但是其中运用到的知识确实很多所学到的内容,很好的考验了我们的综合能力。在这次课程设计中,我巩固所了学过的知识,能用汇编语言熟练地运用顺序、选择、循环三大结构,进一步掌握结构体数组的使用,文件函数的使用,掌握了子程序的定义及调用。并在调试过程中不断发现与改正错误,完善算法,改进用户体验等等。调试索然繁琐而艰苦,但极大的促进了我编程能力的提高。由于自己目前能力有限,该程序还有诸多不足,感谢指正。感谢老师的悉心教导与细致的帮助。虽然c语言的课程与课程设计都已结束,但通过这次课程设计我也发现了差距,并将在未来努力学习,积极实践,使自己能真正的掌握运用c语言。

附件:源码下载

计算机课程设计-C语言课程设计职工工资管理系统.zip-C文档类资源-CSDN文库https://download.csdn.net/download/NBITer/87372935?spm=1001.2014.3001.5503

你可能感兴趣的:(C语言课程设计,c语言,课程设计,开发语言)