實驗二 編寫員工人事管理的應用程式

來源:互聯網
上載者:User

實驗二 編寫員工人事管理的應用程式 

實驗目的

在C語言環境下(Turbo C或VC)編寫一個簡單的員工人事管理的應用程式。

通過本實驗,使學生能夠在C語言環境下熟練地編寫基本的應用程式。

實驗意義

通過本實驗,使學生能夠進一步理解C語言中動態儲存裝置分配的使用,熟悉指標和數組的使用方法。

實驗背景

某軟體公司大約有30名員工,每名員工有姓名、工號、職務等屬性,每年都有員工離職和入職。把所有員工按照順序儲存結構建立一個線性表,建立離職和入職函數,當有員工離職或入職時,修改線性表,並且列印最新的員工名單。

實驗步驟及要求

1、設計員工人事資訊的儲存結構

2、建立10名員工的初始資料

3、增加2名新員工,儲存在順序表的頭部

4、刪除2名員工的所有資訊,保持順序表的結構

5、顯示現有員工的所有資訊

6、提交來源程式清單及程式注釋

7、提交程式使用方法和程式使用介面

8、上機示範實驗結果

實驗學時

3學時

 

 

#include<stdio.h>#include<stdlib.h>#include<string.h>typedef  struct Worker{    char name[20];  //員工姓名    char num[10];   //員工工號    char job[20];   //員工職位    struct  Worker *next;  //指向下一個員工}Worker,*linklist;int initlist(linklist &W)  //初始化{    if(!W)    return 0;    W->next=NULL;  //初始 指標為空白    return 1;}int input(linklist &W)  //建立員工資訊{    linklist p;    p=(linklist)malloc(sizeof(Worker));  //為新節點申請空間    if(!p) //申請未成功    {return 0;}    else   // 輸入每一位員工資訊    {        printf("請輸入姓名:\n");        scanf("%s",p->name);getchar();        printf("請輸入工號:\n");        scanf("%s",p->num);getchar();        printf("請輸入職位:\n");        scanf("%s",p->job);getchar();    }    p->next=W->next;  //頭結點插入 p節點指向並替代第一個節點    W->next=p;       //W指向第一個節點    return 0;}int del(linklist &W,char num[10])  //按員工號刪除員工資訊{    Worker *p,*q;    p=W->next;     q=W;    while(!(strcmp(p->num,num)==0)&&p)   //匹配員工號    {        q=p;        p=p->next;    }    if(p)  //刪除p結點 q->next=p    {        q->next=p->next;        free(p);        printf("刪除資訊成功!\n");        }    else  //p位置不存在    {printf("刪除資訊不成功!\n");}    return 1;}int show(linklist &W)  //顯示員工資訊{    linklist p;    for(p=W->next;p;p=p->next)  //輸出每一位員工資訊    {        printf("姓名:%s    ",p->name);        printf("工號:%s    ",p->num);        printf("職位:%s    \n",p->job);    }        return 0;}int main(){    linklist W;    int a;    char str[100],str2[100];    initlist(W);    printf("請輸入要執行的操作:input,del,show\n");    while(scanf("%s",str)!=EOF) //選擇進行那一項操作    {        if(!strcmp(str,"input"))        {            printf("請輸入要輸入的人數:\n");            scanf("%d",&a);            while(a--)  //判斷迴圈次數            {input(W);}        }        else if(!strcmp(str,"del"))        {            printf("請輸入要刪除員工的工號:\n");            scanf("%s",str2);            del(W,str2);        }        else if(!strcmp(str,"show"))        {show(W);}        printf("請輸入要執行的操作:input,del,show\n");    }    return 0;}

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.