栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

c语言课程设计(员工系统)

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

c语言课程设计(员工系统)

#include"stdio.h"
#include"string.h"
#include"stdlib.h"
#include"windows.h"
#include"dos.h"
#include"conio.h"
#define N 40
struct yuangong
{
    char no[9];
    char name[20];
    char dizhi[20];
    float jidulei[4]; 
    float sum;
    float average;
} lzh_s[N]= { {"130207","江娟","上海",456,654,716,449},
                {"130202","乐娟","深圳",578,715,897,564},
                {"130101","李金娜","北京",451,482,695,642},
                {"130102","李丽","北京",659,862,896,985},
                {"130201","刘德发","上海",235,186,458,225},
                {"130105","钱多多","北京",486 ,258,695,865},
                {"130301","邱雅培","深圳",266,698,654,984},
                {"130103","孙德标","北京",325,456,587,745},
                {"130202","谭鱼头","上海",856,951,248,476},
                {"130203","王罕华","上海",563,486,978,156},
                {"130206","王辉","上海",689,928,856,651 },
                {"130304","王强","深圳",652,951,479,149} },*p;
char jidu[50][60]={"第一季度","第二季度","第三季度","第四季度"};
int emp=12;
int jdshu=4;
int wenjian=0;
int dl();
void menu();
void zengjia();
void shanchu();
void chazhao();
void xiugai();
int denglu();
int baocun();
void showtitle();    
void displayall();
void menupt();
void dlxt(){
    int x;
    printf("1:vip用户   2:普通用户    3:退出n:");
    scanf("%d",&x);
    switch(x){
        case 1: if(dl()==1)                    //管理员                //如果登录成功 
                {
                    while(1)                                                //死循环,使系统始终显示主控菜单选项 
                    {
                        menu();                                    //根据用户输入选择不同操作 
                    }
                };break;
        case 2: if(dl()==1)            //普通用户 
                {
                    while(1)
                    {
                        menupt();
                    }
                };break;
        case 3: printf("退出成功!n"),exit(0); 
        default:printf("无效的选择!!!请重新输入!!!"); 
    }    
}


char *getmm(char *buf,int len)
{
    int i=0;
    char ch;
    fflush(stdin);            //清空缓存区
    while(i     {
        if(kbhit())            //kbhit()检查当前是否有键盘输入,若有返回一个非0值,否则返回0
        {
            ch=getch();
            if(ch=='r')
                break;
            putchar('*');
            buf[i]=ch;
            i++;
        } 
    } 
    buf[i]='';
    return buf;
}

int dl()
{
    system("color 74");
char name[]="admin",mm[]="lzh123";
char username[10],usermm[10];
int s;

for(s=1;s<=5;s++){
    printf("n");
printf("请输入用户名:");
gets(username);
printf("n");
printf("请输入密码:");
getmm(usermm,10);
printf("n");
if(strcmp(name,username)==0&&strcmp(mm,usermm)==0)
    {
        printf("欢迎您,亲爱的用户!");
        return 1;
        
    }
else if(s<3)
    printf("******用户名或密码错误,请尝试重新输入!!******n");
}printf("******用户名或密码已经超过五次输入错误,系统自动退出!!!*********n");
return 0;
}
void menu()
{   int  userselection;
   system("color 79");
    printf("n");
    printf("t*****************************n");
    printf("t*    vip用户欢迎使用        *n");
    printf("t*    员工季度管理系统       *n");
    printf("t*****************************n");
    printf("n");    
    printf("t*   1:增加员工信息          *n");
    printf("t*   2:删除员工信息          *n");
    printf("t*   3.查找员工信息          *n");
    printf("t*   4:修改员工信息          *n");
    printf("t*   5:从文件中读取员工信息  *n");
    printf("t*   6:将员工信息保存到文件  *n");
    printf("t*   7:查询员工系统          *n");
    printf("t*   8:退出系统              *n");
    printf("t***************************nn");
    printf("请输入您的选择(1-8):");
    scanf("%d",&userselection);
    switch(userselection)
    {
        case 1: getchar();zengjia();break;  //添加员工信息
        case 2: getchar();shanchu();break;  //根据员工修改员工信息
        case 3: getchar();chazhao();break;   //显示所有员工信息
        case 4: getchar();xiugai();break;    //根据编号查询
        case 5: getchar();denglu();break;  //从文件中读取
        case 6: getchar();baocun();break;   //保存到文件
        case 7: getchar();displayall();break;
        case 8: getchar();exit(0);break;   //退出系统
        default:printf("%c,请输入1-8之间的数字n",userselection);
        }
}
void menupt(){
    system("CLS");
    int userselection;
    char selection[10];
    printf("n");
    printf("**************************************************************n");
    printf("*********************你好呀,普通用户!***********************n");
    printf("**************************************************************n");
    printf("*t                 1.显示员工信息                           *n");
    printf("*t                 2.查询员工信息                           *n");
    printf("*t                 3.退出系统                               *n");
    printf("************************************************************* n");
    printf("*t                 请输入您的选择                           *n");
    gets(selection);
    userselection=(int)atoi(selection);
    switch(userselection){ 
             case 1: getchar();displayall();break;
             case 2: getchar();chazhao();break;
             case 3: getchar();exit(0);break;
             default:printf("%c,请输入1-10之间的数字n",userselection);    
    }menu();
}

void quitsystem()
{
    system("color 77");
    char str[5];
    if(wenjian==1)
    {
        printf("是否保存?(Y/n)");
        gets(str);
        if(str[0]!='n'&&str[0]!='N')
            baocun();
    }
    exit(0);
}
void showtitle()
{
    system("color 77");
    int j;
    printf("  编号    姓名    地址   ");
    for(j=0;j         printf(" %s",jidu[j]);
    printf("  总分  平均分n");
}
void displayall()
{
    system("color 17");
    int i,j;
    if(emp==0)
        printf("暂时还没有员工的信息!n请按任意键返回主菜单n");
    else
    {
        showtitle();   //显示表头信息
        for(i=0;i         {
          //打印员工信息
            printf("%8s  %-8s %2s",lzh_s[i].no,lzh_s[i].name,lzh_s[i].dizhi);
            for(j=0;j                 printf("%9.lf",lzh_s[i].jidulei[j]);
                printf("%8.lf%8.lfn",lzh_s[i].sum,lzh_s[i].average);
                    
        }
        printf("n所有员工信息显示完毕,请按任意键继续n");
    }
    getchar();
}
void zengjia()
{   int i;
    system("color 27");
    while(1)
       {
        printf("请输入编号:(以两个0作为结束标志)");
        gets(lzh_s[emp].no);
        if (strcmp(lzh_s[emp].no,"00")==0) break;
        printf("请输入姓名:");
        gets(lzh_s[emp].name);
        printf("请输入地址:"); 
        gets(lzh_s[emp].dizhi);
        lzh_s[emp].sum=0;     //处理业绩
        for(i=0;i            {
            printf("请输入%s的季度工资:(0-100):",jidu[i]);
            scanf("%f",&lzh_s[emp].jidulei[i]);
            if(lzh_s[emp].jidulei[i]>=0 &&lzh_s[emp].jidulei[i]<=10000)
            lzh_s[emp].sum+=lzh_s[emp].jidulei[i];
            else
                {  printf("输入数据无效,请重新输入……n");  i--;      continue;    }
            }
        lzh_s[emp].average=lzh_s[emp].sum/jdshu;
        emp++;
        getchar();
    } 
    wenjian=1;
    printf("员工添加完毕,请按任意键继续n");
    getchar();
}
void shanchu()
{
    system("color 43");
    char delno[9];  //存放要删除员工的编号
    char ok[5];  //确定是否要真的删除
    int i,j;
    printf("请输入要删除员工的编号:");
    gets(delno);
    //根据编号查找记录位置
    for(i=0;i         if (strcmp(delno,lzh_s[i].no)==0)    break;
    if (i     { //找到后先输出原信息,然后确认是否删除    
        showtitle();  //先显示原信息
        printf("%8s  %-8s %2s",lzh_s[i].no,lzh_s[i].name,lzh_s[i].dizhi);
            for(j=0;j                 printf("%9.lf",lzh_s[i].jidulei[j]);
            printf("%8.lf%8.lfn",lzh_s[i].sum,lzh_s[i].average);
        printf("确实要删除这条记录吗?(y/n)n");
        gets(ok);
        if(ok[0]=='y'||ok[0]=='Y')    //确定要删除
        {
            emp--;  //员工数减1
            //将后面的记录前移
            for(j=i;j                 lzh_s[j]=lzh_s[j+1];
            printf("n删除成功!n");
            wenjian=1;  //修改存储标志
        }
    }
    else
        printf("n没有该员工记录n");
    printf("请按任意键继续n");
    getchar();
}
void chazhao()
{
    system("color  35");
     char  searchno[9];
    int i,j;      
    printf("请输入要查询的员工的编号:");
    gets(searchno);
    for(i=0;i         if (strcmp(searchno,lzh_s[i].no)==0)break;
        if (i           { //显示表头信息及记录信息
            showtitle();  
          printf("%8s  %-8s %2s",lzh_s[i].no,lzh_s[i].name,lzh_s[i].dizhi);
        for(j=0;j             printf("%9.lf",lzh_s[i].jidulei[j]);
        printf("%8.lf%8.lfn",lzh_s[i].sum,lzh_s[i].average);
    }
    else  //没有找到记录
        printf("没有编号为%s的员工记录",searchno);
    printf("n");
}

void xiugai()
    {
        system("color  74");
    struct yuangong search; //存放要修改员工的信息 
    char temp[4];  
    float sumtemp; 
    int i,j;
    printf("请输入要查找的编号:");//根据编号查找记录位置
    gets(search.no);
    
    for(i=0;i     {
        if (strcmp(search.no,lzh_s[i].no)==0)
            break;
    }
    if (i     { //找到后先输出原信息,然后再输入其它信息    
        showtitle();  //先显示原信息
        printf("%8s  %-8s %2s",lzh_s[i].no,lzh_s[i].name,lzh_s[i].dizhi);
        for(j=0;j             printf("%9.lf",lzh_s[i].jidulei[j]);
        printf("%8.lf%8.lfn",lzh_s[i].sum,lzh_s[i].average);
        //输入其它信息并进行处理
        printf("请输入编号:");
        gets(search.no);
        printf("请输入姓名:");
        gets(search.name);
        printf("请输入地址:"); //处理地址
        gets(temp);  //注意此处不要用getchar()或scanf("%c"),否则会将回车接收为性别
        strcpy(search.dizhi,temp);
        sumtemp=0;     //处理业绩
        for(j=0;j         {
            printf("请输入%s业绩(0-100):",jidu[j]);
            scanf("%f",&search.jidulei[j]);
            if(search.jidulei[j]>=0 &&(search.jidulei[j])<=100)
             sumtemp+=search.jidulei[j];
            else
                {  printf("输入数据无效,请重新输入……n");  i--;      continue;    }
            }
        search.sum=sumtemp;
        search.average=sumtemp/jdshu;
        lzh_s[i]=search;   //用新值替换旧值
        printf("n修改成功!n");
        wenjian=1;  //有修改,标示为1
    }
    else  //没有找到记录
        printf("没有编号为%s的员工记录",search.no);

    printf("n请按任意键继续n");
    getchar();
}
int baocun(void)  //从数据保存到文件
{
    system("color  13");
FILE *fp;

    if((fp=fopen("yuangong.txt","wb+"))==NULL)  //打开文件失败
    {
        printf("无法打开文件!n");
        printf("请按任意键继续n");
                exit(0);        
    }
    printf("n存文件...n");
    fwrite(lzh_s,sizeof(struct yuangong )*emp,1,fp);  //写入文件
    fclose(fp);
}
int denglu(void)  //从文件中读出内容
{
    system("color  12");
FILE *fp;
 int i,js=0;
    if((fp=fopen("yuangong.txt","rb"))==NULL)  //打开文件失败
    {
        printf("无法打开文件!n");
        printf("请按任意键继续n");
        getchar();
    exit(0);
    }
    
    printf("n读取文件...n");
    js=0;  //重新计算员工数
    while(!feof(fp))    //读取文件内容
    {
        fread(&lzh_s[js],sizeof(struct yuangong),1,fp); 
        js++;  
    }
    js--;
    fclose(fp);
    printf("共从文件中读入%d条记录n",js); 
    p=lzh_s;
    printf("读出的文件内容为:n");
    showtitle();
    for(i=0;i     printf("%8s  %-8s %2s%9.1f%9.1f%11.1f%9.1f%8.1f%8.1fn",p->no,p->name,p->dizhi,p->jidulei[0],p->jidulei[1],p->jidulei[2],p->jidulei[3],p->sum,p->average);    
       printf("请按任意键继续!n");
    getchar();
}

void main()

    system("color  84");
    if (dl()==1)   
        while(1)  
            dlxt();
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/664363.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号