虚拟歌手苏琴吧 关注:66贴子:355
  • 5回复贴,共1

C语言——管理系统

只看楼主收藏回复

C语言——管理系统(上学期的古董)
前言:
这些是上个学期的实验练习还有C语言实践设计,由于特殊原因,当时保密。
不过现在发到空间里面应该是没有问题了~\(≧▽≦)/~
高校员工工资管理系统:
/*
intmoney
char type0123
职工属性基本工资 课时费 实验室补助 行政补贴
1教师基本工资 课时费
2实验员基本工资 实验室补助
3行政人员基本工资 行政补贴
4教师兼职实验员基本工资 课时费 实验室补助
5行政人员兼职教师基本工资 课时费 行政补贴
ID name type basicwork money[4]
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define N 30
struct works{
int ID,money[4],basicwork;
char name[10],type;
}w[N];
FILE *fpr,*fpw;
char ch;
int print()
{
int i=0;
char t;
system("cls");
fpw=fopen("data\\data.sw","a");
fclose(fpw);
fpr=fopen("data\\data.sw","r");
printf("高校工资表:\n┌────┬────┬────┬────┬────┬────┬────┬────┐\n│职工编号│职工姓名│职工属性│工 作 量│基本工资│课 时 费│实验补助│行政补贴│\n");
while(1)
{
if((fscanf(fpr,"%d",&w[i].ID))==EOF)break;
if((fscanf(fpr,"%s",&w[i].name))==EOF)break;
fgetc(fpr,t);
if((fscanf(fpr,"%c",&w[i].type))==EOF)break;
if((fscanf(fpr,"%d",&w[i].basicwork))==EOF)break;
if((fscanf(fpr,"%d",&w[i].money[0]))==EOF)break;
if((fscanf(fpr,"%d",&w[i].money[1]))==EOF)break;
if((fscanf(fpr,"%d",&w[i].money[2]))==EOF)break;
if((fscanf(fpr,"%d",&w[i].money[3]))==EOF)break;
printf("├────┼────┼────┼────┼────┼────┼────┼────┤\n│%8d│%8s│%8c│%8d│%8d│%8d│%8d│%8d│\n",w[i].ID,w[i].name,w[i].type,w[i].basicwork,w[i].money[0],w[i].money[1],w[i].money[2],w[i].money[3]);
i++;
}
printf("└────┴────┴────┴────┴────┴────┴────┴────┘\n注:表中职工属性一栏的数字分别对应相应的职工类型:\n1、教师\n2、实验员\n3、行政人员\n4、教师兼职实验员\n5、行政人员兼职教师\n");
fclose(fpr);
return(i);
}
int read()
{
int i=0;
char t;
system("cls");
fpw=fopen("data\\data.sw","a");
fclose(fpw);
fpr=fopen("data\\data.sw","r");
while(1)
{
if((fscanf(fpr,"%d",&w[i].ID))==EOF)break;
if((fscanf(fpr,"%s",&w[i].name))==EOF)break;
fgetc(fpr,t);
if((fscanf(fpr,"%c",&w[i].type))==EOF)break;
if((fscanf(fpr,"%d",&w[i].basicwork))==EOF)break;
if((fscanf(fpr,"%d",&w[i].money[0]))==EOF)break;
if((fscanf(fpr,"%d",&w[i].money[1]))==EOF)break;
if((fscanf(fpr,"%d",&w[i].money[2]))==EOF)break;
if((fscanf(fpr,"%d",&w[i].money[3]))==EOF)break;
i++;
}
fclose(fpr);
return(i);
}
void add()//追加记录
{
int i=0,j=0;
i=read();
fpw=fopen("data\\data.sw","a");
for(;i<30;i++)
{
system("cls");
printf("现有记录%d条,可追加%d条!\n",i,N-i);
printf("请输入职工的编号:\n");
scanf("%d",&w[i].ID);
fprintf(fpr,"%d\t",w[i].ID);
printf("请输入职工的姓名:\n");
scanf("%s",w[i].name);
fprintf(fpr,"%s\t",w[i].name);
printf("请选择职工的属性:\n1、教师\n2、实验员\n3、行政人员\n4、教师兼职实验员\n5、行政人员兼职教师\n");
w[i].type=getch();
switch(w[i].type)
{
case '1'://教师
printf("请输入工作量:\n");
scanf("%d",&w[i].basicwork);
fprintf(fpw,"1\t%d\t800\t%d\t0\t0\n",w[i].basicwork,20*(w[i].basicwork-120));
break;
case '2'://实验员
printf("请输入工作量:\n");
scanf("%d",&w[i].basicwork);
fprintf(fpw,"2\t%d\t650\t%d\t150\t0\n",w[i].basicwork,20*(w[i].basicwork-70));
break;
case '3'://行政人员
fprintf(fpw,"3\t0\t750\t0\t0\t250\n");
break;
case '4'://教师兼职实验员
printf("请输入工作量:\n");
scanf("%d",&w[i].basicwork);
fprintf(fpw,"4\t%d\t800\t%d\t150\t0\n",w[i].basicwork,20*(w[i].basicwork-120));
break;
default://行政人员兼职教师
printf("请输入工作量:\n");
scanf("%d",&w[i].basicwork);
fprintf(fpw,"5\t%d\t750\t%d\t0\t250\n",w[i].basicwork,20*w[i].basicwork);
break;
}
printf("是否继续追加记录:\n1、是\t2、否\n");
ch=getch();
if(ch=='2')break;
}
fclose(fpw);
system("pause");
}
void look()//查询记录
{
int i=0,j=0,k,f=0;
char look[10];
i=read();
printf("请选择查询方式\n1、按职工姓名查询\n2、按职工编号查询:\n");
ch=getch();
switch(ch)
{
case '1':
system("cls");
printf("请输入需要查询的员工姓名或其中的部分文字:\n");
gets(look);
printf("查询结果:\n┌────┬────┬────┬────┬────┬────┬────┬────┐\n│职工编号│职工姓名│职工属性│工 作 量│基本工资│课 时 费│实验补助│行政补贴│\n");
for(j=0;j<i;j++)
{
if(strstr(w[j].name,look)!=NULL)
{
printf("├────┼────┼────┼────┼────┼────┼────┼────┤\n│%8d│%8s│%8c│%8d│%8d│%8d│%8d│%8d│\n",w[j].ID,w[j].name,w[j].type,w[j].basicwork,w[j].money[0],w[j].money[1],w[j].money[2],w[j].money[3]);
f=1;
}
}
printf("└────┴────┴────┴────┴────┴────┴────┴────┘\n");
break;
default:
system("cls");
printf("请输入需要查询的员工编号:\n");
scanf("%d",&k);
printf("查询结果:\n┌────┬────┬────┬────┬────┬────┬────┬────┐\n│职工编号│职工姓名│职工属性│工 作 量│基本工资│课 时 费│实验补助│行政补贴│\n");
for(j=0;j<i;j++)
{
if(k==w[j].ID)
{
printf("├────┼────┼────┼────┼────┼────┼────┼────┤\n│%8d│%8s│%8c│%8d│%8d│%8d│%8d│%8d│\n",w[j].ID,w[j].name,w[j].type,w[j].basicwork,w[j].money[0],w[j].money[1],w[j].money[2],w[j].money[3]);
f=1;
}
}
printf("└────┴────┴────┴────┴────┴────┴────┴────┘\n");
break;
}
if(f==0)printf("对不起,没有找到对应的数据!\n");
system("pause");
}
void out()//导出数据
{
int i=0,j=0;
i=print();
fpw=fopen("out\\data.txt","w");
fprintf(fpw,"高校工资表:\n┌────┬────┬────┬────┬────┬────┬────┬────┐\n│职工编号│职工姓名│职工属性│工 作 量│基本工资│课 时 费│实验补助│行政补贴│\n");
for(j=0;j<i;j++)
{
fprintf(fpw,"├────┼────┼────┼────┼────┼────┼────┼────┤\n│%8d│%8s│%8c│%8d│%8d│%8d│%8d│%8d│\n",w[j].ID,w[j].name,w[j].type,w[j].basicwork,w[j].money[0],w[j].money[1],w[j].money[2],w[j].money[3]);
}
fprintf(fpw,"└────┴────┴────┴────┴────┴────┴────┴────┘\n注:表中职工属性一栏的数字分别对应相应的职工类型:\n1、教师\n2、实验员\n3、行政人员\n4、教师兼职实验员\n5、行政人员兼职教师\n");
fclose(fpw);
system("pause");
}
void change()//修改记录
{
int i=0,j=0;
while(1)
{
i=print();
do{
printf("请输入需要修改的记录所在的行数:\n");
scanf("%d",&j);
j--;
}while(j>i);
system("cls");
printf("请选择功能:1、删除记录\t2、修改记录\n");
ch=getch();
switch(ch)
{
case '1':
w[j].name[0]='\0';
printf("成功删除记录!\n");
break;
default:
printf("请输入职工的编号:\n");
scanf("%d",&w[j].ID);
printf("请输入职工的姓名:\n");
scanf("%s",w[j].name);
printf("请选择职工的属性:\n1、教师\n2、实验员\n3、行政人员\n4、教师兼职实验员\n5、行政人员兼职教师\n");
w[j].type=getch();
switch(w[j].type)
{
case '1'://教师
printf("请输入工作量:\n");
scanf("%d",&w[j].basicwork);
w[j].money[0]=800;
w[j].money[1]=20*(w[j].basicwork-120);
w[j].money[2]=0;
w[j].money[3]=0;
break;
case '2'://实验员
printf("请输入工作量:\n");
scanf("%d",&w[j].basicwork);
w[j].money[0]=650;
w[j].money[1]=20*(w[j].basicwork-70);
w[j].money[2]=150;
w[j].money[3]=0;
break;
case '3'://行政人员
scanf("%d",&w[j].basicwork);
w[j].money[0]=750;
w[j].money[1]=0;
w[j].money[2]=0;
w[j].money[3]=250;
break;
case '4'://教师兼职实验员
printf("请输入工作量:\n");
scanf("%d",&w[j].basicwork);
w[j].money[0]=800;
w[j].money[1]=20*(w[j].basicwork-120);
w[j].money[2]=150;
w[j].money[3]=0;
break;
default://行政人员兼职教师
printf("请输入工作量:\n");
scanf("%d",&w[j].basicwork);
w[j].money[0]=750;
w[j].money[1]=20*w[j].basicwork;
w[j].money[2]=0;
w[j].money[3]=250;
break;
}
break;
}
fclose(fpr);
system("cls");
printf("修改后的高校工资表:\n┌────┬────┬────┬────┬────┬────┬────┬────┐\n│职工编号│职工姓名│职工属性│工 作 量│基本工资│课 时 费│实验补助│行政补贴│\n");
for(j=0;j<i;j++)
{
if(strlen(w[j].name)==0)continue;
printf("├────┼────┼────┼────┼────┼────┼────┼────┤\n│%8d│%8s│%8c│%8d│%8d│%8d│%8d│%8d│\n",w[j].ID,w[j].name,w[j].type,w[j].basicwork,w[j].money[0],w[j].money[1],w[j].money[2],w[j].money[3]);
}
printf("└────┴────┴────┴────┴────┴────┴────┴────┘\n注:表中职工属性一栏的数字分别对应相应的职工类型:\n1、教师\n2、实验员\n3、行政人员\n4、教师兼职实验员\n5、行政人员兼职教师\n");
printf("是否重新修改记录:\n1、是\t2、否\n");
ch=getch();
if(ch=='2')break;
}
fpw=fopen("data\\data.sw","w");
for(j=0;j<i;j++)
{
if(strlen(w[j].name)==0)continue;
fprintf(fpw,"%d\t%s\t%c\t%d\t%d\t%d\t%d\t%d\n",w[j].ID,w[j].name,w[j].type,w[j].basicwork,w[j].money[0],w[j].money[1],w[j].money[2],w[j].money[3]);
}
fclose(fpw);
system("cls");
printf("修改后的高校工资表:\n┌────┬────┬────┬────┬────┬────┬────┬────┐\n│职工编号│职工姓名│职工属性│工 作 量│基本工资│课 时 费│实验补助│行政补贴│\n");
for(j=0;j<i;j++)
{
if(strlen(w[j].name)==0)continue;
printf("├────┼────┼────┼────┼────┼────┼────┼────┤\n│%8d│%8s│%8c│%8d│%8d│%8d│%8d│%8d│\n",w[j].ID,w[j].name,w[j].type,w[j].basicwork,w[j].money[0],w[j].money[1],w[j].money[2],w[j].money[3]);
}
printf("└────┴────┴────┴────┴────┴────┴────┴────┘\n注:表中职工属性一栏的数字分别对应相应的职工类型:\n1、教师\n2、实验员\n3、行政人员\n4、教师兼职实验员\n5、行政人员兼职教师\n");
system("pause");
}
void newfile()//清除数据
{
fpw=fopen("data\\data.sw","w");
fclose(fpw);
}
void main()
{
void add();//追加记录
void look();//查询记录
void out();//导出数据
void change();//修改记录
void newfile();//清除数据
while(1)
{
system("cls");
printf("欢迎使用高校工资管理系统:\n1、追加记录\n2、查询记录\n3、导出数据\n4、修改记录\n5、退出程序\n0、清除数据\n");
ch=getch();
switch(ch-48)
{
case 0:newfile();break;
case 1:add();break;
case 2:look();break;
case 3:out();break;
case 4:change();break;
case 5:break;
}
if(ch=='5')break;
}
system("cls");
printf("感\n\t谢\n\t\t使\n\t\t\t用\n\n");
system("pause");
}
学生成绩管理系统:
#include <stdio.h>
#define N 30
void input()
{
int a[N][5],i,j;
float ave[N];
FILE *fp;
for(i=0;i<N;i++)
{
printf("请依次输入第%d个学生的:\n学号、数学、英语、物理成绩(输入小于零的数据代表输入结束):\n",i+1);
scanf("%d%d%d%d",&a[i][0],&a[i][1],&a[i][2],&a[i][3]);
a[i][4]=a[i][1]+a[i][2]+a[i][3];
ave[i]=a[i][4]/3.0;
if(a[i][0]<0 || a[i][1]<0 || a[i][2]<0 || a[i][3]<0 )
{
j=i;
break;
}
}
fp=fopen("data.石伟","w");
printf("学生考试成绩表:\n┌──┬──┬──┬──┬──┬───┐\n│学号│数学│英语│物理│总分│平均分│\n");
for(i=0;i<j;i++)
{
fprintf(fp,"%d\t%d\t%d\t%d\t%d\t0\n",a[i][0],a[i][1],a[i][2],a[i][3],a[i][4]);
printf("├──┼──┼──┼──┼──┼───┤\n│%4d│%4d│%4d│%4d│%4d│%6.2f│\n",a[i][0],a[i][1],a[i][2],a[i][3],a[i][4],ave[i]);
}
printf("└──┴──┴──┴──┴──┴───┘\n");
fclose(fp);
}
void rank()
{
int a[N][5],i=0,j,k,t;
float ave[N];
FILE *fp;
if((fp=fopen("data.石伟","r"))!=NULL)
{
while(fscanf(fp,"%d%d%d%d%d%d",&a[i][0],&a[i][1],&a[i][2],&a[i][3],&a[i][4],&t)!=EOF)
{
i++;
}
fclose(fp);
j=i;
printf("学生考试成绩表:\n┌──┬──┬──┬──┬──┬───┐\n│学号│数学│英语│物理│总分│平均分│\n");
for(i=0;i<j;i++)
{
ave[i]=a[i][4]/3.0;
printf("├──┼──┼──┼──┼──┼───┤\n│%4d│%4d│%4d│%4d│%4d│%6.2f│\n",a[i][0],a[i][1],a[i][2],a[i][3],a[i][4],ave[i]);
}
printf("└──┴──┴──┴──┴──┴───┘\n");
printf("按总分排序:\n┌──┬──┬──┬──┬──┬──┬───┐\n│名次│学号│数学│英语│物理│总分│平均分│\n");
for(i=0;i<j;i++)
{
for(k=0;k<j-i-1;k++)
{
if(a[k][4]<a[k+1][4])
{
t=a[k][0];
a[k][0]=a[k+1][0];
a[k+1][0]=t;
t=a[k][1];
a[k][1]=a[k+1][1];
a[k+1][1]=t;
t=a[k][2];
a[k][2]=a[k+1][2];
a[k+1][2]=t;
t=a[k][3];
a[k][3]=a[k+1][3];
a[k+1][3]=t;
t=a[k][4];
a[k][4]=a[k+1][4];
a[k+1][4]=t;
t=ave[k];
ave[k]=ave[k+1];
ave[k+1]=t;
}
}
}
fp=fopen("data.石伟","w");
for(i=0;i<j;i++)
{
fprintf(fp,"%d\t%d\t%d\t%d\t%d\t%d\n",a[i][0],a[i][1],a[i][2],a[i][3],a[i][4],i+1);
printf("├──┼──┼──┼──┼──┼──┼───┤\n│%4d│%4d│%4d│%4d│%4d│%4d│%6.2f│\n",i+1,a[i][0],a[i][1],a[i][2],a[i][3],a[i][4],ave[i]);
}
printf("└──┴──┴──┴──┴──┴──┴───┘\n");
fclose(fp);
}
else
{
printf("没有数据,请输入数据!\n");
}
}
void lookup()
{
FILE *fp;
int m,a[5],t,f=0,i;
float ave;
printf("请输入学生学号:\n");
scanf("%d",&m);
if((fp=fopen("data.石伟","r"))!=NULL)
{
while(fscanf(fp,"%d%d%d%d%d%d",&a[0],&a[1],&a[2],&a[3],&a[4],&t)!=EOF)
{
i++;
if(a[0]==m)
{
ave=a[4]/3.0;
f=1;
printf("┌──┬──┬──┬──┬──┬──┬───┐\n│名次│学号│数学│英语│物理│总分│平均分│\n├──┼──┼──┼──┼──┼──┼───┤\n│%4d│%4d│%4d│%4d│%4d│%4d│%6.2f│\n└──┴──┴──┴──┴──┴──┴───┘\n",t,a[0],a[1],a[2],a[3],a[4],ave);
break;
}
}
fclose(fp);
if(f==0)
{
printf("没有找到信息!\n");
}
}
else
{
printf("没有数据,请输入数据!\n");
}
}
void main()
{
int ch;
while(1)
{
printf("请选择程序功能:\n1、成绩录入\n2、成绩排序\n3、成绩查找\n");
scanf("%d",&ch);
switch(ch)
{
case 1:
input();
break;
case 2:
rank();
break;
case 3:
lookup();
break;
default:
exit(0);
}
}
}


IP属地:重庆1楼2015-12-13 07:01回复
    你好,这个是工资管理系统?可以和数据库链接的吗?


    来自iPhone客户端2楼2015-12-14 22:40
    收起回复
      加油呀把擦黑


      IP属地:重庆来自Android客户端3楼2015-12-26 02:54
      收起回复