- 在线时间
- 490 小时
- 最后登录
- 2024-2-3
- 注册时间
- 2013-2-28
- 听众数
- 117
- 收听数
- 46
- 能力
- 268 分
- 体力
- 39235 点
- 威望
- 1340 点
- 阅读权限
- 255
- 积分
- 31237
- 相册
- 2
- 日志
- 0
- 记录
- 0
- 帖子
- 1388
- 主题
- 937
- 精华
- 0
- 分享
- 0
- 好友
- 111
升级   0% TA的每日心情 | 衰 2020-10-25 11:55 |
|---|
签到天数: 264 天 [LV.8]以坛为家I
- 自我介绍
- 内蒙古大学计算机学院
 群组: 2013年数学建模国赛备 |
#include <stdlib.h>, X- v6 E. }7 X& L* p6 k! j9 Q6 o
#include <stdio.h># s1 |; d! d r4 V" L ?3 ?
#include <malloc.h>/ j# K4 J+ l8 X3 h1 O
#include <string.h> * i9 f) y, \9 n7 Q* i; t
typedef struct worker- [" a3 K, E! b3 V; k8 G
{
9 [( O% G- Q2 b$ wint id;
& o6 J3 j8 l4 A; ochar name[20];& P& L! Q8 _9 o" {% ^' c/ h
char sex[3];7 H8 u& q) B; b0 {8 Y" T0 K. ~* T
int age;
1 z3 A' v! B$ _char edu[50];
" z8 ~# s# Q2 i; \0 tint wages;0 I1 i) N, _' B5 n% m( I; v6 r
char adr[255];
' |, {. O" L u4 |, ochar phone[13];- e$ P1 G: M( i. M Y
}WORKER, *PWORKER;3 {6 `+ K; j" D0 O- H/ \
//typedef struct WORKER *PWORKER;! L V, n7 }. ~, ^6 _4 s
typedef struct link
. S+ R! F2 Z. e4 I) d{
+ a; r6 d1 ^; x2 B9 c* QWORKER w;% q& K, \1 Y/ n
struct link *next;
) a( s5 O# A6 n! G% K& M' u}LINK, *PLINK;! i% ]3 {, [' d$ k7 m; J' Q4 r
//typedef struct LINK *PLINK; /*创建职工信息链表*/
% r% ~, V9 j8 A" c' v) R$ Q5 YPLINK create()' J+ S8 g& S2 E, ], G
{8 g* O+ i/ E$ ?2 g& R
PLINK p=(PLINK)malloc(sizeof(LINK));
- g7 \7 ^: {( t7 Y4 aif(NULL!=p)6 k0 l# a9 ?3 h H+ G N
{$ n' f) i- N8 I. k+ U
p->next=NULL;0 I1 g/ v5 ]; F- T. Q
return p;
9 {! H- E% V3 ?4 I; x6 {}
6 M+ R1 ^. N7 e+ p dprintf("内存不足!\n");
3 W; w1 q7 L3 ^- breturn NULL;7 l* D; u" F, R7 r: v
} /*显示程序界面文字*/1 L4 P1 \) L* Y# R( {9 W" k8 `
void message()
+ Y$ M4 ^- [& l Q{ system("color 0f");/*设置当前窗口的背景色和前景色*/
9 o: x ]2 C; k8 a/ ~/* 0 = 黑色 8 = 灰色, c1 G8 ~8 [. R w: a' U2 H& |) D
1 = 蓝色 9 = 淡蓝色0 d! O+ x$ f% J* }- ]! J K
2 = 绿色 A = 淡绿色% b) Q& g" @( J$ l/ d
3 = 浅绿色 B = 淡浅绿色
8 E' _9 h! K0 I! |- ~; F6 r4 = 红色 C = 淡红色; T! I# L" ]# h# N. H% R. ~
5 = 紫色 D = 淡紫色" P7 t6 H( t# w6 x
6 = 黄色 E = 淡黄色
# e: u4 j: j" c0 j1 u7 = 白色 F = 亮白色*/
$ I6 B0 I6 g8 r4 j% W2 u' Msystem("cls");
/ n( _, M* i/ V9 S( y% V1 Oprintf("\t\t************************************************\n\n");* m$ F! E( \' X+ M6 p5 n' K' o
printf("\t\t>>>>>>>>>>>>>>欢迎进入职工管理系统<<<<<<<<<<<<<<\n\n");
- e1 i) T8 w! U" X% t1 l8 hprintf("\t\t************************************************\n\n");
9 ^* o& W6 A; U# y& k/ B( bprintf("\t\t ************** Choose Function *************\n\n");, q1 c" t" p [. t; j( |7 d
printf("\t\t ************ 帮助 请输入:0************\n\n");, _3 |* S# {; K* _5 v
printf("\t\t ************录入职工信息 请输入:1************\n\n");; s: f) `( S x5 b- T" x
printf("\t\t ************浏览职工信息 请输入:2************\n\n");/ }# ^4 j0 i3 V t- {2 M
printf("\t\t ************查询职工信息 请输入:3************\n\n");
+ Y: [2 o7 {$ t- {! M+ y5 j; bprintf("\t\t ************删除职工信息 请输入:4************\n\n");3 D+ ]5 \8 G# x: O
printf("\t\t ************修改职工信息 请输入:5************\n\n");
" v2 C( r5 Z3 h/ ~6 n" rprintf("\t\t ************ 清屏 请输入:6************\n\n");# L: Q) a# w, u
printf("\t\t ************ 退出 请输入:7************\n\n");
4 Y- R- l/ f6 b% Zprintf("\t\t************************************************\n\n");- o: f6 N5 p' [
printf("\t\t************************************************\n\n");- Z& m# }2 A3 [* s! X
} void find_sr(PLINK plink, char* str)
( t( h9 Z5 I" c* D{5 h4 @8 [( [$ W: T8 I1 I
for(PLINK curr = plink->next; curr != NULL; curr = curr->next)
- Q; a/ a% n( I6 H; J{$ L" S) ?, B! j8 v- N2 K, L
if(strcmp(curr->w.edu, str) == 0)* a+ F; E, }# b" I- n
{
; j- g; Q+ g: h) eprintf("职工工号:%d\n",curr->w.id);. G/ X# @7 K( Z4 H
printf("职工姓名:%s\n",curr->w.name);# A* D4 q9 M) I9 l, }
printf("职工性别:%s\n",curr->w.sex);
8 N, O3 C* o% N; p1 t& g1 }. g, \. M: ~printf("职工年龄:%d\n",curr->w.age);6 p( K& i# J- T! ^4 L
printf("职工学历:%s\n",curr->w.edu);1 ]+ Z& Q) s }/ k3 ~& z6 ?
printf("职工工资:%d\n",curr->w.wages);" s& B$ ^: |# L: g }; W
printf("职工住址:%s\n",curr->w.adr);6 l6 R$ }: S6 E* {3 ]
printf("职工电话:%s\n",curr->w.phone); }
" Q: n+ s& p3 R5 ?; M}
0 F8 b. r, W4 D6 F} void findid(PLINK plink, int id)" p- R1 p8 C5 j( i* T% T
{, d; r) m4 Y" f( \9 H, U
for(PLINK curr = plink->next; curr != NULL; curr = curr->next)
8 S6 U% G8 _ V1 r2 t# V& B: j{- F( H! {% g0 x& v8 r; L! K
if(curr->w.id == id)
, |! [9 n9 A: |3 w3 f{9 {% H. D+ Z- C
printf("职工工号:%d\n",curr->w.id);
+ D! c* F o. x. Kprintf("职工姓名:%s\n",curr->w.name);0 u. \# \2 H, L, Z5 ]
printf("职工性别:%s\n",curr->w.sex);6 u- c5 _) J% S2 s$ g
printf("职工年龄:%d\n",curr->w.age);8 \# I8 Y9 j2 U% _7 |9 `& g
printf("职工学历:%s\n",curr->w.edu);# B6 n0 e9 z8 Q/ M: T& e
printf("职工工资:%d\n",curr->w.wages);1 E; W( U+ j5 c
printf("职工住址:%s\n",curr->w.adr);
# J5 a" r! C' R) h s9 Rprintf("职工电话:%s\n",curr->w.phone); }
K. f# I+ o' q}* D' y! s6 r2 a, w. K4 @0 b
} void show(PLINK plink): Q( C% p T3 y! `
{ for(PLINK curr = plink->next; curr != NULL; curr = curr->next)0 X+ ]" z$ |# j
{* L; x1 h- P: r$ s0 n3 j
printf("职工工号:%d\n",curr->w.id);# _3 l: ^( h$ L9 Q, A" V, o8 [% l
printf("职工姓名:%s\n",curr->w.name);9 Z$ X/ J& g1 C: e$ \1 w/ \' w
printf("职工性别:%s\n",curr->w.sex);
. u' \& V: [' t0 e V( ~printf("职工年龄:%d\n",curr->w.age);* i5 Z. b& O8 y
printf("职工学历:%s\n",curr->w.edu);4 k6 V4 s. N5 e/ E$ }5 r2 O
printf("职工工资:%d\n",curr->w.wages);
. t& x6 G* }3 o, Bprintf("职工住址:%s\n",curr->w.adr);: @. F% F6 m6 g( v; d
printf("职工电话:%s\n",curr->w.phone);
6 q; b% {5 t. k" c) M/ d6 n}) G$ k5 ?- w/ o* D" p% B# j6 l
} /*录入职工信息*/
% T7 V2 f r: u7 U+ Mint add(PLINK p)2 N, n, y% e/ Y7 i" F5 N4 ~6 u
{
. }) b* t0 L; xPLINK h = NULL;
+ ^' Z# V- B5 ]6 Z( NPLINK q=(PLINK)malloc(sizeof(LINK));8 D7 h9 u9 ?2 z" ~
if(NULL==q)
: b. ~5 h: Y% `. Q% I! P+ y{
9 H- P: ]8 \6 \1 k* `8 ?5 k% W8 z* ]7 @printf("录入失败提示:内存不足!\n");. G( l& K+ g9 d; \2 H
return 7;- {, f8 L& v, p, M' F- @; ~' E. [
}
: H, s3 x! Q% i6 O* mprintf("请输入职工号(数字):");
* x. _% j1 {8 xscanf("%d",&q->w.id);5 y& S$ I9 @$ V. J- q$ I9 r
h=p->next;
# s( y+ a" I" S* M0 ewhile(h)
% T. W9 _: t8 w{! K B" L( l; a I" i, D3 p) K
if(h->w.id==q->w.id)/ o. F7 K7 ]# K- p d
{9 O0 D9 N/ K" D3 p3 ?& F% Z
free(q);
6 t n9 L& S$ L7 e/ p' h6 t6 kprintf("录入失败提示:此职工号已经存在!\n");
7 ^7 n" S2 Z jreturn 7;- o; J8 n: x7 \0 j: S
}8 o9 h& L8 |+ |9 R0 b) T. \
h=h->next;; |2 ~% j, T* I) l
}
0 x! p+ P- G2 tprintf("请输入职工姓名(文字):");
) S( i5 U0 P& V: i3 o7 q+ W6 t# ?scanf("%s",&q->w.name);8 a3 c' p$ p2 w, r$ E% c* R1 ~4 \
printf("请输入职工性别(文字):");
! \4 \, Y$ S. O* _+ j! A& Iscanf("%s",&q->w.sex);1 D5 y6 b" _) W7 x4 b% H( M/ ]
printf("请输入职工年龄(数字):");
, Q. w" U7 ~5 @0 o. Yscanf("%d",&q->w.age);
1 l" P5 Q' ?: `; pprintf("请输入职工学历(文字):");
0 W3 B) X7 `, B; dscanf("%s",&q->w.edu); J2 g; } E" I, H; N7 E# |: X& p
printf("请输入职工工资(数字):");9 _: C- \2 j& ?6 u4 x" {) `5 v
scanf("%d",&q->w.wages);
/ B- h; i p- ^( {1 j1 cprintf("请输入职工住址(文字):");
& F4 f; Q/ g. {0 Q" [: o0 C1 u/ pscanf("%s",&q->w.adr);$ J0 c$ Y: o: Q7 }/ x" }
printf("请输入职工电话(文字):");: i( l( \1 M5 ?2 ^
scanf("%s",&q->w.phone);
' E& X0 S3 g/ J5 [" n/ a+ y0 Vq->next=p->next;
( ~$ C5 g; [4 L5 P* Ap->next=q;
7 J4 v3 i( d4 m5 F) e) Bprintf(".^_^.录入成功!.^_^.\n");
$ s6 p7 W1 ^' Z' Hreturn 7;
4 e: s$ e) _3 ]" l4 X0 } i% ]} /*按姓名查询*/
1 L$ R; W* n0 R% aPLINK findname(PLINK p,char *name)
1 K/ W! J3 q6 Z1 M* x( d# t& _: S{9 `% d2 x2 Q q7 v6 l/ @- a! t
message();: R3 a3 k; P: W6 `
printf("按姓名 查询\n");( n/ A3 K& o$ Q4 K: e' b5 _1 {
printf("职工号\n姓名\n性别\n年龄\n学历\n工资\n住址\n电话\n");
" E; |; Q, W3 [( Ewhile(NULL!=p->next)
- v+ E: R2 D5 d" a" h ^) E{4 J V9 J: H( c+ J9 I
if(0==strcmp(p->next->w.name,name)). q5 ~4 K" E R' p
{
& d% j1 e4 J$ Kprintf("%d\t%s\t%s\t%d\t%s\t%d\t%s\t%s\n",
$ H: Y' _# w1 }, R9 sp->next->w.id,p->next->w.name,p->next->w.sex,p->next->w.adr,; ^2 C- j9 ^0 o0 r- M
p->next->w.edu,p->next->w.wages,p->next->w.adr,p->next->w.phone);
5 j; J' _6 Y1 z: C8 wreturn p;
6 l; Q( J# x0 j* s3 C( t) P7 y9 E}
2 a: E/ A$ G* w6 Zp=p->next;! o" L$ i' i9 i
}
2 I- d K* M0 Z! x) A% r) S. lprintf(".^_^.查询结束!.^_^.\n");
7 u) Q2 r6 ]1 P0 Z9 \2 [return NULL;$ c* F3 h9 f* R
} /*按职工号删除职工信息*/, i# b9 b% |) j" J( O$ [9 @
int del(PLINK p,int id)
3 t: j* z0 k) u" z0 |{3 V' S2 I+ X* \* z7 U! Q; E) v- q
message();$ ]- p" [ }6 _/ l# v5 Q
printf("按职工号删除职工信息\n");4 H, P% E8 Y& e: S' B# R# v
while(NULL!=p->next)
2 C1 a u, U8 n$ M9 I9 k7 F- A{
9 A5 f3 W6 h9 @9 Y+ c8 aif(p->next->w.id==id)5 U" `) j9 |" m/ `
{: S) q& Y% W) H) m/ i2 [0 I1 ^/ u8 h
PLINK q=p->next;" G( @- X. X7 N! E
p->next=p->next->next;
1 h/ W8 F1 }& W7 q4 Bfree(q);
9 O) N2 n( I' r/ D4 n7 z+ ~printf(".^_^.删除成功!.^_^.\n");' U- P2 o( H1 @& U% U/ J
return 1;6 K8 y9 p+ U9 v N6 k
}' u/ G) D# g) |5 _( [
p=p->next; j# {) `9 }1 B0 b
}. k+ E( p) f% E7 t! w
printf("没有你输入的职工号!\n");
$ f) O6 ]% [5 y! ~2 Ereturn 7;4 c) P z" ~0 [( F. e
} /*程序结束释放内存*/
" `0 B; ?' y. Y% e/ ovoid release(PLINK p). Q( r" R; u% K2 L7 M; N
{
. [1 I3 ]7 ^! N2 UPLINK q;
6 Q u' I/ }( \) g* _while(NULL!=p->next); |; O: ?; C! [' H2 b
{4 m$ ?9 @' z, W- ~& c/ \
q=p;5 @) p! o4 p6 Z
p=p->next;3 ?* |- R% t$ Z
free(q);; f, V. @7 r6 H* S! X- J
}
# j" N) C* E0 @ tfree(p);: R- O+ l* C! _3 a, ` b# d( W
} /*查询调用*/' h# J( ^# l2 I- P8 k
void search()
, h Z4 T) S- a0 j/ m+ ?8 b( G. i3 M{
8 z) Y* ^; M2 ~# Pint id;! J* R) A! _9 l- x% d7 I! f
char name[20];% V2 _& _+ w1 I( z
char str[20];
9 i/ F5 X: L. Y3 C4 b! h5 V2 fPLINK pworker;
% x" r& A0 `- B8 ^int l;& |$ Q: L. I; J3 G
printf("\t\t\t\t*姓名查找按:1*\n");0 n( l0 }5 J0 q* f
printf("\t\t\t\t*学历查找按:2*\n");
2 \: v7 Y4 a+ h% W* l0 eprintf("\t\t\t\t*职工号查按:3*\n");' J. H4 b4 G; ~( m& n! f1 k: t
scanf("%d",&l);
8 l. b g, a+ u" [3 iif(l>0&&l<4)
7 l0 ]4 W3 t- d$ u# @# T1 N{switch(l)
@2 @% c* x, s{
. |+ i- M* _, q; dcase 1:printf("请输入要查询的职工姓名:");" H1 U3 |) z0 f# p M( y1 K. a# A. G
scanf("%s",name);
% H3 E( W! x8 y' pfindname(pworker,name);
( t+ @& o$ C9 mbreak;3 o# S% [( }$ O9 S7 |
case 2:printf("请输入要查询的职工学历: ");
+ j6 @8 X* Q4 h( q t! | s' J3 Gscanf("%s", str);9 z) t6 ?% E9 d, {" H5 ]6 x2 ^
find_sr(pworker, str);
, w S1 }. b" _! c. q1 C/ o: i" G. Y! Vbreak;5 n" u5 X1 M- ~( S; I
case 3:printf("请输入要查询的职工号:");, P+ G8 a6 @' w3 C/ h& G: v
scanf("%d",&id);
! P# X& y! Y0 w2 e8 o" d5 Kfindid(pworker,id);9 o; e, j" C6 [! y0 x5 D8 d0 z
break;
g9 S5 m6 ]$ [}7 h5 A# z' L, e: u
printf("\n\n选择完毕!!!");- ^' V0 e# m% \& ~& z7 c
}0 c4 [8 t9 H6 y: ?% ~9 q
else printf("\t\t\t\t输入有误!!!");
3 u; V) b) B5 F5 S) N* Y- ~% r: [} /*修改职工信息*/$ L% z7 H0 t% _) z1 {
int modify(PLINK p)
! a$ e5 ~* a( H3 }% w{ int id; h1 r) f- p2 M) S# l+ M
PLINK q;0 G/ T1 v9 L" ]
PLINK h = NULL;
, @4 f! g! L) d# Pprintf("请输入职工号(数字):");
4 U3 l0 l1 A, Lscanf("%d",&id);
- p6 a* q' P, A4 K* Jh=p->next;' A8 X; D" U: e% p, O- J) F
while(h)$ o& t! ^8 x$ N- S `' ]
{
8 I9 _; g! }( N4 {if(h->w.id==id)2 ?0 F4 V3 `/ n7 t) {
{
) d1 c' v) q/ x; R4 q; Rbreak;
; B: O6 P5 x; C& l& f/ y6 u2 x}! l4 j& S& |+ ^: W& ?, P6 P
h=h->next; _+ D! s7 t+ o% t; x
}
5 a) u1 P8 u6 \. `2 g# Gif (h == NULL)4 F4 U9 t) @9 d. [6 N) \
{6 k! ^" e2 h4 }) l+ H
printf("找不到此职工,请重试\n");' u9 O' p+ q& F" e
return 7;
2 Y! h' R7 O$ [6 Z}
& I' x3 ]& f, x: A5 Z8 d$ Fprintf("请输入职工姓名(文字):");' T7 p" p3 z4 y. K! L2 V
scanf("%s",&h->w.name);+ y6 s! W0 b/ M" S: q# h* m
printf("请输入职工性别(文字):");
# L; H# m, _3 A5 }scanf("%s",&h->w.sex);
& g- ]/ u$ V" _ w" Wprintf("请输入职工年龄(数字):");2 w! a& u3 J- J+ A; h6 {6 N
scanf("%d",&h->w.age);
7 k) v; }1 c0 Q7 T1 Z* @: Aprintf("请输入职工学历(文字):");
# x( P4 P# E% Yscanf("%s",&h->w.edu);
( g3 d( b# \2 m. y. P/ |/ Gprintf("请输入职工工资(数字):");( W: C& n' X2 I5 A( [
scanf("%d",&h->w.wages);9 T" k w/ G" r o
printf("请输入职工住址(文字):");0 \ j1 B) T7 I; j
scanf("%s",&h->w.adr);( x9 }/ C- ~: }/ L$ \1 \ S% X
printf("请输入职工电话(文字):");
) z+ M5 X& `5 w, fscanf("%s",&h->w.phone);
0 F! Q N: A$ w( Yq->next=p->next;% F/ C: P/ w: [1 L1 L a, b
p->next=q;
4 N* _% e. w1 T$ d+ K4 t" Bprintf(".^_^.修改成功!.^_^.\n");
7 t9 V! r7 {2 ?2 v8 oreturn 7;5 \+ T" C7 i" d# E
} int main()& K% S, n" E5 m
{
6 V, U6 j3 V) o
& m; o1 G) c c; V' Pint cmd=0; F2 K; D6 }5 o0 F# X0 q
int id;* @+ {3 n/ {6 R# O- l4 D+ V W
char name[20];4 `! m8 C& m7 R4 J4 C" |4 o
char str[20];6 W" R) f( F* i$ M& R
PLINK pworker;
3 f3 v n3 i" H4 o) jif(!(pworker=create()))
% X: ~6 `. ^' h9 [6 ?2 H: @5 S) s{7 Y8 y& t9 `. g6 Q( ~. s
exit(0);
$ w; x. N- b+ K' w! F. ^}% v; z2 V1 s+ N# @
while(cmd!=7): J3 a! i* n5 C3 a% m9 t- X9 f4 a
{
- I; u% z5 _2 Z# mswitch(cmd)
* I+ }- u$ n4 y9 @& {: y{
8 E4 [6 s7 a9 n3 `8 ?+ |) Wcase 0: message(); break;4 Z- `4 r h, O
case 1: add(pworker); break;
% O( W$ R* Q% |! |# _4 _9 Ecase 2: show(pworker); break;9 P$ r. y9 J& }$ s+ G6 b! {
case 3: search(); break;
# k/ }, a( R J( K, ]case 4: printf("请输入要删除的职工号:");
& c1 \' K) p# U, o6 Gscanf("%d",&id);/ N/ A3 C7 f) t; r
del(pworker,id);
5 H& Q0 j# f2 q: G C$ c# Ibreak;
! w! h" t. {, c$ s# n. rcase 5: modify(pworker); break;# N. U# x$ K/ t. D
case 6: message(); break;
2 f: F( O* i, \4 a" y+ v}& [+ i5 p9 S/ U2 l9 K$ g6 b
printf("请输入操作命令数字:\n");
( g5 z, Y$ | ]scanf("%d",&cmd);
0 ~/ H5 s1 H0 B1 q2 V" H}
, l" O& y" i5 k8 kprintf("谢谢使用!\n");
7 V+ L2 C$ Z; I- ~, Zrelease(pworker);
9 W" J3 G( d( F$ o) i5 jreturn 0;: t& m+ c6 j: z, f$ }
}
( A' s$ F# w0 ^. r1 w. h; s: r+ M1 @) }- l% b% ^9 {
7 ^5 z4 L9 R8 b. j* |$ I这是职工信息表 能运行出来不过查询功能不行能帮忙看一下是什么原因吗。。再此谢谢了!/ Q; j8 I8 D" Q, n0 d9 ~
' m: ]" F8 h5 F+ e9 ^5 X5 B& u5 U |
zan
|