zoukankan      html  css  js  c++  java
  • 大一--纯C实现--职工信息管理--课程设计

    从今日0点0分开始到凌晨2点 有了个基本思路和实现了一点

    然后再折腾了大半个下午和一个晚自习 OK 基本上可以说就这样了吧

    我可能还会 再添加点功能实现 但是呢 也不一定 明天去问下老师 这样成不.....

    这应该算 自己的第一次蛮大的框架设计吧... 虽然 形容的不好...

    这次 有很多收获:

    1.....第一次 用到了工程这个东西.. 话说 其实 工程也可以自己去搭建MakeFile来实现的

    2....还有当你在做一个项目设计的时候 肯定会用到很多头文件 这时候 一定要注意变量的声明 最好尽量声明为局部变量  因为当你声明为全局变量的时候 一旦多次引用这个头文件 很容易产生重定义错误  我运行的时候反正报错  划动鼠标滚轮到我手都酸了.......

    3...头文件内 当你使用if while for什么的时候 一定要将它们放在函数内 不然也会编译报错的...

    4...我还是更希望 用C++去实现 反正 到了大二 也还是有课程设计..

    5...keep... 大神去了google .. this is a amazing company...

    虽然 有很多文件 我还是将它贴上来好了 不然下次被自己搞丢了 都不知道... 一共17个  .h文件+.cpp文件

     1 #include <stdio.h>
     2 #include <stdlib.h>
     3 #include "company.h"
     4 #include "sortBySalary.h"
     5 #include "searchSalary.h"
     6 #include "updateSalary.h"
     7 #include "addData.h"
     8 #include "removeData.h"
     9 #include "showInformation.h"
    10 #include "saveData.h"
    11 
    12 int main()
    13 {
    14     init();
    15     while(1)
    16     {
    17         int choice;
    18         scanf( "%d",&choice );
    19         switch (choice)
    20         {
    21             case 1:
    22                     show();
    23                     break;
    24             case 2:
    25                     add();
    26                     break;
    27             case 3:
    28                     remove();
    29                     break;
    30             case 4:
    31                     sort();
    32                     break;
    33             case 5:
    34                     search();
    35                     break;
    36             case 6:
    37                     update();
    38                     break;
    39             case 7: 
    40                     system("cls");
    41                     printf( "		成功重启 继续使用		
    " );
    42                     init();
    43                     break;
    44             case 0:
    45                     save();
    46                     printf( "		谢谢使用 员工管理系统V1.0版		
    " );
    47                     exit(0);
    48                     break;
    49             default:
    50                     printf( "请输入正确的数字功能键
    " );
    51                     break;
    52         }
    53     }
    54     return 0;
    55 }
    View Code
     1 // company.h
     2 #ifndef company
     3 #define company
     4 
     5 #include <stdio.h>
     6 #include <string.h>
     7 #include <stdlib.h>
     8 
     9 extern int cnt;
    10 
    11 typedef struct
    12 {
    13     int id;
    14     char gender[20];
    15     int age;
    16     char name[40];
    17     int basicSalary;
    18     int jobSalary;
    19     int jobSub;
    20     int specialSub;
    21     int sumSalary;
    22     int flag;
    23 }data;
    24 
    25 extern data employee[10010];
    26 
    27 void init();
    28 
    29 #endif // company.h
    View Code
     1 #include "company.h"
     2 
     3 int cnt = 3;
     4 
     5 data employee[10010];
     6 
     7 void init()
     8 {
     9     printf( "		欢迎使用 员工管理V1.0版 请根据下列数字键选择不同的功能		
    " );
    10     printf( "
    		<----1----> 显示员工信息 <----1---->		
    " );
    11     printf( "
    		<----2----> 增加员工信息 <----2---->		
    " );
    12     printf( "
    		<----3----> 根据员工编号来删除员工信息 <----3---->		
    " );
    13     printf( "
    		<----4----> 根据员工工资从小到大排序 <----4---->		
    " );
    14     printf( "
    		<----5----> 根据员工编号来查询员工工资 <----5---->		
    " );
    15     printf( "
    		<----6----> 根据员工编号来更新员工信息 <----6---->		
    " );
    16     printf( "
    		<----7----> 重启系统(仅保存初始员工信息) <----7---->		
    " );
    17     printf( "
    		<----0----> 安全退出 <----0---->		
    " );
    18     int id;
    19     char gender[20];
    20     int age;
    21     char name[40];
    22     int basicSalary;
    23     int jobSalary;
    24     int jobSub;
    25     int specialSub;
    26     int sumSalary;
    27     FILE* fp;
    28     int i;
    29     if ((fp = fopen("myInitalData.txt", "r")) == NULL)
    30     {
    31         printf("File open error please check again!!
    ");
    32         exit(0);
    33     }
    34     if( cnt!=3 )
    35     {
    36         cnt = 3;
    37     }
    38     if (cnt == 3)
    39     {
    40         for( i = 0 ; i<10010 ; i++ )
    41         {
    42             employee[i].flag = 0;
    43         }
    44         for (i = 0; i < 3; i++)
    45         {
    46             fscanf(fp, "%s %d %s %d %d %d %d %d %d", name, &id, gender,&age, &basicSalary, &jobSalary, &jobSub, &specialSub,&sumSalary);
    47             strcpy(employee[i].name, name);
    48             employee[i].id = id;
    49             employee[i].age = age;
    50             strcpy(employee[i].gender, gender);
    51             employee[i].basicSalary = basicSalary;
    52             employee[i].jobSalary = jobSalary;
    53             employee[i].jobSub = jobSub;
    54             employee[i].specialSub = specialSub;
    55             employee[i].sumSalary = sumSalary;
    56             employee[i].id = i+1;
    57             employee[i].flag = 1;
    58         }
    59     }
    60     if (fclose(fp))
    61     {
    62         printf("close the file error
    ");
    63         exit(0);
    64     }
    65 }
    View Code
     1 //sortBySalary.h
     2 #ifndef sortBySalary
     3 #define soryBySalary
     4 
     5 #include <stdio.h>
     6 #include <stdlib.h>
     7 #include "company.h"
     8 
     9 int cmp(const void *p, const void *q);
    10 
    11 void sort();
    12 
    13 #endif // sortBySalary.h
    View Code
     1 #include "sortBySalary.h"
     2 
     3 int cmp(const void *p, const void *q)
     4 {
     5     data *a = (data *)p;
     6     data *b = (data *)q;
     7     if (a->sumSalary == b->sumSalary)
     8         return a->id - b->id;
     9     return a->sumSalary - b->sumSalary;
    10 }
    11 
    12 void sort()
    13 {
    14     int i, rank;
    15     rank = 1;
    16     qsort( employee, cnt , sizeof(employee[0]), cmp );
    17     for( i = cnt-1 ; i>=0 ; i-- )
    18     {
    19         if( employee[i].flag )
    20         {
    21             printf("NO.%d:  %s %d %d %s %d %d %d %d %d
    ",rank,employee[i].name,employee[i].id,employee[i].age,employee[i].gender,employee[i].basicSalary,employee[i].jobSalary,employee[i].jobSub,employee[i].specialSub,employee[i].sumSalary);
    22             rank++;
    23         }
    24     }
    25     printf( "排序完毕 返回上级菜单
    ");
    26 }
    View Code
     1 //addData.h
     2 #ifndef addData
     3 #define addData
     4 
     5 #include <stdio.h>
     6 #include "company.h"
     7 
     8 void add();
     9 
    10 #endif // addData.h
    View Code
     1 #include "addData.h"
     2 
     3 void add()
     4 {
     5     int i , n;
     6     printf( "请输入要增加的员工信息数量
    " );
     7     scanf( "%d",&n );
     8     for( i = 0 ; i<n; i++ )
     9     {
    10         scanf("%s %s %d %d %d %d %d",employee[cnt].name,employee[cnt].gender,&employee[cnt].age,&employee[cnt].basicSalary,&employee[cnt].jobSalary,&employee[cnt].jobSub,&employee[cnt].specialSub );
    11         employee[cnt].id = cnt+1;
    12         employee[cnt].flag = 1;
    13         employee[cnt].sumSalary = employee[cnt].basicSalary + employee[cnt].jobSalary + employee[cnt].jobSub + employee[cnt].specialSub;
    14         cnt++;
    15     }
    16     printf( "添加完毕 返回上级菜单
    ");
    17 }
    View Code
     1 //removeData.h
     2 #ifndef removeData
     3 #define removeData
     4 
     5 #include <stdio.h>
     6 #include <string.h>
     7 #include "company.h"
     8 
     9 void remove();
    10 
    11 #endif // removeData.h
    View Code
     1 #include "addData.h"
     2 
     3 void remove()
     4 {
     5     printf( "请输入要删除员工信息的人数
    " );
     6     int index , n;
     7     scanf( "%d",&n );
     8     while( n-- )
     9     {
    10         printf( "请输入待删除员工信息的编号
    " );
    11         scanf( "%d",&index );
    12         index-=1;
    13         if( !employee[index].flag )
    14         {
    15             printf( "你输入的编号信息不存在 请重新输入
    " );
    16             n++;
    17         }
    18         else
    19         {
    20             employee[index].flag = 0;
    21         }
    22     }
    23     printf( "删除完毕 返回上级菜单
    ");
    24 }
    View Code
     1 // removeData.h
     2 #ifndef searchSalary
     3 #define searchSalary
     4 
     5 
     6 #include <stdio.h>
     7 #include "company.h"
     8 
     9 void search();
    10 
    11 #endif // searchSalary.h
    View Code
     1 #include "company.h"
     2 
     3 void search()
     4 {
     5     int n , index;
     6     printf( "请输入要查询的数量
    " );
     7     scanf( "%d",&n );
     8     while( n-- )
     9     {
    10         printf( "请输入查询的编号
    " );
    11         scanf( "%d",&index );
    12         index-=1;
    13         if( !employee[index].flag )
    14         {
    15             printf( "你输入的编号信息不存在 请重新输入
    " );
    16             n++;
    17         }
    18         else
    19         {
    20             printf( "%s %d %d
    ",employee[index].name,employee[index].id,employee[index].sumSalary );
    21         }
    22     }
    23     printf( "查询完毕 返回上级菜单
    ");
    24 }
    View Code
     1 // showInformation.h
     2 #ifndef showInformation
     3 #define showInformation
     4 
     5 #include <stdio.h>
     6 #include "company.h"
     7 
     8 
     9 void show();
    10 
    11 #endif // showInformation.h
    View Code
     1 #include "showInformation.h"
     2 
     3 void show()
     4 {
     5     int i;
     6     printf( "员工信息表:
    ");
     7     printf( "姓名 编号 性别 年龄 基本工资 职务工资 岗位津贴 特殊津贴 总工资
    "); 
     8     for( i = 0 ; i<cnt ; i++ )
     9     {
    10         if( employee[i].flag )
    11         {
    12             printf("%s   %d    %s    %d    %d    %d    %d    %d     %d
    ",employee[i].name,employee[i].id,employee[i].gender,employee[i].age,employee[i].basicSalary,employee[i].jobSalary,employee[i].jobSub,employee[i].specialSub,employee[i].sumSalary,employee[i].sumSalary);
    13         }
    14     }
    15     printf( "展示完毕 返回上级菜单
    ");
    16 }
    View Code
    1 // updataSalary.h
    2 #ifndef updateSalary
    3 #define updateSalary
    4 
    5 #include <stdio.h>
    6 #include "company.h"
    7 
    8 void update();
    9 #endif // updataSalary.h
    View Code
      1 #include "updateSalary.h"
      2 
      3 void update()
      4 {    
      5     char name[20];
      6     int age;
      7     char gender[10];
      8     int basicSalary;
      9     int jobSalary;
     10     int jobSub;
     11     int specialSub;
     12     int sumSalary;
     13     
     14     int index , choice;
     15     int isOver = 0;
     16     while(1)
     17     { 
     18         printf( "请输入要更新信息的员工的编号 或输入<=0的数直接退出
    ");
     19         scanf( "%d",&index );
     20         if( index<=0 )
     21         {
     22             printf( "安全退出 返回上级菜单
    " );
     23             break;
     24         }
     25         index-=1; 
     26         while( !employee[index].flag )
     27         {
     28             printf( "该员工编号不存在...请重新输入
    ");
     29             scanf( "%d",&index );
     30         }
     31         printf( "请输入更新的模块与内容
    " );
     32         printf( "		<----1---->姓名<----1---->		
    
    ");
     33         printf( "		<----2---->年龄<----2---->		
    
    ");
     34         printf( "		<----3---->性别<----3---->		
    
    ");
     35         printf( "		<----4---->基本工资<----4---->		
    
    ");
     36         printf( "		<----5---->职务工资<----5---->		
    
    ");
     37         printf( "		<----6---->岗位津贴<----6---->		
    
    ");
     38         printf( "		<----7---->特殊津贴<----7---->		
    
    ");
     39         printf( "		<----7---->总工资<----7---->		
    
    ");
     40         printf( "		<----0---->更新完毕 返回上层界面<----0---->		
    
    ");
     41         scanf( "%d",&choice );
     42         switch (choice)
     43         {
     44             case 1:
     45                     scanf( "%s",name );
     46                     strcpy( employee[index].name , name );
     47                     printf( "更新成功 继续操作
    "); 
     48                     break;
     49             case 2:
     50                     scanf( "%d",&age );
     51                     employee[index].age = age;
     52                     printf( "更新成功 继续操作
    ");
     53                     break;
     54             case 3:
     55                     scanf( "%s",gender );
     56                     strcpy( employee[index].gender , gender );
     57                     printf( "更新成功 继续操作
    ");
     58                     break;
     59             case 4:
     60                     scanf( "%d",&basicSalary );
     61                     employee[index]. sumSalary-=employee[index].basicSalary;
     62                     employee[index].basicSalary = basicSalary;
     63                     employee[index]. sumSalary+=employee[index].basicSalary;
     64                     printf( "更新成功 继续操作
    ");
     65                     break;
     66             case 5:
     67                     scanf( "%d",&jobSalary );
     68                     employee[index]. sumSalary-=employee[index].jobSalary;
     69                     employee[index].jobSalary = jobSalary;
     70                     employee[index]. sumSalary+=employee[index].jobSalary;
     71                     printf( "更新成功 继续操作
    ");
     72                     break;
     73             case 6:
     74                     scanf( "%d",&jobSub );
     75                     employee[index]. sumSalary-=employee[index].jobSub;
     76                     employee[index].jobSub = jobSub;
     77                     employee[index]. sumSalary+=employee[index].jobSub;
     78                     printf( "更新成功 继续操作
    ");
     79                     break;
     80             case 7:    
     81                     scanf( "%d",&specialSub );
     82                     employee[index]. sumSalary-=employee[index].specialSub;
     83                     employee[index].specialSub = specialSub;
     84                     employee[index]. sumSalary+=employee[index].specialSub;
     85                     printf( "更新成功 继续操作
    ");
     86                     break;
     87             case 8:
     88                     scanf( "%d",&sumSalary );
     89                     employee[index].sumSalary = sumSalary;
     90                     printf( "更新成功 继续操作
    ");
     91                     break;
     92             case 0:
     93                     isOver = 1;
     94                     break;
     95             default:
     96                     printf( "输入错误 重新输入编号信息与更新模块和内容
    " );
     97         }
     98         if( isOver )
     99         {
    100             printf( "更新成功 安全退出 返回上级菜单
    " );
    101             break;
    102         }            
    103     }
    104 }
    View Code
    1 // savaData.h
    2 #ifndef saveData
    3 #define saveData
    4 
    5 #include <stdio.h>
    6 #include "company.h"
    7 
    8 void save();
    9 #endif // savaData.h
    View Code
     1 #include "saveData.h"
     2 
     3 void save()
     4 {
     5     int i;
     6     FILE* fp;
     7     if((fp = fopen("myResultData.txt", "a")) == NULL)
     8     {
     9         printf("File open error please check again!!
    ");
    10         exit(0);
    11     }
    12     printf( "		员工信息已保存 请查阅		
    " );
    13     for( i = 0 ; i<cnt ; i++ )
    14     {
    15         fprintf(fp,"%s %d %s %d %d %d %d %d %d
    ", employee[i].name, employee[i].id, employee[i].gender,employee[i].age,employee[i].basicSalary, employee[i].jobSalary, employee[i].jobSub, employee[i].specialSub,employee[i].sumSalary);
    16     }
    17 }
    View Code

    很不满意地方 就是   没用到任何的算法-----------但是 感觉当你代码写多之后  思路还是蛮开阔的 排版也慢慢养成了

    today:

        你来 我等着

        念念不忘 必有回响

        我在最好的时候遇到你,是我的运气。可惜我没时间了。想想说人生无悔,都是赌气的话。人生若无悔,那该多无趣啊!

        我和你 应该是在最好时节相遇的吧---高中--回不去了---我的错---

    just follow your heart
  • 相关阅读:
    redis几种数据类型以及使用场景
    Ubuntu16.04安装redis和php的redis扩展
    详细透彻解读Git与SVN的区别(集中式VS分布式)
    bootstrap轮播如何支持移动端滑动手势
    vue添加cnzz统计访问量
    el-tabs值修改时更新路由参数值
    Vue ,elementUI,dropdown组件中command方法添加额外参数的方法
    vue页面滚动监听
    mintui tabbar底部跳转页面
    vue 引入bootstrap
  • 原文地址:https://www.cnblogs.com/radical/p/3780966.html
Copyright © 2011-2022 走看看