- 在线时间
- 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>+ w( F2 Q) h; @# m6 }. N
#include <stdio.h>4 e; e- q* {0 ^1 R% C
#include <malloc.h>; ?9 G' ]3 `, Q' S
#include <string.h> 0 Y* q8 P% ~/ B
typedef struct worker0 v8 H$ G. R/ s
{
% k" u% _* z) l7 K- o' ?. E0 Y% |4 kint id;
+ v2 [3 k+ I! o2 t; M& ?3 w. Echar name[20];/ x6 T& c' n9 k1 P6 {( k3 b
char sex[3];; y2 } k ?) L% U% W6 f) s
int age;
N7 R; t5 |) S% \& v1 o" }$ Bchar edu[50];
8 `- }* |. x$ n9 p6 Qint wages;
( j* U# C, d2 @3 ~. X* qchar adr[255];2 {! w3 U4 o2 ?4 d7 K
char phone[13];
4 K7 E( c; i: ?3 A" D}WORKER, *PWORKER;( n8 E; g0 z& r! W. |) o
//typedef struct WORKER *PWORKER;- j( B& [; k6 W1 z2 ?& L/ c. z u
typedef struct link' D; S- W" l( x! z: f
{% [# G \$ a4 O- J( i" _
WORKER w;
: Z4 ]7 b$ J$ [0 C5 sstruct link *next;% v E8 E" h ~* d
}LINK, *PLINK;( R! w% l m' q- K
//typedef struct LINK *PLINK; /*创建职工信息链表*/
0 {! J" U6 I( ^& J% C# VPLINK create()+ `; F7 V2 N: b" \
{) `$ e2 b& F/ j( T
PLINK p=(PLINK)malloc(sizeof(LINK));
4 M: e( ^3 j: p% K4 _' E0 ]if(NULL!=p)
% n! W! c s( \2 P+ C5 r{
% X8 L. G/ S! p3 c+ ]2 \8 Xp->next=NULL;4 {8 _2 }8 p- B: q4 P8 d
return p;
9 V9 o2 ]5 s9 u& h U. k0 I; b}
" V% j/ s Z7 [7 e. Z" Oprintf("内存不足!\n");
; g. q* u; h. e; X$ freturn NULL;
e9 l- y+ V6 L+ L} /*显示程序界面文字*/
+ Q8 k$ x- W( i# o7 m9 rvoid message()9 H/ V; k) H- u6 A
{ system("color 0f");/*设置当前窗口的背景色和前景色*/5 X5 p* y w; J3 Q1 b! f7 e
/* 0 = 黑色 8 = 灰色7 z4 K; w' C3 M4 h/ g0 k
1 = 蓝色 9 = 淡蓝色) p8 Y% f- E6 N, K/ t6 ]. v
2 = 绿色 A = 淡绿色
9 u4 [& Y" B: v* v2 G7 I# E3 = 浅绿色 B = 淡浅绿色
# O2 [3 W4 M1 ?8 X- F9 P4 = 红色 C = 淡红色1 X9 Y; x7 y# o& E: G% S" e
5 = 紫色 D = 淡紫色7 G/ u' Q4 p+ _: u0 D
6 = 黄色 E = 淡黄色8 d( e, F# x( Z$ b: V
7 = 白色 F = 亮白色*/
+ r0 k# d9 [& q _9 K1 H1 z; B, Gsystem("cls");0 p' b9 _1 r" M3 S& V( t
printf("\t\t************************************************\n\n");
2 r7 W8 I2 u/ V+ u% P& Oprintf("\t\t>>>>>>>>>>>>>>欢迎进入职工管理系统<<<<<<<<<<<<<<\n\n");+ B8 J/ U8 \( w: i5 ^" B- f
printf("\t\t************************************************\n\n");
0 r0 z: f. U+ i8 W" w6 hprintf("\t\t ************** Choose Function *************\n\n");2 v; F5 u. G+ M, b. _7 \, h
printf("\t\t ************ 帮助 请输入:0************\n\n");7 F" m2 [1 O" N; b
printf("\t\t ************录入职工信息 请输入:1************\n\n");
& w1 }& Y8 F" Sprintf("\t\t ************浏览职工信息 请输入:2************\n\n");
2 U3 B+ Z2 @2 W( y, h( f4 cprintf("\t\t ************查询职工信息 请输入:3************\n\n");# K( u2 ]" o6 b2 |( x0 g# v% N( C# e3 t: ~. `
printf("\t\t ************删除职工信息 请输入:4************\n\n");
1 R4 [9 I! E. b2 ]8 z2 g& N+ N Dprintf("\t\t ************修改职工信息 请输入:5************\n\n");
1 v) ^" u" }6 }2 K% l4 ]- sprintf("\t\t ************ 清屏 请输入:6************\n\n");" ]; J9 x V1 c+ [4 k4 s5 T
printf("\t\t ************ 退出 请输入:7************\n\n");
( V0 m/ u1 g' u+ D" y9 z1 V$ O/ P: vprintf("\t\t************************************************\n\n");
) e% U* E: d6 w+ f. m0 Xprintf("\t\t************************************************\n\n");& y" a7 D7 n/ Q3 @+ v
} void find_sr(PLINK plink, char* str)( V+ z0 f0 ]8 y% G7 M
{% m' h0 E2 Z+ Y1 i. `( }+ r9 `5 h2 K+ \
for(PLINK curr = plink->next; curr != NULL; curr = curr->next)
' \9 H% @; {2 c& }{
8 {) D) G+ ^0 \! S5 c5 j. R7 r3 a, \; Lif(strcmp(curr->w.edu, str) == 0)- ]0 k* \% O/ N2 l6 y- R. K
{% a/ X1 K9 W$ N' e0 H6 D6 y6 W
printf("职工工号:%d\n",curr->w.id);3 d4 I7 g! i p8 r1 z; O# O
printf("职工姓名:%s\n",curr->w.name);
) ]. x* j% `; Y' G: P$ \0 g7 wprintf("职工性别:%s\n",curr->w.sex);, B7 W" i: L$ x+ I2 z/ }
printf("职工年龄:%d\n",curr->w.age);
$ R+ N G; i; @/ h+ C: P5 ^printf("职工学历:%s\n",curr->w.edu);
" B/ i4 W8 G0 M n& I I. V; E7 Fprintf("职工工资:%d\n",curr->w.wages);$ G2 V( W7 n/ E- m( n: e: k
printf("职工住址:%s\n",curr->w.adr);
6 P8 e6 F- ^! k! cprintf("职工电话:%s\n",curr->w.phone); }" E' {; @2 [; L3 h0 |& a
}
1 \, b/ ], }& G7 `3 y* }; v} void findid(PLINK plink, int id)
9 j0 _* R& _ \) Q4 M{' S6 a8 M4 i! I! O+ ~
for(PLINK curr = plink->next; curr != NULL; curr = curr->next)
% X# j5 j& A/ o2 v+ {; g _4 L{
' t8 a! C7 C& X9 N' T' _ kif(curr->w.id == id). A- W3 W* Y, |" I6 U0 d1 U J! ^: {
{
7 Y. |" G; j, {2 Aprintf("职工工号:%d\n",curr->w.id);7 c, h: _7 |3 m: O& z. s9 k
printf("职工姓名:%s\n",curr->w.name);
- c W+ R: x3 Q, ]3 ~+ J6 ]7 pprintf("职工性别:%s\n",curr->w.sex);
/ q+ [% E) V7 P; {printf("职工年龄:%d\n",curr->w.age); k' I0 K/ A P4 ]
printf("职工学历:%s\n",curr->w.edu);' O8 E# m! L0 A
printf("职工工资:%d\n",curr->w.wages);
( ]& n5 ]6 S# @printf("职工住址:%s\n",curr->w.adr);: P+ q( H! I+ K8 Z* L, K2 c
printf("职工电话:%s\n",curr->w.phone); }! v9 A8 G: G! ?( G. ]+ r
}
3 R0 m: N% u( t1 k1 h1 K} void show(PLINK plink)
6 \, n* T/ N4 Z0 i. a{ for(PLINK curr = plink->next; curr != NULL; curr = curr->next)
/ G7 S. ?4 ?3 W5 e; j- \{
) G; c- \6 v; e, Mprintf("职工工号:%d\n",curr->w.id);
0 n1 m- h5 s4 ~. Yprintf("职工姓名:%s\n",curr->w.name);" m5 L+ _9 t x @$ K$ M+ k
printf("职工性别:%s\n",curr->w.sex);# P- D4 s$ O! G( n" i: s
printf("职工年龄:%d\n",curr->w.age);6 W" U$ q+ E5 ~) [
printf("职工学历:%s\n",curr->w.edu); ^2 }0 l S, y' i9 S* |6 q* U; }' f* p
printf("职工工资:%d\n",curr->w.wages);
& E& J4 ~) h: X( H( b2 _printf("职工住址:%s\n",curr->w.adr);
& R+ ~# q! g6 R5 `9 {printf("职工电话:%s\n",curr->w.phone);
$ k* h1 H( J$ ?: r+ ]}3 k0 g' B7 ]1 k( X" S( d
} /*录入职工信息*/1 F! @$ [; m6 U; A4 Q) Z1 Q H
int add(PLINK p)/ L" u$ w& Q/ M( h
{
9 A; t# `( N% R2 j& OPLINK h = NULL;8 j" p9 s9 S# `2 N; g8 O% O
PLINK q=(PLINK)malloc(sizeof(LINK));
+ a$ v4 L8 Y2 W" mif(NULL==q)
" E0 p$ x# j. v' j2 o! I2 c2 g{
; Q4 @2 e' \5 F: rprintf("录入失败提示:内存不足!\n");0 i' l; S5 [1 g( u2 V4 _" x$ j/ ?! v
return 7;
* Y4 u% Z( L6 g5 I" Z6 C}; e3 M. ?& |$ C9 q
printf("请输入职工号(数字):");
% p1 T! Y# y+ t" x2 ~! N: m2 ~scanf("%d",&q->w.id);. [7 @7 N4 B w3 z+ t4 ~
h=p->next;
6 N& c% P+ |* j, I* [9 n* C* zwhile(h)9 O- _7 w; m3 q7 A! Y. \
{
5 P5 G' `( X) t0 Rif(h->w.id==q->w.id)
{. e4 i5 ?7 G$ ~2 C+ q" i{
1 p Y5 [2 w$ R$ x6 |free(q);
; p; Y; e; ?$ n; D) R- {printf("录入失败提示:此职工号已经存在!\n");" R% ?& B2 y& l, ^, h
return 7;0 h5 s, b1 m7 A% v! Z$ F
}
( P( A% i0 G9 dh=h->next;- E. P6 }* C& q$ F
}
1 z- o2 ?/ |$ m+ K9 J9 ]0 `printf("请输入职工姓名(文字):");! P/ @) a7 _: \" d N" a
scanf("%s",&q->w.name);8 l; o' [; C ]/ ?5 X" f! [4 g
printf("请输入职工性别(文字):");; T1 U; w8 W8 o+ p4 L( J7 C
scanf("%s",&q->w.sex);
) L. H$ }0 F% |5 H! ~printf("请输入职工年龄(数字):");4 `$ P+ ~3 a' V, l2 F
scanf("%d",&q->w.age);
# W0 ~4 K4 k1 ]printf("请输入职工学历(文字):");
$ l5 F; \4 {1 t- Bscanf("%s",&q->w.edu);
M& `1 f3 |/ ~) \. Fprintf("请输入职工工资(数字):");
% H. M. ?; I0 k H- |9 Fscanf("%d",&q->w.wages);1 o- k( x5 K5 O2 F8 u0 M1 O+ l' f
printf("请输入职工住址(文字):");
6 M. z1 }% F+ l: U J* s& pscanf("%s",&q->w.adr);: j6 o; G, ]# _$ b9 P+ q
printf("请输入职工电话(文字):");
" G1 _: V6 a' X6 f9 Lscanf("%s",&q->w.phone);
$ ? _. |7 I3 h" oq->next=p->next;
5 y# b+ Z4 y, w6 Bp->next=q;% h$ l4 y4 o+ [ e+ ]
printf(".^_^.录入成功!.^_^.\n");9 X# k- L" x; @+ v3 Q6 O7 ^
return 7;
& @% V# `7 { }& P) u; a} /*按姓名查询*/
' u& A t1 d0 R) cPLINK findname(PLINK p,char *name)9 P, Z7 I& P( j" s/ r/ I( P# d& i/ m1 ~/ ?
{* R4 O- E5 @1 `( Q! N3 A
message();
( p. \* D5 [+ X, V( b, |( j6 ]printf("按姓名 查询\n");* a: S2 j: C/ a; j
printf("职工号\n姓名\n性别\n年龄\n学历\n工资\n住址\n电话\n");
9 Z1 y" `7 K: T, ~8 Xwhile(NULL!=p->next)( m# o5 P/ B5 }- L* v
{
' f$ C4 t2 A8 l/ l+ j+ {. Rif(0==strcmp(p->next->w.name,name))+ w3 R7 J7 K2 s5 l' f9 A
{, e; U" u+ O/ M2 B
printf("%d\t%s\t%s\t%d\t%s\t%d\t%s\t%s\n",8 O7 N9 T1 H4 w! I& ~8 q$ U
p->next->w.id,p->next->w.name,p->next->w.sex,p->next->w.adr,0 n9 N8 O! W8 B. d o
p->next->w.edu,p->next->w.wages,p->next->w.adr,p->next->w.phone);% }* e3 n w! X) R, t
return p;+ c& e# E4 @& H
}
9 Q9 K0 Y4 S& N( q# d+ R7 g9 ]p=p->next;
% @1 p# H. ~: j* U}# Y1 c$ z+ K* ^$ i9 r
printf(".^_^.查询结束!.^_^.\n");
! b+ [" v4 m# R0 _return NULL;% Y. w. I8 W6 y/ o6 \& N$ W
} /*按职工号删除职工信息*/
. v" e3 m7 F w" Uint del(PLINK p,int id)* f: R" H/ ] w8 ~! N
{
2 U: k; f( Z5 ^ ?message();$ |- ^0 ?( @5 ~: G6 J4 S
printf("按职工号删除职工信息\n");
0 [5 R# W1 J' m0 q. Zwhile(NULL!=p->next)* Q6 O/ `" } i$ k0 V9 S+ v
{' k* T6 k d* }$ U! _& P) F
if(p->next->w.id==id)1 |0 _4 T. K2 y+ d1 b$ V. Y g
{* [6 L" D& X+ V1 O8 I
PLINK q=p->next;& q4 ~0 b' G* O5 F: k0 o' U& _( _. @
p->next=p->next->next;+ P; \) v( K9 J+ V
free(q);
. F, g+ i) J: E$ g$ s% W" kprintf(".^_^.删除成功!.^_^.\n");+ r$ r3 r' ~7 O$ y3 [8 {
return 1;
0 I- c& m ~4 p) C9 o3 W}
4 w# s% T1 K4 B; P: s" rp=p->next;) n. p: K9 i8 j& ]4 k1 T' C& d& P1 J
}8 |8 r' s# K* I/ R' C& Q
printf("没有你输入的职工号!\n"); X& t1 | y. X; |+ G0 _
return 7;
4 P. B2 i6 t/ T0 K6 X! j! F} /*程序结束释放内存*/% M4 ]5 b9 f5 V+ J: k3 f; c
void release(PLINK p)/ d2 Z8 w! R3 W9 @( t
{
$ e7 C" ]0 i7 ?: }7 k7 |3 ^: `8 gPLINK q;
4 S! L; h2 i8 T2 O. H& n( Nwhile(NULL!=p->next)% ^. a) y/ w' z7 S
{
0 t7 j6 v1 v2 l; r6 eq=p;
, m; Z6 h: K8 _' { Fp=p->next;1 A; Q9 ~! x( \2 n$ L/ U. c
free(q);
0 P7 z- F! n) b: S* _% Y}
0 M# ^: w9 t* a3 G0 K9 h0 Nfree(p);
. Z3 F* x8 Q* ?! Z* E4 B/ g} /*查询调用*/
$ H" t4 K$ B2 L$ f7 E" Jvoid search()
5 T% }/ D, T( |2 t: p{
: h- T2 J6 \& {. Z3 v! W3 qint id;4 T" D' O" n" x7 r
char name[20];" u( ~) F6 Y: @$ f. U
char str[20];
7 a9 Q6 U# k y5 }- NPLINK pworker;
1 C, B$ d1 s2 K& cint l;
2 ?& \8 A4 w8 n& d5 r* V0 qprintf("\t\t\t\t*姓名查找按:1*\n");
' d( F& B# i/ `* kprintf("\t\t\t\t*学历查找按:2*\n");3 ^7 e5 v7 Y4 z r5 H# J
printf("\t\t\t\t*职工号查按:3*\n"); L: ^- i( N8 g$ R D
scanf("%d",&l);
% Y; H+ b; g% @$ y$ m0 z4 w0 pif(l>0&&l<4). I7 L2 b8 K0 E7 T
{switch(l)
# L& C E t2 ]$ s. W! b t{+ I) ^; }7 N s- |# N/ o
case 1:printf("请输入要查询的职工姓名:");
) B9 b' J, `/ e) U* H) }scanf("%s",name);* ^+ N* u& z! ~' d0 y* X
findname(pworker,name);
# Z$ l5 z9 E" \$ e7 N6 ~6 dbreak;3 C7 O$ e9 w: N8 ^# P9 u( f8 |. A0 m
case 2:printf("请输入要查询的职工学历: ");* h; u, t' s5 c7 ~6 [5 V+ X- r
scanf("%s", str);
1 K% W8 `6 w+ ]( p' L- X8 Sfind_sr(pworker, str);+ B; h& V9 F$ B! I9 s3 v" X
break;) ]% K0 O; ]' A, I. Q8 c
case 3:printf("请输入要查询的职工号:");
" S3 d: z" C7 L+ oscanf("%d",&id);, E0 v7 d; b" G4 U* G$ p' H
findid(pworker,id);
7 o" x& C7 z" m* t4 y0 Wbreak;
9 W& r0 ?: S& \1 \2 F}
7 w' D Z9 p( m2 D2 ` k% j t) iprintf("\n\n选择完毕!!!");, {! K4 |2 v$ P
}. g1 h1 G' k) e: R( w
else printf("\t\t\t\t输入有误!!!");
, \ D3 a3 |4 {! G+ y3 k} /*修改职工信息*/* V9 g% h& c, s% N4 y+ J( @
int modify(PLINK p)3 R% ]2 j9 l) {7 ^, J' A$ w
{ int id;
, N$ c# ?) N& d9 gPLINK q;2 g! ^! P, @- B; H( C
PLINK h = NULL;
1 H& \' c, K' `# R. V) q* }printf("请输入职工号(数字):");. S- X! g# k+ G- M; ` S; t3 Q
scanf("%d",&id);
7 c* o( ~4 s; _& u7 Dh=p->next;- d( T& g6 `1 u: ^# p% @
while(h)
- A) N$ [$ Z3 ~$ N{
7 l A7 e/ S: @4 F! pif(h->w.id==id)7 D1 `! i' E# a1 C3 ^- A
{
$ c2 o& O4 g1 K3 Ebreak;1 k6 H. [# R* B- f
}
: t# k: W, }; ^% R/ a; r3 ch=h->next;3 {4 t. T6 R1 [
}
$ h% _4 d% [+ A. x7 G6 `/ H" w4 oif (h == NULL)
* N- z/ `3 [% \' G- v% x. c- G{$ C w5 U0 p5 |
printf("找不到此职工,请重试\n");
0 \8 b3 P: V5 i9 H; hreturn 7;4 L& I! m6 r/ g) F/ `
}% y' m: G( w' b/ B7 d
printf("请输入职工姓名(文字):");
( P" Q9 B0 {, { uscanf("%s",&h->w.name);
& T( x- S3 W+ x( b- _. Bprintf("请输入职工性别(文字):");
" R' c0 R9 m# C5 B: o. v# i+ M3 W( v8 Gscanf("%s",&h->w.sex);
( Y \. |8 w6 F, }# m R; Lprintf("请输入职工年龄(数字):"); J7 n( k3 P# V( B+ ]: R
scanf("%d",&h->w.age);
" x4 o, M# Z- s7 Gprintf("请输入职工学历(文字):");
/ K9 Y; C2 j& d; S3 v6 ?' sscanf("%s",&h->w.edu);' _6 B5 Y( k, @. c& f" N' ~4 _7 p
printf("请输入职工工资(数字):");
+ h* ?7 }/ O: W* ]) J/ U& Y6 Sscanf("%d",&h->w.wages);
0 _* i6 B* x. R8 n- u! ?9 I8 tprintf("请输入职工住址(文字):");
: O7 g6 \9 d; O% g; `0 nscanf("%s",&h->w.adr);
( b% ?# E/ C! g* B( l O$ l% I/ Gprintf("请输入职工电话(文字):");
& o W9 O& b/ x5 O3 wscanf("%s",&h->w.phone);
5 H3 |$ w2 _" b* K" k' h5 [q->next=p->next;! i' A2 d8 Z9 L2 e
p->next=q;
' U8 B2 R n6 i* K4 x4 b5 @printf(".^_^.修改成功!.^_^.\n");1 P3 M: C& a; J$ U/ O1 h
return 7;1 U8 o4 u* |/ a) Q
} int main(). i/ z+ N; a, M c* b
{% f, {0 a/ M F$ ^
& _4 T* z2 Q+ }# k: Nint cmd=0;4 P, P1 M1 P, U1 [- V% R
int id;* T! v! T$ [% |, o+ p
char name[20];
' ?2 v3 g. c7 s L& Ochar str[20];
& `) I5 ]4 e, h- q/ ^ D: L! t' b$ ]PLINK pworker;
' E, @1 w' ^8 E! H& iif(!(pworker=create()))
( } F4 V4 N s; V! _9 i{7 ^2 ~2 n# {7 O7 Q+ z; J! S9 N
exit(0);( A* P& W+ E5 y! m! W1 C
}
8 a. b i( U' f; ~4 q8 Jwhile(cmd!=7)
& j [- F* b* x7 `9 g8 L4 i2 b{! B( l5 g' v' |" T) |; J+ n
switch(cmd)
( \8 I2 ~$ R" [7 g* _{% Z% P. z) v$ l* k) w
case 0: message(); break;
9 Y7 p( b" X+ \" Ocase 1: add(pworker); break; S4 G2 W. S5 t
case 2: show(pworker); break;7 _6 z% h! L- K+ p
case 3: search(); break;8 X" C) G4 A2 p3 `2 D
case 4: printf("请输入要删除的职工号:");+ V2 f, v2 c) `/ q& A; a/ X9 T
scanf("%d",&id);9 M% ?* `4 C' J# O
del(pworker,id);
7 V- b" U( J+ o# e, sbreak;
9 S4 d+ C; t3 M+ o- f9 {% S0 Wcase 5: modify(pworker); break;
, Z$ e6 A j/ E9 J3 ycase 6: message(); break;% u$ j8 W* a2 s9 Y# o% w
}5 P- U A& ?- ?7 U5 T' Q' j
printf("请输入操作命令数字:\n");
/ D8 W, C, {3 M: K& escanf("%d",&cmd);
+ t; i' K V& ?; J$ a. |' I1 ~}9 X$ l( s3 m0 w9 k$ ]4 d; O: B
printf("谢谢使用!\n");' e' p. d/ L& \ X9 W; ^/ L0 N0 X% `
release(pworker);4 [$ x H; @' R+ G6 h6 A
return 0;% z1 p/ B; O6 M. \# M p
}( p4 x% Q, l i) U
+ h5 J: V6 I9 n3 [! t
& e* Y8 G& C$ M6 [1 V& I这是职工信息表 能运行出来不过查询功能不行能帮忙看一下是什么原因吗。。再此谢谢了!
7 y$ r2 d' c$ r" W9 S4 ^/ C
5 x2 @5 }; X4 p1 c0 X4 ^2 h/ ] |
zan
|