- 在线时间
- 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& g- A& s4 |$ t. m#include <stdio.h>
' U7 V& G. Y) A5 q5 \#include <malloc.h>; |2 `2 i* }8 `( P3 Z
#include <string.h> 0 q' V, l! ^- ]: W
typedef struct worker/ A6 i# w2 v- }2 e( C8 d% U, h9 b
{
) w# B, j r2 ?/ w$ G/ pint id;
, w$ O4 @* R- V) z7 }6 e% |1 P! fchar name[20];0 Z" l C0 K- g6 h' K
char sex[3];
$ G* x7 P4 p% S9 U3 j3 Gint age;
]+ T7 |3 ~: O! \; k wchar edu[50];- P4 i" o: x/ U8 X+ `$ T
int wages;, H0 ?1 p! r: z7 L) F$ k% x! w0 S
char adr[255]; e# j3 r7 T5 N, Z$ |2 w
char phone[13];' A3 L0 S- t/ r. l, o
}WORKER, *PWORKER;; f( n D- A+ t
//typedef struct WORKER *PWORKER;' ]# k' A1 g. y5 h
typedef struct link! w5 P! L) R* j7 O+ `# W
{8 @, o5 E! ^/ f7 I
WORKER w;
! o1 |8 y# F8 @& Astruct link *next;* ~) j$ [! z1 d
}LINK, *PLINK;' `8 @' y& A& {) Y' E2 Q6 R+ n
//typedef struct LINK *PLINK; /*创建职工信息链表*/; N* s! j- t& e) t/ B1 l
PLINK create()
& ~7 U& g. p# G{
8 S+ ^: u+ S6 @PLINK p=(PLINK)malloc(sizeof(LINK));
) |& Z% v1 _& I% C: X6 mif(NULL!=p)
; C) ]* N) n( \+ W% W{
; s- q7 O/ n( W3 Zp->next=NULL;
0 X0 q; d. ~8 v1 S3 [$ kreturn p;
" `1 L/ M5 H; |! n}
, T+ L2 l/ ~7 hprintf("内存不足!\n");
4 z0 ~. M" p, v* preturn NULL;
. ?/ b s! H' H1 n+ \} /*显示程序界面文字*/
9 I3 L N/ h: a+ D9 H6 hvoid message()3 Q( u; h: [) |. H ?8 j/ ~
{ system("color 0f");/*设置当前窗口的背景色和前景色*/
- L5 f9 C- h4 @& {/* 0 = 黑色 8 = 灰色
$ e' M" W( y7 l1 = 蓝色 9 = 淡蓝色
" v# T) C" i( k; T0 g+ l2 = 绿色 A = 淡绿色0 H! G( b$ Z4 Q( B* t: N
3 = 浅绿色 B = 淡浅绿色$ ?. k) {8 x0 @$ n5 Q7 \
4 = 红色 C = 淡红色% U6 P! f! F. d# t
5 = 紫色 D = 淡紫色
/ `( J$ L7 D9 Q0 a' e1 T- ~6 = 黄色 E = 淡黄色5 J& L/ N9 j3 P/ a
7 = 白色 F = 亮白色*/
- z. z2 @% B. ~! R) l# B: a4 f# qsystem("cls");
3 U# V( b/ Y) |' bprintf("\t\t************************************************\n\n"); X f) N; _2 F% g/ D' C/ _7 Z
printf("\t\t>>>>>>>>>>>>>>欢迎进入职工管理系统<<<<<<<<<<<<<<\n\n");
* R8 b5 {) D1 } ?! `" Kprintf("\t\t************************************************\n\n");
0 N; B. x, F5 n& X5 @6 o. cprintf("\t\t ************** Choose Function *************\n\n");
) r! d9 y& Z3 H7 Oprintf("\t\t ************ 帮助 请输入:0************\n\n");
! | V& q$ J H( j/ u6 w% sprintf("\t\t ************录入职工信息 请输入:1************\n\n");
; E7 p7 d; W i* v: K8 zprintf("\t\t ************浏览职工信息 请输入:2************\n\n");0 T1 e! t# q: J- }
printf("\t\t ************查询职工信息 请输入:3************\n\n");
& T( S' b- q+ ~6 r" S0 `printf("\t\t ************删除职工信息 请输入:4************\n\n");
9 v# e' B# U+ K3 @0 Aprintf("\t\t ************修改职工信息 请输入:5************\n\n");8 V0 [$ F" d2 k' H
printf("\t\t ************ 清屏 请输入:6************\n\n");
( R2 @$ @1 r8 | N" r f) H, mprintf("\t\t ************ 退出 请输入:7************\n\n");
6 i! T0 y$ d4 x. p# Q: Oprintf("\t\t************************************************\n\n");# ~7 {/ ~, [( u# b' C0 o# Q
printf("\t\t************************************************\n\n");, w8 B: ~! `5 k n* |+ W# Q
} void find_sr(PLINK plink, char* str)
6 E2 H( E% U1 x5 @1 M+ F{
6 C5 |3 e" I U! x! ?5 qfor(PLINK curr = plink->next; curr != NULL; curr = curr->next)! g6 L M" D. G' P
{0 A( x4 |! l+ x4 V. `' {/ N
if(strcmp(curr->w.edu, str) == 0)/ B7 V* b! l' C f. f
{
2 G. C) V9 G: r& ]$ P9 d) }" B3 lprintf("职工工号:%d\n",curr->w.id);8 \7 A0 O" \- @/ G
printf("职工姓名:%s\n",curr->w.name);
3 U! T! q' b" e1 P" L- g! `% zprintf("职工性别:%s\n",curr->w.sex);/ W! {3 s# x ~0 L% x
printf("职工年龄:%d\n",curr->w.age);7 a1 U' M/ L8 ^# N$ o
printf("职工学历:%s\n",curr->w.edu);9 m7 m( \9 L- w, z v2 U& t9 w
printf("职工工资:%d\n",curr->w.wages);
% R1 c; f/ I/ E- w6 q0 ]4 Bprintf("职工住址:%s\n",curr->w.adr);' s% d- |. Y* a5 P
printf("职工电话:%s\n",curr->w.phone); }
. z7 N5 l+ T0 M9 n}
+ ^* m1 I1 g$ W& T} void findid(PLINK plink, int id)
9 a: Q# G% B+ J0 O! i9 R* N: ^{# x' E5 O6 _' i( B
for(PLINK curr = plink->next; curr != NULL; curr = curr->next), E- j' F( C) y' m" W1 c: Z3 i( A
{
" S1 u2 {. U+ Q- s- _( Wif(curr->w.id == id)
. w* D8 |7 W8 l. G{+ x! s; s& W& o+ x) Z
printf("职工工号:%d\n",curr->w.id);. [. B2 j& a6 y2 u) G& N
printf("职工姓名:%s\n",curr->w.name);
+ w3 ?: A( V' R2 ?5 {# wprintf("职工性别:%s\n",curr->w.sex);
8 x2 r, f. y3 v z) sprintf("职工年龄:%d\n",curr->w.age);
# y% B! u2 ^2 m7 Dprintf("职工学历:%s\n",curr->w.edu);9 ?6 k5 c; P! k7 [
printf("职工工资:%d\n",curr->w.wages);2 f4 x" A* r; J* q# L
printf("职工住址:%s\n",curr->w.adr);6 |! D; ?$ S1 \2 E3 D! K8 q
printf("职工电话:%s\n",curr->w.phone); }
5 z- i+ W' z ^( K5 Y3 U}% D" A3 Y0 ~0 b7 t" M4 s8 T. W
} void show(PLINK plink)5 d& p( |6 m2 X1 `+ V) G( [) J
{ for(PLINK curr = plink->next; curr != NULL; curr = curr->next)0 K n( a W, |: \' h' A9 U
{, |+ E* I& T' w) T2 F5 _
printf("职工工号:%d\n",curr->w.id);5 w/ N/ Z5 l1 g' `% J
printf("职工姓名:%s\n",curr->w.name);( H- n0 @% ]% g8 t) {* I
printf("职工性别:%s\n",curr->w.sex);
% C8 ]" ]# i# y! }" I+ p( }printf("职工年龄:%d\n",curr->w.age);
/ s% ]( `0 I' Z# {0 \+ {printf("职工学历:%s\n",curr->w.edu);2 A! Q; z6 @) H" g. j
printf("职工工资:%d\n",curr->w.wages);4 ^! C f1 J R* o" D
printf("职工住址:%s\n",curr->w.adr);2 E2 F, h5 k$ d* e* W& Q6 D: Z; ?
printf("职工电话:%s\n",curr->w.phone);/ T5 h. ]8 B4 t* ?: c: A
}* c9 ?# j7 O9 e4 q# H& y4 z
} /*录入职工信息*/2 A9 E9 B& X* @& c2 a9 N( u
int add(PLINK p)
3 m0 i7 B) c* [" X0 {( y' E2 y{% y" X; ^$ k+ C2 f7 s. c9 g/ }
PLINK h = NULL;6 g4 m' m# v- o. l2 q1 y* n
PLINK q=(PLINK)malloc(sizeof(LINK));
a0 J @# j- G) A: t) f* sif(NULL==q)
: R/ w! T' R" U! |{, N0 N. S# a2 @1 ? ~
printf("录入失败提示:内存不足!\n");
9 m! \1 \2 K: J2 B/ I. Z/ l' ?return 7;
8 x2 }4 K% O( C2 l}
- U* H8 ?' Y: r8 Vprintf("请输入职工号(数字):");' ? \, y0 c7 ^' x$ x0 F% `
scanf("%d",&q->w.id);
# v/ U+ l7 F4 i4 ]3 _, Sh=p->next;$ N- M* p b \$ T8 z
while(h)- K1 X8 ]; j2 Y4 ]) E' Q
{' E+ t" Q- b/ I$ X- A
if(h->w.id==q->w.id)
; I2 p: P7 ^* j& T: S{
0 n! s9 u) s/ T2 s' Qfree(q);
( z5 O- Z4 P5 o1 I# T3 Dprintf("录入失败提示:此职工号已经存在!\n");* w; A9 X+ p$ @6 Y# g$ k M
return 7;+ a% F- }4 B4 N
}, t$ C, W! q5 B- L2 Q$ X
h=h->next;7 P" r( F! }) F* i8 j% B/ k( ~
}) w, s7 `; ?, c: G- ~& _' K* B3 M
printf("请输入职工姓名(文字):");
) c3 X I2 R( @; ]+ ^3 Uscanf("%s",&q->w.name);" B3 Q D# f' \! z0 b
printf("请输入职工性别(文字):");
2 L7 A1 N2 [, O: ?5 k, n3 nscanf("%s",&q->w.sex);
( D, V s1 J0 s" N {printf("请输入职工年龄(数字):");3 I; P- \3 j. i9 `6 ]. S5 W
scanf("%d",&q->w.age);- t$ Y7 C, Q6 u( n& x
printf("请输入职工学历(文字):");6 R4 L- R0 b# S1 v2 b l$ T% n0 f
scanf("%s",&q->w.edu);
* {" X8 I" q! f0 k2 O1 iprintf("请输入职工工资(数字):");, z) c5 `2 M) O. g
scanf("%d",&q->w.wages);/ C% S; X6 s, F( }9 l
printf("请输入职工住址(文字):");- \; h e& d& m) O5 k
scanf("%s",&q->w.adr);" X4 J; \; h5 q( p8 g: {! k
printf("请输入职工电话(文字):");5 K2 C6 ?; P6 T, g- b& w6 \
scanf("%s",&q->w.phone);
( _1 Y( e, i& Z ?' Oq->next=p->next;- \8 ?$ j1 j8 I9 v% q
p->next=q;; i# C/ q6 E5 O! H' `
printf(".^_^.录入成功!.^_^.\n");' S* m- j. h4 q" A; W; H
return 7;( W5 ?$ o, A) ^3 D
} /*按姓名查询*/6 L% D; v, U) P( S3 }
PLINK findname(PLINK p,char *name)0 \& M; c) {9 U* |
{
: w; N$ a4 p8 e9 P, vmessage();
. s4 o" T. ]! e% O+ U. zprintf("按姓名 查询\n");
+ `, n. f, y+ e3 Y; U6 P& Fprintf("职工号\n姓名\n性别\n年龄\n学历\n工资\n住址\n电话\n");+ t; J8 _5 S: v, j8 ~1 [# w: M' w
while(NULL!=p->next), c) F; j- ~! a# s, j- ^% |
{
1 X9 @2 n1 Z/ E- x Eif(0==strcmp(p->next->w.name,name))2 f& B+ A7 R$ ^! z" E( |) J
{5 ^' l+ j0 i6 t3 E
printf("%d\t%s\t%s\t%d\t%s\t%d\t%s\t%s\n",( t' _- ]2 z( j0 U
p->next->w.id,p->next->w.name,p->next->w.sex,p->next->w.adr,) ^8 @! n! [! X3 D7 X; x$ a
p->next->w.edu,p->next->w.wages,p->next->w.adr,p->next->w.phone);
' X) {- F9 |% A2 }6 dreturn p;
' d! P$ l: ~2 ^: x( H5 L0 X}! }, s4 o; v+ `* d, e
p=p->next;; d3 ~7 O8 [+ Q8 x8 `
}
% g7 A- y9 H" M2 `3 }printf(".^_^.查询结束!.^_^.\n");
* R2 X* S$ \+ n/ e9 ?return NULL;7 E. \7 x; s0 e3 ?0 I
} /*按职工号删除职工信息*/9 C# o) l0 i) x& q9 @* l. t4 v
int del(PLINK p,int id)
8 ]3 V, R2 E l0 w{% I8 y' W1 w1 o3 m4 {* a/ z. z
message();+ {3 p# ?, Q# Q
printf("按职工号删除职工信息\n");
: y5 l9 ^# w9 F% i! \while(NULL!=p->next)
4 p" X- T( u4 l3 v, o5 |- q& G* j{- i" d' z6 C% Q4 k/ e; @
if(p->next->w.id==id)
9 e, R- F' ]7 D I7 P! X& E{+ t/ b4 t7 ^6 d. E
PLINK q=p->next;$ r6 n/ ^( ?3 ~% t
p->next=p->next->next;- ^ [* `0 g9 Q. ^7 C
free(q);' n H! N4 h0 P3 I, I1 ]5 r4 k
printf(".^_^.删除成功!.^_^.\n");
* ?: x+ p3 Y4 d5 Areturn 1;
% E4 l- N5 \# ~! m}
! W; Y, G7 E) f8 A# @7 E; g4 z( Cp=p->next;4 g$ i) E$ s9 `1 |: l$ s) i% \
}" K: U2 o+ D0 Q" u8 e9 g
printf("没有你输入的职工号!\n");5 p' t3 [& T; e6 a/ K" v/ z/ w
return 7;: q& d; g; A2 S; _. Y$ T$ q$ q
} /*程序结束释放内存*/
, F4 R" n! ^# e; _! j5 l/ zvoid release(PLINK p)
/ |9 l0 y! C9 j7 \' d' C$ j{
3 q* G5 I% `- \2 u* Q0 T OPLINK q;
% r4 H, X) _0 E- y( zwhile(NULL!=p->next)' k5 u @1 [. B& k4 Q! @
{+ \/ C! G% z& G( R! f
q=p;# T* l. A- y" o9 i- |* f/ c
p=p->next;
' w {* }! H& v3 d: S4 Pfree(q);
4 B9 j3 h, X3 m+ R, F7 T4 l% Y% S}( l1 C& x- s8 @+ c- f5 L
free(p);7 a. }4 b2 o, ?( n# j2 w2 q
} /*查询调用*/4 j1 u8 e H: j Y; ]3 ?7 F
void search(), L% @# M' y8 ^8 z* A
{0 y7 W% u2 a# f4 t; M5 D
int id;+ M& K: O8 i" @9 Y
char name[20];
* ~; N7 S/ }& u5 ]( kchar str[20];6 G7 t( \: x0 c4 l4 |9 N
PLINK pworker;
+ v$ H+ Y: d6 d7 X$ ~int l;
6 U. e: N* H* w& R. `printf("\t\t\t\t*姓名查找按:1*\n");7 W3 g6 i5 T+ H- P- O6 ]
printf("\t\t\t\t*学历查找按:2*\n");
2 B# u' d% `# J/ oprintf("\t\t\t\t*职工号查按:3*\n");
" v# P# E2 R" C( dscanf("%d",&l);# I# N# {6 T V5 u8 r; d
if(l>0&&l<4)
' _/ w$ C. c$ t- X/ o2 l \6 f{switch(l)7 e% ]5 }& q2 d* v
{
1 i$ P5 e# T: u* p/ L2 l0 w. tcase 1:printf("请输入要查询的职工姓名:");
0 B9 A& n% Y( m, xscanf("%s",name);
3 e$ S! B6 S$ q( w" S8 O$ }findname(pworker,name);: z& Z0 f' B/ d$ x
break;
" W7 G! s4 S* \) C4 Z2 Qcase 2:printf("请输入要查询的职工学历: ");0 {& ] ?- e5 U
scanf("%s", str);8 {5 D7 s* k& h* X T1 {; j) e2 x& S3 [
find_sr(pworker, str);
9 H6 p) g1 l& F, \( B& fbreak;3 B1 w4 Z3 t1 i# E- c" F$ _
case 3:printf("请输入要查询的职工号:");6 c& N/ i2 Z" N& f8 }
scanf("%d",&id);2 M/ m9 K' J) f4 i& ]9 j) [6 j
findid(pworker,id);3 H2 v) b) A* X0 z2 L4 d! _9 f; q' N
break;
: H* F' z' C$ `( W( M$ S/ l}& a, o% C4 y& L7 {/ H
printf("\n\n选择完毕!!!"); a1 j0 V% J8 v) m' e. Q* y# c
}; `9 B6 P$ v7 Q+ g
else printf("\t\t\t\t输入有误!!!");
) Q2 P+ t9 L3 v$ V# A$ {3 c6 b} /*修改职工信息*/# l8 |& A/ [5 k# Y! T+ c5 J
int modify(PLINK p), w2 X1 S I$ |8 P) E! d
{ int id;9 Y4 U+ g# p7 k6 L. I
PLINK q;
' T0 A. d+ b V" { xPLINK h = NULL;
+ R# Z) c8 Y0 s7 Z* ?printf("请输入职工号(数字):");3 o: u1 M; C" u# m. q
scanf("%d",&id);
/ l. w; M. T& z1 H3 eh=p->next;
( p: ^! H# d# U* g& l& Uwhile(h)
4 a2 Z; s! l8 y- X{
/ A/ p3 r& M: x) ~( rif(h->w.id==id)6 ^1 M% z) a. j9 S6 ^/ k& H
{/ ? b; f4 k: H6 |2 j
break;
C& k3 a6 y4 _8 z5 t/ S5 }}: u/ H0 @) x0 v3 b, W+ H9 ^
h=h->next;
$ p- I U6 y. W; x% ~/ U- z}# m+ Z: O& v! N% e: q. }
if (h == NULL)' j/ N* v5 s" E# L- o3 M
{
x+ q" q9 j/ Y7 {, Kprintf("找不到此职工,请重试\n");
" q; }" b- K8 Breturn 7;4 E# N8 r$ | ]
}
! H$ H1 D2 c( D3 @$ {0 }1 Nprintf("请输入职工姓名(文字):");- _+ v/ U E1 O9 o3 D
scanf("%s",&h->w.name);7 Q( R8 r: b0 K6 P t" Z/ b
printf("请输入职工性别(文字):");0 V' [) T( x0 ?
scanf("%s",&h->w.sex);
) X4 t, _+ H- \( l$ v+ C1 I2 Hprintf("请输入职工年龄(数字):");
6 O1 U _0 i6 m! p+ ] N, sscanf("%d",&h->w.age);
/ O& F& v. o1 }7 E0 m5 xprintf("请输入职工学历(文字):");
( y* D2 e) M, V$ l/ Vscanf("%s",&h->w.edu);
, V7 V8 X9 {6 J" ^* K7 Q- U1 Q: Iprintf("请输入职工工资(数字):");
# t$ o4 C7 m' g# W' uscanf("%d",&h->w.wages);% \! z- V! M" E/ l
printf("请输入职工住址(文字):");. N0 Z( c& |# t. r( G. c
scanf("%s",&h->w.adr);
# C Z- n# q- g3 i. c$ F* w3 Kprintf("请输入职工电话(文字):");! h& L V2 D# e) @; L( d$ z
scanf("%s",&h->w.phone);
- c- t" G5 x8 Z) q! Gq->next=p->next;' K# ~ M* _9 Q Z$ t: ?# V' J5 A
p->next=q;
( r+ p2 |& q" T; C$ ?$ S% Hprintf(".^_^.修改成功!.^_^.\n");0 } [, F" q8 q
return 7;: P. @/ d- Q4 o; C
} int main()
5 d \" F" Q* k/ _6 g8 ^{
1 W) W ]6 Q5 A2 Q8 X) P/ G4 E& u; E
) T9 ?, v4 e- c) R6 }9 y( lint cmd=0;
9 G' Z8 D2 ^3 H' n7 m1 F4 }' k" bint id;$ A; s% l, I5 d# ?# [# V
char name[20]; }. Z7 V d' h) p
char str[20];
) ^5 N, U: d. E6 R! TPLINK pworker;# A' w( c6 c, i2 D; W- l0 L
if(!(pworker=create()))* H) g0 b/ x/ D5 E8 m5 n
{1 Y, N% W0 {" L3 }; Q @! W' {
exit(0);
; F! C9 h" m8 I- O0 K}
) r! S7 v# V {, G4 |while(cmd!=7)
+ _5 ]% B$ z$ `$ P6 m{( r, b' o* Z5 \6 K0 Z
switch(cmd)# T; B( ?. j B+ R* {9 r# J. R; n
{4 P$ n& y2 @) Q- l p
case 0: message(); break;
; B: {$ E. ^. Ocase 1: add(pworker); break;
* y- i$ z1 y0 I+ s0 h/ M% qcase 2: show(pworker); break;; L: w2 f' P. N, z
case 3: search(); break;/ Q6 u3 G3 i2 Z# x
case 4: printf("请输入要删除的职工号:");
* g! a2 u! W' fscanf("%d",&id);) z: E0 m+ t4 @! g( {/ |
del(pworker,id);( _. J8 z1 ]; u2 t; f- o, n' R
break;1 i$ a+ z4 M: Q
case 5: modify(pworker); break;
3 }( b7 U& b$ Lcase 6: message(); break;
" K" Q1 P) m+ r}
7 v; k% j% G: c9 u- Jprintf("请输入操作命令数字:\n");( G; U" n* r2 B7 N
scanf("%d",&cmd);4 e! f: F* E1 d+ [: Z0 F
}/ U/ j5 z1 [1 C# }# g+ Q& ^
printf("谢谢使用!\n");4 `% D2 L2 `* Y% R+ B m
release(pworker);
1 ^5 f, g) S) I# I0 h# }return 0;
2 }! ]0 F+ B+ b- K! ]}
( q: X9 B* b6 s2 M, u! H( z% A% B2 K: x; E& J1 @, u8 m
) ^5 t; W9 P }2 N! _6 P这是职工信息表 能运行出来不过查询功能不行能帮忙看一下是什么原因吗。。再此谢谢了!
* X, n4 r7 }. O/ {* D I* \
+ v2 s8 t+ B- G0 @! B- C4 V |
zan
|