- 在线时间
- 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>
1 D. B0 d1 R0 A7 I7 v3 p/ ~. v#include <stdio.h>$ ?$ p. S9 b$ V1 k+ h# ?% x, \
#include <malloc.h>
) m+ [4 I" _' l4 v7 s#include <string.h>
}$ q# h9 ]$ J% Ntypedef struct worker
) @1 A6 J c9 x! ~2 g' z- z- Q; | D{, u6 l A1 d1 }. I0 l& l1 g
int id;
3 R+ ^& p0 U4 N) O9 y% y/ f5 o) tchar name[20];
1 C1 i, _2 P# [1 [% @ nchar sex[3];
& S( n: ]8 J, S$ y$ }" b& y8 xint age;1 E9 G" s6 k. q8 d! r
char edu[50];/ i. I9 e) s/ _1 R- |8 ~
int wages;# [* p/ G6 ^5 Y- M0 L
char adr[255];5 Z. H' Q! g) Y) h. q: R% E. O
char phone[13];1 g2 w; H. P6 k+ E" J3 |6 n
}WORKER, *PWORKER;
; w; c% F! P$ c$ {5 u3 i//typedef struct WORKER *PWORKER;3 a# [1 _' E$ j
typedef struct link
`4 c' D" a' i; t |4 t% t( Z; Q{' L, q9 b$ s: F
WORKER w;5 i, X8 J$ c7 z" ~ X& f9 X
struct link *next;
: u/ `5 @0 ?$ t' v}LINK, *PLINK;
- O) g4 R3 t# [9 I//typedef struct LINK *PLINK; /*创建职工信息链表*/
' z% s9 O7 H( ]( Z2 kPLINK create()
7 Q) N4 x, ?8 C5 f0 d{
7 B9 O& K% @" g% oPLINK p=(PLINK)malloc(sizeof(LINK));1 d- \& w$ O. c: R; }# g* }; h1 j6 {
if(NULL!=p) J- J2 C: a. |0 P; E5 w
{# t& h( {3 H& g; C l1 }; Z0 v4 A
p->next=NULL;/ L, y# }8 t m3 e9 d
return p;6 Q* j9 Q/ v6 w" W" e
}" y: }8 G. R) }, d/ Q: f
printf("内存不足!\n");
* l: I# s' V' ^( P U* Freturn NULL;
; {% S. B; J, i* W' _6 w2 k- s} /*显示程序界面文字*/$ G! ^4 k$ `$ a
void message()2 M! }& m9 e4 W# i2 p, E
{ system("color 0f");/*设置当前窗口的背景色和前景色*/" J, N; m$ O% B3 H3 s( g) w0 R
/* 0 = 黑色 8 = 灰色- w0 L4 R/ \. K
1 = 蓝色 9 = 淡蓝色7 j0 |( K# g& v3 p
2 = 绿色 A = 淡绿色
$ k1 c, T# B2 w0 @: C9 i8 m2 o3 = 浅绿色 B = 淡浅绿色
: _2 ?: u- w$ n9 [, t' k4 = 红色 C = 淡红色
2 f& g9 C- U4 O$ M2 l1 O5 = 紫色 D = 淡紫色( E- O ~" m/ X
6 = 黄色 E = 淡黄色
. [1 F' [$ H! ~5 |0 B: k- d8 k! h9 P7 = 白色 F = 亮白色*/8 Y6 F p: t1 \8 S/ y$ S( i0 q
system("cls");# M$ L! U6 D/ K7 g! ~$ u# O
printf("\t\t************************************************\n\n");
6 e! d4 I3 d7 J/ g7 tprintf("\t\t>>>>>>>>>>>>>>欢迎进入职工管理系统<<<<<<<<<<<<<<\n\n");
0 }( J! z7 P3 s9 o5 M; Hprintf("\t\t************************************************\n\n");
4 A3 c$ m4 Y, n. N$ K4 Y" u. U6 Mprintf("\t\t ************** Choose Function *************\n\n");
9 R4 L- H; V. J: d! e. L5 O* L* Nprintf("\t\t ************ 帮助 请输入:0************\n\n");
+ O; o$ J1 e4 C8 d0 Y1 J. [$ \printf("\t\t ************录入职工信息 请输入:1************\n\n");( U$ w: x( A0 d1 q' I6 f3 S% s% Y2 }' V
printf("\t\t ************浏览职工信息 请输入:2************\n\n");# Z; f& u' f% ]+ n
printf("\t\t ************查询职工信息 请输入:3************\n\n");- K l* a+ b; @" v
printf("\t\t ************删除职工信息 请输入:4************\n\n");9 s$ i; x; ^) ~& [$ G
printf("\t\t ************修改职工信息 请输入:5************\n\n");7 r; B8 l! m: z8 a5 D0 ?: {/ \% r! l$ }
printf("\t\t ************ 清屏 请输入:6************\n\n");
# K" M0 a1 [: q9 O: v( mprintf("\t\t ************ 退出 请输入:7************\n\n");& L2 w+ B* _" u7 S j- o# Q
printf("\t\t************************************************\n\n");
) G9 ]# w, E5 W0 cprintf("\t\t************************************************\n\n");
1 g5 c2 D% E/ c0 m3 c} void find_sr(PLINK plink, char* str)/ [7 s9 `; ?: d; Q8 x( M6 }
{
) s5 J3 G; m- T& w6 S0 d/ Wfor(PLINK curr = plink->next; curr != NULL; curr = curr->next): r( h- L7 j( o. z# [
{% k, w/ W& y. f' s( G, O" z
if(strcmp(curr->w.edu, str) == 0)7 W- f% B, y) U4 @# T! @
{
# q' _( W: u' M4 x' K( fprintf("职工工号:%d\n",curr->w.id);
# F( Y, Z. X! w8 h7 X: T: Wprintf("职工姓名:%s\n",curr->w.name);) M2 A( T; F0 ?" j6 u8 F
printf("职工性别:%s\n",curr->w.sex);
2 {0 v+ Y4 F" a. z% m. V: }printf("职工年龄:%d\n",curr->w.age);8 t& s) y( W4 B
printf("职工学历:%s\n",curr->w.edu);
1 {) N& ?; A+ B: |1 Y, O9 Bprintf("职工工资:%d\n",curr->w.wages);" f P' I4 P9 Q; s
printf("职工住址:%s\n",curr->w.adr);
) W N: |# I9 F7 Dprintf("职工电话:%s\n",curr->w.phone); }7 O j' U8 O" [
}6 [, Q- F, G: X# l5 g/ M/ g, I
} void findid(PLINK plink, int id); p2 o% p- b( U' g+ O! i% l
{7 M( Z( Z3 K" {3 ? I# C; ]
for(PLINK curr = plink->next; curr != NULL; curr = curr->next)
, @8 }: [% m3 I0 q* i2 m% ~, I{. X) ~( ]0 r( o9 P4 H! s2 N
if(curr->w.id == id)( w4 `0 K, X( \ C: f5 x
{1 V! @6 o1 }& \* Z
printf("职工工号:%d\n",curr->w.id);' h( n/ o" R2 a V, a6 b! t
printf("职工姓名:%s\n",curr->w.name);* S& V: E; J1 E( _. T' D
printf("职工性别:%s\n",curr->w.sex);
5 v9 z; _2 A# b! j2 R% u$ w% hprintf("职工年龄:%d\n",curr->w.age);: r0 D( \/ ]: ~7 z+ V) H
printf("职工学历:%s\n",curr->w.edu);
8 R3 v' Z; D- ~! F0 g9 v* Q. q. Mprintf("职工工资:%d\n",curr->w.wages);
' \( J1 @6 F6 t, \+ zprintf("职工住址:%s\n",curr->w.adr);* @5 l; ?/ a% h
printf("职工电话:%s\n",curr->w.phone); }
6 A/ A* q6 z8 D: t}
: K1 D+ p8 h' s" ~, Q4 F- Y' @! `} void show(PLINK plink)
9 ^& M1 ]/ N) ^/ }+ U{ for(PLINK curr = plink->next; curr != NULL; curr = curr->next)3 c, _: j) X* J# z6 E
{
5 Q2 f/ m' g5 Z3 t) `printf("职工工号:%d\n",curr->w.id);0 D3 ?9 S2 k5 P! `8 \
printf("职工姓名:%s\n",curr->w.name);
, ]3 V7 n3 c* I3 A) `" k3 mprintf("职工性别:%s\n",curr->w.sex);- s2 `7 W& I5 a' d o
printf("职工年龄:%d\n",curr->w.age);
9 L% ~$ r# S4 D& Rprintf("职工学历:%s\n",curr->w.edu);
+ B: s8 s1 N6 ^$ {' [5 W* ]( Hprintf("职工工资:%d\n",curr->w.wages);9 L+ Z- Q8 }# n" z+ s3 H
printf("职工住址:%s\n",curr->w.adr);7 Y$ }/ c* r* h
printf("职工电话:%s\n",curr->w.phone);# N- H, X& F9 q: z# A8 `+ ?- D G
}* X( ]( K X7 L& u8 C
} /*录入职工信息*/
# y* h9 s v9 W! eint add(PLINK p)
% v( m/ X) N7 X9 }2 J% }( X, l4 x0 O# D{: _, ` U6 j/ ]
PLINK h = NULL;
5 f5 w c) {- Q- BPLINK q=(PLINK)malloc(sizeof(LINK));
" r. ~8 z' v" C# Y8 @/ Oif(NULL==q)+ f& P" L# {( R; Z! q
{ v& I" ~3 f, n2 S% |0 H
printf("录入失败提示:内存不足!\n");4 `! e4 n" m5 u! A& z: ~
return 7;/ y. ~9 D( R6 j( y# |' Y% a
}" s/ [, t F* V$ R9 O
printf("请输入职工号(数字):");
$ n5 {; M% R3 e. Wscanf("%d",&q->w.id);# w$ l3 I6 n# _: b8 L, ^0 A
h=p->next;& n* q& S# _* J5 i! `2 y% G
while(h)
9 c2 L$ Y( C8 M7 i{8 s: ?8 @- @, E: l" x
if(h->w.id==q->w.id)0 L4 x- @9 o+ s
{2 u9 U6 `3 C, w6 Q7 h4 U
free(q);4 m7 J% J7 Y% N; Z6 B3 L
printf("录入失败提示:此职工号已经存在!\n"); w8 \# G4 S. b9 y$ w4 p; f* q5 h
return 7;
. b' j. X) V( F6 G3 y}
# i8 C% _0 a5 n; Hh=h->next;2 E3 b( C6 P g8 J- s3 W
}
1 t7 k; G/ a( Kprintf("请输入职工姓名(文字):");, g" }- T7 |- w [ L& K
scanf("%s",&q->w.name);
+ i4 G, q q/ u& A8 I' oprintf("请输入职工性别(文字):");
/ H* J& \( a) H$ ]+ Yscanf("%s",&q->w.sex);
) x) } a- [$ e h+ f8 Y' w3 ]4 P: fprintf("请输入职工年龄(数字):");
% I: `, _2 L6 g7 x1 u& E/ oscanf("%d",&q->w.age);3 r- y# t9 x0 m \% ~5 `
printf("请输入职工学历(文字):");3 w8 F2 g$ u9 w/ h S
scanf("%s",&q->w.edu);
1 K3 ~: _, z& d; E: g8 eprintf("请输入职工工资(数字):");
6 e+ x8 \/ L9 N/ F; M* y& sscanf("%d",&q->w.wages);
! p; S) X0 M! k" |0 O- B Nprintf("请输入职工住址(文字):");
/ _! _, ~4 S1 p; Wscanf("%s",&q->w.adr);
, t% e9 t7 O2 F& B8 ~" cprintf("请输入职工电话(文字):");
% i5 c9 f( r" ~' E2 Xscanf("%s",&q->w.phone);3 ]+ _2 D G! F2 g, Q: D
q->next=p->next;
6 i+ |# m/ G6 ap->next=q;
+ u/ w" k7 J0 }3 ^9 ~printf(".^_^.录入成功!.^_^.\n");5 f) }- ?4 @8 C' G
return 7;& m7 q% s9 G/ L8 V& x( L+ P% H0 B
} /*按姓名查询*/
, o6 r6 h' y) P: H9 p5 |PLINK findname(PLINK p,char *name); g0 p6 V F. J, ?& o, B
{4 T, a$ G; k* d! e! \
message();
8 F; x* i! _4 k2 @printf("按姓名 查询\n");
1 {, d9 ^2 h! F' R2 _! `4 S# sprintf("职工号\n姓名\n性别\n年龄\n学历\n工资\n住址\n电话\n");9 s9 Z1 q" Z9 s0 l% u e: V' Y# H
while(NULL!=p->next)
' \1 t, O# L* X* v& `7 S{. j# W7 ]' x8 V: b- F9 d- @
if(0==strcmp(p->next->w.name,name))
0 R: n7 Q' o$ ~, `: P( R/ T7 u{
2 w* ~, s3 Z! wprintf("%d\t%s\t%s\t%d\t%s\t%d\t%s\t%s\n",: J& x4 D" A& j7 @ M0 [
p->next->w.id,p->next->w.name,p->next->w.sex,p->next->w.adr,( Q9 Y6 W& Y& N* B/ q% [( L5 x
p->next->w.edu,p->next->w.wages,p->next->w.adr,p->next->w.phone);
! D8 Z6 r* q5 c7 @/ Areturn p;
* w. l1 e6 `2 f9 \}
2 X3 I4 K3 F) z. Z/ p6 J& w) v0 up=p->next;
9 x p, ], G. K" k6 h}
2 h/ N% F, G% g0 [+ Q3 e/ Aprintf(".^_^.查询结束!.^_^.\n");) c1 k! Q+ i# M
return NULL;
1 `+ t- {+ m* I7 F" V} /*按职工号删除职工信息*/- \. o4 i/ |: b# q* I
int del(PLINK p,int id)
u# Z6 I( F" Y. k{* P+ Y l1 i; V* t3 c
message();
: \) R# \5 t% G eprintf("按职工号删除职工信息\n");3 b4 g6 z9 O& \
while(NULL!=p->next)
; u: O+ W9 A- E( _: `6 V1 f{6 G( z" s, n% x5 V% o" @
if(p->next->w.id==id)
7 F' A, v2 {2 R- k; J& \1 {{: F5 ]* ?& w2 [/ ]. D* ?, j. k6 p
PLINK q=p->next;
; [6 W* U7 C9 o1 np->next=p->next->next;
8 K2 f. T' Y) |/ r/ O4 M4 Yfree(q);/ B! ^! i8 n7 N c! U, _4 a$ s& ?
printf(".^_^.删除成功!.^_^.\n");
" q; y! |9 D5 [" q5 f8 U7 _. preturn 1;2 T* I! s4 C" `5 ~% X1 Q/ Z
}
+ Q" Q+ D" K$ N0 q5 Sp=p->next;
) p |* s; a) O$ {& {3 R- o1 u}
1 Q; ^7 M5 R" G7 }7 K0 ~: K+ ]printf("没有你输入的职工号!\n");6 `; l, A4 C$ Z. z/ i: I. z& f3 K3 Q
return 7;
! {8 P0 z/ R" o3 E) j4 R& q; s6 e} /*程序结束释放内存*/6 l: r# e* u+ P: E% P* B2 s
void release(PLINK p)1 @* d! a+ v! F4 e+ n* l! t5 \/ o: o
{* E4 h2 E8 @8 x7 ?6 k8 f
PLINK q;0 [4 f( } d/ }# R) @$ g# c
while(NULL!=p->next)7 V0 c; T1 d+ n% Y- ]0 X6 x0 d
{* \5 r8 z! S- i5 ~+ `1 A
q=p;
4 z" b" b5 E" f- F( k+ }; \' _p=p->next;
# w4 Z9 W w! N/ t& l! o& {free(q);
; n1 ~8 k* s% k" T2 x0 I}
# x& ^3 k4 ~0 x, Ffree(p);$ f; q& k4 M) C- S; k; }
} /*查询调用*/
- ^6 r& q( b% V$ Nvoid search()
) L/ h$ k8 h- S7 M6 h{) _8 V5 I0 d: S; E; L6 J: B
int id;
3 p- c; i( K. Nchar name[20];
: C- z% R3 L7 M) l; zchar str[20];
8 n- [! R+ L0 d" ]: @0 pPLINK pworker;
- ]2 O/ f, v4 K$ Zint l;+ K6 r: e7 J3 B- M( X* W$ c
printf("\t\t\t\t*姓名查找按:1*\n");- h# P# s" Z3 L& }: {% [' P
printf("\t\t\t\t*学历查找按:2*\n");
1 h8 c6 a5 o) R" {printf("\t\t\t\t*职工号查按:3*\n");: y, J% ]1 l- f2 S% }) A. N1 I$ O
scanf("%d",&l);
B7 {, w: y6 @: o; D4 D" Qif(l>0&&l<4)2 A' b. s* G3 D% B' H
{switch(l)7 W# u6 A: z) t; i |! G( o+ W
{
) R U0 L* A- d3 l! h& Bcase 1:printf("请输入要查询的职工姓名:");
1 V; E. m t5 Q9 E* `! p+ vscanf("%s",name);
& H {( p/ I' B* V0 c1 Efindname(pworker,name);9 e' o+ @9 v& D6 I& m. G! o
break;
( ^" p( w4 r- M9 m; g, Z' z: zcase 2:printf("请输入要查询的职工学历: ");
! ]# s8 v- Q& v3 O6 b' cscanf("%s", str);( p/ k# a' U* @/ E
find_sr(pworker, str);
Y' w9 G+ Q' S- {9 Mbreak;
/ x- E* E) S6 z+ v3 p& R2 wcase 3:printf("请输入要查询的职工号:");; w+ \4 r& F& A, p& ]' Q: P
scanf("%d",&id);0 \+ h& R. w1 m! q
findid(pworker,id);; g- F. W; G, M. r1 i
break;
- l* y/ E! o! t}
6 L) d9 I7 R$ p9 f9 w8 Hprintf("\n\n选择完毕!!!");4 y% G! i2 S& V3 ]: Q3 ?
}2 A6 @2 C! @" \& Z
else printf("\t\t\t\t输入有误!!!");
4 {6 @! f: P6 L( q r} /*修改职工信息*/, }8 G4 v' J/ z7 \% p" _+ R% c# L
int modify(PLINK p)2 I+ T/ C2 f/ m9 L! g2 y
{ int id;* Z; y) L9 g2 t/ I% R& v; S
PLINK q;! ~! k0 l8 x+ [ H: t
PLINK h = NULL;
0 {9 o: L5 c# S- F7 V% jprintf("请输入职工号(数字):");* B: c$ v4 n6 }
scanf("%d",&id);
7 I! ^7 }0 ~, Y+ v2 Ah=p->next;: w( T8 l* X* p ^/ S1 }& {
while(h)
# a3 m) W0 y# t, J6 H6 m{
1 G/ y( h, j! R2 q5 _' ]! Zif(h->w.id==id); U5 q) ]8 q; ?& o
{
! t5 C9 F. { e* t! P3 I4 _break;: e; x$ f2 D% V0 q* F
}) {; v, |- K/ Q, o% I1 W5 V; k4 d. ^
h=h->next;* I7 D2 s7 j5 f
}
4 w! I+ w& k' e: M7 Yif (h == NULL)3 t; [8 R1 d7 O' V
{$ Y/ }$ E" ~" ] n% T$ c' ^
printf("找不到此职工,请重试\n");
5 y2 p0 Q1 }( ereturn 7;
. W& f8 F# I' w" R! A |}3 U" X8 A9 k+ ?4 b5 k8 H; W# h( q
printf("请输入职工姓名(文字):");8 A' t5 S7 \2 K9 \* i3 m& B
scanf("%s",&h->w.name);
( R$ O2 n4 M( L9 }7 ^, h& Vprintf("请输入职工性别(文字):");
( P- y' h5 B$ n4 o& q a4 {scanf("%s",&h->w.sex);5 H5 \# l) e" V5 I
printf("请输入职工年龄(数字):");; E$ v- L7 W8 z4 A, G0 `3 E7 ]: H
scanf("%d",&h->w.age);
. o8 R$ Z% |8 A1 D4 mprintf("请输入职工学历(文字):");- W% D2 q$ Z4 _
scanf("%s",&h->w.edu);" `- s {: Z2 `- d* E! E" |
printf("请输入职工工资(数字):");
' k# x, V/ M9 b! O! g. iscanf("%d",&h->w.wages);
* G5 _4 Q/ P/ Sprintf("请输入职工住址(文字):");) A, K# D& o9 \6 G, Z6 q f
scanf("%s",&h->w.adr);! \& d8 ?) }. U2 g/ M( g
printf("请输入职工电话(文字):");
( _% f3 `5 H- [3 v$ ]# L4 @0 Fscanf("%s",&h->w.phone);5 P2 j; x7 R% W. F: R; M) E" m0 ^+ w/ h# {
q->next=p->next;
& u a# c. K' n' n @p->next=q;+ w5 q5 }4 g4 [ N) B7 H) j4 }
printf(".^_^.修改成功!.^_^.\n");% i! N, f. b2 L0 Q3 z) O9 n1 |
return 7;
- ~' O+ T, C. M! n6 w2 H} int main()
% R1 j3 ?$ l+ x{9 p% w6 M+ _8 P$ P8 |/ y- G+ B* i3 b
7 T8 H6 k* `+ I5 z. Q' g$ Dint cmd=0;
. b+ i0 s: J" A" Fint id;( v. a& K5 `; x2 m
char name[20];
* h" s% ]1 S2 ~; j. v: C+ }char str[20];
# P% ~9 k' Z$ ePLINK pworker;/ j) s) t! B5 t( ^
if(!(pworker=create()))
0 H; E$ F7 q4 ~: I{' R) l) l' q: [% U; ]. e
exit(0);2 x5 ~: L' ]/ t; z5 M- S% M* y
}
3 w8 G' I8 c1 j- |# x* Z, owhile(cmd!=7)' t- t9 Z9 V- B" A
{; ~. B* @# {7 d6 `1 G* c7 L) Z
switch(cmd)
2 l5 J6 w7 \# c$ K{( i5 ~7 e, k+ a! |
case 0: message(); break;2 }" V8 y' q5 q
case 1: add(pworker); break;" m9 n, y& ~3 L( b
case 2: show(pworker); break;
/ w j' c' \8 h8 u6 @7 Y* Acase 3: search(); break;2 w; R. C) h/ D7 E
case 4: printf("请输入要删除的职工号:");
; Z7 M, r; B0 i& Lscanf("%d",&id);
* T2 @, I& X' O1 F2 {del(pworker,id);+ Q' `- a# s; o7 C: z
break;
. `! U, t/ F! q4 W5 T0 [case 5: modify(pworker); break;
n* X, I0 ]; \, ]' N9 |case 6: message(); break;
; q1 e0 O( j& T! ~6 w4 j}2 O9 `" B& [3 ]
printf("请输入操作命令数字:\n");
0 @/ r! _0 x6 W1 X/ c: Pscanf("%d",&cmd);* g9 V" {0 j- q6 P- N/ D. j
}
, }) ~5 u' m _3 I" A5 T- rprintf("谢谢使用!\n");" v7 [, s, W* ^$ a6 {; G# o
release(pworker);
5 r& T! O! q" |. h# preturn 0;1 O$ q e4 `# O: F; u7 f" m
}
5 H2 _8 P" S6 r1 k# }2 j; L% ^+ Q- l8 N
. `6 ^# N# H! F; h这是职工信息表 能运行出来不过查询功能不行能帮忙看一下是什么原因吗。。再此谢谢了!
! |$ e9 ~/ T9 A- k7 C/ P5 o7 x# a* r# w" W! _& P
|
zan
|