用C语言开发一个简单的雇员业绩管理系统。

用C语言开发一个简单的雇员业绩管理系统。
【数据结构】
雇员数据文件:工号、姓名、年龄、进入本单位时间、学历、职称、所在部门。员工业绩数据文件:工号、年度、能力业绩、表现业绩、态度评价、业绩总和、综合评价。(其中能力业绩、表现业绩、态度评价按照百分制计算,综合评价是这3项业绩的平均值)
【基本功能】
(1)员工信息管理:输入员工信息保存到数据文件中;删除员工信息;根据工号修改员工的信息。
(2)员工业绩信息管理:按年度输入业绩信息保存到数据文件中,修改某年度业绩信息。
(3)排序功能:按照某年度员工业绩的综合评价从高到低排序。
(4)查询功能:① 按姓名查询的员工信息;② 查询某员工某年度的业绩;③查询综合评价最优的员工。

2个回答

思路:

  1. 定义出员工信息和员工业绩结构体。
  2. 因为有很多功能,所以需要拆分实现。
#include <stdio.h>
#include <string.h>

void StaffInfo(void)
{
    unsigned char FunNum;

    printf("添加员工信息,请输入1 \n");
    printf("删除员工信息,请输入2 \n");
    printf("修改员工信息,请输入3 \n");
    gets(&FunNum);
    switch(FunNum)
    {
        case '1' :
            printf("请输入员工信息?? \n");
            break;
        //实现添加删除和修改员工信息。
    }
}

int main (void)
{
    unsigned char unNum;

    while(1){

        printf("============================\n");
        printf("功能选择: \n");
        printf("员工信息管理,输入1 \n");
        printf("员工业绩信息管理,输入2 \n");
        printf("排序功能,输入3 \n");
        printf("查询功能,输入4 \n");
        gets(&unNum);

        switch(unNum)
        {
            case '1' : //员工信息管理
                printf("进入员工信息管理子系统\n");
                StaffInfo();                
                break;
            case '2' : //员工业绩信息管理
                printf("进入员工业绩信息管理子系统\n");
                //写员工业绩相关的处理。
                break;
            case '3' : //排序功能
                printf("进入排序功能子系统\n");
                //写排序相关的处理。
                break;
            case '4' : //查询功能
                printf("进入查询功能子系统\n");
                //写查询相关处理。
                break;
            default:
                printf("输入错误!!\n");
                break;
        }
    }
    return 0;
}

u013053075
人在旅途~ 我更新了答案,你试试吧。
4 个月之前 回复
W000103
如果你从不畏惧 这算是个课设作业 也不是很急 就是希望可以看看别人怎么写的 学学思路
4 个月之前 回复
#include <stdio.h>
#include <
stdlib.h>
#include <string.h>
#include <conio.h>


#define N 2
int Number = N;




void bc(struct Link *st);
void Draw(FILE *fp);
void link(FILE *fp);
void output(FILE *fp);
int Search(FILE *fp);
void input(FILE *fp);
void add();
void delbyname();
void delbyUser();
void del();




struct Link
{
char User[20];
char Code[20];
char name[10];
char sex[10];
}people[N];


int i;


void input(FILE *fp)
{


for (i = 0; i < N; i++)
{
printf("请输出第%d个人员的信息\n", i + 1);
printf("输入人员姓名:\t");
scanf("%s",people[i].name);
printf("输入人员性别:\t");
scanf("%s", people[i].sex);
printf("输入人员账号:\t");
scanf("%s", people[i].User);
printf("输入人员密码:\t");
scanf("%s", people[i].Code);
fwrite(&people[i], sizeof(struct Link), 1, fp);
}
fclose(fp);
}
int Search(FILE *fp)
{
char test_User[20];
char test_Code[20];
printf("请输入账号:\t");
scanf("%s", test_User);
printf("请输入密码:\t");
scanf("%s", test_Code);
for (i = 0; i < Number; i++)
{
if (strcmp(test_User, people[i].User) == 0)
{
if (strcmp(test_Code, people[i].Code) == 0)
{
printf("登录成功!\n");
_getch();
}
else
{
printf("密码输入错误!\n");
return 0;
}
}
}
}
void output(FILE *fp)
{
fp = fopen("manage.txt", "r");
i= 0;
while (fread(&people[i], sizeof(struct Link), 1, fp) != NULL)
{
printf("第%d个人员的信息\n",i+1);
printf("姓名:\t%s\n性别:\t%s\n",people[i].name,people[i].sex);
printf("账号:\t%s\n密码:\t%s\n", people[i].User, people[i].Code);
i++;
}
fclose(fp);
}//OK了
void link(FILE *fp)
{
int n;
printf("\n\n\n\n\t\t\t登录界面\n");
while (true)
{
n = Search(fp);
if (n != 0) break;
}
}
void Draw(FILE *fp)
{
int n;
printf("\n\n\n\t\t**********       菜单栏       **********\n");
printf("\t\t******      1.文件的写入     ******\n");
printf("\t\t******      2.文件的读出     ******\n");
printf("\t\t******      3.账号密码登录      ******\n");
printf("\t\t******      4.人员增加        ******\n");
printf("\t\t******      5.人员删除        ******\n");
printf("\t\t******      6.退出系统        ******\n");
printf("请输入你的选择:\t");
scanf("%d", &n);
switch (n)
{
case 1:
input(fp);
break;
case 2:
output(fp);
break;
case 3:
link(fp);
break;
case 4:
add();
break;
case 5:
del();
break;
case 6:
exit(0);
}
}
void bc(struct Link *st)
{
FILE *fp = NULL;
fp = fopen("manage.txt", "ab+");
fwrite(st, sizeof(struct Link), 1, fp);
fclose(fp);
}
void add()//增加人员信息
{
int numberTemp = 0;
int i = 0;
struct Link temp;
printf("请输入要增加的人员信息数量:");
scanf("%d", &numberTemp);
for (i = 0; i<numberTemp; i++)
{
printf("输入第%d个人员信息\n", i + 1);
printf("姓名:\t");
scanf("%s", temp.name);
printf("性别:\t");
scanf("%s", temp.sex);
printf("账号:\t");
scanf("%s", temp.User);
printf("密码:\t");
scanf("%s", temp.Code);
people[Number++] = temp; //将刚添加的写入到数组
bc(&temp); //将刚添加的写入到文件
}
printf("添加成功\n");
}
void delbyname()//按姓名删除
{
FILE *fp = NULL;
char name[60];
int i = 0;
int j = 0;
printf("请输入要删除的人员的名字:");
scanf("%s", name);
for (i = 0; i<Number; i++)
{
if (strcmp(name, people[i].name) == 0) //如果查找到就删除
{
for (j = i; j<Number - 1; j++)
{
people[j] = people[j + 1];
}
Number--;
}
} //将剩余数据写入文件  重新一写的方式打开文件 把以前的数据擦除了
fp = fopen("manage.txt", "wb");
for (i = 0; i<Number; i++)
{
fwrite(&people[i], sizeof(struct Link), 1, fp);
}
fclose(fp);
printf("删除成功;\n");
}
void delbyUser()//按账号删除
{
FILE *fp = NULL;
char User[20];
int i = 0;
int j = 0;
printf("请输入要删除的人员的账号:");
scanf("%s", User);
for (i = 0; i<Number; i++)
{
if (strcmp(User, people[i].User) == 0) //如果查找到就删除
{
for (j = i; j<Number - 1; j++)
{
people[j] = people[j + 1];
}   Number--;
}
}  //将剩余数据写入文件  重新一写的方式打开文件 把以前的数据擦除了
fp = fopen("manage.txt", "wb");
for (i = 0; i<Number; i++)
{
fwrite(&people[i], sizeof(struct Link), 1, fp);
}
fclose(fp);
printf("删除成功;\n");
}
void del()//删除
{
int n = 0;
printf("选择删除方式\n");
printf("1  按姓名删除\n");
printf("2  按账号删除\n");
printf("请输入你的选择:\t");
scanf("%d", &n);
switch (n)
{
case 1: delbyname();
break;
case 2: delbyUser();
break;
}
}
void main()
{
FILE *fp;
fp = fopen("manage.txt", "w");
if (fp == NULL)     exit(0);
while (true)        Draw(fp);
}

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐