- 在线时间
- 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>, Y( y) l$ r2 Q6 B Y
#include <stdio.h>
5 f/ G+ |2 U0 |7 [#include <malloc.h>
8 e2 P* E- F7 g# K3 ?/ p0 B#include <string.h> ) r3 v+ A% V; z) u
typedef struct worker
9 Y9 }: ] ]1 u0 U4 D{
* y0 K/ o5 j* {+ |+ N- \0 B+ rint id;
: b- e) [& c2 w9 |8 jchar name[20];" c0 U3 o0 ~# U) z
char sex[3];
$ f. Y' [, t! x, ?5 X8 R; ~int age;
( E/ x/ t9 \6 q: K: `( Kchar edu[50];
' @! }. E+ f! p% k$ @/ o7 f. h, Wint wages;, C, w6 H" p1 L8 L" T* l, X) h
char adr[255];, f! j' O+ j" Y1 B
char phone[13];% n5 H- @. R9 M; X
}WORKER, *PWORKER;. F1 X/ C4 d) C4 x6 O, a n7 m
//typedef struct WORKER *PWORKER;. K+ Z1 A+ w9 P7 @& K
typedef struct link
2 w* c- S r5 r; z0 i{1 \7 u8 N: A6 T. B% M B
WORKER w;
1 H. U, u6 M3 x: t6 z8 Rstruct link *next;
: T4 }) ^ B N' C}LINK, *PLINK;" h5 Q9 x# Q: C% {+ x- V
//typedef struct LINK *PLINK; /*创建职工信息链表*/3 @. S7 h+ R! ^' u( ]* A
PLINK create()7 c1 w' K9 y+ @. n
{( R a2 J1 o( b8 D$ s9 ~
PLINK p=(PLINK)malloc(sizeof(LINK));$ E7 U0 _+ \- s( p
if(NULL!=p)$ z% t8 h# L. ]( L( Z
{. B6 t& a" |$ l% c: S; k
p->next=NULL;+ { L1 Y% z t
return p;( Y) Z; k' C, r- j* ^1 M0 K
}
% ]. x! P% o0 F; p: zprintf("内存不足!\n");3 r" A; o4 m( k# H1 f4 U( X, y
return NULL;
6 x7 h {4 w0 P) U, K} /*显示程序界面文字*/# P( I- @+ V) J; `/ y, \
void message()
3 ~/ P# E$ W" }$ c: n{ system("color 0f");/*设置当前窗口的背景色和前景色*/( J _1 p1 m; ^. m: }1 D" H
/* 0 = 黑色 8 = 灰色
! U2 L5 a( P" {0 B' n. o) D8 r1 = 蓝色 9 = 淡蓝色! R. T! S8 T. F7 c- |3 J7 x2 w2 |
2 = 绿色 A = 淡绿色# f X% _6 D* q% I) S/ g8 M1 E5 P
3 = 浅绿色 B = 淡浅绿色
) _+ Z) r, l. W% B3 J- t5 g1 f$ ?4 = 红色 C = 淡红色# p) [( n- N$ J% R
5 = 紫色 D = 淡紫色5 |- \; i& a/ r2 f6 `# n( ?7 g
6 = 黄色 E = 淡黄色
# n3 U& G: F. x' t7 = 白色 F = 亮白色*/$ E6 g* f$ ` z# T, U- P% Z
system("cls");
# ]3 l3 K9 K( _3 T% vprintf("\t\t************************************************\n\n");# G1 K3 `6 c2 Z! A3 @, H
printf("\t\t>>>>>>>>>>>>>>欢迎进入职工管理系统<<<<<<<<<<<<<<\n\n");2 p" ^$ W$ c0 P4 k! |3 ?
printf("\t\t************************************************\n\n");4 y$ L) k' n) Y
printf("\t\t ************** Choose Function *************\n\n");* j$ X7 r1 m9 p. D8 h! i
printf("\t\t ************ 帮助 请输入:0************\n\n");8 k4 w: _' R0 y: d- m* h$ w+ ?; Z
printf("\t\t ************录入职工信息 请输入:1************\n\n");
( q3 f# I `0 A$ F8 iprintf("\t\t ************浏览职工信息 请输入:2************\n\n");
( { m) {2 ?: I4 q1 ^% x9 Hprintf("\t\t ************查询职工信息 请输入:3************\n\n");1 L' W+ t$ v1 h4 V2 f, P
printf("\t\t ************删除职工信息 请输入:4************\n\n");. W0 l7 ~+ o( {, O7 U' l
printf("\t\t ************修改职工信息 请输入:5************\n\n");' x6 _" G4 \0 ]1 x" f- q( p" n
printf("\t\t ************ 清屏 请输入:6************\n\n");
3 B1 G' H6 ] w! u1 P0 Qprintf("\t\t ************ 退出 请输入:7************\n\n");
' X; w# n' `/ l. @printf("\t\t************************************************\n\n");5 c m) X* r: q6 {( Y. ~5 d+ j
printf("\t\t************************************************\n\n");
% X5 ~. ^9 V! P+ z/ _7 } x} void find_sr(PLINK plink, char* str)
1 n. g' C- ?2 h{
9 a3 q9 w/ _. P: W4 _9 D; Dfor(PLINK curr = plink->next; curr != NULL; curr = curr->next)% m7 l7 a J. X8 l- E" ~) s
{
3 \; q/ w3 p R8 K/ G( Kif(strcmp(curr->w.edu, str) == 0)
' B0 d, {+ ~2 g! w4 ~' k+ D{5 A+ A. c$ w. [9 I3 G: O
printf("职工工号:%d\n",curr->w.id);! a" `' m6 V+ m4 ?$ E* x* p
printf("职工姓名:%s\n",curr->w.name);
. j" i {" _% q6 v8 E" l- u9 {# @printf("职工性别:%s\n",curr->w.sex);" j6 f- @0 \, O8 X+ Z
printf("职工年龄:%d\n",curr->w.age);
1 {8 D2 V& H& [3 i% Gprintf("职工学历:%s\n",curr->w.edu);+ B$ N' c9 q( ]; ^7 K0 D& ]: X4 z
printf("职工工资:%d\n",curr->w.wages);
* W' A7 o$ z) L/ Z, {printf("职工住址:%s\n",curr->w.adr);; P4 G0 ?" P' f( n# w3 Y& J
printf("职工电话:%s\n",curr->w.phone); }, Z. d! d; M5 v
}
8 E" r2 V( [3 y} void findid(PLINK plink, int id)! @/ A6 ?% N6 r$ {' k: T5 p3 u
{+ {7 G: Y. X) v. [. l
for(PLINK curr = plink->next; curr != NULL; curr = curr->next)
' ^( b5 N0 b, @# n' j5 _+ G{
1 G8 [# S1 {& r5 Z4 ^& t/ k* Qif(curr->w.id == id)
* B1 ]1 n' |2 W% H8 F6 D{9 b6 B6 i' v1 [6 G3 O; ?
printf("职工工号:%d\n",curr->w.id);5 K: \2 z5 _% T' b- J+ n3 Q
printf("职工姓名:%s\n",curr->w.name);
2 v* c; n( ]+ o2 ~& ~( O8 P* n" R) jprintf("职工性别:%s\n",curr->w.sex);
9 P! f: X- ] C( F! H6 Xprintf("职工年龄:%d\n",curr->w.age);# P. n$ U# Q* m/ L
printf("职工学历:%s\n",curr->w.edu);2 I0 ]2 Y. Q: J- j3 k& f
printf("职工工资:%d\n",curr->w.wages);
3 o4 H- e) u* \3 r# Q9 bprintf("职工住址:%s\n",curr->w.adr);! @: Q2 S* O9 P# Z2 H
printf("职工电话:%s\n",curr->w.phone); }
; J2 f: m/ G% N}
* i0 i- b6 I3 s7 g N. O} void show(PLINK plink)' G( m- d j! h
{ for(PLINK curr = plink->next; curr != NULL; curr = curr->next)& e( C# r, t2 j! K! T
{
) h# p* ~. U) K [9 b. |) Aprintf("职工工号:%d\n",curr->w.id);
, D+ Q) p1 p1 [6 ?0 {) I# Gprintf("职工姓名:%s\n",curr->w.name);5 L: T% G1 {- B; o2 b$ |6 b0 [
printf("职工性别:%s\n",curr->w.sex);9 j' U6 r. c4 @ U; {; w$ L" I
printf("职工年龄:%d\n",curr->w.age);
7 l. ^; |+ h/ eprintf("职工学历:%s\n",curr->w.edu);
. e" Q" ~9 f: W1 q: P/ C5 X- J jprintf("职工工资:%d\n",curr->w.wages);# j5 Y/ K# ]2 E3 d1 `
printf("职工住址:%s\n",curr->w.adr);8 \- B* k, Y* v. |6 G
printf("职工电话:%s\n",curr->w.phone);6 |$ ~3 b9 Z$ Z' ]. Y- u9 Q# b, s
}
, b) \- u& y' K+ e, n! \5 x. N} /*录入职工信息*/
/ C5 l* W! T1 U. t5 S. E* iint add(PLINK p)
$ M( ^% `0 w0 [! [; ~+ p{- S \! V. U* k
PLINK h = NULL;& K$ l5 @6 q) Z5 t4 ?
PLINK q=(PLINK)malloc(sizeof(LINK));- E0 G* f+ R& E4 U* F$ L
if(NULL==q)- Z/ b& R3 H& [
{
2 k$ C; t% K6 t/ a5 \6 }printf("录入失败提示:内存不足!\n");
" ]2 q q! n/ x: L# k- u9 C: h$ ^' \return 7;
# @* N O+ B5 Q; S4 j# q# P}
* v) D4 Q* s# w' ?4 d, z' T. Dprintf("请输入职工号(数字):");' |2 ^% k6 I8 z1 s5 H$ C
scanf("%d",&q->w.id);1 {, z2 i% {3 l% U
h=p->next;/ e8 ^! k+ z" O, r1 b9 x" \
while(h)& j: U8 D o: J# e
{
+ V/ X: V! e, U7 \if(h->w.id==q->w.id)# ?4 O# x' q4 t/ `7 ~: q
{+ o* y; P9 H/ W( X8 T! R" w
free(q);% i3 \1 h( W/ a4 z
printf("录入失败提示:此职工号已经存在!\n");
; d8 `" _, l) z. S+ y7 T" Z$ T, Zreturn 7;
- L8 ^, K# Y' H. O}
" X M; v. j# Jh=h->next;
/ h' e |! b$ G0 m3 b5 e. d. x. I}
8 R0 b X. I, x, J3 }0 lprintf("请输入职工姓名(文字):");
; X$ T: b. c' z: Lscanf("%s",&q->w.name);
1 w2 o' o+ P- Z$ R _( o+ Gprintf("请输入职工性别(文字):");
' J- x; C2 B' qscanf("%s",&q->w.sex);7 Z1 b6 j" `1 n/ i' Z( b
printf("请输入职工年龄(数字):");0 M/ u7 E X8 d0 F% @" f8 m
scanf("%d",&q->w.age);
. D; y, ^* f: j7 t7 I9 Yprintf("请输入职工学历(文字):");
* U$ I: [: d/ p/ l; k z ~scanf("%s",&q->w.edu);
7 ~ A" _, d7 ~" c8 Uprintf("请输入职工工资(数字):");
& F9 }" K) N* Y/ T8 c2 f7 ^! Vscanf("%d",&q->w.wages);* z3 Q3 H+ H1 \) \+ b
printf("请输入职工住址(文字):");: u( [- d5 Q. |
scanf("%s",&q->w.adr);
! p, ?6 w) S- oprintf("请输入职工电话(文字):");/ @5 W, K# q- P K5 w- B2 [
scanf("%s",&q->w.phone);
. _8 `+ I! ]7 z7 \q->next=p->next;9 l" `9 b3 O- s
p->next=q;
% Z1 T' q, C' Mprintf(".^_^.录入成功!.^_^.\n");$ `. R$ ^+ K3 S; _9 e! B
return 7;& d( M: g' o# T2 T% [3 _" Y. x
} /*按姓名查询*/
9 H$ x# P( ?9 |9 `! ]1 x0 b. f% i. s' dPLINK findname(PLINK p,char *name)& f0 E9 ~& W& x' @: \ ]6 C( p
{1 @) f7 ^ Y+ {, l0 c5 \2 R+ [
message(); C9 H: u1 e. _& t6 J: `3 _% c
printf("按姓名 查询\n");5 a9 ]% ?1 }! Q4 c" `$ o$ p. b
printf("职工号\n姓名\n性别\n年龄\n学历\n工资\n住址\n电话\n");2 ^* b8 C* x' E9 n" _; c# _+ U
while(NULL!=p->next)
9 y" w5 j' H$ y$ a) }{$ i) g( M8 U2 `% m1 O: X9 W. Z
if(0==strcmp(p->next->w.name,name))
; c' ]9 [0 d* P( m) q{5 H* G% F7 m! z, z" u+ ?
printf("%d\t%s\t%s\t%d\t%s\t%d\t%s\t%s\n",
# b/ f2 w0 I' a# d k* _4 Wp->next->w.id,p->next->w.name,p->next->w.sex,p->next->w.adr,
. v( [0 D1 L; F' N" ^$ W0 Q1 Dp->next->w.edu,p->next->w.wages,p->next->w.adr,p->next->w.phone);3 x& d! U0 l% E# ~0 u7 I
return p;3 x- Q) _0 M* x# W0 M- s0 q* D
}
: o) u8 G$ q% w$ T4 t9 ?p=p->next;
& Z* Q3 { i! `/ M8 s$ F9 _/ [5 [6 O} a+ S! H) f9 j
printf(".^_^.查询结束!.^_^.\n");9 N2 E8 W" W( b2 y+ b: j8 b/ t
return NULL;
' @1 w. O& K+ A1 z- C A} /*按职工号删除职工信息*/
; n" h' y# [' J7 N& hint del(PLINK p,int id)
6 w1 w- w: h/ T; l9 E( D{0 |+ O! B# r' K. j+ y
message();
9 b3 s) Q0 i/ x2 [printf("按职工号删除职工信息\n");
6 \+ [# s# q0 v$ G8 L/ twhile(NULL!=p->next)5 h+ I+ o4 j/ c" t! m& W
{
/ y/ I. Z# D$ m$ y' t& L0 nif(p->next->w.id==id)1 g% S# J* v* q% s7 i% I7 v2 i. }
{, z) P$ s" G4 H; k8 D. n
PLINK q=p->next;) _. X3 x R1 E5 x1 W/ V- M
p->next=p->next->next;
' R" _8 y8 ?: s6 w( D, J# r% ^free(q);" ?( e9 C* q j; \9 [
printf(".^_^.删除成功!.^_^.\n");
W5 G* b1 i j% h4 _' y0 rreturn 1;
2 y/ A$ E) p$ a9 N}. u% A: f# n; ?& j
p=p->next; j& s) n0 d5 s) V5 a1 `; H5 G4 F* D
}, Y0 K7 G: k6 \ h. ^7 y ? H% y
printf("没有你输入的职工号!\n");$ ?6 n* m/ t3 F' m' W0 w- U* A
return 7;
0 F" P- w4 Y. c$ u} /*程序结束释放内存*/- o! F# Q; L2 k5 G0 R" u
void release(PLINK p)
$ ?3 s' x5 d w: v3 y" W0 a{) h/ |; Z+ p" s3 c
PLINK q;* h& H# e6 G5 b# ]6 }) |! h9 L
while(NULL!=p->next)
$ i( i. l# }! U+ O2 ]4 i{, ^2 c+ z2 v* O5 n
q=p;
3 `) g% b# N. T1 w4 X6 Q' c9 ~p=p->next;
; {5 @" ]: L* o% P9 [free(q);
% f# o+ P9 F/ ]$ h* }( j# W/ v}
. C6 M2 _; n# E7 efree(p);
+ I: v1 n! M& i# q7 F} /*查询调用*/3 d4 O0 y+ a4 ?& v+ P: W& ]
void search()1 v0 C- F# {; u1 z' S1 b& k
{4 @+ x. j- u) B3 a6 x1 N
int id;
# s* v8 l% {$ T8 K( v8 S: @char name[20];
- B' F& p) f- L5 ~. v) B/ M& uchar str[20];
; l+ h+ g6 M: J( tPLINK pworker;2 o; `* q6 [4 N) v/ Y6 Y
int l;" u% S, g+ m A" b* @
printf("\t\t\t\t*姓名查找按:1*\n");. F! R3 t j: |4 i3 D$ X$ j" J: j
printf("\t\t\t\t*学历查找按:2*\n");& J: H! [! {) a/ z# e4 c. d
printf("\t\t\t\t*职工号查按:3*\n");1 \/ E1 L2 r6 A: Y3 A
scanf("%d",&l);& `8 a3 m1 U% E! A( B: ~9 `
if(l>0&&l<4)+ S1 P8 T$ ^7 o& P9 ?0 D
{switch(l) w6 Y" p- |: w# h5 v
{
# X- X1 {; l3 M# w% U0 Rcase 1:printf("请输入要查询的职工姓名:");
. W( c* K5 R$ ~6 pscanf("%s",name);
0 |$ i# D. G9 a z9 H# c; e3 hfindname(pworker,name);; U" y# b5 M `8 H" _
break;1 @1 d" n+ c2 Y( y: \0 d
case 2:printf("请输入要查询的职工学历: ");
$ [; `8 Q. m& r2 L0 J( M' I$ Zscanf("%s", str);
8 Y. ?5 A$ N5 v+ b# Afind_sr(pworker, str);
3 k A% E" q- _1 z, d7 Sbreak;6 }) T1 a& [2 @) U/ \) s! l' u
case 3:printf("请输入要查询的职工号:");: q, E# n e# _7 j3 E$ P5 {$ e
scanf("%d",&id);
/ T% P6 V: J3 a, L4 o9 v2 ]8 u6 _findid(pworker,id);
0 w7 W; S9 z# L2 G) i d! t# Gbreak;, @9 d7 K2 @3 g9 Y* Z" H
} W/ T2 _! x% c. T
printf("\n\n选择完毕!!!");
( W$ V/ u1 g6 P E}
2 @" u. H4 x. A' P' U# Gelse printf("\t\t\t\t输入有误!!!");8 W# i0 x2 Q. D, H2 v4 u4 S9 D
} /*修改职工信息*/
0 y# r, ]$ e; vint modify(PLINK p)
* L" E0 H% }7 X0 e{ int id;( a2 I2 t, U; A5 k! S1 }
PLINK q;" F) ~0 x- j7 R. E; i
PLINK h = NULL;
0 ~( L! m" f0 g) ~/ H+ G2 `7 Sprintf("请输入职工号(数字):");
$ p% d" b9 z* Q* t3 Cscanf("%d",&id);6 {: p2 T: n8 D/ @; C6 q0 z
h=p->next;
4 A5 P! }, b: Z/ H3 S- H8 pwhile(h)5 E% v$ d: |0 E1 Z- O
{
8 D( S! i4 t4 V" e7 @3 K* Aif(h->w.id==id)1 q" ^( t3 w' c% v
{; Q3 g j: q* g9 c( g
break;
2 G0 u+ G) e9 J" h}
% N/ b9 R/ U1 r0 w: Uh=h->next;' `1 [2 n _: p) r8 G9 Q1 p
}
8 `3 Q4 r4 e) A, J; H% y0 g7 F* Fif (h == NULL)( w+ t) e* C+ V) _
{ m6 g! l- d; b% r* n0 A
printf("找不到此职工,请重试\n");" v8 ?' I- g8 [/ q
return 7;( w; L) V0 ]$ a* K0 J1 k
}
4 G5 }3 U, {8 n9 d0 v- R4 pprintf("请输入职工姓名(文字):");! i4 R, f. M# A# z
scanf("%s",&h->w.name);
# q+ ^8 J( o8 b! y- Pprintf("请输入职工性别(文字):");
% ^- D( o8 B: s9 U* z7 H7 u q4 tscanf("%s",&h->w.sex);; [0 Y) |5 C3 ?* g, J& M
printf("请输入职工年龄(数字):");* Z+ A3 _, a/ o. n
scanf("%d",&h->w.age);3 v( l& m3 B/ L# x' ^3 F, y
printf("请输入职工学历(文字):");3 a8 s7 z, N+ U6 w0 k* A1 A
scanf("%s",&h->w.edu);1 x/ k/ ]9 N5 e( u" P
printf("请输入职工工资(数字):");
. w: E$ B0 ^0 s) q$ y3 oscanf("%d",&h->w.wages);
& x' }4 h6 Q3 ~( ^printf("请输入职工住址(文字):");
$ h' C( A' A. K. z9 W ~% K: pscanf("%s",&h->w.adr);8 B; h6 T: V8 u. ^+ x
printf("请输入职工电话(文字):");/ d8 Z4 F- o- ^2 r& X9 K4 [
scanf("%s",&h->w.phone);" Q8 O/ ]; e) p. e& O
q->next=p->next;
6 T$ B9 n. K+ q( I, Y2 O" H2 mp->next=q;/ i; \6 V! Z- p, C( Q A
printf(".^_^.修改成功!.^_^.\n");4 w( n* H7 s2 ~) N$ U4 ]: p6 n' c
return 7;! c% x1 a) L0 l* G
} int main()
8 Z( q& m% L2 H& e& I{
: b7 R3 l8 m. b1 f+ s: g
! R a7 `7 g/ D: i+ aint cmd=0;
4 g; o1 Y; K. m m* O! dint id;
2 |! q6 O# _& z& ^/ l( q3 tchar name[20];! u: L& P7 g& F! _
char str[20];
, X8 V0 D6 b# Z4 `9 X3 gPLINK pworker;
# V J1 [: |6 D& n8 b7 Kif(!(pworker=create()))
& X1 J8 e) \, z f* I/ ^{
0 L! [% R% {' M& V7 B# [; Wexit(0);9 r) T$ m' E- k8 ], s! [; {! _5 P% e
}
3 S2 E7 z# T( I# Bwhile(cmd!=7). `' q! n! b( r# n7 r) P0 h W
{
; g: v& w# y3 }# C/ h, uswitch(cmd)
$ c T! o6 b+ @7 V. c/ M$ W! C{7 _/ v7 u% z) o% [# t. F
case 0: message(); break;
9 W. O+ z" r, v( Fcase 1: add(pworker); break;8 z! \5 }7 M+ n
case 2: show(pworker); break;+ W, L) L+ }, g0 R
case 3: search(); break;; \: D$ s( e% p' V% {
case 4: printf("请输入要删除的职工号:");9 Y5 y! E; H. q7 F
scanf("%d",&id);
8 c) h0 i5 o4 M; z# h M, Jdel(pworker,id);
- u A Q8 X% e4 {! U. \break;
7 p' g. \: n5 c8 fcase 5: modify(pworker); break;$ d0 }! ]6 L" n! U
case 6: message(); break;
& v3 X; t, V0 ]6 H. Y* X0 k}
9 R3 t( i7 ]% O9 U$ ^printf("请输入操作命令数字:\n");
\3 o+ ]5 M# J. o- j6 j" q4 Gscanf("%d",&cmd);+ B8 B _) ?- I3 R
}; f! x3 p1 L; _6 J+ L* g! C
printf("谢谢使用!\n");
( ^0 B1 A8 q' {. U8 K2 ^release(pworker);/ U4 p7 q3 p! j5 g4 U# B. T1 g+ |
return 0;" h8 Y! Y# \' P
}; ?$ o) ~5 t/ H" Z: w; d$ l
2 z+ F: c7 \8 _8 {- X
# l! t- k3 l1 P0 Z
这是职工信息表 能运行出来不过查询功能不行能帮忙看一下是什么原因吗。。再此谢谢了!
- }- q5 A, J; \) P* |* B7 \' `$ B4 f( _$ L6 _* C! x
|
zan
|