人事管理管理系统
[要求]
某高校主要人员有:在职人员(行政人员、教师、一般员工)、退休人员和临时工。现在,需要存储这些人员的人事档案信息:编号、姓名、性别、年龄、职务、职称、政治面貌、最高学历、任职时间、来院时间、人员类别。其中,人员编号唯一,不能重复。
(1)添加删除功能:能根据学院人事的变动情况,添加删除记录;
(2)查询功能:能根据编号和姓名进行查询;
(3)编辑功能(高级):根据查询对相应的记录进行修改,并存储;
(4)统计功能:能根据多种参数进行人员的统计(在职人数、党员人数、女工人数、高学历高职称人数(硕士学位以上或者副教授以上)),统计要求同时显示被统计者的信息;
(5)排序功能:按照年龄、来院时间进行排序;
(6)保存功能:能对输入的数据进行相应的存储;
一.需求分析:
根据题目要求,人事信息是存放在文件中的,所以应该提供相应的文件的输入输出的功能,在程序中应该有添加删除,查询,编辑,统计,排序,保存等程序实现相应的操作,另外菜单式的选择方式选择程序的功能也是必须需的。另外程序中要求存储的模块,采用的方式均为将原文件中的所有数据读入内存,在内存中处理之后以覆盖的方式写入文件中重新储存,这样的方法容易理解、容易编写,但当文件中的数据量很大时,这种方法也存在一定的难度,在本程序中将M定为2000,也即最多可储存的职工人数为2000;
二.总体设计:
根据以上需求分析,将程序分成以下几个模块:
1.添加和删除
****添加人员信息并保存(1)
****按名称和编号查询与删除记录并保存(2)
2.查询与编辑
****按名称和编号查询
****重新编辑信息并保存
3. 统计
****统计在职人数
****统计党员人数
****统计女工人数
****统计硕士以上学历和副教授以上职称人数
****将统计得到的信息保存在worker3.txt文件中
4. 排序
****按年龄进行排序(1)
****按来院时间进行排序(2)
三详细设计;
1、主函数:
主函数设计的比较简单,只提供输入、处理和输出部分的函数调用。其中各功能模块用菜单方式选择。其流程图如下
程序
main()
{
int n,w;
do
{
puts("\t\t***********************高校人事管理*************************\n\n\n");
puts("\t\t\t\t 1.添加或删除\n");
puts("\t\t\t\t 2.查询与编辑\n");
puts("\t\t\t\t 3.统计\n") ;
puts("\t\t\t\t 4.排序\n");
puts("\t\t*************************************************************\n") ;
printf("选择你要的服务(1-4): [ ]\b\b");
scanf("%d",&n);
if(n<1||n>4)
{
w=1;
getchar();
}
else w=0;
}
while(w==1);
switch(n)
{
case 1:retify();break;
case 2:sear_edit();break;
case 3:stat();break;
case 4:row();break;
}
}
1.添加与删除模块,此模块有(1),(2)两个模块构成。
void retify()
{
int n,w;
do
{
puts("\t\t***************删除或添加人员的信息****************\n\n\n\n\n");
puts("\t\t\t\t 1.添加");
puts("\t\t\t\t 2.删除");
printf("请选择服务(1-2): [ ]\b\b");
scanf("%d",&n);
if(n<1||n>2)
{
w=1;
getchar();
}
else w=0;
}
while(w==1);
switch(n)
{
case 1:tianjia();break;
case 2:shanchu();break;
}
}
(1).添加功能:
void tianjia()
{
FILE *fp;
int i,number;
struct worker wor_t[N];
printf("您要添加的人的人数:");
scanf("%d",&number);
printf("输入添加人的信息:\n");
for(i=0;i { printf("编号:\n");scanf("%d",&wor_t[i].num); printf("姓名:\n"); scanf("%s",wor_t[i].name); printf("性别:\n");scanf("%s",wor_t[i].sex); printf("年龄:\n");scanf("%d",&wor_t[i].old); printf("职称:\n");scanf("%s",wor_t[i].zhicheng); printf("职位:\n");scanf("%s",wor_t[i].zhiwei); printf("政治面貌:\n");scanf("%s",wor_t[i].mianmao); printf("学历:\n");scanf("%s",wor_t[i].xueli); printf("来院时间:\n");scanf("%d",&wor_t[i].come_time); printf("在院工作时间:\n");scanf("%d",&wor_t[i].work_time); printf("在职与否:在职请按1,不在职请按2\n");scanf("%d",&wor_t[i].leibie); printf("您刚才输入的人的信息\n"); printf("%d %s %s %d %s %s %s %s %d %d %d \n",wor_t[i].num,wor_t[i].name,wor_t[i].sex,wor_t[i].old,wor_t[i].zhicheng,wor_t[i].zhiwei,wor_t [i].mianmao,wor_t[i].xueli,wor_t[i].come_time,wor_t[i].work_time,wor_t[i].leibie); } if((fp=fopen("D:\\txt\\worker.txt","a+"))==NULL) { printf("\nCannot open file\n"); exit(0); } for(i=0;i { fprintf(fp,"\n%d %s %s %d %s %s %s %s %d %d %d",wor_t[i].num,wor_t[i].name,wor_t[i]. sex,wor_t[i].old,wor_t[i].zhicheng,wor_t[i].zhiwei,wor_t[i].mianmao,wor_t[i].xueli,wor_t[i].come _time,wor_t[i].work_time,wor_t[i].leibie); } fclose(fp); } (2).删除模块 该模块的功能是根据编号和姓名先查询出该人的信息,然后从原文件中删除该人的信息。流程图如下, 程序 void shanchu() { FILE *fp,*fp1; int i,number,k,j,m; struct worker worker1[M],worker2[M]; int a[N]; char b[N][20]; printf("您要删除的人的人数:\n"); scanf("%d",&number); for(i=0;i { printf("输入删除人的信息的编号和姓名:\n"); printf("输入添加人的编号:\n");scanf("%d",&a[i]); printf("输入添加人的姓名:\n");scanf("%s",b[i]); printf("您刚才输入的人的信息的编号和姓名:\n"); printf("%d %s\n",a[i],b[i]); } if((fp=fopen("D:\\txt\\worker.txt","r"))==NULL) { printf("\nCannot open file\n"); getch(); exit(0); } printf("输出公司更改前所有人员的信息:\n编号姓名性别年龄职称职位面貌学历来院时间工作时间在职与否\n"); for(i=0;!feof(fp);i++) fscanf(fp,"%d %s %s %d %s %s %s %s %d %d %d",&worker2[i].num,worker2[i].name,wor ker2[i].sex,&worker2[i].old,worker2[i].zhicheng,worker2[i].zhiwei,worker2[i].mianmao,work er2[i].xueli,&worker2[i].come_time,&worker2[i].work_time,&worker2[i].leibi); k=i; fclose(fp); m=0; for(i=0;i { for(j=0;j { if(worker2[i].num!=a[j]&&strcmp(worker2[i].name,b[j])) { worker1[m]=worker2[i]; m++; } } printf(" %d %s %s %d %s %s %s %s %d %d %d\n",worker2[i].num,worker2[i].name,worker 2[i].sex,worker2[i].old,worker2[i].zhicheng,worker2[i].zhiwei,worker2[i].mianmao,worker2[i ].xueli,worker2[i].come_time,worker2[i].work_time,worker2[i].leibie); if(k==m) {printf("\n这个人不存在???");exit(0);getch();} } printf("输出公司更改后所有人员的信息:\n编号姓名性别年龄职称职位面貌学历来院时间工作时间在职与否\n"); if((fp1=fopen("D:\\txt\\worker.txt","w"))==NULL) { printf("\nCannot open file\n"); getch(); exit(0); } for(i=0;i { printf("%d%s%s%d%s%s%s%s%d%d%d\n",worker1[i].num,worker1[i].name,worker1[i].se x,worker1[i].old,worker1[i].zhicheng,worker1[i].zhiwei,worker1[i].mianmao,worker1[i].xueli ,worker1[i].come_time,worker1[i].work_time,worker1[i].leibie); fprintf(fp1,"%d%s%s%d%s%s%s%s%d%d%d\n",worker1[i].num,worker1[i].name,wor ker1[i].sex,worker1[i].old,worker1[i].zhicheng,worker1[i].zhiwei,worker1[i].mianmao,worke r1[i].xueli,worker1[i].come_time,worker1[i].work_time,worker1[i].leibie); } fclose(fp1); getch(); } 2,查询和编辑功能: 首先,输入你要查询的人的编号和姓名,电脑将显示出该人的信息,并提问你是否要对该人的信息重新进行编辑,若选择了重新编辑的选项就重新输入该人的信息,此时将显示该人的信息并且对原文件进行修改和保存。 void sear_edit() { FILE *fp,*fp1; struct worker wor_people ,worker1[M]; int i,k,m,n; printf("你想查询谁?\n"); printf("输入你想查询的人的编号和姓名\n"); printf("输入你想查询的人的编号\n");scanf("%d",&wor_people.num); printf("输入你想查询的人的姓名\n");scanf("%s",wor_https://www.wendangku.net/doc/1f6325951.html,); if((fp=fopen("D:\\txt\\worker.txt","r"))==0) { printf("\nCannot open file\n");getch(); exit(0); } for(i=0;!feof(fp);i++) for(i=0;!feof(fp);i++) fscanf(fp,"%d %s %s %d %s %s %s %s %d %d %d",&worker1[i].num,worker1[i].name,wor ker1[i].sex,&worker1[i].old,worker1[i].zhicheng,worker1[i].zhiwei,worker1[i].mianmao,worker1[ i].xueli,&worker1[i].come_time,&worker1[i].work_time,&worker1[i].leibie); k=i;m=-1; for(i=0;i { if(wor_people.num==worker1[i].num||!(strcmp(wor_https://www.wendangku.net/doc/1f6325951.html,,worker1[i].name))) { printf("%d %s %s %d %s %s %s %s %d %d %d",worker1[i].num,worker1[i].name,worker1[ i].sex,worker1[i].old,worker1[i].zhicheng,worker1[i].zhiwei,worker1[i].mianmao,worker1[i].xueli ,worker1[i].come_time,worker1[i].work_time,worker1[i].leibie); m=i; } } fclose(fp); if(m==-1) { printf("\n这个人不存在???");exit(0);getch(); } printf("\n你想重新编辑这个人的信息吗?\n "); printf("如果你想,请按1\n如果不想请按2\n"); scanf("%d",&n); if(n==1) { { printf("这个人的初始信息:\n"); printf("\n%d %s %s %d %s %s %s %s %d %d %d\n",worker1[m].num,worker1[m].name,wo rker1[m].sex,worker1[m].old,worker1[m].zhicheng,worker1[m].zhiwei,worker1[m].mianmao,wor ker1[m].xueli,worker1[m].come_time,worker1[m].work_time,worker1[m].leibie); printf(" 输入新的信息\n"); printf("编号:\n");scanf("%d",&worker1[m].num); printf("姓名:\n"); scanf("%s",worker1[m].name); printf("性别:\n");scanf("%s",worker1[m].sex); printf("年龄:\n");scanf("%d",&worker1[m].old); printf("职称:\n");scanf("%s",worker1[m].zhicheng); printf("职位:\n");scanf("%s",worker1[m].zhiwei); printf("政治面貌:\n");scanf("%s",worker1[m].mianmao); printf("学历:\n");scanf("%s",worker1[m].xueli); printf("来院时间:\n");scanf("%d",&worker1[m].come_time); printf("在院工作时间:\n");scanf("%d",&worker1[m].work_time); printf("在职与否:在职请按1,不在职请按2\n");scanf("%d",&worker1[i].leibie); printf("您刚才输入的人的信息\n"); printf("\n%d %s %s %d %s %s %s %s %d %d %d\n",worker1[m].num,worker1[m].name,wo rker1[m].sex,worker1[m].old,worker1[m].zhicheng,worker1[m].zhiwei,worker1[m].mianmao,wor ker1[m].xueli,worker1[m].come_time,worker1[m].work_time,worker1[m].leibie); } if((fp1=fopen("D:\\txt\\worker.txt","w"))==0) { printf("\nCannot open file\n"); exit(0); } for(i=0;i fprintf(fp1,"%d %s %s %d %s %s %s %s %d %d %d\n",worker1[i].num,worker1[i].name,wo rker1[i].sex,worker1[i].old,worker1[i].zhicheng,worker1[i].zhiwei,worker1[i].mianmao,worker1[i] .xueli,worker1[i].come_time,worker1[i].work_time,worker1[i].leibie); fclose(fp1); } if(n=2) exit(0); } 3,根据各个参数进行统计: ****统计在职人数 ****统计党员人数 ****统计女工人数 ****统计硕士以上学历和副教授以上职称人数 ****将统计得到的信息保存在worker3.txt文件中 void stat() { FILE *fp,*fp1; int w_num,d_num,wo_num,x_c_num,i,k; struct worker worker1[M]; puts("\t\t*******************统计人数菜单********************\n\n"); printf("\t\t\t\t 各种人员的人数"); puts("\n\n\t\t**************************************************\n"); if((fp=fopen("D:\\txt\\worker.txt","r"))==0) { printf("\nCannot open file\n"); exit(0); } for(i=0;!feof(fp);i++) fscanf(fp,"%d %s %s %d %s %s %s %s %d %d %d",&worker1[i].num,worker1[i].name,wor ker1[i].sex,&worker1[i].old,worker1[i].zhicheng,worker1[i].zhiwei,worker1[i].mianmao,worker1[ i].xueli,&worker1[i].come_time,&worker1[i].work_time,&worker1[i].leibie); k=i; fclose(fp); w_num=0,d_num=0,wo_num=0,x_c_num=0; for(i=0;i { if(!(strcmp(worker1[i].sex,"w"))) wo_num++; if(!(strcmp(worker1[i].mianmao,"dang"))) d_num++; if(worker1[i].leibie==1) w_num++; if(!(strcmp(worker1[i].xueli,"doc"))) x_c_num++; if(!(strcmp(worker1[i].xueli,"mas"))) x_c_num++; if(!(strcmp(worker1[i].zhicheng,"Professor"))) x_c_num++; if(!(strcmp(worker1[i].zhicheng,"a_professor"))) x_c_num++; } printf("在职人员数目:"); printf("%d\n",wo_num); printf("党员人数:"); printf("%d\n",d_num); printf("女职工人数:"); printf("%d\n",wo_num); printf("高职称高学历人数:"); printf("%d",x_c_num); getch(); if((fp1=fopen("D:\\txt\\worker3.txt","w"))==NULL) { printf("\nCannot open file\n"); exit(0); } fprintf(fp1,"%d %d %d %d ",w_num,d_num,wo_num,x_c_num); fclose(fp1); } 4.排序模块:该模块有两个子模块构成,按年龄和来源时间对原文件里的信息进行排序并且将排序分别保存在old_row.txt和comingtime_row.txt中。 void row() { int n, w; do { puts("\t\t************按年龄和来院时间排序*****************\n\n"); puts("\t\t\t\t 1.按年龄排序\n"); puts("\t\t\t\t 2.按来院时间排序\n"); puts("\n\n\t\t**********************************************\n"); printf(" 选择数字后就可排序(1-2): [ ]\b\b"); scanf("%d",&n); if(n<1||n>2) { w=1; getchar(); } else w=0; } while(w==1); switch(n) { case 1:old_row();break; case 2:comingtime_row();break; } } (1).按年龄对人员进行排序: void old_row() { FILE *fp,*fp1; struct worker wor_people ,worker1[M]; int i,j,k; if((fp=fopen("D:\\txt\\worker.txt","r"))==NULL) { printf("\nCannot open file\n"); exit(0); } for(i=0;!feof(fp);i++) fscanf(fp,"%d %s %s %d %s %s %s %s %d %d %d",&worker1[i].num,worker1[i].name,wor ker1[i].sex,&worker1[i].old,worker1[i].zhicheng,worker1[i].zhiwei,worker1[i].mianmao,worker1[ i].xueli,&worker1[i].come_time,&worker1[i].work_time,&worker1[i].leibie); k=i; for(i=0;i { for(j=i+1;j { if(worker1[i].old>worker1[j].old) { wor_people=worker1[i];worker1[i]=worker1[j];worker1[j]=wor_people; } } } if((fp1=fopen("D:\\txt\\old_row.txt","w"))==0) { printf("\nCannot open file\n"); } for(i=0;i { printf("%d %s %s %d %s %s %s %s %d %d %d\n",worker1[i].num,worker1[i].name,worker 1[i].sex,worker1[i].old,worker1[i].zhicheng,worker1[i].zhiwei,worker1[i].mianmao,worker1[i].xu eli,worker1[i].come_time,worker1[i].work_time,worker1[i].leibie); fprintf(fp1,"%d %s %s %d %s %s %s %s %d %d %d\n",worker1[i].num,worker1[i].name,wo rker1[i].sex,worker1[i].old,worker1[i].zhicheng,worker1[i].zhiwei,worker1[i].mianmao,worker1[i] .xueli,worker1[i].come_time,worker1[i].work_time,worker1[i].leibie); } fclose(fp1); } (2).按来院时间对人员进行排序 void comingtime_row() { FILE *fp,*fp1; struct worker wor_people ,worker1[M]; int i,j,k; if((fp=fopen("D:\\txt\\worker.txt","r"))==NULL) { printf("\nCannot open file\n"); exit(0); } for(i=0;!feof(fp);i++) fscanf(fp,"%d %s %s %d %s %s %s %s %d %d %d",&worker1[i].num,worker1[i].name,wor ker1[i].sex,&worker1[i].old,worker1[i].zhicheng,worker1[i].zhiwei,worker1[i].mianmao,worker1[ i].xueli,&worker1[i].come_time,&worker1[i].work_time,&worker1[i].leibie); k=i; for(i=0;i { for(j=i+1;j { if(worker1[i].work_time>worker1[j].work_time) { wor_people=worker1[i];worker1[i]=worker1[j];worker1[j]=wor_people; } } } if((fp1=fopen("D:\\txt\\comingtime_row.txt","w"))==0) { printf("\nCannot open file\n"); } for(i=0;i { fprintf(fp1,"%d %s %s %d %s %s %s %s %d %d %d\n",worker1[i].num,worker1[i].name,wo rker1[i].sex,worker1[i].old,worker1[i].zhicheng,worker1[i].zhiwei,worker1[i].mianmao,worker1[i] .xueli,worker1[i].come_time,worker1[i].work_time,worker1[i].leibie); printf("%d %s %s %d %s %s %s %s %d %d %d\n",worker1[i].num,worker1[i].name,worker 1[i].sex,worker1[i].old,worker1[i].zhicheng,worker1[i].zhiwei,worker1[i].mianmao,worker1[i].xu eli,worker1[i].come_time,worker1[i].work_time,worker1[i].leibie); } fclose(fp1); } 各模块汇总构成总程序并且各功能运行过程如下: # include # include # include # include # define M 2000 # define N 20 void retify(); void sear_edit(); void tianjia(); void shanchu(); void row(); void stat(); void old_row(); void comingtime_row(); main() { int n,w; do { puts("\t\t***********************高校人事管理*************************\n\n\n"); puts("\t\t\t\t 1.添加或删除\n"); puts("\t\t\t\t 2.查询与编辑\n"); puts("\t\t\t\t 3.统计\n") ; puts("\t\t\t\t 4.排序\n"); puts("\t\t*************************************************************\n"); printf("选择你要的服务(1-4): [ ]\b\b"); scanf("%d",&n); if(n<1||n>4) { w=1; getchar(); } else w=0; } while(w==1); switch(n) { case 1:retify();break; case 2:sear_edit();break; case 3:stat();break; case 4:row();break; } } struct worker { int num; char name[20]; char sex[10]; int old; char zhicheng[20]; char zhiwei[20]; char mianmao[20]; char xueli[20]; int come_time; int work_time; int leibie; }wor[N]; void retify() { int n,w; do { puts("\t\t***************删除或添加人员的信息****************\n\n\n\n\n"); puts("\t\t\t\t 1.添加"); puts("\t\t\t\t 2.删除"); printf("请选择服务(1-2): [ ]\b\b"); scanf("%d",&n); if(n<1||n>2) { w=1; getchar(); } else w=0; } while(w==1); switch(n) { case 1:tianjia();break; case 2:shanchu();break; } } void tianjia() { FILE *fp; int i,number; struct worker wor_t[N]; printf("您要添加的人的人数:"); scanf("%d",&number); printf("输入添加人的信息:\n"); for(i=0;i { printf("编号:\n");scanf("%d",&wor_t[i].num); printf("姓名:\n"); scanf("%s",wor_t[i].name); printf("性别:\n");scanf("%s",wor_t[i].sex); printf("年龄:\n");scanf("%d",&wor_t[i].old); printf("职称:\n");scanf("%s",wor_t[i].zhicheng); printf("职位:\n");scanf("%s",wor_t[i].zhiwei); printf("政治面貌:\n");scanf("%s",wor_t[i].mianmao); printf("学历:\n");scanf("%s",wor_t[i].xueli); printf("来院时间:\n");scanf("%d",&wor_t[i].come_time); printf("在院工作时间:\n");scanf("%d",&wor_t[i].work_time); printf("在职与否:在职请按1,不在职请按2\n");scanf("%d",&wor_t[i].leibie); printf("您刚才输入的人的信息\n"); printf("%d %s %s %d %s %s %s %s %d %d %d \n",wor_t[i].num,wor_t[i].name, wor_t[i].sex,wor_t[i].old,wor_t[i].zhicheng,wor_t[i].zhiwei,wor_t[i].mianmao, wor_t[i].xueli,wor_t[i].come_time,wor_t[i].work_time,wor_t[i].leibie); } if((fp=fopen("D:\\txt\\worker.txt","a+"))==NULL) { printf("\nCannot open file\n"); exit(0); } for(i=0;i { fprintf(fp,"\n%d %s %s %d %s %s %s %s %d %d %d",wor_t[i].num,wor_t[i].name,wor_t[i]. sex,wor_t[i].old,wor_t[i].zhicheng,wor_t[i].zhiwei,wor_t[i].mianmao,wor_t[i].xueli,wor_t[i].come _time,wor_t[i].work_time,wor_t[i].leibie); } fclose(fp); } void shanchu() { FILE *fp,*fp1; int i,number,k,j,m; struct worker worker1[M],worker2[M]; int a[N]; char b[N][20]; printf("您要删除的人的人数:\n"); scanf("%d",&number); for(i=0;i { printf("输入删除人的信息的编号和姓名:\n"); printf("输入添加人的编号:\n");scanf("%d",&a[i]); printf("输入添加人的姓名:\n");scanf("%s",b[i]); printf("您刚才输入的人的信息的编号和姓名:\n"); printf("%d %s\n",a[i],b[i]); } if((fp=fopen("D:\\txt\\worker.txt","r"))==NULL) { printf("\nCannot open file\n"); getch(); exit(0); } printf("输出公司更改前所有人员的信息:\n编号姓名性别年龄职称职位面貌学历来院时间工作时间在职与否\n"); for(i=0;!feof(fp);i++) fscanf(fp,"%d %s %s %d %s %s %s %s %d %d %d",&worker2[i].num,worker2[i].name,wor ker2[i].sex,&worker2[i].old,worker2[i].zhicheng,worker2[i].zhiwei,worker2[i].mianmao,worker2[ i].xueli,&worker2[i].come_time,&worker2[i].work_time,&worker2[i].leibie); k=i; fclose(fp); m=0; for(i=0;i { for(j=0;j { if(worker2[i].num!=a[j]&&strcmp(worker2[i].name,b[j])) { worker1[m]=worker2[i]; m++; } } printf(" %d %s %s %d %s %s %s %s %d %d %d\n",worker2[i].num,worker2[i].name,worker 2[i].sex,worker2[i].old,worker2[i].zhicheng,worker2[i].zhiwei,worker2[i].mianmao,worker2[i].xu eli,worker2[i].come_time,worker2[i].work_time,worker2[i].leibie); if(k==m) {printf("\n这个人不存在???");exit(0);getch();} } printf("输出公司更改后所有人员的信息:\n编号姓名性别年龄职称职位面貌学历来院时间工作时间在职与否\n"); if((fp1=fopen("D:\\txt\\worker.txt","w"))==NULL) { printf("\nCannot open file\n"); getch(); exit(0); } for(i=0;i { printf(" %d %s %s %d %s %s %s %s %d %d %d\n",worker1[i].num,worker1[i].name,wo rker1[i].sex,worker1[i].old,worker1[i].zhicheng,worker1[i].zhiwei,worker1[i].mianmao,worker1[i] .xueli,worker1[i].come_time,worker1[i].work_time,worker1[i].leibie); fprintf(fp1," %d %s %s %d %s %s %s %s %d %d %d\n",worker1[i].num,worker1[i].nam e,worker1[i].sex,worker1[i].old,worker1[i].zhicheng,worker1[i].zhiwei,worker1[i].mianmao,work er1[i].xueli,worker1[i].come_time,worker1[i].work_time,worker1[i].leibie); } fclose(fp1); getch(); } void row() { int n, w; do { puts("\t\t************按年龄和来院时间排序*****************\n\n"); puts("\t\t\t\t 1.按年龄排序\n"); puts("\t\t\t\t 2.按来院时间排序\n"); puts("\n\n\t\t**********************************************\n"); printf(" 选择数字后就可排序(1-2): [ ]\b\b"); scanf("%d",&n); if(n<1||n>2) { w=1; getchar(); } else w=0; } while(w==1); switch(n) { case 1:old_row();break; case 2:comingtime_row();break; } } void old_row() { FILE *fp,*fp1; struct worker wor_people ,worker1[M]; int i,j,k; if((fp=fopen("D:\\txt\\worker.txt","r"))==NULL) { printf("\nCannot open file\n"); exit(0); } for(i=0;!feof(fp);i++) fscanf(fp,"%d %s %s %d %s %s %s %s %d %d %d",&worker1[i].num,worker1[i].name,wor ker1[i].sex,&worker1[i].old,worker1[i].zhicheng,worker1[i].zhiwei,worker1[i].mianmao,worker1[ i].xueli,&worker1[i].come_time,&worker1[i].work_time,&worker1[i].leibie); k=i; for(i=0;i { for(j=i+1;j { if(worker1[i].old>worker1[j].old) { wor_people=worker1[i];worker1[i]=worker1[j];worker1[j]=wor_people; } } } if((fp1=fopen("D:\\txt\\old_row.txt","w"))==0) { printf("\nCannot open file\n"); } for(i=0;i { printf("%d %s %s %d %s %s %s %s %d %d %d\n",worker1[i].num,worker1[i].name,worker 1[i].sex,worker1[i].old,worker1[i].zhicheng,worker1[i].zhiwei,worker1[i].mianmao,worker1[i].xu eli,worker1[i].come_time,worker1[i].work_time,worker1[i].leibie); fprintf(fp1,"%d %s %s %d %s %s %s %s %d %d %d\n",worker1[i].num,worker1[i].name,worker 人事管理管理系统 [要求] 某高校主要人员有:在职人员(行政人员、教师、一般员工)、退休人员和临时工。现在,需要存储这些人员的人事档案信息:编号、姓名、性别、年龄、职务、职称、政治面貌、最高学历、任职时间、来院时间、人员类别。其中,人员编号唯一,不能重复。 (1)添加删除功能:能根据学院人事的变动情况,添加删除记录; (2)查询功能:能根据编号和姓名进行查询; (3)编辑功能(高级):根据查询对相应的记录进行修改,并存储; (4)统计功能:能根据多种参数进行人员的统计(在职人数、党员人数、女工人数、高学历高职称人数(硕士学位以上或者副教授以上)),统计要求同时显示被统计者的信息; (5)排序功能:按照年龄、来院时间进行排序; (6)保存功能:能对输入的数据进行相应的存储; 一、需求分析: 根据题目要求,职工信息是存放在文件中的,所以应该提供相应的文件的输入输出的功能,在程序中应该有添加删除,查询,编辑,统计,排序,保存等程序实现相应的操作,另外菜单式的选择方式选择程序的功能也是必须需的。另外程序中要求存储的模块,采用的方式均为将原文件中的所有数据读入内存,在内存中处理之后以覆盖的方式写入文件中重新储存,这样的方法容易理解、容易编写,但当文件中的数据量很大时,这种方法也存在一定的难度,在本程序中将N定为100,也即最多可储存的职工人数为100; 二、总体设计: 根据以上需求分析,将程序分成以下几个模块: 1、新建档案信息; 2、删除信息; 3、追加信息; 4、搜索查找信息(按姓名或者编号搜索); 5、浏览全部信息; 6、修改信息; 7、信息排序; 8、信息统计; 三、详细设计; 1、主函数: 〈1〉需求分析: 为使系统执行完每部分功能后能够方便的回到系统主界面,main()函数设计的很简单,只包含一个menu()函数,其余的全部功能都通过menu()函数调用来实现,并通过menu()函数的递归调用实现返回主界面的功能。 main()函数定义如下: main() C语言课程设计 题目 指导教师 学生姓名 学号 专业 教学单位 目录 1设计内容与设计要求 (1) 1.1系统功能简介 (1) 1.2系统运行环境 (1) 2功能划分,模块详细说明 (1) 3程序流程图 (1) 4运行的运行及说明 (2) 4.1系统的运行 (2) 4.2运行说明 (4) 5总结 (5) 附件:源程序清单 (5) 1设计内容与设计要求 1.1系统功能简介 ?系统有简单的菜单界面,用户可以通过输入简单的选项来完成 相应的工作。 ?选定一种产品,按销售额的顺序对销售员进行排序,输出排序结果。 ?统计每种产品的总销售额,输出排序结果。 ?输出统计报表。 1.2系统运行环境 Vc++6.0下运行,硬件基本无要求,现在的计算机系统基本都可以运行该系统。 2功能划分,模块详细说明 系统的功能是通过子函数调用的方式来完成的,下面对程序中用到的函数及其功能做一下说明。 ●void menu():显示主菜单界面。 ●void data_count(data *x):以写方式打开文件,对商品信息清零,读 入职工编号、产品编号、销售量等信息,对相同职工的相同产品的销售量求和后写入文件。 ●void range_sxy(data *x):以读方式打开文件,读入信息,输入按何种 产品排序后对存储职工编号的数组进行排序,最后输出新序的职工编号信息。 ●void range_shangpin(data *x):从文件读入信息,对每项产品的销售 量求和,按每项产品的总销售量排序。 ●void data_out(data *x):打开文件,读入信息,求所有产品的销售量 的和,输出统计表。 ●void main():主函数,调用以上函数,完成相应功能。 3程序流程图 程序整体流程图如图3-1所示: 人事管理管理系统 [要求] 某高校主要人员有:在职人员(行政人员、教师、一般员工)、退休人员和临时工。现在,需要存储这些人员的人事档案信息:编号、姓名、性别、年龄、职务、职称、政治面貌、最高学历、任职时间、来院时间、人员类别。其中,人员编号唯一,不能重复。 (1)添加删除功能:能根据学院人事的变动情况,添加删除记录; (2)查询功能:能根据编号和姓名进行查询; (3)编辑功能(高级):根据查询对相应的记录进行修改,并存储; (4)统计功能:能根据多种参数进行人员的统计(在职人数、党员人数、女工人数、高学历高职称人数(硕士学位以上或者副教授以上)),统计要求同时显示被统计者的信息; (5)排序功能:按照年龄、来院时间进行排序; (6)保存功能:能对输入的数据进行相应的存储; 一、需求分析: 根据题目要求,职工信息是存放在文件中的,所以应该提供相应的文件的输入输出的功能,在程序中应该有添加删除,查询,编辑,统计,排序,保存等程序实现相应的操作,另外菜单式的选择方式选择程序的功能也是必须需的。另外程序中要求存储的模块,采用的方式均为将原文件中的所有数据读入内存,在内存中处理之后以覆盖的方式写入文件中重新储存,这样的方法容易理解、容易编写,但当文件中的数据量很大时,这种方法也存在一定的难度,在本程序中将N定为100,也即最多可储存的职工人数为100; 二、总体设计: 根据以上需求分析,将程序分成以下几个模块: 1、新建档案信息; 2、删除信息; 3、追加信息; 4、搜索查找信息(按姓名或者编号搜索); 5、浏览全部信息; 6、修改信息; 7、信息排序; 8信息统计; 三、详细设计; 1、主函数: 〈1〉需求分析: 为使系统执行完每部分功能后能够方便的回到系统主界面,main()函数设计的 很简单,只包含一个menu()函数,其余的全部功能都通过menu()函数调用来实现,并通过menu()函数的递归调用实现返回主界面的功能。 C语言程序设计销售管理 系统 The latest revision on November 22, 2020 销售信息管理系统设计文档 组号:第二组 成员:汪品高齐瑞智欧阳鑫赵飞锋章森 目录 一.题目与要求 二.功能实现设计(模块化设计)三.运行结果(附带抓图)四.源程序 报告正文 1、题目与要求: 2、某公司有四个销售员(编号:1-4),负责销售五种产品(编号:1-5)。每个销售员汇总当天出售的每种产品的销售情况。 2 每天销售情况包括(销售员的代号、产品的代号、这种产品当天的销售额) 1、编写一个销售信息管理系统,读取上个月的销售情况 1、计算上个月没人每种产品的销售额 2、按销售额对销售员进行排序,输出排序结果(销售员代号) 3、统计每种产品的总销售额,对这些产品从高到低的顺序输出结果 (须输出产品的代号和销售额) 4、输出统计报表 2、需求分析 本程序将用到文件系统,其中单行内容代表一张纸条。程序运行后首先将文件系统的原始数据读取并保存到程序的结构体数组当中,所以应提供文件输入的操作;由于纸条数据零散,所以要对原始数据进行分类操作并提供一个数组用于保存分类信息;在程序中要进行统计工作,所以要提供显示、排序等操作;另外应提供键盘式选择菜单实现功能选择。 3、功能实现设计 总体设计 根据上面的分析,可以将这个系统分为如下五大模块:查看每人每种产品的销售额、按销售额对销售员排序、对每种产品总销售额从高到低排序、输出统计报表和退出。其中主要模块是前四个模块。 流程图 详细设计: #include<> #include<> #include<> #include<> #define M 【功能函数声明】 vvoid detail(); void foreach(); void menu(); void product(); void readdata(); void seller(); void total(); void choice(); 【数据结构】 原始数据有销售员代号、产品代号和销售额,所以定义一个全局结构体数组scrip用于保存原始数据。然后定义全局变量n保存纸条数目,定义数组s用于保存分类后的信息。 struct ss { int sid; id,&ss[n].pid,&ss[n].sn); } id) #include 商品销售管理系统 目录 一、需求分析 (2) 二、概要设计 (2) 三、详细设计 (4) 四、调试分析 (14) 五、用户手册 (14) 六、测试数据 (15) 七、附录 (18) —1— 一、需求分析 商品销售管理程序 商品信息:商品编号、商品名称、商品类别(普通电视机、DVD、带DVD 的电视机,带DVD的电视机的售价为普通电视机和DVD单价之和的80%)、商品进货价格、商品销售价格、商品数量、供应商名称等。 记录每一次销售商品的数量和价格,并提供对已售出商品的价格、数量进行统计、排序功能,但允许用户退商品。 (要求:1.源文件采用多文件的工程结构2.数据存储采用文件形式3.标准的C 输入输出4.功能完善,适当的注释,5.关于文件的内容需要自学) 二、概要设计 (一)按系统分析的功能要求将系统划分为以下几个主要功能模块: 1、文件管理 文件打开、关闭:对于刚输入或进行操作后的商品信息,在建立新的商品库存量后,可以把其保存在一个文件中,并对该文件可进行打开和关闭操作。 2、进出货管理 (1)商品进货: 输入数据后商品信息能自动更新进行添加 (2)商品销售: 输入数据后商品信息能自动更新进行减少 3、商品数据管理 (1)增加/删除商品: 添加或删除某条商品的信息 (2)修改商品信息: 对某条商品的信息进行修改 4、浏览商品信息管理 (1)查询商品信息:可分别按商品编号、名称、类别或需要进货商品查询 (2)排序商品信息: 可按商品编号、名称、类别分别排排序 (3)浏览商品信息:可浏览输入、查询或排序后的数据。 (二)本程序结构 (1)结构体设计 struct goods { long int num; char name[20]; char sort[20]; long int count; long int price; }goods[200]; (2)各功能函数设计: C语言课程设计 欧阳家百(2021.03.07) ——人事管理系统题目要求: 人事管理管理系统 [要求] 某高校主要人员有:在职人员(行政人员、教师、一般员工)、退休人员和临时工。现在,需要存储这些人员的人事档案信息:编号、姓名、性别、年龄、职务、职称、政治面貌、最高学历、任职时间、来院时间、人员类别。其中,人员编号唯一,不能重复。 (1)添加删除功能:能根据学院人事的变动情况,添加删除记录; (2)查询功能:能根据编号和姓名进行查询; (3)编辑功能(高级):根据查询对相应的记录进行修改,并存储; (4)统计功能:能根据多种参数进行人员的统计(在职人数、党员人数、女工人数、高学历高职称人数(硕士学位以上或者副教授以上)),统计要求同时显示被统计者的信息;(5)排序功能:按照年龄、来院时间进行排序; (6)保存功能:能对输入的数据进行相应的存储; 一、需求分析: 根据题目要求,职工信息是存放在文件中的,所以应该提供相应的文件的输入输出的功能,在程序中应该有添加删除,查询,编辑,统计,排序,保存等程序实现相应的操作,另外菜单式的选择方式选择程序的功能也是必须需的。另外程序中要求存储的模块,采用的方式均为将原文件中的所有数据读入内存,在内存中处理之后以覆盖的方式写入文件存贮,这样的方法在一定程度上提高了对数据处理的灵活性,较容易理解,但存在处理中遇到以外情况而丢失数据的风险,另外当文件中的数据量很大时,这种方法也存在一定的难度,在本程序中将N定为100,基本上能满足要求; 二、总体设计: 根据以上需求分析,将程序分成以下几个模块: 1、新建数据文件(build new data); 2、添加记录(add data); 课程设计说明书 学院、系: 专业: 学生姓名:学号: 销售管理系统 设计题目: 起迄日期: 指导教师: 日期: 2017年5月12日 1 设计目的 1.了解管理信息系统的开发流程,熟悉C语言的文件和结构数组的各种基本操作。 2.握高级程序设计语言的知识。 3.践中逐步掌握程序设计的思想和方法,培养问题求解和语言的应用能力。 4.程序中涉及结构体、数组、文件等方面的知识。通过本程序的训练,能对C语言 的文件操作有一个更深刻的了解。 5.提高与程序设计和软件开发有关的各种综合能力。 6.通过本课程设计,培养上机动手能力,巩固《C语言程序设计》课程学习的内容,掌握工程软件设计的基本方法,强化上机动手能力,闯过编程关; 7.为后续各门计算机课程的学习打下坚实基础; 8.学会用c语言程序设计来设计销售管理系统设计。 2 任务概述 某公司有四个销售员(编号:1-4),负责销售五种产品(编号:1-5)。每个销售员都将当天出售的每种产品各写一张便条交上来。每张便条包含内容:1)销售员的代号,2)产品的代号,3)这种产品的当天的销售额。每位销售员每天上缴1张便条。 试设计一个便条管理系统,使之能提供以下功能: 1、系统以菜单方式工作 2、便条信息录入功能(便条信息用文件保存)--输入 3、收集到了上个月的所有便条后,读取销售情况 1)计算每个人每种产品的销售额。 2)按销售额对销售员进行排序,输出排序结果(销售员代号) 3)统计每种产品的总销售额,对这些产品按从高到底的顺序,输出排序结果 4)输出统计报表 3 模块划分 主菜单及头文件设计 编辑系统菜单运行 输入信息 保存信息,参数为结构体数组和记录数 读入取函数,参数为结构体数组 清单输出 主要功能的实现 4 主要函数说明及其N-S图 C语言课程设计 ——人事管理系统 题目要求: 人事管理管理系统 [要求] 某高校主要人员有:在职人员(行政人员、教师、一般员工)、退休人员和临时工。现在,需要存储这些人员的人事档案信息:编号、姓名、性别、年龄、职务、职称、政治面貌、最高学历、任职时间、来院时间、人员类别。其中,人员编号唯一,不能重复。 (1)添加删除功能:能根据学院人事的变动情况,添加删除记录; (2)查询功能:能根据编号和姓名进行查询; (3)编辑功能(高级):根据查询对相应的记录进行修改,并存储; (4)统计功能:能根据多种参数进行人员的统计(在职人数、党员人数、女工人数、高学历高职称人数(硕士学位以上或者副教授以上)),统计要求同时显示被统计者的信息; (5)排序功能:按照年龄、来院时间进行排序; (6)保存功能:能对输入的数据进行相应的存储; 一、需求分析: 根据题目要求,职工信息是存放在文件中的,所以应该提供相应的文件的输入输出的功能,在程序中应该有添加删除,查询,编辑,统计,排序,保存等程序实现相应的操作,另外菜单式的选择方式选择程序的功能也是必须需的。另外程序中要求存储的模块,采用的方式均为将原文件中的所有数据读入内存,在内存中处理之后以覆盖的方式写入文件存贮,这样的方法在一定程度上提高了对数据处理的灵活性,较容易理解,但存在处理中遇到以外情况而丢失数据的风险,另外当文件中的数据量很大时,这种方法也存在一定的难度,在本程序中将N定为100,基本上能满足要求; 二、总体设计: 根据以上需求分析,将程序分成以下几个模块: 1、新建数据文件(build new data); 2、添加记录(add data); 3、删除记录(delete data); 4、按工号搜索(search by number); 5、按姓名搜索(search by name); 6、浏览全部数据(browse all); 7、修改数据(modify the data); 8、排序功能(order the volume); 9、统计功能(data a volume); 系统功能模块图如下: (一)、设计内容与设计要求 1.设计内容: 设计课题四:销售管理系统 一、问题描述: 通过本系统实现对N个销售员信息的录入、显示、添加、删除,以及对产品销售额的排序等操作的管理。 二、功能描述: 1、本系统采用一个包含n个数据的结构体数组,每个 数据的结构应当包括:姓名、身份、产品1销售额、 产品2销售额、总产品销售额。 2、本系统显示这样的菜单: 销售管理系统 1、销售员信息输入 2、销售员信息输出 3、删除销售员 4、添加销售员 5、销售额排序 6、统计产品销售额 7、保存销售额信息 0、退出系统 3、执行一个具体的功能之后,程序将重新显示菜单。 4、将系统信息保存在文件中。 三、算法提示: 1、数据结构:结构体类型数组 2、数据库结构:下表构成该系统的基本数据库 四、测试数据:记录数20。 2.设计要求: 1).设计正确,方案合理。 2).界面友好,使用方便。 3).程序精炼,结构清晰。 4).设计报告5000字以上,含程序设计说明,用户使用说明, 源程序清单及程序框图。 5).上机演示。 (二)、进度安排 第一周课题讲解,查阅资料总,体设计,详细设计 周日:8:00——12:00 14:00-—18:00 周一:8:00——12:00 周三:14:00——18:00 第二周编程,上机调试,修改程序,完善程序,答辩 撰写课程设计报告 周二:8:00——12:00 周五:14:00——18:00 附: 课程设计报告装订顺序:封面、任务书、目录、正文、评分、附件(A4大小的图纸及程序清单)。 正文的格式:一级标题用3号黑体,二级标题用四号宋体加粗,正文用小四号宋体;行距为22。 正文的内容:一、课题的主要功能;二、课题的功能模块的划分(要求画出模块图);三、主要功能的实现(至少要有一个主要模块的流程图);四、程序调试;五、总结;六、附件(所有程序的原代码,要求对程序写出必要的注释)。 正文总字数要求在5000字以上(不含程序原代码) 目录 一、需求分析 (1) 二、概要设计 (1) 三、详细设计 (5) 四、调试分析以及设计体会 (6) 五、使用说明 (6) 六、附录 (7) C语言课程设计 ——人事管理系统 题目要求: 人事管理管理系统 [要求] 某高校主要人员有:在职人员(行政人员、教师、一般员工)、退休人员和临时工。现在,需要存储这些人员的人事档案信息:编号、姓名、性别、年龄、职务、职称、政治面貌、最高学历、任职时间、来院时间、人员类别。其中,人员编号唯一,不能重复。 (1)添加删除功能:能根据学院人事的变动情况,添加删除记录; (2)查询功能:能根据编号和姓名进行查询; (3)编辑功能(高级):根据查询对相应的记录进行修改,并存储; (4)统计功能:能根据多种参数进行人员的统计(在职人数、党员人数、女工人数、高学历高职称人数(硕士学位以上或者副教授以上)),统计要求同时显示被统计者的信息; (5)排序功能:按照年龄、来院时间进行排序; (6)保存功能:能对输入的数据进行相应的存储; 一、需求分析: 根据题目要求,职工信息是存放在文件中的,所以应该提供相应的文件的输入输出的功能,在程序中应该有添加删除,查询,编辑,统计,排序,保存等程序实现相应的操作,另外菜单式的选择方式选择程序的功能也是必须需的。另外程序中要求存储的模块,采用的方式均为将原文件中的所有数据读入内存,在内存中处理之后以覆盖的方式写入文件存贮,这样的方法在一定程度上提高了对数据处理的灵活性,较容易理解,但存在处理中遇到以外情况而丢失数据的风险,另外当文件中的数据量很大时,这种方法也存在一定的难度,在本程序中将N定为100,基本上能满足要求; 二、总体设计: 根据以上需求分析,将程序分成以下几个模块: 1、新建数据文件(build new data); 2、添加记录(add data); 3、删除记录(delete data); 4、按工号搜索(search by number); 5、按姓名搜索(search by name); C语言课程设计 ——人事管理系统 题目要求: 人事管理管理系统 [要求] 某高校主要人员有:在职人员(行政人员、教师、一般员工)、退休人员与临时工。现在,需要存储这些人员得人事档案信息:编号、姓名、性别、年龄、职务、职称、政治面貌、最高学历、任职时间、来院时间、人员类别。其中,人员编号唯一,不能重复。 (1)添加删除功能:能根据学院人事得变动情况,添加删除记录; (2)查询功能:能根据编号与姓名进行查询; (3)编辑功能(高级):根据查询对相应得记录进行修改,并存储; (4)统计功能:能根据多种参数进行人员得统计(在职人数、党员人数、女工人数、高学历高职称人数(硕士学位以上或者副教授以上)),统计要求同时显示被统计者得信息; (5)排序功能:按照年龄、来院时间进行排序; (6)保存功能:能对输入得数据进行相应得存储; 一、需求分析: 根据题目要求,职工信息就是存放在文件中得,所以应该提供相应得文件得输入输出得功能,在程序中应该有添加删除,查询,编辑,统计,排序,保存等程序实现相应得操作,另外菜单式得选择方式选择程序得功能也就是必须需得。另外程序中要求存储得模块,采用得方式均为将原文件中得所有数据读入内存,在内存中处理之后以覆盖得方式写入文件存贮,这样得方法在一定程度上提高了对数据处理得灵活性,较容易理解,但存在处理中遇到以外情况而丢失数据得风险,另外当文件中得数据量很大时,这种方法也存在一定得难度,在本程序中将N定为100,基本上能满足要求; 二、总体设计: 根据以上需求分析,将程序分成以下几个模块: 1、新建数据文件(build new data); 2、添加记录(add data); 3、删除记录(delete data); 4、按工号搜索(search bynumber); 5、按姓名搜索(search by name); 6、浏览全部数据(browseall); 7、修改数据(modify thedata); 8、排序功能(orderthe volume); 9、统计功能(dataa volume); 系统功能模块图如下: 计算机高级语言课程设计(C) 姓名: 学号:院(系): 专业:指导教师: 职称 2010年09月 题目:销售管理系统 时间:2010年09月 【问题描述】 某公司有四个销售员(编号:1~4),负责销售五种产品(编号:1~5)。每个销售员都将当天出售的每种产品各写一张便条交上来。每张便条包含内容:(1)销售员的代号(2)产品的代号(3)这种产品当天的销售额 每位销售员每天可能上缴0~5张便条。假设收集到了上个月的所有便条,编写一个 处理系统,读取上个月的销售情况(自己设定)。 【基本要求】 (1)计算上个月每人每种产品的销售额。 (2)按销售额对销售员进行排序,输出排序结果(销售员代号) (3)统计每种产品的总销售额,对这些产品按从高到低的顺序输出排序结果(需输出产品的代号和销售额) (4)输出统计报表 1、需求分析 根据题目的要求采用结构体数组和文件系统实现,结构体成员包括销售员代号,产品代号,销售额。排序算法采用选择排序算法。输出统计报表形式按照题目给出的形式在屏幕上相应位置输出内容。 2、设计 (1 )设计思想 1)定义如下: struct goods {int p_num; int num; int g_num; } s[max]; struct pers ons {int nu m[7]; }p[6],w; int n=max;/ 2)文件结构 总共有如下文件: 职工考勤管理信息系统数据库设计 和实现 班级: 学号: 姓名: 1.需求分析 1.1引言 随着时代的进步,各大公司的职工越来越多,计算机领域的方向越来越广阔,总之只有你想不到,没用用计算机做不到的,职工考勤管理信息系统。职工考勤管理信息系统使管理者越来越简单、方便、快捷的管理好一个公司的制度。所以我们本次课程设计开发职工考勤管理信息系统。 1.2目的 此系统为了能方便、快捷、简单的管理公司的人员而设计。希望能建立一个一般100人左右规模的公司能使用的系统本次所涉及的是系统中的数据库。一个完好的数据是一个完美软件的第一块砖。 1.3背景 经过一个学期的学习,我们在检验本学期所学的知识的同时也要做一些利于广大社会发展的知识的储备。所以我选择了职工考勤管理信息系统。 1.4主要功能 本软件主要需要实现的功能分为以下几个方面: 管理员:实现一个公司中只能有极少数的人能通过密码管理系统的功能。 员工信息:能够录入一个新进公司的员工的信息和增加、删除、修改、查询信息。 请假:能够记录公司员工请假的日期,请假结束的日期,和请假的天数,同样也要能够实现员工请假记录的增加、删除、修改、查询信息。 出差:能够记录公司员工出差的日期,出差结束的日期,和出差的天数,同样也要能够实现员工出差记录的增加、删除、修改、查询信息。 日出勤:能够记录公司员日出勤的情况,同样也要能够实现员工日出勤记录的增加、删除、修改、查询信息。 1.5参考文献 《C#项目案例分析》明日科技编著、北京清华大学出版社; SQL Server数据库管理和开发教程和实训(第二版)北京大学出版社; 百度文库; 2.数据库设计 2.1概念结构设计(由需求得到E-R模型) (一)、设计内容与设计要求 1. 设计内容: 设计课题四:销售管理系统 一、问题描述: 通过本系统实现对N个销售员信息的录入、显示、添加、删除,以及对产 品销售额的排序等操作的管理。 二、功能描述: 1、本系统采用一个包含n个数据的结构体数组,每个数据的结构应 当包括:姓名、身份、产品1销售额、产品2销售额、总产品销 售额。 2、本系统显示这样的菜单: 销售管理系统 1、销售员信息输入 2 、销售员信息输出 3 、删除销售员 4 、添加销售员 5 、销售额排序 6 、统计产品销售额 7 、保存销售额信息 0 、退出系统 3、执行一个具体的功能之后,程序将重新显示菜单。 4、将系统信息保存在文件中。 三、算法提示: 1、数据结构:结构体类型数组 2、数据库结构:下表构成该系统的基本数据库 四、测试数据:记录数20。 2. 设计要求: 1).设计正确,方案合理。 2) .界面友好,使用方便。 3) .程序精炼,结构清晰。 4) .设计报告5000字以上,含程序设计说明,用户使用说明,源程序清单及程序框图。 5) .上机演示。 (二)、进度安排 第一周课题讲解,查阅资料总,体设计,详细设计 周日:& 00——-12: 00 14: 00-- -18: 00 周一:& 00—— -12: 00 周三:14: 00——18: 00 第二周编程,上机调试,修改程序,完善程序,答辩撰写课程设计报告周二:8: 00——12: 00 周五:14: 00——18: 00 附: 课程设计报告装订顺序:封面、任务书、目录、正文、评分、附件(A4大小的图纸及 程序清单)。 正文的格式:一级标题用 3号黑体,二级标题用四号宋体加粗,正文用小四号宋体;行距为22。 正文的内容:一、课题的主要功能;二、课题的功能模块的划分(要求画出模块图); 三、主要功能的实现(至少要有一个主要模块的流程图);四、程序调试;五、总结;六、 附件(所有程序的原代码,要求对程序写出必要的注释)。 正文总字数要求在 5000字以上(不含程序原代码) 学校代码:11517 学号:2 文献综述 题目基于的人事管理系统 的设计与实现 学生姓名许耀辉 专业班级信息与计算科学1042班 学号 2 系(部)理学院 指导教师(职称)董西广(讲师) 完成时间2014年3月4日 基于的人事管理系统的设计与实现 摘要:随着计算机的发展,科技的发展,现阶段的人事管理系统越来越不能满足企业的需要,特别是对于一些企业仍然采用人工管理的方式,这种方式不仅增加了企业的成本,而且极其容易出错,设计一种基于的人事管理系统就应运而生了,人事管理系统基本实现了企业人事管理的基本应用,包括人事信息管理的增、删、改、查,考勤信息管理的增、删、改、查,个人简历信息管理等基本应用,设计的人事管理涉及数据库的操作,以及数据库的连接等相关知识。 关键词:人事管理 1 引言 21世纪最激烈的竞争当属人才的竞争,一个具有多学科知识的复合性人才或许是一个企业发展壮大所不可或缺的重要因素。因此人力资源已逐步成为企业最重要的资源,人力资源管理(,)也成为现代企业管理工作中的重要内容之一。随着社会的发展,科技的进步,计算机的应用在社会各领域中都得到了普及,越来越多的人都感受到利用计算机进行各类管理的科学和便捷;认识到管理信息系统对于管理工作的重要性[1]。 本次论文创作的主要目的是设计一款简单、易操作的现代人事管理系统,在论文创作的过程中,我借助学校和个人收集的相关资料,利用图书馆和网络等渠道,广泛查阅相关资料,分析前人成果的基础上,明确系统设计思路。 2 人事管理系统的发展 2.1人事管理系统的国外的发展 人事管理系统的发展经过三个阶段的发展。 人事管理系统的发展历史可以追溯到20世纪60年代末期。由于当时计算机技术已经进入实用阶段,同时大型企业用手工来计算和发放薪资既费时费力又容易出差错,为了解决这个矛盾,第一代人事管理系统应运而生。 第二代的人事管理系统出现于20世纪70年代末。由于计算机技术的飞速发展,无论是计算机的普及性,还是计算机系统工具和数据库技术的发展,都为的 人事管理系统C语 言 人事管理管理系统 [要求] 某高校主要人员有:在职人员(行政人员、教师、一般员工)、退休人员和临时工。现在,需要存储这些人员的人事档案信息:编号、姓名、性别、年龄、职务、职称、政治面貌、最高学历、任职时间、来院时间、人员类别。其中,人员编号唯一,不能重复。 (1)添加删除功能:能根据学院人事的变动情况,添加删除记录; (2)查询功能:能根据编号和姓名进行查询; (3)编辑功能(高级):根据查询对相应的记录进行修改,并存储; (4)统计功能:能根据多种参数进行人员的统计(在职人数、党员人数、女工人数、高学历高职称人数(硕士学位以上或者副教授以上)),统计要求同时显示被统计者的信息;(5)排序功能:按照年龄、来院时间进行排序; (6)保存功能:能对输入的数据进行相应的存储; 一、需求分析: 根据题目要求,职工信息是存放在文件中的,因此应该提供相应的文件的输入输出的功能,在程序中应该有添加删除,查询,编辑,统计,排序,保存等程序实现相应的操作,另外菜单式的选择方式选择程序的功能也是必须需的。另外程序中要求存储的模 块,采用的方式均为将原文件中的所有数据读入内存,在内存中处理之后以覆盖的方式写入文件中重新储存,这样的方法容易理解、容易编写,但当文件中的数据量很大时,这种方法也存在一定的难度,在本程序中将N定为100,也即最多可储存的职工人数为100; 二、总体设计: 根据以上需求分析,将程序分成以下几个模块: 1、新建档案信息; 2、删除信息; 3、追加信息; 4、搜索查找信息(按姓名或者编号搜索); 5、浏览全部信息; 6、修改信息; 7、信息排序; 8、信息统计; 三、详细设计; 1、主函数: 〈1〉需求分析: 为使系统执行完每部分功能后能够方便的回到系统主界面,main()函数设计的很简单,只包含一个menu()函数,其余的全部功能都经过menu()函数调用来实现,并经过menu()函数的递归调用实现 C语言课程设计报告 一、题目 设计一个C语言程序(销售管理系统) 二、内容 1、每一记录包括销售员的编号、产品编号、产品当天的销售额、上个月每个人每种产品的销售额、每种产品的总销售额。 2、输入功能:可以完成记录的输入 3、显示功能:完成所要求员工的记录的显示 4、查找功能:完成按员工编号查找员工记录,并显示。 5、排序功能: 按销售额对销售员进行排序, 对这些产品按从高到底的顺序输出排序结果。 6、保存功能:将员工记录保存在自定义的文件中。 三、设计要求 1、整个系统均用C语言实现; 2、利用指针、链表来实现员工销售情况的数据结构设计 3、系统具有输入、显示、查询、删除、排序、插入、保存、读取基本功能 4、系统的各个功能模块都用函数的形式来实现。 5、可以将员工的销售情况从文件当中读取出来。 具体要求: 某公司有四个销售员(编号:1-4),负责销售五种产品(编号1-5)。每个销售员都将当天出售的每种产品各写一张便条交上来。每张便条 包含内容: 1)销售员的代号 2)产品的代号 3)这种产品当天的销售额 每位销售员每天的可能上交0-5张便条。假设,收集到了上个月的所有便条,编写一个处理系统,读取上个月的销售情况,进行如下处理: 主要功能:1、计算上个月每个人每种产品的销售额。 2、按销售额对销售员进行排序,输出排序结果(销售员代号) 3、统计每种产品的总销售额,对这些产品按从 高到底的顺序输出排序结果(需输出产品的代号 和销售额) 4、输出统计报表 四、总体设计 1、程序设计组成框图 ` 五、详细设计 1、功能函数f1() ——本函数由梁俊贤设计函数的功能:计算上个月每个人每种产品的销售额 函数的入口:从main()的switch()开关结构中进入,即choice 的值为1时进入该函数,打开.dat数据文件, 然后提示用户通过键盘对该月的员工销售情况 进行数据的读入。 函数调用关系:被主函数调用。由switch()开关结构中进入, 并在文中无返回值的空值void函数。 函数的出口:当程序执行提示语“printf("继续输入请按回车, 设计题目:人事管理系统设计 目录: 1.设计任务---------------------------------------------------------------------------------------------1 2.正文-----------------------------------------------------------------------------------------------------------2 (1).系统模块图------------------------------------------------------------------------------------------3 (2).模块说明---------------------------------------------------------------------------------------------3 (3).用户使用说明---------------------------------------------------------------------------------------3 (4).测试结果---------------------------------------------------------------------------------------------3 3.设计小结--------------------------------------------------------------------------------------------------9 4.附录-----------------------------------------------------------------------------------------------------------10 一.设计任务 1、需求分析:人事档案信息采用文件存储,因而要提供文件的输入输出操作;根据学院人事的变动情况,添加删除记录,因而要提供文件的添加删除操作;根据编号和姓名进项查询,所以要提供文件的查找操作;高级编辑功能,就是提供文件的修改操作;统计功能要提供统计操作;排序功能要提供用排序算法对文件记录的排序;另外还要提供键盘式选择菜单以实现功能选择。 2、总体设计:整体设计为数据输入模块、数据添加模块、数据删除模块、数据查询模块、数据修改模块、数据统计模块、数据排序模块。 3、详细设计 数据结构采用结构体: Struct personnelArchiveInfo { Char No[10]; //编号 Char name[10]; //姓名 Int sex; //性别 Int age; //年龄 Char job[10]; //职务 Char post[10]; //职称 Char politic[10]; //政治面貌 Char edu_level[10]; //最高学历 电子科技大学成都学院程序综合设计销售管理系统设计 学生姓名冯垚 学号1240840106 同组人武侠红苗迅 专业名称机械设计制造及其自动化 班级12408401 指导教师陈芳 电子科技大学成都学院 二○一三年十二月 目录 1.前言 (3) 2.设计目的 (3) 3.功能描述 (3) 4.总体设计 (4) 1、功能模块设计 (4) 2、数据结构设计 (5) 3、函数功能描述 (6) 5.程序实现 (8) 1、源程序(略) (8) 2、运行结果 (13) 6.小结 (16) 1.前言 C语言是今年来国内外得到迅速推广使用的一种高级语言。C语言功能丰富,表达能力强,使用灵活方便,应用广,目标程序效率高,可移植性好,既具有高级语言的优点,又具有低级语言的语言特点,因此C语言对我们来说很重要,本程序是我们小组利用网络和书本等资源公共完成的一个销售管理系统,深刻了解中小型C语言程序设计。 2.设计目的 (1)了解管理信息系统的开发流程,熟悉C语言的文件和结构数组的各种基本操作。 (2)掌握高级程序设计语言的知识。 (3)实践中逐步掌握程序设计的思想和方法,培养问题求解和语言的应用能力。 (4)本程序中涉及结构体、数组、文件等方面的知识。通过本程序的训练,能对C语言的文件操作有一个更深刻的了解。 (5)要提高与程序设计和软件开发有关的各种综合能力。 (6)掌握利用数组存储结构实现电话簿管理的原理,为进一步开发出高质量的信息管理系统打下坚实的基础。 3.功能描述程序 功能要求 : 某公司有四个销售员(编号:1-4),负责销售五种产品(编号:1-5)。每个销售员都将当天出售的每种产品各写一张便条交上来。每张便条包含内容:1)销售员的代号,2)产品的代号,3)这种产品的当天的销售额。每位销售员每天上缴1张便条。 试设计一个便条管理系统,使之能提供以下功能: 1、系统以菜单方式工作 2、便条信息录入功能(便条信息用文件保存)--输入 3、收集到了上个月的所有便条后,读取销售情况 1)计算每个人每种产品的销售额。 2)按销售额对销售员进行排序,输出排序结果(销售员代号) 3)统计每种产品的总销售额,对这些产品按从高到底的顺序,输出排序结果(需输出产品的代号和销售额)(可选项) 描述: 本程序将用到list.txt文件内容作为数据源,其中单行内容代表一张纸条。程序运行后首先将文件系统的原始数据读取并保存到程序的结构体数组当中,所以应提供文件输入的操作;由于纸条数据零散,所以要对原始数据进行分类操作并提供一个数组用于保存分类信息;在程序中要进行统计工作,所以要提供显示、排序等操作;另外应提供键盘式选择菜单实现功能选择。 c语言课程设计人事管理系统 本科生C语言课程设计论文课程名称 C语言课程设计教师姓名朱莉 本科生姓名李百蝉 本科生学号 1002986 本科生专业地质学 所在院系地球科学学院日期: 12月26日 目录 目录 (3) 1.课程论文题目 (3) 2.程序设计思路 (3) 3.功能模块图 (4) 4.程序代码 (4) 5.程序运行结果 (30) 6.课程设计总结 (32) 7.致谢 (32) 8.参考文献 (32) 一课程论文题目 某高校主要人员有: 在职人员( 行政人员、教师、一般员工) 、退休人员和临时工。现在, 需要存储这些人员的人事档案信息: 编号、姓名、性别、年龄、职务、职称、政治面貌、最高学历、任职时间、来院时间、人员类别。其中, 人员编号唯一, 不能重复。 (1)添加删除功能: 能根据学院人事的变动情况, 添加删除记录; (2)查询功能: 能根据编号和姓名进行查询; (3)编辑功能( 高级) : 根据查询对相应的记录进行修改, 并存储; (4)统计功能: 能根据多种参数进行人员的统计( 在职人数、党员人数、女工人数、高学历高职称人数( 硕士学位以上或者副教授以上) ) , 统计要求同时显示被统计者的信息; (5)排序功能: 按照年龄、来院时间进行排序; (6)保存功能: 能对输入的数据进行相应的存储; 二程序设计思路 根据题目要求, 人事信息是存放在文件中的, 因此应该提供相应的文件的输入输出的功能, 在程序中应该有添加删除, 查询, 编辑, 统 计, 排序, 保存等程序实现相应的操作, 另外菜单式的选择方式选择程序的功能也是必须需的。另外程序中要求存储的模块, 采用的方式均为将原文件中的所有数据读入内存, 在内存中处理之后以覆盖的方式写入文件中重新储存, 这样的方法容易理解、容易编写, 但当文件中的数据量很大时, 这种方法也存在一定的难度, 在本程序中将M定为 , 也即最多可储存的职工人数为 ; 根据以上需求分析, 将程序分成以下几个模块: 1.添加和删除 ****添加人员信息并保存( 1) ****按名称和编号查询与删除记录并保存( 2) 2.查询与编辑 ****按名称和编号查询 ****重新编辑信息并保存 3. 统计 ****统计在职人数 ****统计党员人数 ****统计女工人数 ****统计硕士以上学历和副教授以上职称人数 ****将统计得到的信息保存在worker3.txt文件中 4. 排序 ****按年龄进行排序(1)人事管理系统——C语言
C语言课程设计销售管理系统
C语言-人事管理系统
C语言程序设计销售管理系统
高校人事管理系统C++代码
C语言课程设计《商品销售管理系统》
C语言课设之人事管理系统之欧阳家百创编
c语言销售管理系统
C语言课程设计-人事管理系统
C语言销售管理系统
C语言课设之人事管理系统
C语言课设之人事管理系统
C语言课程设计--销售管理系统
#人事管理系统课程设计
C语言销售管理系统
基于Java的人事管理系统文献综述
人事管理系统C语言
c语言-销售管理系统报告书.doc
C语言人事管理系统设计
销售管理系统设计 c语言
c语言课程设计人事管理系统