- 在线时间
- 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>
e7 V3 x2 g3 u#include <stdio.h>6 B& q: S) o9 G) A
#include <malloc.h>
9 @4 f, k/ p6 C9 Z+ _#include <string.h> & U, v2 d. Q: G) X4 o
typedef struct worker. ^4 O! e9 ]) S. e$ [2 @
{- Q7 g9 T( l( {# j4 ]# e
int id;
! P( _ \2 f7 z) [8 E5 v: {$ t& N7 @' ychar name[20];. Q$ `" ?$ B7 S2 O" M! b
char sex[3];
! y- r4 J1 h r- J4 ^5 V1 bint age; E+ h" W% d- B& K5 M
char edu[50];
+ g% x1 m* z, [7 x- R W8 Gint wages;! Y/ s- p6 u6 l8 E. ~# j6 V
char adr[255];; n/ B, e8 p; \3 m
char phone[13];+ b' u5 N6 Q+ q: [4 P! J2 b; t$ b: q1 V
}WORKER, *PWORKER;9 [; n# u2 K' B+ w8 {
//typedef struct WORKER *PWORKER;
, S7 E5 r. O$ n7 T! b# @3 l/ ^typedef struct link7 j# E$ u8 q- D8 q
{
# O: A d3 {, Y9 X$ m& ~ ^WORKER w;
0 ]# v8 P9 o1 ~3 r9 f- Fstruct link *next;
; W) P) S" n/ m+ m: }}LINK, *PLINK;
$ i' _( P4 c+ b//typedef struct LINK *PLINK; /*创建职工信息链表*/# h" c# `) z8 s1 ~4 h/ O# n% r
PLINK create()1 T, v& |# \7 u5 a: [, P" j g
{1 W7 W$ q- y; H* E' M( k0 M
PLINK p=(PLINK)malloc(sizeof(LINK));
9 w* c2 h/ H, r. eif(NULL!=p)7 t/ P# X, t* D" h! K% |( [) N
{1 g1 U5 T3 |0 D; n7 p( `8 n
p->next=NULL;/ h- g9 V, {: Q9 H$ ?" g/ m- `3 o
return p;) V4 Z6 ^5 @3 O4 _% q* x; M
}( Q9 c Q& G# M1 }2 m8 T9 I
printf("内存不足!\n");3 C6 ~) w9 {2 [- F3 }8 M* v7 E# }8 X
return NULL;3 \" x7 S1 H( [) |' h1 z
} /*显示程序界面文字*/; f) _1 d* t; z, X9 `; F; K2 O# z
void message()9 q& _0 K d- l o& m/ u& d" ~
{ system("color 0f");/*设置当前窗口的背景色和前景色*/$ K6 \9 \ g: ~, f
/* 0 = 黑色 8 = 灰色
* h( H# L3 F, E2 ?1 = 蓝色 9 = 淡蓝色
" F/ Y) t# A2 _, y4 A2 = 绿色 A = 淡绿色& H, u# i9 e4 ]6 r4 i+ [& _
3 = 浅绿色 B = 淡浅绿色# G; e5 E* H/ \( z6 {
4 = 红色 C = 淡红色5 T# q3 \$ w5 _; b; K" H
5 = 紫色 D = 淡紫色1 W# [; j0 U: |& e4 Z
6 = 黄色 E = 淡黄色1 I/ f, F( R) E9 {3 \
7 = 白色 F = 亮白色*/& ]5 v! P2 |: k5 `
system("cls");4 U8 I6 L' ^6 }/ K
printf("\t\t************************************************\n\n");7 h5 G& N( n* e0 A; V- P/ g
printf("\t\t>>>>>>>>>>>>>>欢迎进入职工管理系统<<<<<<<<<<<<<<\n\n");" N$ s: u1 p/ e. @8 @; G
printf("\t\t************************************************\n\n");) q$ _( p% K9 x
printf("\t\t ************** Choose Function *************\n\n");
- b, U( k1 x: y; ~; G- }9 Pprintf("\t\t ************ 帮助 请输入:0************\n\n");
7 @/ E! s1 Y+ s0 Z2 j& lprintf("\t\t ************录入职工信息 请输入:1************\n\n");
7 v& W! H/ w. R. y, gprintf("\t\t ************浏览职工信息 请输入:2************\n\n");
9 c. _6 g% b8 mprintf("\t\t ************查询职工信息 请输入:3************\n\n");+ ?2 _* s3 Y" ]4 e! a. ]1 l1 l
printf("\t\t ************删除职工信息 请输入:4************\n\n");. p; K b3 X8 p
printf("\t\t ************修改职工信息 请输入:5************\n\n");
3 _% ~- A b( c% V# B) tprintf("\t\t ************ 清屏 请输入:6************\n\n");
3 y2 S) M+ L) I! n8 t$ f$ Dprintf("\t\t ************ 退出 请输入:7************\n\n");, l( R) A. h& V, S
printf("\t\t************************************************\n\n");$ C9 }/ A# P6 ~( d$ c0 i: l' B
printf("\t\t************************************************\n\n");
0 e- U$ s( r* G( y$ I8 i8 b n+ L} void find_sr(PLINK plink, char* str)5 l5 V! X! U3 H9 L1 }
{
3 |% y- |4 }; rfor(PLINK curr = plink->next; curr != NULL; curr = curr->next)
- i: ^( x. U/ ^' F' Q/ G{ M& Q |# c; L/ w/ s
if(strcmp(curr->w.edu, str) == 0)! j& P2 b8 O" t, I0 H+ }% i/ A3 n2 i: }: J
{ H0 K' o4 q6 p1 ?& [1 V6 `. v, ~
printf("职工工号:%d\n",curr->w.id);
! S( b$ } }+ v4 b- D4 n5 H4 |printf("职工姓名:%s\n",curr->w.name);
% e& V- L$ l( N' X/ Cprintf("职工性别:%s\n",curr->w.sex);$ H; |* \' j8 C" _
printf("职工年龄:%d\n",curr->w.age);" S1 U H* k4 Y; X# a9 T# F- Z& q
printf("职工学历:%s\n",curr->w.edu);
3 Q! c1 A9 E8 lprintf("职工工资:%d\n",curr->w.wages);
4 k; s( G6 r# o6 u, vprintf("职工住址:%s\n",curr->w.adr);
& D5 p7 T: f) w1 }- m7 n0 D6 _' Jprintf("职工电话:%s\n",curr->w.phone); }% ?: _9 Q' I) ]' p7 i8 `
}, d \1 n5 b: x% a* O8 T& P2 R
} void findid(PLINK plink, int id)$ H& U9 B5 ?6 I* E3 I
{
1 N, v, S& @5 ~( C+ d1 ^. k$ afor(PLINK curr = plink->next; curr != NULL; curr = curr->next)4 w2 y! l7 u2 D5 h" `$ i
{0 Q1 A7 H9 p4 B2 ?" T
if(curr->w.id == id)9 q( G$ Q. A$ v) A) U
{
! m* U+ U; W$ l% Q# Qprintf("职工工号:%d\n",curr->w.id);
i7 t" t; \( N3 l6 w* X q; sprintf("职工姓名:%s\n",curr->w.name);. _; ]8 L4 e; o, r; f2 {
printf("职工性别:%s\n",curr->w.sex);5 S! C6 m! h9 x5 w
printf("职工年龄:%d\n",curr->w.age);4 B% q7 } D$ z! U' b3 G
printf("职工学历:%s\n",curr->w.edu);
3 ^5 N3 P! r- K! q& P' P6 W( @) Lprintf("职工工资:%d\n",curr->w.wages);0 D3 S0 [7 E; d2 i
printf("职工住址:%s\n",curr->w.adr);
+ t$ O/ V, j9 k8 N5 _0 zprintf("职工电话:%s\n",curr->w.phone); }
7 [. s/ c0 w8 p$ G q( G# w9 Y}
. s& N) U9 b- Q, w/ t. ?} void show(PLINK plink)
9 [/ l4 i/ T- L{ for(PLINK curr = plink->next; curr != NULL; curr = curr->next)
- w. N, P5 [5 Y& D9 \; b1 D{
/ H( a- s% u" i7 s0 \printf("职工工号:%d\n",curr->w.id);
/ ?: Q! o. r7 W" wprintf("职工姓名:%s\n",curr->w.name);
( D: ]4 |" U' k/ iprintf("职工性别:%s\n",curr->w.sex);
2 F. e! |9 K7 s pprintf("职工年龄:%d\n",curr->w.age);6 j% N6 A: H% g( @( l; z; z: B
printf("职工学历:%s\n",curr->w.edu);
" W. F3 ]! v( ?: I3 Qprintf("职工工资:%d\n",curr->w.wages);
5 G+ ~: _3 C$ X1 Sprintf("职工住址:%s\n",curr->w.adr);
. S! t* n( H- a. A5 }. gprintf("职工电话:%s\n",curr->w.phone);
8 n/ c. m9 _+ @- A. O& d4 G}5 H; i9 P& v3 R3 p L
} /*录入职工信息*/
4 H" C/ @( O% S8 X/ k" I; Rint add(PLINK p)
9 a v) }8 q4 N' g6 E, n{
2 m! z9 V# K H: V( MPLINK h = NULL;
* } ]0 y9 P! I1 j7 i9 hPLINK q=(PLINK)malloc(sizeof(LINK));
- t. w% d4 r, l2 Gif(NULL==q). Y6 B* `' d4 c4 U
{' w+ S: X% C7 _% M9 `2 S7 v+ z0 ^
printf("录入失败提示:内存不足!\n");1 M9 W) _; }1 F" |, U/ h- f0 w
return 7;; l L4 V+ c# |& P3 w( v# [
}
: l. L4 R# { X$ _printf("请输入职工号(数字):");, t* U$ R, E! q% T( E. i+ J; `& g
scanf("%d",&q->w.id);
; B6 M1 D }( @5 E9 S- Bh=p->next;" b" m: M$ _! k3 l/ @
while(h)* b) l0 \; G$ o2 w5 ^8 X7 y
{
2 l @* C& W8 z" o( ]if(h->w.id==q->w.id)% a3 l) B% u& n& d8 p6 m
{2 _4 J0 e8 H1 v( i5 D
free(q);$ i1 _# V' Z6 U. g5 g3 E+ N3 J
printf("录入失败提示:此职工号已经存在!\n");9 c$ @2 B5 r1 b9 b- {; C# n
return 7;1 v" y1 A: f2 b1 |
}
4 O1 E) }+ j& n( Mh=h->next;
& [2 M6 }3 t7 {+ h7 ` x1 w}
0 t, i/ z. u- i1 w( Bprintf("请输入职工姓名(文字):");' } L- F( q; m
scanf("%s",&q->w.name);
- e; z$ {3 }" X: l6 \printf("请输入职工性别(文字):"); A$ q4 \* R" |$ m% ]: F
scanf("%s",&q->w.sex);! B; c s6 R' V H2 \. i, t# g
printf("请输入职工年龄(数字):");* U( M5 d0 A2 Q8 G3 }$ R! u
scanf("%d",&q->w.age);
) U1 J9 R, `8 U. Zprintf("请输入职工学历(文字):");
g& s2 l- ~5 }1 v8 I5 [. Jscanf("%s",&q->w.edu);
C, o. s+ A# O3 Tprintf("请输入职工工资(数字):");
# k! k/ i: W o9 [) kscanf("%d",&q->w.wages);+ C8 p3 I& x: [/ v
printf("请输入职工住址(文字):");" H6 z: _* Z+ O. u
scanf("%s",&q->w.adr);' q6 v" }+ F# `0 ?# W- h+ q$ t
printf("请输入职工电话(文字):");! f+ f3 B+ U& U/ a4 g6 U
scanf("%s",&q->w.phone);
' Z4 {; x1 x, @7 \$ T9 ]; x5 Cq->next=p->next;
8 T" V/ v o# X$ t& ]p->next=q;- c; g6 Y0 F3 H# j
printf(".^_^.录入成功!.^_^.\n");5 o# l, ^4 k: p2 p
return 7;
! _) p& J: I0 a} /*按姓名查询*/
c$ d i8 m3 H# wPLINK findname(PLINK p,char *name)
1 e# L% C2 L2 d2 ^{$ y. J r6 R1 q; ~1 ?
message();* L$ k2 W5 c) M( C/ g8 N Q
printf("按姓名 查询\n");; a5 k& o( I4 Q5 a. P/ X
printf("职工号\n姓名\n性别\n年龄\n学历\n工资\n住址\n电话\n");
0 ?, P* m8 e) mwhile(NULL!=p->next)
5 O! q/ b$ u( t. C' A9 e6 I7 N{
+ Z9 @4 h5 h$ s" z+ f/ a: q1 kif(0==strcmp(p->next->w.name,name))
& w% F/ d1 f- r7 W3 W4 Q/ c* ~! P! j{
3 q9 c9 K6 b0 x& I. F8 Uprintf("%d\t%s\t%s\t%d\t%s\t%d\t%s\t%s\n",& w6 ^+ \9 @# [+ x8 y0 @+ _
p->next->w.id,p->next->w.name,p->next->w.sex,p->next->w.adr,
. N* _ r' A2 Cp->next->w.edu,p->next->w.wages,p->next->w.adr,p->next->w.phone);
9 `- _! h- n0 \ g, lreturn p;. p/ I2 [7 K$ W0 U, N
}$ B) D! O& E- T* y/ J$ f! s/ a3 q
p=p->next;
! W; p7 C! ~) }$ j}" }, L. X- F- x. M2 Y
printf(".^_^.查询结束!.^_^.\n");
7 |$ s3 ^6 U! d: h% Zreturn NULL;4 o: ], F: a( v* M* t, x/ k7 [
} /*按职工号删除职工信息*/
- T, k, I+ M) Rint del(PLINK p,int id)
1 }% L u3 ^* S6 p/ `% Q! |{7 w2 h4 f( F3 H+ d$ [& K
message();
6 H6 ?8 Z9 J. X- v2 w% \0 I" M4 Vprintf("按职工号删除职工信息\n");; u1 s' C9 p- C
while(NULL!=p->next)
5 k$ M& N! |. q% p6 t8 D9 }0 M* u{
* D( o: c9 Q# ~2 _- Z) Mif(p->next->w.id==id)8 R% m, z4 }; V$ y$ K0 T( ?
{) ]( {# y; Z/ C. g
PLINK q=p->next;
4 p( Y- A2 {! z' V# Ip->next=p->next->next;: p5 w+ A, w$ P5 l+ w. {% w
free(q);& X; D- G8 H+ c9 g# E, z6 J: k
printf(".^_^.删除成功!.^_^.\n");5 j% n2 n. m+ L8 ?! B/ b- i
return 1;
4 \8 L3 }' O7 w}- b" S7 T; u1 @
p=p->next;
( Z5 T- ^" G( e: |( x/ o}: Z& p0 i$ q. M. s3 s" Y# r4 X# u0 O
printf("没有你输入的职工号!\n");- ?. Y- ^5 R2 O" i
return 7;
$ g: }+ n R* ~: c# u3 r V8 Q} /*程序结束释放内存*/- z k. @/ q% G( d
void release(PLINK p)
9 K" A* m% d% W; |2 ~{5 @/ p% n8 `! R
PLINK q;- Z& U0 @! N }, o2 Q
while(NULL!=p->next): v/ O Q h6 r: K) l! }$ N9 V
{
8 |- W6 ~6 ~" z4 S! ~, E! jq=p;& H- L2 y/ m- K+ E
p=p->next;
4 A5 A$ k. M5 h9 Rfree(q);
% G+ e2 w% P7 A. i5 G}
7 f7 W- R3 ]$ W0 [9 x r7 h' [9 V# Afree(p);; ?0 ~' N3 W" H( I4 @8 p' a
} /*查询调用*/
5 j! M2 J& {. a0 R/ J9 u/ k; @void search()" F; }. q: [; I! Y/ F' R) R
{
' M1 }5 P+ h& H4 xint id;
f1 n R+ D& C: i+ i2 Y6 dchar name[20];
2 g3 b/ M# q7 Vchar str[20];
0 b& r1 m9 m; z6 `9 `5 ~PLINK pworker;" j1 R6 n5 _7 o: r' r( n
int l;
( a+ q+ D/ E0 K8 ]6 ?printf("\t\t\t\t*姓名查找按:1*\n");& x0 W7 L% q* X5 d6 ?
printf("\t\t\t\t*学历查找按:2*\n");
# H! T: \( F4 v9 i9 Z+ [printf("\t\t\t\t*职工号查按:3*\n");' Y3 s+ I& M0 @6 S t" [
scanf("%d",&l);+ Q2 R& } w+ O& I
if(l>0&&l<4)! [- W- B9 V6 N5 A7 n& q1 ^5 H3 O
{switch(l)
& n; g) v1 C$ C+ v c1 V{
7 I5 G8 ~; _# G* s# Ccase 1:printf("请输入要查询的职工姓名:");
" }6 J- f/ }) g# P3 }3 |' Ascanf("%s",name);
1 U5 S. V S( n1 d* z, W; n2 \6 T2 Gfindname(pworker,name);. ?( a6 i1 H6 d1 L5 c- V
break;' y h! i5 o. \: r& T; F) M# J
case 2:printf("请输入要查询的职工学历: ");6 k8 U( A" `. Y( U! o v* ?, k
scanf("%s", str);
Y$ [: f9 x x4 {- V* p" x+ _# Yfind_sr(pworker, str);5 a U0 V: h+ b. Q& P
break;
! J2 ^5 f- L* T9 p: U$ A1 Zcase 3:printf("请输入要查询的职工号:");
8 _) H7 w- ?4 n% w& o& ~scanf("%d",&id);
" \! ?( k7 f) E; }* d: @- }findid(pworker,id);# ]& f; ~+ t1 f; v
break;" a9 v: M' V. J' ^5 M" e% L) X
}
) |$ i$ y, l' C1 {) f. Aprintf("\n\n选择完毕!!!");( ? s6 m; z/ H( S0 d
}
2 V' {9 j6 W, c4 m U7 T% Telse printf("\t\t\t\t输入有误!!!");
+ Y3 G% E- C+ ~} /*修改职工信息*/5 w; V) P/ |8 \7 V# w. L4 e5 s
int modify(PLINK p)
n9 W$ C0 w) Q0 [{ int id;
; j6 ]4 E, e0 NPLINK q;- X+ q# h2 h* G, \$ |$ U u
PLINK h = NULL;
; c- Y/ N6 E4 t; s3 ~printf("请输入职工号(数字):");
! C$ U9 K/ F% e4 n; ^; ?scanf("%d",&id);8 T# \2 k; H8 u) G7 K n' ^8 S
h=p->next;/ M0 V/ e, k& w5 v* n2 f' T
while(h)
: W! z& n9 O/ d) K7 V9 b6 r{
( f( n- l/ D2 Q% R; _- vif(h->w.id==id)
& ^! ?! m- Q% i J# h{
( b- S; D! o7 I6 v" Lbreak;
- S2 g7 m& i( I% ^# X. C}
; ^8 S. f- _- t3 ch=h->next;
1 N6 }; ]" l' I0 S/ i}
! x8 s% L; I( I# ~+ K# yif (h == NULL)0 }# `) @' u' Y8 h
{
* a- w- @( c9 S0 e' m$ z2 Oprintf("找不到此职工,请重试\n");) Q. H8 e# J5 Z, O
return 7;
% X8 _8 R5 N1 x1 v, Q2 s# m7 b# G}- B4 V% N/ ]9 `( \# _
printf("请输入职工姓名(文字):");
1 _0 M I5 Z, {3 cscanf("%s",&h->w.name);4 h. O0 C) @4 d; ?2 r+ ]
printf("请输入职工性别(文字):");% i3 r2 M% e0 Q% h0 |0 n# D$ @
scanf("%s",&h->w.sex);
+ ~1 N. Z+ |, g- L+ I; sprintf("请输入职工年龄(数字):");4 {9 q: c5 Y7 c6 C" g
scanf("%d",&h->w.age);; i6 F$ j- Q2 y2 y. e
printf("请输入职工学历(文字):");
8 p7 J, I- _7 a+ L- R+ Pscanf("%s",&h->w.edu);
: \, W% T/ r' {8 V; Q, u5 g2 \printf("请输入职工工资(数字):");( c3 p3 x: E! L% u) L
scanf("%d",&h->w.wages);
! ?3 p4 E4 v* \0 p2 {0 xprintf("请输入职工住址(文字):");: V5 x- ~; m) ?& f6 E9 g& v" K" g' J9 W
scanf("%s",&h->w.adr);
3 S% Q/ v4 ]7 f2 K2 sprintf("请输入职工电话(文字):");" V0 s) n! r6 a7 [
scanf("%s",&h->w.phone);
$ g" m# D1 Q9 I" S) x/ Eq->next=p->next;
- M/ }4 M$ `4 v* b9 v7 l6 Z3 Dp->next=q;" @( `$ @8 |: k) c7 R8 g3 n8 a N
printf(".^_^.修改成功!.^_^.\n");. A5 O* z6 @8 X T+ j. ~$ o6 a5 Y
return 7;
3 Y o. E$ r* W% Y0 _# a) o} int main()
( [. ~0 [! Z* @/ \( L3 v2 t{, l% J4 Y8 P6 p, D) K$ {* }7 e
, b' z' y7 S: I8 s4 I. s
int cmd=0;, U4 \6 R& a* k! s8 k* Q0 {
int id;
7 B5 D% u- l' c. m2 t* d. Lchar name[20];% k% W. I' U. R9 X6 H8 `
char str[20];" k8 h# c* q2 `, W- ^0 A( t
PLINK pworker;
( ?" c, a0 L; _6 eif(!(pworker=create())); d, u0 a- q, X6 B/ S
{
y3 F9 W$ e% n. y2 i' w# p6 S- Dexit(0);
- w4 h$ b8 x& [9 C8 x6 o}9 x" B G7 u/ Q+ n7 k6 f
while(cmd!=7)* f; s) h" F1 d* C: W
{9 f7 h. }* o$ ]6 a
switch(cmd)
& h9 ?, p( W! j- G2 f' T( L+ p{
5 V& v# a3 g8 d. M7 @0 J- [! gcase 0: message(); break;' d6 i/ k4 h( a/ a
case 1: add(pworker); break; H" u: L1 M, D" _' N
case 2: show(pworker); break;
+ h( n4 m$ F$ L; v p( u6 m ecase 3: search(); break;4 e! E, ?, z/ X4 I0 l
case 4: printf("请输入要删除的职工号:");3 O4 Y: N1 m7 B, @% N, I% o H0 B/ z" O8 l
scanf("%d",&id);. f# r7 O7 j, T
del(pworker,id);% ^' z' }- p+ R' \6 ]9 y6 e
break;
P1 @! }) H8 D+ bcase 5: modify(pworker); break;
$ j; @. b% j$ b& |case 6: message(); break;
% ~& S; C3 ?/ ^: `1 |* j}
; p' W2 J4 X4 j. zprintf("请输入操作命令数字:\n");7 k% V$ O7 ^2 a, c2 x# Z$ C& |
scanf("%d",&cmd);5 y. \& q/ D+ i- x
}
9 y+ Q1 x8 K! _1 Q' E& C" wprintf("谢谢使用!\n");2 W6 P* m# y7 m; t; s9 Y0 }5 Y
release(pworker);
` L+ d# [9 P+ ~return 0;
: R# F. F7 d/ V+ g! \2 p8 d}5 H& o# }/ Z- }, i5 N# g2 Q, L
2 R0 a0 n" L0 y. d. b9 N
9 z% A3 ]7 T6 g: R& [, O- T" f* ?
这是职工信息表 能运行出来不过查询功能不行能帮忙看一下是什么原因吗。。再此谢谢了!
$ S2 _ i7 e8 q
+ R' p5 z Q$ e |
zan
|