日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

职工信息管理系统—C语言工程实践

發布時間:2023/12/10 windows 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 职工信息管理系统—C语言工程实践 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

要求使用文件、鏈表,系統以菜單方式工作。

職工信息包括職工號,姓名,性別,年齡,學歷,工資,住址,電話等(職工號不相等)。試設計一職工信息管理系統,使之能夠提供下列功能:?

系統以菜單方式工作?

職工信息錄入功能(職工信息用文件保存)?

職工信息瀏覽功能?

職工信息查詢功能,查詢方式:?

??????1)按學歷查詢?

??????2)按職工號查詢?

職工信息刪除,插入、修改功能。

基于各種基本數據的統計計算。如:統計職工總人數、本科以上學歷人數等。

要求:

1、盡量不用全局變量

2、函數需要有參數和返回值,個別函數允許無參或者無返回值;

3、文件操作不要頻繁的打開和關閉(參考word操作,打開以后將數據調入內存,完成各種功能后選擇存盤,所有操作結束后才關閉文件)

#include<stdio.h> #include<stdlib.h> #include<string.h> #include<math.h>#define MAX 100//根據職工信息改變 #define A 2021082039 #define B 123456789 #define TRUE 1 #define FALSE 0 #define RED "\033[0;32;31m" //背景顏色 #define NONE "\033[m"typedef struct staff//結構體定義,職工號,姓名,性別,年齡,學歷,工資,地址,電話號碼 {char number[MAX];char name[MAX];char sex[MAX];char year[MAX];char edu[MAX];char money[MAX];char addr[MAX];char phonenum[MAX];struct staff *next; }node;int loge();//用戶登錄 (賬號密碼正確才可以登錄) void menu(node *head2);//菜單 node *Filesave(node *head);//將職工信息保存到文件 int listread(node *head2);//從鏈表進行職工信息瀏覽 void input(node *head2);//函數1職工信息錄入 int Eduserch(node *head2);//職工信息查詢(按照學歷) int Numberserch(node *head2);//職工信息查詢(按照職工號查詢信息) void Modify(node *head2);//修改職工信息(按照工號) int Delete(node *head2);//刪除職工信息(按照職工號) node *Fileread();//讀取文件中職工信息到鏈表中 void View(node *head2);//瀏覽全部員工基本信息 /*1.一共可能打開文件四次,可能打開三次, 一次在inputh函數(可選擇是否保存), 一次在結束系統操作(可選擇是否保存) 一次在修改函數 Modify(可選擇是否保存) 必須打開一次在Fileread函數(為了讀取文件中職工信息) 2.head2是沒有數據的從文件讀取數據到鏈表的鏈表的頭指針 3.設置了登錄系統,其他不知道賬號密碼的人無法登陸操作 4.用了清屏函數system("cls") 5.用了改變顏色函數system("color 30");//控制臺背景淺藍色和printf(RED"密碼錯誤,請重新輸入:\n"NONE);//打印紅色的字體 6.合理運用程序模塊化設計,主函數簡潔 */int main() {node *head=Fileread();//讀取文件中職工信息到鏈表中 ,頭結點無數據 int R=loge();if(R==TRUE){system("cls");//清屏函數<stdlib.h> printf("登陸成功!\n");} menu(head);return 0; }int loge()//用戶登錄 {system("color 30");//控制臺背景淺藍色 int n,m;printf("\t\t\t\t歡迎使用職工信息管理系統!\n");printf("請輸入賬號(10位數字):\n");scanf("%d",&n);printf("請輸入賬號密碼:\n");scanf("%d",&m);while(1) {if(n==A) {if(m==B) return TRUE;else{printf(RED"密碼錯誤,請重新輸入:\n"NONE);//打印紅色的字體 scanf("%d",&m);}} else{printf("賬號不存在!請重新輸入:\n");printf("請輸入賬號(10位數字):\n");scanf("%d",&n);printf("請輸入賬號密碼:\n");scanf("%d",&m);}}return FALSE;} int select()//功能選擇 {system("color 30");//控制臺背景淺藍色 int n;printf("---------------------------------------\n");printf("|選項: | 對應選項功能 |\n");printf("---------------------------------------\n");printf("|選擇1:| 職工信息錄入 |\n");printf("---------------------------------------\n");printf("|選擇2:| 職工信息瀏覽 |\n"); printf("---------------------------------------\n");printf("|選擇3:|職工信息查詢(按照學歷查詢) |\n");printf("---------------------------------------\n"); printf("|選擇4:|職工信息查詢(按照職工號查詢) |\n");printf("---------------------------------------\n");printf("|選擇5:| 職工信息刪除 |\n");printf("---------------------------------------\n");printf("|選擇6:| 職工信息修改 |\n");printf("---------------------------------------\n");printf("|選擇0:| 退出職工系統 |\n");printf("---------------------------------------\n");printf("請您輸入選擇:");scanf("%d",&n);while(n<0||n>7){printf("無此選項,請重新輸入:\n");scanf("%d",&n);}return n;}node *Fileread()//讀取文件中職工信息到鏈表中 {FILE *fp;node *p,*pre,*tail,*head;head=(node *)malloc(sizeof(node));tail = pre=head;fp=fopen("work.txt","r");if(fp==NULL){printf("文件打開失敗!!!");exit(0);}p=(node *)malloc(sizeof(node));p->next=NULL;head->next=NULL;while(fscanf(fp,"%s %s %s %s %s %s %s %s\n",p->number,p->name,p->sex,p->year,p->edu,p->money,p->addr,p->phonenum)!=EOF){pre = tail;tail->next=p;tail=p;p=(node *)malloc(sizeof(node));p->next=NULL;}fclose(fp);return head; }void menu(node *head2)//菜單 {system("cls");//清屏操作printf("\t\t\t\t歡迎使用職工信息管理系統!\n"); int m=select();switch(m){case 1:printf("選擇1:職工信息錄入\n");system("cls");//清屏操作input(head2);//輸入職工信息并保存到文件 break;case 2:printf("選擇2:職工信息瀏覽\n");system("cls");//清屏操作 listread(head2);//瀏覽全部職工信息 break;case 3:printf("選擇3:職工信息查詢(按照學歷查詢)\n");system("cls");//清屏操作Eduserch(head2);//職工信息查詢(按照學歷)break;case 4: printf("選擇4:職工信息查詢(按照職工號查詢)\n");system("cls");//清屏操作Numberserch(head2);break;case 5:printf("選擇5:職工信息刪除\n");system("cls");//清屏操作Delete(head2);//刪除職工信息(按照職工號)break;case 6:printf("選擇6:職工信息修改\n");system("cls");//清屏操作Modify(head2);//修改職工信息 break;case 0:printf("選擇0:退出職工系統\n");system("cls");//清屏操作 Filesave(head2);printf("\n\n\n\t\t\t\t感謝您的使用,歡迎再次光臨!\n\n\n");printf("\n\n\n\t\t\t\t感謝您的使用,歡迎再次光臨!\n\n\n");getchar();//清除\n getchar();exit(0); }}void input(node *head2)//輸入職工信息 {system("cls");//清屏操作int i=1;node *p, *q;char n[10],s[10]; q = head2; while (q->next != NULL){q = q->next; }while (1){printf("提示:輸入0返回主菜單!輸入1繼續添加!\n");printf("請輸入選擇:");scanf("%s", n);if (strcmp(n, "0") == 0){Filesave(head2);printf("返回主菜單\n");menu(head2); }if(strcmp(n, "1") == 0){p = (node *)malloc(sizeof(node));printf("請輸入職工號:");scanf("%s", p->number);printf("請輸入姓名:");scanf("%s", p->name);printf("請輸入性別(男(M)女(W)):");scanf("%s", s);while(strcmp(s,"M")!=0&&strcmp(s,"W")!=0){printf("輸入錯誤,請重新輸入職工性別!\n");scanf("%s",s);}if(strcmp(s,"M")==0||strcmp(s,"W")==0){strcpy(p->sex,s);}printf("請輸入出生年月:");scanf("%s", p->year);printf("請輸入學歷:");scanf("%s", p->edu);printf("請輸入工資:");scanf("%s", p->money);printf("請輸入住址:");scanf("%s", p->addr);printf("請輸入電話:");scanf("%s", p->phonenum);printf("提示:已經完成第%d個職工信息的添加!",i++);p->next = NULL;q->next = p; q = p; }} }int Eduserch(node *head2)//查找職工信息(按照學歷) {system("cls");//清屏操作printf("尊敬的用戶,歡迎查找職工的信息(按照學歷查找)!\n");char edu[MAX];printf("請輸入你想查找的職工的學歷:");scanf("%s",edu);node *head;head=head2;node *p;if(head->next==NULL){printf("此系統中無記錄!\n");exit(0);}printf("職工號\t姓名\t性別\t出生時間\t學歷\t工資\t\t地址\t\t電話號碼\n");for(p=head->next;p!=NULL;p=p->next)if(strcmp(p->edu,edu)==0)printf("%s\t%s\t%s\t%s\t%s\t%s\t\t%s\t\t%s\n",p->number,p->name,p->sex,p->year,p->edu,p->money,p->addr,p->phonenum);int m;printf("返回上一級菜單輸入1,結束請輸入0!\n");scanf("%d",&m);if(m==1){printf("返回主菜單!\n");menu(head); } if(m==0){printf("結束操作!\n");exit(0);}return 0; }int Numberserch(node *head2)//查找職工信息(按照職工職工號查找) {system("cls");//清屏操作printf("尊敬的用戶,歡迎查找職工的信息(按照職工號查找)!\n");char number[MAX];printf("請輸入你想查找的職工的職工號:");scanf("%s",number);node *head;head=head2;node *p;if(head->next==NULL){printf("此系統中無記錄!\n");exit(0);}printf("職工號\t姓名\t性別\t出生時間\t學歷\t工資\t\t地址\t\t電話號碼\n");for(p=head->next;p!=NULL;p=p->next)if(strcmp(p->number,number)==0)printf("%s\t%s\t%s\t%s\t%s\t%s\t\t%s\t\t%s\n",p->number,p->name,p->sex,p->year,p->edu,p->money,p->addr,p->phonenum);int m;printf("返回上一級菜單輸入1,結束請輸入0!\n");scanf("%d",&m);if(m==1){printf("返回主菜單!\n");menu(head); } if(m==0){printf("結束操作!\n");exit(0);}return 0; }void Modify(node *head2)//修改職工信息(按照工號) {char s[100];node *head=head2;node *p = head->next;char number[MAX]; if (head == NULL){printf("此系統為空!\n");menu(head);exit(0);}printf("請輸入要修改職工的職工號:\n");scanf("%s",number);while ((strcmp(p->number,number)!=0 )&& p!= NULL){p =p->next;}if (strcmp(p->number,number)==0){printf("\t\t\t請輸入需要修改的信息\n");printf("職工職工號:");scanf("%s",p->number);printf("職工姓名:");scanf("%s",p->name);printf("請輸入性別(男(M)女(W)):");scanf("%s", s);while(strcmp(s,"M")!=0&&strcmp(s,"W")!=0){printf("輸入錯誤,請重新輸入職工性別!\n");scanf("%s",s);}if(strcmp(s,"M")==0||strcmp(s,"W")==0){strcpy(p->sex,s);}printf("職工出生時間:");scanf("%s",p->year);printf("職工學歷:");scanf("%s",p->edu);printf("職工工資:");scanf("%s",p->money);printf("職工地址:");scanf("%s",p->addr);printf("職工電話:");scanf("%s",p->phonenum);}printf("修改成功");head=Filesave(head);int m;printf("返回上一級菜單輸入1,結束請輸入0!\n");scanf("%d",&m);if(m==1){printf("返回主菜單!\n");menu(head); } if(m==0){printf("結束操作!\n");exit(0);} }int Delete(node *head2)//刪除職工信息(按照職工號) {node *head;head=head2;char number[MAX]; //先查找 后刪除node *p = head->next, *p1 =head->next,*p2;if (head == NULL){printf("此通訊錄為空!\n");printf("返回主菜單!\n");menu(head);return 0;}printf("請輸入要刪除職工的職工號:\n");scanf("%s",number);while ((strcmp(p->number,number)!=0 )&& p!= NULL){p1=p;p =p->next;}if (strcmp(number, p->number)==0) //輸出刪除信息{if (p == head->next&&p!=NULL)head->next = p->next;else if(p==head->next&&p->next==NULL){head->next=p->next;printf("信息已刪除,先此通訊錄為空!!\n");return 0;}elsep1->next = p->next;}else{printf("此信息不存在!!!\n");return 0;}printf("此信息已刪除!\n");for(p2=head;p2!=NULL;p2=p2->next)//打印刪除職工的基本信息 printf("%s\t%s\t%s\t%s\t%s\t%s\t\t%s\t\t%s\n",p->number,p->name,p->sex,p->year,p->edu,p->money,p->addr,p->phonenum); printf("返回上一級菜單輸入1,結束請輸入0!\n");int m;scanf("%d",&m);if(m==1) {printf("返回主菜單!\n");menu(head2); } if(m==0){printf("結束操作!\n");exit(0);}return 0; }node *Filesave(node *head2)// 將職工信息保存到文件 {node *p=head2->next;FILE *fp;int n;printf("是否想要保存到文件?是請輸入1,否則輸入0.\n");scanf("%d",&n);if(n==1){fp=fopen("work.txt","w");if(fp==NULL){printf("File can not be opened\n");exit(0);}while(p!=NULL){fprintf(fp,"%s %s %s %s %s %s %s %s\n",p->number,p->name,p->sex,p->year,p->edu,p->money,p->addr,p->phonenum);p=p->next;}fclose(fp);return head2;}elsereturn 0; }int listread(node *head2)//讀取鏈表中職工信息 {node *head;head=head2;node *p;if(head->next==NULL){printf("此系統中無記錄!自動返回主菜單\n");menu(head); exit(0);}printf("尊敬的用戶,歡迎瀏覽職工的基本信息!\n");printf("職工號\t姓名\t性別\t出生時間\t學歷\t工資\t\t地址\t\t電話號碼\n");for(p=head->next;p!=NULL;p=p->next)printf("%s\t%s\t%s\t%s\t%s\t%s\t\t%s\t\t%s\n",p->number,p->name,p->sex,p->year,p->edu,p->money,p->addr,p->phonenum);int m;printf("返回上一級菜單輸入1,結束請輸入0!\n");scanf("%d",&m);if(m==1){printf("返回主菜單!\n");menu(head); } if(m==0){printf("結束操作!\n");exit(0);}return 0; }

總結

以上是生活随笔為你收集整理的职工信息管理系统—C语言工程实践的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 欧美区视频 | 中文字幕在线日亚洲9 | 日老女人视频 | 国产高清不卡 | 精品国产丝袜一区二区三区乱码 | 女人做爰全过程免费观看美女 | 国产精品久久久久久亚洲毛片 | 欧美天天色 | 高清不卡毛片 | 中文文字幕文字幕高清 | 九一av| 777国产成人入口 | 精品一区二区三区毛片 | 少妇熟女视频一区二区三区 | 辟里啪啦国语版免费观看 | 欧美xxxxbbb | 人人爽人人插 | 国产一区二区福利 | 欧美国产大片 | 日本高清免费视频 | 国产精品 欧美精品 | 蜜桃臀aⅴ精品一区二区三区 | 激情小说在线观看 | 国产精品美女毛片真酒店 | 日韩激情成人 | 极品91尤物被啪到呻吟喷水 | 草草屁屁影院 | 熟女丝袜一区 | 嫩草国产精品 | 中文字幕精品在线视频 | 老熟妇仑乱一区二区视频 | 91精品国产自产91精品 | 东北熟女一区二区三区 | 亚洲av男人的天堂在线观看 | 嫩草嫩草嫩草嫩草嫩草嫩草 | 人妻少妇精品中文字幕av蜜桃 | 欧美日韩在线视频观看 | 国产午夜视频 | 国产精品无码白浆高潮 | 五月激情综合 | 日韩精品系列 | 国产区在线观看视频 | 就要操就要射 | 亚洲欧美国产高清 | 好男人www日本| 性欧美videos高清hd4k | 中国一级片在线观看 | 亚洲欧美日本一区二区三区 | 天天射一射 | 亚洲成人观看 | 高清一区二区视频 | 国模无码视频一区二区三区 | 成人看片在线观看 | 国产无遮无挡120秒 欧美综合图片 | 色老汉av一区二区三区 | 国产欧美一级 | 色噜噜色狠狠 | 特级大胆西西4444人体 | 97香蕉| 日韩人妻无码精品久久久不卡 | 国产一级二级视频 | h在线免费观看 | jizz美女 | 日韩人妻一区 | 精品无码人妻少妇久久久久久 | 久久人妖| 久久久久久久中文字幕 | 蜜臀少妇久久久久久久高潮 | 在线观看亚洲 | 国产白浆一区二区 | 蜜臀一区二区三区精品免费视频 | 天天干天天插 | 日韩射 | 激情另类视频 | 色乱码一区二区三区熟女 | 亚洲精品中文字幕乱码三区 | 国产精品第六页 | 国模av在线| 男女无套免费视频网站动漫 | 少妇精品偷拍高潮白浆 | 成年人免费在线观看 | 成人午夜免费福利视频 | 国产成人一区二区三区视频 | 中文字幕你懂的 | 成人午夜激情影院 | 亚洲aav| 少妇熟女一区二区 | 久久久久成人精品无码中文字幕 | 日韩r级在线观看 | 久久人人爽人人爽 | 欧洲视频一区 | 香蕉视频一区二区三区 | 国产精品亚洲成在人线 | 国产又粗又猛又爽又黄的网站 | 好屌妞视频这里有精品 | 日韩午夜在线 | 成人四色 | 影音先锋中文字幕人妻 | 亚洲永久免费观看 |