博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
大一--纯C实现--职工信息管理--课程设计
阅读量:5098 次
发布时间:2019-06-13

本文共 12503 字,大约阅读时间需要 41 分钟。

从今日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 
2 #include
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( "\t\t成功重启 继续使用\t\t\n" );42 init();43 break;44 case 0:45 save();46 printf( "\t\t谢谢使用 员工管理系统V1.0版\t\t\n" );47 exit(0);48 break;49 default:50 printf( "请输入正确的数字功能键\n" );51 break;52 }53 }54 return 0;55 }
View Code
1 // company.h 2 #ifndef company 3 #define company 4  5 #include 
6 #include
7 #include
8 9 extern int cnt;10 11 typedef struct12 {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( "\t\t欢迎使用 员工管理V1.0版 请根据下列数字键选择不同的功能\t\t\n" );10     printf( "\n\t\t<----1----> 显示员工信息 <----1---->\t\t\n" );11     printf( "\n\t\t<----2----> 增加员工信息 <----2---->\t\t\n" );12     printf( "\n\t\t<----3----> 根据员工编号来删除员工信息 <----3---->\t\t\n" );13     printf( "\n\t\t<----4----> 根据员工工资从小到大排序 <----4---->\t\t\n" );14     printf( "\n\t\t<----5----> 根据员工编号来查询员工工资 <----5---->\t\t\n" );15     printf( "\n\t\t<----6----> 根据员工编号来更新员工信息 <----6---->\t\t\n" );16     printf( "\n\t\t<----7----> 重启系统(仅保存初始员工信息) <----7---->\t\t\n" );17     printf( "\n\t\t<----0----> 安全退出 <----0---->\t\t\n" );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!!\n");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\n");63         exit(0);64     }65 }
View Code
1 //sortBySalary.h 2 #ifndef sortBySalary 3 #define soryBySalary 4  5 #include 
6 #include
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\n",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( "排序完毕 返回上级菜单\n");26 }
View Code
1 //addData.h 2 #ifndef addData 3 #define addData 4  5 #include 
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( "请输入要增加的员工信息数量\n" ); 7     scanf( "%d",&n ); 8     for( i = 0 ; i
View Code
1 //removeData.h 2 #ifndef removeData 3 #define removeData 4  5 #include 
6 #include
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( "请输入要删除员工信息的人数\n" ); 6     int index , n; 7     scanf( "%d",&n ); 8     while( n-- ) 9     {10         printf( "请输入待删除员工信息的编号\n" );11         scanf( "%d",&index );12         index-=1;13         if( !employee[index].flag )14         {15             printf( "你输入的编号信息不存在 请重新输入\n" );16             n++;17         }18         else19         {20             employee[index].flag = 0;21         }22     }23     printf( "删除完毕 返回上级菜单\n");24 }
View Code
1 // removeData.h 2 #ifndef searchSalary 3 #define searchSalary 4  5  6 #include 
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( "请输入要查询的数量\n" ); 7     scanf( "%d",&n ); 8     while( n-- ) 9     {10         printf( "请输入查询的编号\n" );11         scanf( "%d",&index );12         index-=1;13         if( !employee[index].flag )14         {15             printf( "你输入的编号信息不存在 请重新输入\n" );16             n++;17         }18         else19         {20             printf( "%s %d %d\n",employee[index].name,employee[index].id,employee[index].sumSalary );21         }22     }23     printf( "查询完毕 返回上级菜单\n");24 }
View Code
1 // showInformation.h 2 #ifndef showInformation 3 #define showInformation 4  5 #include 
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( "员工信息表:\n"); 7     printf( "姓名 编号 性别 年龄 基本工资 职务工资 岗位津贴 特殊津贴 总工资\n");  8     for( i = 0 ; i
View Code
1 // updataSalary.h2 #ifndef updateSalary3 #define updateSalary4 5 #include 
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的数直接退出\n"); 19         scanf( "%d",&index ); 20         if( index<=0 ) 21         { 22             printf( "安全退出 返回上级菜单\n" ); 23             break; 24         } 25         index-=1;  26         while( !employee[index].flag ) 27         { 28             printf( "该员工编号不存在...请重新输入\n"); 29             scanf( "%d",&index ); 30         } 31         printf( "请输入更新的模块与内容\n" ); 32         printf( "\t\t<----1---->姓名<----1---->\t\t\n\n"); 33         printf( "\t\t<----2---->年龄<----2---->\t\t\n\n"); 34         printf( "\t\t<----3---->性别<----3---->\t\t\n\n"); 35         printf( "\t\t<----4---->基本工资<----4---->\t\t\n\n"); 36         printf( "\t\t<----5---->职务工资<----5---->\t\t\n\n"); 37         printf( "\t\t<----6---->岗位津贴<----6---->\t\t\n\n"); 38         printf( "\t\t<----7---->特殊津贴<----7---->\t\t\n\n"); 39         printf( "\t\t<----7---->总工资<----7---->\t\t\n\n"); 40         printf( "\t\t<----0---->更新完毕 返回上层界面<----0---->\t\t\n\n"); 41         scanf( "%d",&choice ); 42         switch (choice) 43         { 44             case 1: 45                     scanf( "%s",name ); 46                     strcpy( employee[index].name , name ); 47                     printf( "更新成功 继续操作\n");  48                     break; 49             case 2: 50                     scanf( "%d",&age ); 51                     employee[index].age = age; 52                     printf( "更新成功 继续操作\n"); 53                     break; 54             case 3: 55                     scanf( "%s",gender ); 56                     strcpy( employee[index].gender , gender ); 57                     printf( "更新成功 继续操作\n"); 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( "更新成功 继续操作\n"); 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( "更新成功 继续操作\n"); 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( "更新成功 继续操作\n"); 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( "更新成功 继续操作\n"); 86                     break; 87             case 8: 88                     scanf( "%d",&sumSalary ); 89                     employee[index].sumSalary = sumSalary; 90                     printf( "更新成功 继续操作\n"); 91                     break; 92             case 0: 93                     isOver = 1; 94                     break; 95             default: 96                     printf( "输入错误 重新输入编号信息与更新模块和内容\n" ); 97         } 98         if( isOver ) 99         {100             printf( "更新成功 安全退出 返回上级菜单\n" );101             break;102         }            103     }104 }
View Code
1 // savaData.h2 #ifndef saveData3 #define saveData4 5 #include 
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!!\n");10         exit(0);11     }12     printf( "\t\t员工信息已保存 请查阅\t\t\n" );13     for( i = 0 ; i
View Code

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

 

today:

    你来 我等着

    念念不忘 必有回响

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

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

转载于:https://www.cnblogs.com/radical/p/3780966.html

你可能感兴趣的文章
asp.net 获取IP地理位置的几个主要接口
查看>>
Python入门-函数
查看>>
[HDU5727]Necklace(二分图最大匹配,枚举)
查看>>
距离公式汇总以及Python实现
查看>>
设计模式之装饰者模式
查看>>
【转】Linux内核调试方法总结
查看>>
一道不知道哪里来的容斥题
查看>>
Blender Python UV 学习
查看>>
window添加右键菜单
查看>>
入手腾龙SP AF90mm MACRO
查看>>
ORACLE 递归查询
查看>>
[Android] 开发第十天
查看>>
操作~拷贝clone()
查看>>
Java开发中的23种设计模式
查看>>
jQuery源码分析(2) - 为什么不用new jQuery而是用$()
查看>>
[转]【EL表达式】11个内置对象(用的少) & EL执行表达式
查看>>
ArrayList对象声明& arrayList.size()
查看>>
并发编程 线程
查看>>
Mysql 解压安装
查看>>
Mysql
查看>>