职工信息管理系统

本文介绍了一个职工信息管理系统的设计与实现,使用C++和C#编程语言。系统具备菜单驱动操作,包括职工信息录入、文件保存、信息查询、排序、删除和修改等功能。其中,查询和排序功能灵活,支持按工资和学历等条件进行操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

设计内容与要求

1.内容描述:

对职工信息进行管理,职工信息包括工号、姓名、性别、年龄、学历、工资、住址、电话(职工号不重复)

2.基本要求:

(1) 系统以菜单的方式工作。
(2) 职工信息录入功能(职工信息用文件保存)。
(3) 输出职工信息、浏览职工信息功能。
(4) 查询和排序功能:(至少一种查询方式),如按工资查询、按学历查询。
(5) 职工信息删除、修改功能(任选项)。

3.源码

#include <stdio.h>  
#include <stdlib.h>  
#include <string.h>  
#include <conio.h>  
struct worker  
{
     
    char ID[20];//工号  
    char name[20];//姓名  
    char sex[5];//性别  
    char age[20];//生日  
    char edu[20];//学历  
    char position[20];//职务  
    char wage[10];//工资  
    char address[100];//住址  
    char tel[15];//电话  
}work[1000];  
int n ;  
   
//文件读写模块  
void read()//读入数据,用于文件描述符对应的文件中读取数据  
{
     
    FILE *fp;       //FILE *fp;变量类型声明。声明 fp 是 FILE型指针,用于指向 FILE类型(文件结构)文件流指针   
                    //文件流 -- 排成一队,有先后次序的输入(或输出)一串数据,驻留并通过输入输出缓冲区,进出程序。如同水流般地流入或流出。它来自文件或写入文件。   
    int i = 0;  
    if( (fp = fopen("d:\\date.txt","r")) == NULL )    fopen意义是在当前目录下打开文件,只允许进行“读”操作,并使fp指向该文件。   
    {
     
        printf("请在d盘根目录下新建一个文本文件,文件名为date\n\n\n");  
        system("pause");  
        system("cls");  
        return ;  
    }  
    fscanf(fp,"%d\n",&n);    //从一个流中执行格式化输入,fscanf遇到空格和换行时结束,注意空格时也结束。   
                            // 第一个参数是文件指针,指向要从该文件中将数据读出,第二个参数是格式字符串,  
                            //就像scanf("%s %s\n"); 的一样,第三个参数是输入列表,会将文件中的数据保存到输入列表中去。  
    while(i < n)  
    {
     
        fscanf(fp,"%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n",work[i].ID,work[i].name,work[i].sex,work[i].age,work[i].edu,work[i].position,work[i].wage,work[i].address,work[i].tel);  
        i ++;  
    }  
    fclose(fp);     如果流成功关闭,fclose 返回 0, 而o则是退出的意思,即回到职工信息管理系统选项界面。  
                           
}  
void write()//写入数据  
{
     
    FILE *fp;  
    int i = 0;  
    if( (fp = fopen("d:\\date.txt","w")) == NULL )  
    {
     
        printf("无法打开文件!\n");  
       return ;  
    }  
    fprintf(fp,"%d\n",n);  //fprintf(文件指针,格式字符串,输出列表);   
    while(i < n)  
    {
     
        fprintf(fp,"%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n",work[i].ID,work[i].name,work[i].sex,work[i].age,work[i].edu,work[i].position,work[i].wage,work[i].address,work[i].tel);  
        i ++;  
    }  
    fclose(fp);  
}  
   
   
//输入模块  
void input()// 从键盘输入  
{
     
       int i;  
    int flag;//标记工号是否已存在  
    char c;//指令Y?N  
    read();//输入数据前先将文件中原有的数据读入  
    do  
    {
     
        flag = 0;  
        printf("\t\t请输入职工的工号:                              \n\t\t");  
        scanf("%s",work[n].ID);  
       for(i = 0 ; i < n ; i ++)  
        {
     
            if(strcmp(work[i].ID,work[n].ID) == 0)  
            {
     
                flag = 1;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

石先森很疯狂

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值