课程设计名称:工资管理系统
课程设计者:盈泽
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <windows.h>
#define OK 1
#define Error 0
int n = 0;
/*工资管理系统----- Disign By YZ团队*/
//----------------------------------------------------------------------------
typedef struct People
{int ID;//员工编号char Name[20];//姓名char Sex[20];//性别int Age;//年龄int Money;//薪资int Reward;//奖金int Insurance;//保险int Allmoney;//实际工资struct People*next;
} PeopleLink,*Pointer;
PeopleLink stu[105];
//-----------------------------------------------------------------------------
int User_Max();
FILE*openfile(char *fileaddress,char *openmode);
void Insert(Pointer*Head);//插入
void Serch(Pointer Head);//搜寻
void Update(Pointer*Head);//修改
void Delete(Pointer*Head);//删除
void Sort(Pointer Head);//排序
void pri(Pointer Head);//打印
void Sort(Pointer Head);//排序
void Save();//文件输出
Pointer maopao1(Pointer l);//年龄
Pointer maopao1(Pointer l);//薪金
Pointer maopao1(Pointer l);//实际收入
Pointer Creat();
Pointer Copy(Pointer Head);
Pointer Input(Pointer Head);//文件写入
Pointer Creatfile();
//-----------------------------------------------------------------------------
char Admin[200];
char Password[200];
int tt;
//-----------------------------------------------------------------------------
int main()//-----------------------------------------------------main() BY 师祥睿
{int t;int res = 3;int ans;Pointer Head= (Pointer)malloc(sizeof(PeopleLink));Pointer k;//k = Head;Head->next = NULL;printf("\t\t\t\t\t\t工资管理系统\n");printf("\t\t\t\t\t\t                                      -------------- Disign By YZ团队\n");while(res--){if(User_Max())ans = 1;elseans = 0;if(ans == 1)break;elseprintf("密码输入错误,请重新输入----剩余输入密码次数%d次\n",res);}if(ans){printf("载入中.....\n");Sleep(2000);void First();while(1){printf("------------------------------------------------工资管理系统 v1.0------------------------------------------------\n");printf("\t\t\t\t\t\t1---添加工资记录\n");printf("\t\t\t\t\t\t2---显示工资记录\n");printf("\t\t\t\t\t\t3---根据姓名查询工资数据\n");printf("\t\t\t\t\t\t4---根据姓名删除工资数据\n");printf("\t\t\t\t\t\t5---根据姓名修改工资数据\n");printf("\t\t\t\t\t\t6---根据工资某项进行排序\n");printf("\t\t\t\t\t\t7---读取工资信息\n");printf("\t\t\t\t\t\t8---保存工资信息\n");printf("\t\t\t\t\t\t0---退出系统\n");printf("---------------------------------------------------------------------------------------------------------------------\n");printf("\t\t\t\t\t\t请输入选项(0~8)\n");scanf("%d",&t);if(t == 0)break;switch(t){case 1:Insert(&Head);break;case 2:pri(Head);break;case 3:Serch(Head);break;case 4:Delete(&Head);break;case 5:Update(&Head);break;case 6:Sort(Head);break;case 7:Head = Creat();break;case 8:Input(Head);default:break;}}}elseprintf("登陆已被限制\n");return 0;
}
//-------------------------------------------------------------------------------
void Insert(Pointer*Head)//------------------------------------------------------Insert()and  User_Max() BY 杨州
{int num_t;Pointer p,q,r;printf("请输入编号:\n");scanf("%d",&num_t);p = q = *Head;p = p->next;while(p != NULL){if(p->ID >= num_t){printf("已经有相同编号:\n");return;}else{q = p;p = p->next;}}r = (Pointer)malloc(sizeof(PeopleLink));r->next = NULL;if(q == NULL)*Head = r;elseq->next = r;r->ID = num_t;printf("请输入姓名:\n");scanf("%s",r->Name);printf("请输入性别:\n");scanf("%s",r->Sex);printf("请输入年龄:\n");scanf("%d",&r->Age);printf("请输入薪金:\n");scanf("%d",&r->Money);printf("请输入奖金:\n");scanf("%d",&r->Reward);printf("请输入保险金额:\n");scanf("%d",&r->Insurance);printf("计算实发工资为:\n");r->Allmoney = r->Money + r->Reward - r->Insurance;printf("%d\n",r->Allmoney);
}
void Serch(Pointer Head)//------------------------------------------------Serch()BY 李岩
{int flag = 1;char Name[20];Pointer p;p = Head;printf("请输入您要查找的姓名:\n");scanf("%s",Name);while(p != NULL && flag){if((strcmp(Name,p->Name)) == NULL){flag = 0;}else{p = p->next;}}if(flag == 0){printf("ID\t姓名\t性别\t年龄\t薪金\t奖金\t保险金额\t实际收入\n");printf("%d\t",p->ID);printf("%s\t",p->Name);printf("%s\t",p->Sex);printf("%d\t",p->Age);printf("%d\t",p->Money);printf("%d\t",p->Reward);printf("%d\t\t",p->Insurance);printf("%d\n",p->Allmoney);}else{printf("没有要查询的记录\n");}
}
void Update(Pointer *Head)//----------------------------------------------------------Update() BY 付璐
{Pointer r;char Name[20];int flag = 1;r = *Head;r = r->next;printf("请输入要修改的姓名\n");scanf("%s",Name);while(r != NULL && flag){if(strcmp(Name,r->Name) == NULL){printf("请输入姓名:\n");scanf("%s",r->Name);printf("请输入性别:\n");scanf("%s",r->Sex);printf("请输入年龄:\n");scanf("%d",&r->Age);printf("请输入薪金:\n");scanf("%d",&r->Money);printf("请输入奖金:\n");scanf("%d",&r->Reward);printf("请输入保险金额:\n");scanf("%d",&r->Insurance);int t;t = r->Money + r->Reward - r->Insurance;printf("计算实发工资为:\n");r->Allmoney = t;printf("%d\n",r->Money);flag = 0;}}if(flag)printf("没有查询到要修改的记录:\n");
}
void Delete(Pointer *Head)//----------------------------------------------------------Delete() and pri?() BY 江海宾
{int flag = 1;char Name[20];printf("请输入您要删除记录的姓名:\n");scanf("%s",Name);Pointer p,q;p = q = *Head;while(p != NULL && flag){if(strcmp(Name,p->Name) == NULL){int t = 0;printf("是否要真的删除信息?请输入\n1--是\n0--否\n");scanf("%d",&t);if(t){if(p == *Head){*Head = p->next;free(p);flag = 0;}else{q->next = p->next;free(p);flag = 0;}}else{break;}}else{q = p;p = p->next;}}if(flag)printf("没有找到可以删除的数据\n");
}
int User_Max()
{int i;char c[100];char a[] = "admin";char b[] = "admin";printf("请输入管理员账号:\n");printf("账号:");scanf("%s",Admin);printf("请输入管理员密码:\n");for(i = 0;i < 100;++i){Password[i] = getch();if(Password[i] == '\r')break;printf("*");}Password[i] = '\0';printf("\n");if((strcmp(Admin,a)) == 0 && (strcmp(Password,b)) == 0)return 1;elsereturn 0;
}
void pri(Pointer Head)
{Pointer p;p = Head;int t = 0;if(p == NULL)printf("无记录\n");p = p->next;while(p!=NULL){if(!t)printf("ID\t姓名\t性别\t年龄\t薪金\t奖金\t保险金额\t实发工资\n");t = 1;printf("%d\t",p->ID);printf("%s\t",p->Name);printf("%s\t",p->Sex);printf("%d\t",p->Age);printf("%d\t",p->Money);printf("%d\t",p->Reward);printf("%d\t\t",p->Insurance);printf("%d\t\n",p->Allmoney);p = p->next;}
}
/*void bubblesort(Pointer Head)
{if(Head->next == NULL || Head->next->Name == NULL){return;}Pointer ll,pre,cur,next,end,temp;ll = (Pointer)malloc(sizeof(PeopleLink));ll = Head;end = NULL;while(Head !=end){for(pre = ll, cur = pre -> next, next = cur -> next; next != end; pre = pre -> next, cur = cur -> next, next = next -> next){if(cur->Age > next->Age){cur -> next = next -> next;pre -> next = next;next -> next = cur;temp = next;next = cur;cur = temp;}end = cur;}}
}*/
Pointer maopao1(Pointer l)
{Pointer head,ptr,qtr,team;team=(Pointer)malloc(sizeof(PeopleLink));team->next=NULL;int len=0;int i,j;head = l;ptr=head->next;while(ptr != NULL){ptr=ptr->next;len++;}for( i=0; i<len; i++){qtr=head->next;ptr=head->next->next;for( j=0; j<len-i-1; j++){if(qtr->Age>ptr->Age){team->ID = qtr->ID;strcpy(team->Name,qtr->Name);strcpy(team->Sex,qtr->Sex);team->Money = qtr->Money;team->Age = qtr->Age;team->Reward = qtr->Reward;team->Insurance = qtr->Insurance;team->Allmoney = qtr->Allmoney;qtr->ID = ptr->ID;strcpy(qtr->Name,ptr->Name);strcpy(qtr->Sex,ptr->Sex);qtr->Money = ptr->Money;qtr->Age = ptr->Age;qtr->Reward = ptr->Reward;qtr->Insurance = ptr->Insurance;qtr->Allmoney = ptr->Allmoney;ptr->ID = team->ID;strcpy(ptr->Name,team->Name);strcpy(ptr->Sex,team->Sex);ptr->Money = team->Money;ptr->Age = team->Age;ptr->Reward = team->Reward;ptr->Insurance = team->Insurance;ptr->Allmoney = team->Allmoney;}qtr = qtr->next;ptr = ptr->next;}}return head;
}
Pointer maopao2(Pointer l)
{Pointer head,ptr,qtr,team;team=(Pointer)malloc(sizeof(PeopleLink));team->next=NULL;int len=0;int i,j;head = l;ptr=head->next;while(ptr != NULL){ptr=ptr->next;len++;}for( i=0; i<len; i++){qtr=head->next;ptr=head->next->next;for( j=0; j<len-i-1; j++){if(qtr->Money>ptr->Money){team->ID = qtr->ID;strcpy(team->Name,qtr->Name);strcpy(team->Sex,qtr->Sex);team->Money = qtr->Money;team->Age = qtr->Age;team->Reward = qtr->Reward;team->Insurance = qtr->Insurance;team->Allmoney = qtr->Allmoney;qtr->ID = ptr->ID;strcpy(qtr->Name,ptr->Name);strcpy(qtr->Sex,ptr->Sex);qtr->Money = ptr->Money;qtr->Age = ptr->Age;qtr->Reward = ptr->Reward;qtr->Insurance = ptr->Insurance;qtr->Allmoney = ptr->Allmoney;ptr->ID = team->ID;strcpy(ptr->Name,team->Name);strcpy(ptr->Sex,team->Sex);ptr->Money = team->Money;ptr->Age = team->Age;ptr->Reward = team->Reward;ptr->Insurance = team->Insurance;ptr->Allmoney = team->Allmoney;}qtr = qtr->next;ptr = ptr->next;}}return head;
}
Pointer maopao3(Pointer l)
{Pointer head,ptr,qtr,team;team=(Pointer)malloc(sizeof(PeopleLink));team->next=NULL;int len=0;int i,j;head = l;ptr=head->next;while(ptr != NULL){ptr=ptr->next;len++;}for( i=0; i<len; i++){qtr=head->next;ptr=head->next->next;for( j=0; j<len-i-1; j++){if(qtr->Allmoney>ptr->Allmoney){team->ID = qtr->ID;strcpy(team->Name,qtr->Name);strcpy(team->Sex,qtr->Sex);team->Money = qtr->Money;team->Age = qtr->Age;team->Reward = qtr->Reward;team->Insurance = qtr->Insurance;team->Allmoney = qtr->Allmoney;qtr->ID = ptr->ID;strcpy(qtr->Name,ptr->Name);strcpy(qtr->Sex,ptr->Sex);qtr->Money = ptr->Money;qtr->Age = ptr->Age;qtr->Reward = ptr->Reward;qtr->Insurance = ptr->Insurance;qtr->Allmoney = ptr->Allmoney;ptr->ID = team->ID;strcpy(ptr->Name,team->Name);strcpy(ptr->Sex,team->Sex);ptr->Money = team->Money;ptr->Age = team->Age;ptr->Reward = team->Reward;ptr->Insurance = team->Insurance;ptr->Allmoney = team->Allmoney;}qtr = qtr->next;ptr = ptr->next;}}return head;
}
void Sort(Pointer Head)//-------------------------------------Sort()、maopao1()、maopao2()、maopao3() BY 张建华
{int s;Pointer t = NULL;printf("请输入需要排序信息\n");printf("1---年龄\n");printf("2---薪金\n");printf("3---实际工资\n");scanf("%d",&s);t = Head->next;if(s == 1){t = maopao1(Head);pri(t);}else if(s == 2){t = maopao2(Head);pri(t);}else if(s == 3){t = maopao3(Head);pri(t);}
}
Pointer Input(Pointer Head)//-------------------------------------------------------Input()、openfile() and Creat() BY 陈祥田
{FILE*fp;if((fp = fopen("d:\\input.txt","w+")) == NULL);if((fp = fopen("d:\\input.txt","at+")) == NULL){printf("Can't open the file\n");}if(n == 0){fprintf(fp,"%s","ID      姓名    性别    年龄    薪金    奖金    保险金额      实际收入\n");n = 1;}Pointer p;p = Head;p = p->next;while(p!=NULL){fprintf(fp,"%d\t",p->ID);fprintf(fp,"%s\t",p->Name);fprintf(fp,"%s\t",p->Sex);fprintf(fp,"%d\t",p->Age);fprintf(fp,"%d\t",p->Money);fprintf(fp,"%d\t",p->Reward);fprintf(fp,"%d\t\t",p->Insurance);fprintf(fp,"%d\n",p->Allmoney);p = p->next;}fflush(fp);fclose(fp);
}
FILE*openfile(char *fileaddress,char *openmode)
{FILE *fp;if((fp = fopen(fileaddress,openmode))== NULL){printf("File open error!\n");exit(0);}return fp;
}
Pointer Creatfile()
{Pointer p,team,ptr,head;char name[20],sex[20];FILE* fp = openfile("d:\\input.txt","a+");head = (Pointer)malloc(sizeof(PeopleLink));team = (Pointer)malloc(sizeof(PeopleLink));team->next = NULL;p = head;p->next = NULL;fscanf(fp,"%d%s%s%d%d%d%d%d",&team->ID,name,sex,&team->Age,&team->Money,&team->Reward,&team->Insurance,&team->Allmoney);strcpy(team->Name,name);strcpy(team->Sex,sex);while(!feof(fp)){p->next = (Pointer)malloc(sizeof(PeopleLink));p = p->next;p->next = NULL;p->ID = team->ID;strcpy(p->Name,team->Name);strcpy(p->Sex,team->Sex);p->Money = team->Money;p->Age = team->Age;p->Reward = team->Reward;p->Insurance = team->Insurance;p->Allmoney = team->Allmoney;fscanf(fp,"%d%s%s%d%d%d%d%d",&team->ID,name,sex,&team->Age,&team->Money,&team->Reward,&team->Insurance,&team->Allmoney);strcpy(team->Name,name);strcpy(team->Sex,sex);}fclose(fp);return head;
}
Pointer Creat()
{Pointer newlist;newlist = Creatfile();//newlist = newlist->next;return newlist;
}

这个课程设计其实很简单,但是作为二本院校的我做起来还是废了很大的劲儿才写的出来(毕竟大二才学数据结构,这是我大一写的代码)。

C语言链表课程设计(工资管理系统)相关推荐

  1. 开发c语言系统怎么分工,C语言专业课程设计工资统一标准管理系统.doc

    东北大学信息科学和工程学院 程序实践汇报 题目 工资管理系统 课题组长 刘诚阳 课题组组员 张鹏举 于文鑫 专业名称 计算机科学和技术 班 级 计算机1405 指导老师 张晓红 20XX 年 4月 目 ...

  2. 银行账户管理系统c语言链表,课程设计银行储蓄管理系统Word版

    <课程设计银行储蓄管理系统Word版>由会员分享,可在线阅读,更多相关<课程设计银行储蓄管理系统Word版(22页珍藏版)>请在人人文库网上搜索. 1.传播优秀Word版文档 ...

  3. c语言数据结构课程设计停车场管理系统,数据结构课程设计报告停车场管理系统...

    <数据结构课程设计报告停车场管理系统>由会员分享,可在线阅读,更多相关<数据结构课程设计报告停车场管理系统(8页珍藏版)>请在人人文库网上搜索. 1.数据结构课程设计报告系 别 ...

  4. 汽车销售管理系统 c语言版 课程设计,汽车销售管理系统c语言版.docx

    Document serial number[NL89WT-NY98YT-NC8CB-NNUUT-NUT108] Document serial number[NL89WT-NY98YT-NC8CB- ...

  5. 汽车销售管理系统 c语言版 课程设计,汽车销售管理系统C语言版.doc

    实用文档 文案大全 西安郵電大學 C语言课程设计报告 题 目:汽车销售管理系统 院系名称: 专业名称: 班 级: 学生姓名: 学号(8位): 指导教师: 设计起止时间: 设计目的 1. 对c语言基本知 ...

  6. c语言人事管理课程设计,人事管理系统--c语言课程设计.doc

    人事管理系统--c语言课程设计 本科生C语言课程设计论文 课程名称 C语言课程设计 教师姓名 朱莉 本科生姓名 李百蝉 本科生学号 20111002986 本科生专业 地质学 所在院系 地球科学学院 ...

  7. C语言链表学生成绩制作成链表,C语言程序设计课程设计基于链表的学生成绩管理系统.doc...

    C语言程序设计课程设计基于链表的学生成绩管理系统 华北科技学院计算机系综合性实验报告 PAGE 第 PAGE 10 页 华北科技学院计算机系综合性实验 实 验 报 告 课程名称 C语言程序设计 实验学 ...

  8. c语言仓库管理系统链表,仓库管理系统 C语言 C++ 数据结构 链表 课程设计

    仓库管理系统 C语言 C++ 数据结构 链表 课程设计 #include #include #include #include #define MAX 64 typedef struct node{ ...

  9. c语言仓库管理系统链表,仓库管理系统 C语言 C 数据结构 链表 课程设计.doc

    仓库管理系统 C语言 C 数据结构 链表 课程设计 #include #include #include #include #define MAX 64 typedef struct node{ /* ...

最新文章

  1. 面试题php2018,2018php最新面试题之PHP核心技术
  2. Gentoo 安装日记 10 (配置内核 :General setup)
  3. SpringBoot高级-消息-AmqpAdmin管理组件的使用
  4. jquery --- 监听input框失效
  5. 【转】Linux如何在系统启动时自动加载模块
  6. MVC过滤整个项目输入关键字
  7. SAP License:SAP顾问心情随笔——点燃一支烟
  8. flume消费kafka数据太慢_kafka补充01
  9. 网站页面head区代码规范[转]
  10. async和await的错误捕获
  11. 设置jupyter notebook的启动及工作目录方法汇总
  12. 知了课堂Day1——微信小程序基础01-template、事件
  13. Javaweb实现在线预览word文件
  14. ip雷达3.0_本周在我们的雷达上:轻松如1.0、2.0、3.0
  15. 声纹识别技术简介——化繁为简的艺术
  16. pandas获得指定行_pandas取dataframe特定行/列
  17. 【Mo 人工智能技术博客】现在最流行的图神经网络库 pytorch geometric 上手教学
  18. 微信 开发诡异的40029错误invalid code错误 443 failed to respond错误的解决办法
  19. python 内部收益率_用Python计算可变现金流内部收益率(pandas)
  20. 完善消费信贷风控措施势在必行

热门文章

  1. laya 学习抛出事件与接收事件
  2. JAVA毕设项目公立医院绩效考核系统(Vue+Mybatis+Maven+Mysql+sprnig+SpringMVC)
  3. Mathematica保姆级教程
  4. win7系统屏蔽全/半角切换问题
  5. OS Tools-GO富集分析工具的使用与解读详细教程
  6. 计量经济学笔记1:简介
  7. 9 个非常实用的网络调试命令,你会用几个呢?
  8. [递推式求解、多指针、前缀和]XATU第七届算法大赛
  9. JEECG 新手常见问题大全,入门必读
  10. SWUST OJ#971 #972 返回二叉树宽度和深度