(一)公司现状分析

1、公司主要有经理、技术员、销售员、销售经理4类岗位人员,他们都有基本信息:职工号、姓名、性别、部门、岗位、工龄、当月工资等。一个部门最多只能有一个销售经理,一个部门可以有多个销售员,一个部门可以有若干个经理和若干技术员。

2、员工数据包括基本资料数据和工资数据两部分,员工基本资料数据包括职工号、姓名、性别、部门、岗位、工龄;员工工资数据包括工作时间、小时工资、销售额、底薪、当月工资。

3、员工当月工资的计算办法。

A.经理:底薪(8000)+工龄×35;

B.技术员:工作时间×小时工资(100元每小时)+工龄×35;

C.销售员:销售额×4%提成+工龄×35;

D.销售经理:底薪(8000)+所辖部门销售额总额×0.5%+工龄×35。

现在需要开发一个公司员工工资管理系统对员工工资进行有效管理。

(二)系统的功能要求

  1. 数据维护管理:要求对员工的基本资料数据和工资数据分开管理。基本资料数据的维护管理功能包括添加(批量、单个)、修改、删除、查询等;工资数据的维护管理功能包括输入(批量、单个)、修改、删除、查询等。

A. 基本资料数据的维护管理

(1).添加:(批量、单个)添加员工基本资料数据。基本资料数据包括职工号、姓名、性别、部门、岗位、工龄。

(2).修改:根据职工号来修改任意员工的除职工号外的其他基本资料数据。

(3).删除:根据职工号删除一个员工。

(4).查询:根据职工号查询一个员工的基本资料数据。

B. 工资数据的维护管理

(1).输入:(批量、单个)输入员工工资数据。工资数据根据员工类型的不同而有区别,输入的相关数据也应不同。注意:当月工资是计算项,不能输入。

(2).修改:根据职工号来修改任意员工的相关工资数据(注意:不同类别员工相关数据不同)。

(3).删除:根据职工号删除一个员工(不能删除,只需将相关数据项设置成-1)。

(4).查询:根据职工号查询一个员工的工资数据。

(5).计算:批量计算所有技术员、销售员和销售经理的当月工资额。注意,① 销售经理所辖部门销售额总额为本部门所有销售员当月销售额之和。② 只有各项数据都为有效数据时(-1为无效数据),才能计算。

  1. 查询数据
  1. 分页显示全部员工的信息。分页功能:每页显示10条员工的信息,有上一页、下一页、首页和最后一页的功能。
  2. 按部门显示本部门全部员工信息。注意:无需分页显示。
  3. 分类显示4种岗位的员工信息。注意:无需分页显示。
  4. 根据工号或者姓名查询员工信息。
  1. 排序:

    1. 所有员工信息按当月工资从高到低排序并显示。注意:无需分页显示。
    2. 某个岗位的员工信息按当月工资从高到低排序并显示。注意:无需分页显示。
  2. 统计:
  1. 统计并显示某个部门的平均工资、最低工资、最高工资。
  2. 统计并显示某个部门超出平均工资的人数与员工信息。注意:无需分页显示。
  3. 统计并显示所有员工中的最低工资和最高工资员工的信息。
  4. 统计并显示所有员工超出平均工资的人数与员工信息。注意:无需分页显示。

(三)系统的实现技术要求

  1. 员工用结构体表示,全体员工用一个链表来表示。某一岗位的员工,可以只使用员工结构体的部分成员,比如:经理只使用基本信息成员,而不使用销售额成员、工作时间成员。
  2. 必须用文件来存储员工信息:开始运行程序时从文件中读取员工信息到链表,退出程序时将员工信息保存到文件中。
  3. 主菜单有一个菜单项能够将员工信息保存到文件。
  4. 数据约束:
    1. 职工号:整型、不能重复、从1开始依次递增、由软件自动计算产生,不能修改。
    2. 岗位:枚举类型,分别表示经理、技术员、销售员、销售经理。
    3. 员工的其他信息不能为空。
    4. 其他:至少有两层菜单。




      本代码有很多瑕疵,只是为了完成任务而写的!!!!!!!!!!!!!!!!!!!!!!

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct employee{int num;            /* 工号  */char name[20];     /* 姓名  */int sex;           /* 性别 1 man 2 madam*/int department;        /* 部门  */int post;          /* 1为经理、2为技术员、3为销售员、4为销售经理  */int lengthservice;    /* 工龄  */int hour;           /* 工作时间 */int hoursalary;      /* 时薪*/int sales;           /* 销售额*/int basicsalary;    /* 底薪*/int salary;          /* 工资总数*/struct employee *next;
}employee;
struct Employee{int num;char name[20];      /* 姓名  */int sex;           /* 性别 1 man 2 madam*/int department;        /* 部门  */int post;          /* 1为经理、2为技术员、3为销售员、4为销售经理  */int lengthservice;    /* 工龄  */int hour;           /* 工作时间 */int hoursalary;      /* 时薪*/int sales;           /* 销售额*/int basicsalary;    /* 底薪*/int salary;          /* 工资总数*/
};
void main()
{int num=0,flag,a,NUM;char name[20];employee *list,*rare;//头节点list无数据 尾指针rare有数据int increase(employee *rare,int *num);void DecendOrder(employee *list);void Statistics(employee *list);void queryAll(employee *list);void querybasic(employee *list,int num);void Delete(employee *list,int num);void DeleteSalary(employee *list,int num);void querysalary(employee *list,int num);void change(employee *list,int num);void changesalary(employee *list,int num);void Statistics2(employee *list);void querynum(employee *list,int num);employee *import(employee *list,int *num);void salary(employee *list);void Statistics3(employee *list);void Statistics4(employee *list);void save(employee *list);void queryname(employee *list,char name[20]);void querydepart(employee *list,int num);void querypost(employee *list);void DecendOrder2(employee *list);list=(employee *)malloc(sizeof(employee));list->next=NULL;rare=import(list,&num);if(num==0)increase(list,&num);salary(list);while(1){begin:printf("菜单:添加数据:1  修改数据:2   删除数据:3   查询数据:4   保存数据:5   统计数据:6   数据排序:7   退出:0\n");scanf("%d",&flag);if(flag==0){save(list);exit(0);}switch(flag){case 1:increase(rare,&num);salary(list);save(list);break;case 2:printf("修改基本信息:1 修改工资信息:2 返回:0\n");scanf("%d",&a);switch(a){case 0:goto begin;break;case 1:printf("请输入要修改的工号\n");scanf("%d",&NUM);change(list,NUM);break;  case 2:printf("请输入要修改的工号\n");scanf("%d",&NUM);changesalary(list,NUM);break; }break;case 3:printf("删除基本信息:1 删除工资信息:2 返回:0\n");scanf("%d",&a);switch(a){case 0:goto begin;break;case 1:printf("请输入要删除的工号\n");scanf("%d",&NUM);Delete(list,NUM);break; case 2:printf("请输入要删除的工号\n");scanf("%d",&NUM);DeleteSalary(list,NUM);break; }break;case 4:printf("查询基本信息:1 查询工资信息:2  查询全部信息:3  查询部门信息:4  查询各个岗位信息:5  工号查询信息:6  姓名查询信息:7 返回:0\n");scanf("%d",&a);switch(a){case 0:goto begin;break;case 1:printf("请输入要查询的工号\n");scanf("%d",&NUM);querybasic(list,NUM);break; case 2:printf("请输入要查询的工号\n");scanf("%d",&NUM);querysalary(list,NUM);break;case 3:queryAll(list);break;  case 4:printf("请输入要查询的部门号\n");scanf("%d",&NUM);querydepart(list,NUM);break;case 5:querypost(list);break;case 6:printf("请输入要查询的工号\n");scanf("%d",&NUM);querynum(list,NUM);break;case 7:printf("请输入想查询的姓名\n");scanf("%s",name);queryname(list,name);break;}break;case 5:save(list);break;case 6:printf("统计部门平均工资,最低,最高工资:1            统计部门超过平均工资的人数与员工信息:2\n统计所有员工最低工资和最高工资员工的信息:3  统计所有员工超出平均工资的人数与员工信息:4\n 返回:0\n");scanf("%d",&a);switch(a){case 0:goto begin;break;case 1:Statistics(list);break;case 2:Statistics2(list);break;case 3:Statistics3(list);break;case 4:Statistics4(list);break;}break;case 7:DecendOrder2(list);break;default:printf("输入错误");goto begin;}}}
int increase(employee *rare,int *num)//添加数据
{employee *p,*q;char name[20];int sex,department,post,lengthservice,hour,hoursalary,sales,basicsalary;q=rare;printf("请输入姓名,性别(1为男,2为女),部门,职位(1为经理、2为技术员、3为销售员、4为销售经理),工龄,工作时间,时薪,销售额,底薪:(工时为-1时停止输入)\n");scanf("%s%d%d%d%d%d%d%d%d",name,&sex,&department,&post,&lengthservice,&hour,&hoursalary,&sales,&basicsalary);while(hour!=-1){num++;p=(employee *)malloc(sizeof(employee));strcpy(p->name,name);p->num=*num;p->sex=sex;p->department=department;p->post=post;p->lengthservice=lengthservice;p->hour=hour;p->hoursalary=hoursalary;p->sales=sales;p->basicsalary=basicsalary;if(*num==1)rare->next=p;elseq->next=p;q=p;p->next=NULL;scanf("%s%d%d%d%d%d%d%d%d",name,&sex,&department,&post,&lengthservice,&hour,&hoursalary,&sales,&basicsalary);}return *num;
}
void salary(employee *list)//计算工资
{employee *p=list->next,*q=list->next;int sales=0;while(p!=NULL){if(p->hour==-1)p=p->next;if(p->post==3)p->salary=p->sales*4/100+35*p->lengthservice;else if(p->post==2)p->salary=100*p->hour+35*p->lengthservice;else if(p->post==1)p->salary=8000+p->lengthservice*35;else if(p->post==4){while(q!=NULL){if(q->post==3&&q->department==p->department)sales+=q->sales;q=q->next;}p->salary=sales*5/1000+8000+p->lengthservice*35;q=list->next;}p=p->next;}
}
void querybasic(employee *list,int num)//查询基本信息
{employee *p;p=list->next;while(p->num!=num&&p!=NULL)p=p->next;if(p->num==num){printf("工号 名字 性别 部门 职位 工龄\n");printf("%-5d%-5s%-5d%-5d%-5d%-5d\n",p->num,p->name,p->sex,p->department,p->post,p->lengthservice);}if(p==NULL)printf("该工号不存在\n");
}
void querysalary(employee *list,int num)//查询工资信息
{employee *p;p=list->next;while(p->num!=num&&p!=NULL)p=p->next;if(p->num==num){printf("工号  工时  时薪  销售额  底薪  工资\n");printf("%-6d%-6d%-6d%-8d%-6d%-6d\n",p->num,p->hour,p->hoursalary,p->sales,p->basicsalary,p->salary);}if(p==NULL)printf("该工号不存在\n");
}
void Delete(employee *list,int num)//删除基本信息
{employee *p,*q;p=list->next;q=p->next;while(p->next->num!=num){p=p->next;q=p->next;}if(q->num==num)p->next=q->next;else printf("职工号在范围外");q=q->next;while(q!=NULL){q->num--;q=q->next;}}
void DeleteSalary(employee *list,int num)//删除工资信息
{employee *p;p=list->next;while(p->num!=num)p=p->next;if(p->num==num){p->hour=-1;p->hoursalary=-1;p->sales=-1;p->basicsalary=-1;}else printf("该工号超出范围");
}
employee *import(employee *list,int *num)//读取文件
{FILE *fp;struct Employee stu;employee *q,*p;if((fp=fopen("employee.dat","rb"))==NULL){printf("文件不存在,输入数据以建立一个文件存储信息\n");return 0;}q=(employee *)malloc(sizeof(employee));while(!feof(fp)){if((fread(&stu,sizeof(struct Employee),1,fp))!=1)break;*num=*num+1;p=(employee *)malloc(sizeof(employee));strcpy(p->name,stu.name);p->num=*num;p->sex=stu.sex;p->department=stu.department;p->post=stu.post;p->lengthservice=stu.lengthservice;p->hour=stu.hour;p->hoursalary=stu.hoursalary;p->sales=stu.sales;p->basicsalary=stu.basicsalary;p->salary=stu.salary;if(*num==1)list->next=p;elseq->next=p;q=p;p->next=NULL;}fclose(fp);return q;
}
void save(employee *list)//存储到文件
{struct Employee stu;FILE *fp;employee *p;p=list->next;if((fp=fopen("employee.dat","wb"))==NULL){printf("error");exit(0);}while(p!=NULL){stu.num=p->num;strcpy(stu.name,p->name);stu.sex=p->sex;stu.department=p->department;stu.post=p->post;stu.lengthservice=p->lengthservice;stu.hour=p->hour;stu.hoursalary=p->hoursalary;stu.sales=p->sales;stu.basicsalary=p->basicsalary;stu.salary=p->salary;if((fwrite(&stu,sizeof(struct Employee),1,fp))!=1)printf("error");p=p->next;}fclose(fp);
}
void change(employee *list,int num)//改变基本数据
{char name[20];int sex,department,post,lengthservice;employee *p=list->next;while(p->num!=num&&p->next!=NULL)p=p->next;if(p->num==num){printf("请输入修改后的姓名 性别 部门 岗位 工龄\n");scanf("%s%d%d%d%d",name,&sex,&department,&post,&lengthservice);strcpy(p->name,name);p->sex=sex;p->department=department;p->post=post;p->lengthservice=lengthservice;}else printf("职工号超出范围");
}
void changesalary(employee *list,int num)//改变工资数据
{int hour,hoursalary,sales,basicsalary;employee *p=list->next;while(p->num!=num)p=p->next;if(p->num==num){printf("请输入修改后的工作时间 小时工资 销售额 底薪 \n");scanf("%d%d%d%d",&hour,&hoursalary,&sales,&basicsalary);p->hour=hour;p->hoursalary=hoursalary;p->sales=sales;p->basicsalary=basicsalary;}else printf("职工号超出范围");
}
void queryAll(employee *list)//分页查询所有信息
{employee *p,*page[100];int n,i,top=0,flag=0,max;p=list->next;while(p!=NULL){page[++top]=p;i=1;while(i<=10){i++;p=p->next;if(p==NULL)break;}}max=top;top=0;p=page[++top];printf("工号 姓名 性别 部门 岗位 工龄 工时 时薪 销售额 底薪 工资\n");while(1){i=1;while(i<=10){i++;printf("%-5d%-5s%-5d%-5d%-5d%-5d%-5d%-5d%-7d%-5d%-5d\n",p->num,p->name,p->sex,p->department,p->post,p->lengthservice,p->hour,p->hoursalary,p->sales,p->basicsalary,p->salary);p=p->next;if(p==NULL)break;}begin:printf("当前页码%d   首页->1  上一页->2  下一页->3  尾页->4  退出->0\n",top);scanf("%d",&n);if(n==0)break;else if(n==1)top=1,p=page[1];else if(n==2){if(top==1){printf("当前已经是第一页\n");goto begin;}else p=page[--top];}else if(n==3){if(top==max){printf("当前已经是最后一页\n");goto begin;}else p=page[++top];}else if(n==4)top=max,p=page[max];else goto begin;}
}
void querydepart(employee *list,int num)//输出该部门全部员工信息
{employee *p=list->next;printf("%d部门的全部员工信息为:\n",num);printf("工号 姓名 性别 部门 岗位 工龄 工时 时薪 销售额 底薪 工资\n");while(p!=NULL){if(p->department==num)printf("%-5d%-5s%-5d%-5d%-5d%-5d%-5d%-5d%-7d%-5d%-5d\n",p->num,p->name,p->sex,p->department,p->post,p->lengthservice,p->hour,p->hoursalary,p->sales,p->basicsalary,p->salary);p=p->next;}
}
void querypost(employee *list)//分类显示四个岗位的员工信息
{employee *p;int i=0;while(i<4){switch(i){case 0:printf("经理岗位的信息为(若为空则无):\n");break;case 1:printf("技术员岗位的信息为(若为空则无):\n");break;case 2:printf("销售员岗位的信息为(若为空则无):\n");break;case 3:printf("销售经理岗位的信息为(若为空则无):\n");break;}p=list->next;i++;while(p!=NULL){if(p->post==i)printf("%d %s %d %d %d %d %d %d %d %d %d\n",p->num,p->name,p->sex,p->department,p->post,p->lengthservice,p->hour,p->hoursalary,p->sales,p->basicsalary,p->salary);p=p->next;}}
}
void querynum(employee *list,int num)//工号查询个人全部信息
{employee *p;p=list->next;while(p!=NULL){if(p->num==num)break;p=p->next;}if(p->num==num){printf("工号 姓名 性别 部门 岗位 工龄 工时 时薪 销售额 底薪 工资\n");printf("%-5d%-5s%-5d%-5d%-5d%-5d%-5d%-5d%-7d%-5d%-5d\n",p->num,p->name,p->sex,p->department,p->post,p->lengthservice,p->hour,p->hoursalary,p->sales,p->basicsalary,p->salary);}else printf("工号超出范围");
}
void queryname(employee *list,char name[20])//用姓名查询数据
{employee *p;p=list->next;while(p!=NULL){if(strcmp(p->name,name)==0)break;p=p->next;}if(strcmp(p->name,name)==0){printf("工号 姓名 性别 部门 岗位 工龄 工时 时薪 销售额 底薪 工资\n");printf("%-5d%-5s%-5d%-5d%-5d%-5d%-5d%-5d%-7d%-5d%-5d\n",p->num,p->name,p->sex,p->department,p->post,p->lengthservice,p->hour,p->hoursalary,p->sales,p->basicsalary,p->salary);}else printf("该姓名不存在");
}
void Statistics(employee *list)
{employee *p=list->next,*q=list->next,*max=list->next,*k;   //p,q作为循环指针,max指针指向最大的employee *headis=NULL;                      //用来保存部门的信息employee *Max,*Min;                       //最大和最小值的成员int i=0;                            //计算部门的人数;int sum=0,avar=0;                  //总值,平均值int department;             //用来接收想要统计的部门printf("请输入你想要统计的部门:\n");scanf("%d",&department);//提取所要统计的部门的成员while(p){ if(p->num==-1){p=p->next;continue;}if(department==p->department){q=(employee *)malloc(sizeof(employee));*q=*p;q->next=NULL;if(!headis)headis=q;else k->next=q;k=q;}p=p->next;}//计算最大、最小和平均值p=headis;q=headis;Max=headis;Min=headis;while(p){if(p->num==-1){p=p->next;continue;}if(p->salary>Max->salary)Max=p;else if(p->salary<Min->salary)Min=p;sum+=p->salary ;p=p->next;i++;}avar=sum/i;printf("部门:%d\n",department);printf("平均工资:%d\n",avar);printf("最低工资:%d\n",Min->salary);printf("最高工资:%d\n",Max->salary);
}
void Statistics2(employee *list)
{employee *p=list->next,*q=list->next,*max=list->next,*k;   //p,q作为循环指针,max指针指向最大的employee *headis=NULL;                      //用来保存部门的信息int j=0,i=0;                            //用j来计算人数,i计算工资大于平均工资的人数int sum=0,avar=0;                      //平均值int department;             //用来接收想要统计的部门printf("请输入你想要统计的部门:\n");scanf("%d",&department);//提取所要统计的部门的成员while(p!=NULL){ if(p->num==-1){p=p->next;continue;}if(department==p->department){j++;q=(employee*)malloc(sizeof(employee));*q=*p;q->next=NULL;if(!headis)headis=q;else k->next=q;k=q;}p=p->next;}//计算最大、最小和平均值p=headis;q=headis;while(p!=NULL){if(p->num==-1){p=p->next;continue;}sum+=p->salary ;p=p->next;}avar=sum/j;p=q;headis=0;//提取超过平均工资的部门的成员while(p!=NULL){ if(p->num==-1){p=p->next;continue;}if((p->salary)>avar){ i++;q=(employee *)malloc(sizeof(employee));*q=*p;q->next=NULL;if(!headis)headis=q;else k->next=q;k=q;}p=p->next;}p=headis;printf("部门:%d\n",department);printf("超出平均工资的人数为:%d\n",i);if(i!=0){printf("这些成员的信息如下:\n");printf("工号  工时  时薪  销售额  底薪  工资\n");while(p!=NULL){if(p->num==-1){p=p->next;continue;}printf("%-6d%-6d%-6d%-8d%-6d%-6d\n",p->num,p->hour,p->hoursalary,p->sales,p->basicsalary,p->salary);p=p->next ;}}
}
void Statistics3(employee *list)
{employee *Max,*Min;                       //指向最大和最小值的成员employee*p=list->next;                       //p作为循环指针Max=list->next;Min=list->next;while(p){if(p->num==-1){p=p->next;continue;}if(p->salary >Max->salary )Max=p;if(p->salary <Min->salary)Min=p;p=p->next;}p=Min;printf("在所有员工中:");printf("最低工资的员工信息:\n");printf("工号  工时  时薪  销售额  底薪  工资\n");printf("%-6d%-6d%-6d%-8d%-6d%-6d\n",p->num,p->hour,p->hoursalary,p->sales,p->basicsalary,p->salary);p=Max;printf("最高工资的员工信息:\n");printf("工号  工时  时薪  销售额  底薪  工资\n");printf("%-6d%-6d%-6d%-8d%-6d%-6d\n",p->num,p->hour,p->hoursalary,p->sales,p->basicsalary,p->salary);}
void Statistics4(employee *list)
{employee *p=list->next,*q=list->next,*k;             //p,q作为循环指针employee *headis=0;                      //用来保存工资超过平均工资的成员int i=0;                          //用i来计算人数double sum=0,avar=0;              //总值,平均值//求平均值while(p){if(p->num==-1){p=p->next;continue;}i++;sum+=p->salary ;p=p->next;}avar=sum/i;//提取出超过平均工资的成员,并且计算人数i=0;p=list;while(p){if(p->num==-1){p=p->next;continue;}if(p->salary >avar){i++;q=(employee *)malloc(sizeof(employee));*q=*p;q->next=NULL;if(!headis)headis=q;else k->next=q;k=q;}p=p->next;}p=headis;printf("超出平均工资的人数:%d\n",i);printf("工号  工时  时薪  销售额  底薪  工资\n");while(p){if(p->num==-1){p=p->next;continue;}printf("%-6d%-6d%-6d%-8d%-6d%-6d\n",p->num,p->hour,p->hoursalary,p->sales,p->basicsalary,p->salary);p=p->next;}
}
void DecendOrder(employee *list)
{employee *p,*q,*a,*b,*s;int j=0;p=list->next;q=p->next;a=list;b=a->next;while(q!=NULL){a=list;b=a->next;j=0;while(a!=p){if(q->salary>b->salary){p->next=q->next;q->next=b;a->next=q;j=1;break;}a=b;b=b->next;}if(j==1)q=p->next;else{p=q;q=q->next;}}s=list->next;while(s!=NULL){printf("工号 姓名 性别 部门 岗位 工龄 工时 时薪 销售额 底薪 工资\n");printf("%-5d%-5s%-5d%-5d%-5d%-5d%-5d%-5d%-7d%-5d%-5d\n",s->num,s->name,s->sex,s->department,s->post,s->lengthservice,s->hour,s->hoursalary,s->sales,s->basicsalary,s->salary);s=s->next;}
}
void DecendOrder2(employee *list)
{employee *p,*q,*a,*b,*s,*z,*x=NULL,*v,*head;int j=0,post;printf("请输入岗位\n");scanf("%d",&post);p=list->next;head=(employee *)malloc(sizeof(employee));while(p!=NULL){if(p->post==post){z=(employee *)malloc(sizeof(employee));*z=*p;z->next=NULL;if(x==NULL)x=z;elsev->next=z;v=z;}p=p->next;}head->next=x;p=x;q=p->next;while(q!=NULL){a=head;b=a->next;j=0;while(a!=p){if(q->salary>b->salary){p->next=q->next;q->next=b;a->next=q;j=1;break;}a=b;b=b->next;}if(j==1)q=p->next;else{p=q;q=q->next;}}s=head->next;while(s!=NULL){printf("工号 姓名 性别 部门 岗位 工龄 工时 时薪 销售额 底薪 工资\n");printf("%-5d%-5s%-5d%-5d%-5d%-5d%-5d%-5d%-7d%-5d%-5d\n",s->num,s->name,s->sex,s->department,s->post,s->lengthservice,s->hour,s->hoursalary,s->sales,s->basicsalary,s->salary);s=s->next;}
}

如果文章对你有用,请留下评论告诉我噢,顺便点个赞!

c语言大作业:员工工资管理系统相关推荐

  1. 学委作业管理系统c语言,c语言大作业-学生信息管理系统.doc

    c语言大作业-学生信息管理系统.doc 课程设计报告书 题目:学生信息管理系统设计 学 院 电子与信息学院 专 业 电子信息类 学生姓名 学生学号 指导教师 课程编号 135160 课程学分 1学分 ...

  2. 哈工大C语言大作业-学生成绩管理系统

    哈工大C语言大作业-学生成绩管理系统 完整项目地址:https://github.com/944613709/Student-Performance-Management-System-ByC 说明 ...

  3. C语言实现的员工工资管理系统

    看点: 1. 枚举类型的使用(录入与输出) 2. 文件的使用:用文件来存储员工信息,开始运行程序时从文件中读取员工信息到链表退出程序时将员工信息保存到文件中. 2_1. 存储结构体这样的数据块所使用的 ...

  4. 【C】C语言大作业——学生学籍管理系统

    文章目录 学生管理系统 界面 主界面 登陆界面 注册界面 管理界面 学生界面 退出界面 链接 注意 学生管理系统 学C语言时写的一个大作业,弄了一个带图形界面的,使用的是VS配合EasyX图形库进行实 ...

  5. c语言大作业教室预约管理系统,C语言程序设计——教室管理系统(源代码))

    C语言程序设计--教室管理系统(源代码) 非常有用的. #include #include #include #define szSTR 64 #define fileDB "c:\\con ...

  6. c语言大作业书店图书管理系统,c语言课程设计 书店管理系统.pdf

    c语言课程设计 书店管理系统 计算机程序设计(C语言) 课程设计报告 题目:图书管理系统 学院: 专业: 班级: 学号: 姓名: 指导教师: 设计日期:2013年06月24 日 一.选题背景: 设计一 ...

  7. c语言大作业书店图书管理系统,C语言_课程设计—书店图书管理系统.doc

    计算机程序设计(C语言) 课程设计报告 题目:图书管理系统 学院: 专业: 班级: 学号: 姓名: 指导教师: 设计日期:2013年06月24日 一.选题背景: 设计一个图书管理系统,管理员通过登陆账 ...

  8. c语言大作业书店图书管理系统,C语言课程设计书店管理系统.pdf

    计算机程序设计(C语言) 课程设计报告 题目:图书管理系统 学院: 专业: 班级: 学号: 姓名: 指导教师: 设计日期:2013年06月24 日 一.选题背景: 设计一个图书管理系统,管理员通过登陆 ...

  9. 学生证选课系统c语言大作业,学生选课管理系统c语言程序

    #include #include #include int N1,N2; struct couse * head1; struct student * head2; struct couse //课 ...

  10. java swing员工工资管理系统(大作业)源码+数据库文件+文档

    java swing员工工资管理系统.身份有管理员,员工,适合新手. 技术:java,swing,mysql,jdbc. 功能:登录,员工信息管理(增删改查),部门信息管理(增删改查),员工工资设定( ...

最新文章

  1. Android常用的几种资源
  2. python日记----2017.8.1
  3. Jmeter之ForEach控制器(配合正则表达式使用)
  4. java面向对象super_【JavaSE】面向对象之super、final
  5. 通过Applescript打开终端运行py文件
  6. python显示no matching distribution,Python使用pip安装No matching distribution found for PyYaml==5.3.1...
  7. Java蓝桥杯——逻辑推理练习题
  8. 小米6android版本更新,钉子户小米6的新生,换电池、背盖,升级android11
  9. java 性能测试文档模板_最好用的数据库文档生成工具
  10. 删除修改docker网络环境
  11. QPainter文档
  12. java yml文件_Yml文件的写入和读取
  13. 颜色代码表(#号开头)
  14. 神经网络模型的实际案例,神经网络模型应用实例
  15. 很好听的曲子《红枣树》,歌词写的很好,摘抄一下
  16. STM32F103标准库开发---目录
  17. Docker从入门到干活,看这一篇够了!
  18. 最小二乘法的计算过程
  19. 哈工大计算机专业复试科目,哈工大 计算机科学与技术学院复试科目.doc
  20. Java String字符串长度不足指定位数补0

热门文章

  1. C#窗体之整人小程序
  2. [前端代码] 3月2日更新-近期200+热门微信小程序demo源码下载汇总
  3. jQuery图片弹出Lightbox插件带轮播
  4. VC2005 MFC静态文本框背景色设置
  5. data fastboot 擦除_fastboot使用教程
  6. canon l11121e驱动_佳能L11121e驱动
  7. navicat输入法问题
  8. 产业变革新机遇,与5G同行,驰骋在浪潮之巅
  9. py文件编译成pyc文件
  10. 编译 mobileTerminal