- 在线时间
- 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>
( Z8 l( [- g" P% c* ~#include <stdio.h>
v3 h1 D- p$ O, ^7 Z. O l#include <malloc.h>. _* _" E4 C, {2 ?/ X
#include <string.h> 2 x* z7 S( v Q2 ]( h3 l% p% q
typedef struct worker9 M. ~6 j) }" U- l" H
{8 |' h4 P6 f& ]# I. u
int id;. [8 ~! {( T; q' c2 t: ]
char name[20];7 E& i$ d- n6 q$ I: W' x
char sex[3];
- W# s, V& O' g1 {5 ~ Z: P1 v+ Zint age;
) `7 {; l8 d; cchar edu[50];. l$ f$ { B y t9 P" M
int wages;2 _. i$ f/ F3 s% J, `% y
char adr[255];6 h6 |) c+ X( g8 l8 g9 \5 I
char phone[13];
4 W6 \ g8 M9 o# f; S/ ~/ a}WORKER, *PWORKER;, P6 g9 H+ O o; o' V
//typedef struct WORKER *PWORKER;' \" J: p& C( K1 `3 p) f5 N v3 O
typedef struct link
4 P6 q9 D7 t1 U' z. |9 F0 `; l/ B I* e{
" E- M2 ]- K7 ^% J8 Y3 QWORKER w;& W6 Y; u- P/ S4 ^
struct link *next;+ f- K0 H1 R: L8 @- _7 t, n( V
}LINK, *PLINK;
& B. q* }2 N( L# p9 k6 N: v//typedef struct LINK *PLINK; /*创建职工信息链表*/
" e4 M" [: y5 Y* O4 F) LPLINK create()
! v- M2 W' t8 Q9 C{ B3 W/ }, {5 z! i) _1 H$ z
PLINK p=(PLINK)malloc(sizeof(LINK));
) v; c6 ~* ~6 \/ k4 d. l1 Iif(NULL!=p)2 @5 t/ Q- M2 t
{8 p+ c$ r5 b; g# m
p->next=NULL;: v0 Z7 P! Q- E, V U( v" o
return p;
" c: c) P5 y4 r9 E+ J}8 W; L" g5 D* P2 e( w; s
printf("内存不足!\n");$ p. K0 q: Q! R% _; G# q
return NULL;
) ^( Q9 r1 m0 Z} /*显示程序界面文字*/9 O) C; m) T8 U) d; B6 \9 q
void message()) t9 H9 R$ _, k$ u3 B4 I0 A' X
{ system("color 0f");/*设置当前窗口的背景色和前景色*/
1 p2 Q- \6 G; x) n. o1 H) g$ m0 E/* 0 = 黑色 8 = 灰色1 F! V2 d! G9 P
1 = 蓝色 9 = 淡蓝色4 s$ R6 Q2 V0 o' G
2 = 绿色 A = 淡绿色" {# e2 @. J$ X* V' S
3 = 浅绿色 B = 淡浅绿色
6 O, u1 @7 A3 t/ h# J$ H8 k4 = 红色 C = 淡红色
# ]' L# `, t! X A; @; w t. C" A Y; z5 = 紫色 D = 淡紫色
& P0 J* F- |1 c. _! N6 = 黄色 E = 淡黄色& b2 Y, H! t- q2 b S, A! G' v& ~
7 = 白色 F = 亮白色*/- J+ b% P6 ~ q; L* Z
system("cls");
U; v3 C, T. [ a0 }printf("\t\t************************************************\n\n");0 z0 u" t! V/ E; Y' k Z" T3 f
printf("\t\t>>>>>>>>>>>>>>欢迎进入职工管理系统<<<<<<<<<<<<<<\n\n");
' N. |( k* K9 B9 V6 N5 [ n, ^printf("\t\t************************************************\n\n");9 F" j* s" e/ u( a; @+ s# |
printf("\t\t ************** Choose Function *************\n\n");
8 z: H* }! x. X+ O' J cprintf("\t\t ************ 帮助 请输入:0************\n\n");
! e: d- s) u$ _5 F1 [printf("\t\t ************录入职工信息 请输入:1************\n\n");
1 f. b9 G: T* wprintf("\t\t ************浏览职工信息 请输入:2************\n\n");- J: g9 g5 \* D, J/ m% p! y
printf("\t\t ************查询职工信息 请输入:3************\n\n");
& Q. R+ N% S \ y$ E- zprintf("\t\t ************删除职工信息 请输入:4************\n\n");
- S- P" f$ K" J+ h5 vprintf("\t\t ************修改职工信息 请输入:5************\n\n");
- Z. N- t8 X9 P: b8 xprintf("\t\t ************ 清屏 请输入:6************\n\n");
1 W# g9 x3 I. n- c7 [: A: Tprintf("\t\t ************ 退出 请输入:7************\n\n");
# w; U! O) b6 }. ~printf("\t\t************************************************\n\n");
: b4 p2 U( w) Z2 f: Mprintf("\t\t************************************************\n\n");
$ |# ^% n) j& D, v} void find_sr(PLINK plink, char* str)' M) ?( O: e2 o9 A% F* h B
{
1 ^; X9 [ R9 R% O' @; I& jfor(PLINK curr = plink->next; curr != NULL; curr = curr->next)
D- T5 V+ @/ M# O5 y{
. s7 {' N: a) ?" g; o, pif(strcmp(curr->w.edu, str) == 0)/ u) s9 L; s" u
{. j+ x; ~/ R: T
printf("职工工号:%d\n",curr->w.id);0 u+ C3 v5 C; x, h' ~
printf("职工姓名:%s\n",curr->w.name);; Q) K- w4 H: x: v& {* E% `$ r _
printf("职工性别:%s\n",curr->w.sex);
# {6 Z' }3 I. A0 E2 R$ Rprintf("职工年龄:%d\n",curr->w.age);/ j+ s5 w9 _) u$ L& F
printf("职工学历:%s\n",curr->w.edu);, r* Q- s. l# M$ _5 f
printf("职工工资:%d\n",curr->w.wages);
& f- R8 y$ K( V0 h" c: }printf("职工住址:%s\n",curr->w.adr);& H- i# ^+ S, N; h4 @; ^
printf("职工电话:%s\n",curr->w.phone); }8 a5 b( f8 }" B1 _. T( p x& ^9 Y
}5 j3 b4 X4 O: G
} void findid(PLINK plink, int id)
: L( P8 i* S6 }- E! h{, @/ y- S# m# Q3 d- Q
for(PLINK curr = plink->next; curr != NULL; curr = curr->next)5 U- }1 i, o! V! V1 t1 I0 b* r8 D
{0 \) { M. {1 Y7 R3 P9 N) Q
if(curr->w.id == id)
" D" F& y5 ^, h8 o" m{* A6 g! o6 Q1 e" s5 \+ b
printf("职工工号:%d\n",curr->w.id);
) ^" b7 Y; M7 |) F! b( |# Wprintf("职工姓名:%s\n",curr->w.name);1 O9 H: `8 ?! h' F$ x
printf("职工性别:%s\n",curr->w.sex);
. V& A6 m7 L+ r8 [printf("职工年龄:%d\n",curr->w.age);
& S3 |- v' |$ i0 d' f. R% Q3 m. mprintf("职工学历:%s\n",curr->w.edu);
) S2 S' E8 o( K0 z) d" sprintf("职工工资:%d\n",curr->w.wages);
: T! G+ K' n$ n# z! _printf("职工住址:%s\n",curr->w.adr);
0 r4 A |9 s8 |2 u6 x+ i4 V2 O/ Lprintf("职工电话:%s\n",curr->w.phone); }, A/ P$ L# f; J/ d
}, m6 C, A( H) E) m! q8 T1 O' b
} void show(PLINK plink)
: G2 `" u1 q% O, `; p+ w{ for(PLINK curr = plink->next; curr != NULL; curr = curr->next)
/ c& p& C6 Y+ U! h5 r- {+ m3 d{1 T! v' }9 q- V* |
printf("职工工号:%d\n",curr->w.id);
* V, i6 H0 i; z! p9 W! M5 p+ p# m2 e# Tprintf("职工姓名:%s\n",curr->w.name);
# `! q0 V' Y- r7 g, t, C/ Vprintf("职工性别:%s\n",curr->w.sex);
5 [9 R$ A, s- |; z$ oprintf("职工年龄:%d\n",curr->w.age);: X! p, A% V# t# ]$ f
printf("职工学历:%s\n",curr->w.edu);
, s; u, s1 Z' B' v0 H( qprintf("职工工资:%d\n",curr->w.wages);
, d" e; D' A" D8 M& c& L" Uprintf("职工住址:%s\n",curr->w.adr);7 d; @, U9 S7 w
printf("职工电话:%s\n",curr->w.phone);% g" i; [. M' t: n
}
8 o2 k; K0 [; E3 v( r$ _} /*录入职工信息*/
$ v9 G0 b# F5 [& d t. Sint add(PLINK p)
/ C( f. T: b7 \, R# L: W, y/ l{
2 I% s6 L7 U8 P2 c1 i0 q( wPLINK h = NULL;5 S' d- v; R) v/ t8 }
PLINK q=(PLINK)malloc(sizeof(LINK));
1 t7 v, b/ O) p1 a$ sif(NULL==q)( @+ G f: y) X$ _! @2 p9 u
{
( Q' e& {! s A7 ?: s& a. lprintf("录入失败提示:内存不足!\n");$ J' t2 D, J2 ~. W
return 7;# O: t6 r, [' N2 s
}
: q( x% q) U8 R7 i. v0 Yprintf("请输入职工号(数字):");% p' N7 X; a2 k+ m8 s
scanf("%d",&q->w.id);' U/ Y: C& J0 p% ~. {. p
h=p->next;
4 @2 Z3 u: |6 m$ \! xwhile(h)
1 c2 X3 k0 o( N- B3 v7 l$ H) t{) P8 q+ W( N4 m0 a% p2 v' T
if(h->w.id==q->w.id)( S5 z2 O2 R& R& E, R
{
# P* O6 W+ q% d9 u+ tfree(q);
' \, ? y' }! W* R' d% W; }printf("录入失败提示:此职工号已经存在!\n");, F$ r6 s2 F' D2 c5 y. G2 Y
return 7;# X3 s; x( l. h$ l8 S
}
, |. J( O& @- C: Z% f# y+ _h=h->next;
+ L) C1 i7 \ Y* R* E}. X# w' U; ~! r$ _
printf("请输入职工姓名(文字):");% J* i( D$ F/ r; m
scanf("%s",&q->w.name);) t% c* Y, ^4 g0 u0 z/ p
printf("请输入职工性别(文字):");& p5 p/ q1 J P8 ]/ o% \9 y& R
scanf("%s",&q->w.sex); o% T7 |, t1 |& B- F2 ]2 t$ ^
printf("请输入职工年龄(数字):");7 b% p# Q: {' {! W' Z
scanf("%d",&q->w.age);
7 y. |# m; Y2 c; h8 r7 Vprintf("请输入职工学历(文字):");
1 V( G) `4 P$ v$ ?4 a. Lscanf("%s",&q->w.edu);4 G- _$ B5 H# D2 d
printf("请输入职工工资(数字):");
% }; ]; x# W+ v$ [) Wscanf("%d",&q->w.wages);
% p: B0 q5 p9 c' {; c1 a9 I' p% n; wprintf("请输入职工住址(文字):");8 w/ ~7 E5 U# _
scanf("%s",&q->w.adr);
" d2 E. N. m; i6 E9 m6 Qprintf("请输入职工电话(文字):");
* r9 w( M1 F4 q" `& r. U4 j5 f; D" wscanf("%s",&q->w.phone);: j( c9 G. c$ `0 u, @- X9 l
q->next=p->next;
, H- F0 r$ N6 l jp->next=q;$ E& l1 b1 w5 l+ g
printf(".^_^.录入成功!.^_^.\n");
% T q6 _3 J) G( q* sreturn 7;8 n6 |9 s7 A7 ] \/ _% X; A5 x0 I7 C( @
} /*按姓名查询*/" g" s: C& ]1 V' p n% w0 y% k
PLINK findname(PLINK p,char *name)
8 J# q, t7 O* o9 H{
- n2 s- I. T3 Wmessage();4 W+ j9 d2 z' c9 ]: c
printf("按姓名 查询\n");+ n4 v) |6 X5 w/ W. V3 B
printf("职工号\n姓名\n性别\n年龄\n学历\n工资\n住址\n电话\n");
$ r/ c. g0 ^. qwhile(NULL!=p->next)
7 i s3 b( ]& j- y& e% G s{
; o0 I( \! c, w) n" j/ pif(0==strcmp(p->next->w.name,name))
& h% K* b# l7 R0 {- _; Z1 t{0 E* W* @3 o0 e" t$ @
printf("%d\t%s\t%s\t%d\t%s\t%d\t%s\t%s\n",% f6 c; O8 [" j8 V) o
p->next->w.id,p->next->w.name,p->next->w.sex,p->next->w.adr,
) R2 x# B/ r. D \p->next->w.edu,p->next->w.wages,p->next->w.adr,p->next->w.phone);
" O0 @4 L. K! H( oreturn p;
6 A0 E" l, x: M' C' B$ v: q* ~}
# r9 z, Q" R7 I, q4 pp=p->next;! u+ o6 c5 s0 n9 s! Z |
}
! j8 t5 L: v/ m6 U3 S+ h- k, V6 Yprintf(".^_^.查询结束!.^_^.\n");$ ]0 \: K Y2 S2 h+ y. `
return NULL;
. g. ^$ U( Y* j; x/ F# I2 L} /*按职工号删除职工信息*/8 F0 d( Q1 n+ p. @
int del(PLINK p,int id)
$ M+ y. p( n8 R V+ O! N" Q; j{, \% [, a; {& s1 |1 I
message();
- }% p! [. X* |6 O4 T% hprintf("按职工号删除职工信息\n");* f: Y" e. Z7 r: q! m: g' \
while(NULL!=p->next) t* a: @- y( b+ t; ~( G5 T! @0 s
{2 @( i1 |8 X( V% x% n
if(p->next->w.id==id)
2 o" J" {9 }- ^" L5 S# a{3 m4 p3 R. L- a
PLINK q=p->next;
- q& m0 [$ m5 M* [- E1 Lp->next=p->next->next;
. y) A- q6 E- @1 X( M& mfree(q);8 W: t! N2 b( J& G
printf(".^_^.删除成功!.^_^.\n");. }4 z2 O/ O3 M" \ t
return 1;' F6 m& G, A* e0 B2 H0 z
}
8 ?) e' W5 b0 L' q) z+ O6 @, Wp=p->next; }. m5 V( u, S; H1 V$ n
}
9 [; \6 t2 J6 ]+ S; @! i) ~3 kprintf("没有你输入的职工号!\n");
, @% j8 S* W) E6 ^, a- Y; F1 hreturn 7;& `8 H& D! i! Q0 J0 [
} /*程序结束释放内存*/3 r; w x9 c3 i" r
void release(PLINK p)8 M5 d+ X0 A% \
{9 K6 ?, j, q6 X5 a4 @; I( ]2 P
PLINK q; Y0 }, L. p& ?) f% m5 a- O r* Z
while(NULL!=p->next)5 g* _3 N" R2 h0 e' y
{
v. f4 [6 W- Eq=p;& z P: c* s$ o% H
p=p->next;' t7 i* @& m3 ]1 P8 Z* @& v
free(q);
9 p! X- ~' G1 |2 t}
9 J5 o% h! k8 {* }3 ?free(p);2 R- O+ R) G" j5 N0 O
} /*查询调用*/6 S9 z, I8 [9 d* S# b
void search()
5 A4 G1 H5 g6 O' A{
2 N+ R9 l2 W. r$ `! S( D' G0 g% _int id;
$ Y! h3 T' ^ v& e" |2 ichar name[20];
7 O7 X; O! \/ D: s4 G5 |char str[20];( C- g/ L2 H3 s
PLINK pworker;. k! @2 l$ G6 I# `
int l;
+ G( s$ X5 N# \8 N1 P) r& jprintf("\t\t\t\t*姓名查找按:1*\n");
+ y4 y; p) Y! w/ Xprintf("\t\t\t\t*学历查找按:2*\n");
; `/ N3 A4 q8 ]printf("\t\t\t\t*职工号查按:3*\n");
' K- }9 A; n' f* U" X W/ ]scanf("%d",&l);: A2 w' A7 U/ G- b1 b# d
if(l>0&&l<4)
# O( c3 A+ l# f- T F. f{switch(l)" j4 m7 J$ Z% }- G) g/ {
{
. {+ @1 i( ~8 bcase 1:printf("请输入要查询的职工姓名:");- g2 I( Y5 {4 }0 i" H, v
scanf("%s",name);' Q, j. D- I$ v+ [2 L
findname(pworker,name);
2 {, \% F" ~* X- Cbreak;5 Q. O/ m! Z. D! i$ @4 k
case 2:printf("请输入要查询的职工学历: ");$ y% C# g& `0 Y# X. ^( X$ X
scanf("%s", str);
. E3 ~; f. }3 n8 R. Q* jfind_sr(pworker, str);3 W, G6 Y. F0 b! p# X4 N1 s: m
break;! f! N0 } W8 k8 e, \- D4 Q
case 3:printf("请输入要查询的职工号:");
6 e: t& f& s0 `9 M/ \; Z5 }7 Cscanf("%d",&id);
0 X: \! k; J2 e0 t4 Pfindid(pworker,id);+ @( P8 U% g+ m K9 n
break;
" p2 |- S! [; u# ~+ Z0 n, g- V}" Q. d) ^4 b' C% `; S/ T
printf("\n\n选择完毕!!!");
2 d* K' v, u5 T' l" `}+ W$ q! x& l; c% ]! a' V7 b; O
else printf("\t\t\t\t输入有误!!!");/ [9 ^5 Y# `4 E: m/ H* @
} /*修改职工信息*/7 {" s/ N2 L! S! s
int modify(PLINK p)
0 s2 y8 m, Z% m* r4 V2 w{ int id;2 Y! j: n; w$ b/ |& e
PLINK q;2 q3 ^) W8 x- P" d0 k+ G7 o) {
PLINK h = NULL;2 a8 p% `# U1 x; _ Q
printf("请输入职工号(数字):");, v; N+ V! E \) W- X' k7 x8 p
scanf("%d",&id);
. M2 [: l5 G- D9 ^7 i" Ih=p->next;
* m2 ~; O! E: i) h9 h( o" b9 ~# I/ fwhile(h)1 f1 M' t( y5 {( J7 i& K
{1 ^- o# O! e6 E6 V) ?/ t( r
if(h->w.id==id)
* T% R. P3 T; v' k7 K9 C E8 h{6 V; D0 x( ?) ?$ ^
break;' l' m7 [9 M0 U# \. s4 u
}6 @) P% A1 P+ g7 Y0 k
h=h->next;5 U* r0 |8 M; P( ~5 Z4 t# ?" `
}
1 s+ U: s9 F+ C1 Z' e2 {' }if (h == NULL)
7 \9 H5 Z; e6 e8 ^{
5 b" k& t, W+ J: qprintf("找不到此职工,请重试\n");4 `' @: V0 F2 J; @) E- z
return 7;
5 i! U% K; o8 R" [2 D% U}
3 H/ F( b: }$ q1 ~printf("请输入职工姓名(文字):");
7 j( g0 W }. |( ascanf("%s",&h->w.name);( [$ H) D9 H+ [) q- T3 n. \
printf("请输入职工性别(文字):");
, Z% Y% v1 E9 h; wscanf("%s",&h->w.sex);% r2 F( [; X, g' r" p; m# R7 t
printf("请输入职工年龄(数字):");" X4 ^. J9 m/ `* s' ~
scanf("%d",&h->w.age);, l& ^. j, d: r* K! w. |
printf("请输入职工学历(文字):");
( a4 i( O3 ~! U _ Mscanf("%s",&h->w.edu);
3 y, k* v0 ]& wprintf("请输入职工工资(数字):");
3 m2 q8 b7 \/ a! iscanf("%d",&h->w.wages);
( V5 ]: }$ T: o! Q) _. w1 iprintf("请输入职工住址(文字):");% x* a& t7 v" i& s7 |
scanf("%s",&h->w.adr);
8 }, N5 I7 M) Q+ r/ v+ \/ Yprintf("请输入职工电话(文字):");2 S, k o$ A7 H; |
scanf("%s",&h->w.phone);% `: k/ C; r- G4 p) D
q->next=p->next;
: i7 D8 p: d) U+ w+ K" J" w3 Qp->next=q;' \1 V8 ^3 F* Y7 g8 `' C
printf(".^_^.修改成功!.^_^.\n");
9 R |% D! u5 z7 t! |$ `return 7;( V- f7 B% e2 D" Q$ v% h6 ^2 N
} int main()
/ E0 X& n7 s# O% y{
7 }6 |: l1 z4 Z8 a" O: A# J/ K a' r3 R
int cmd=0;" L1 ?; O2 S3 t
int id;; q8 h" p+ F W' h" p
char name[20];9 m+ ~, m" f( t; v9 ^: F* c
char str[20];
; f: l/ ^/ D( G- i- h+ jPLINK pworker;
& M. E# G( L0 x, i: `if(!(pworker=create())). q4 @$ e" ^2 x9 x. d0 e" G* v
{
" G) T5 t! U& U/ m" V, h! rexit(0);
1 o o, @1 U) b+ C}
7 ^/ \0 K; q t1 C" x8 lwhile(cmd!=7)& R% Y, H5 z4 y" x
{
- r) _% A* F8 m6 W, r6 Vswitch(cmd)
8 J2 o6 j+ G! h$ T0 _* a [{7 F$ A" h- d$ ^ p/ @
case 0: message(); break;7 f$ r( y6 H; q- L4 ~
case 1: add(pworker); break;2 L* E+ l4 l. \) K6 X/ P
case 2: show(pworker); break;9 x1 V7 h$ `, _) v) i! E- V8 M. M
case 3: search(); break;1 P$ }# s- V( R6 d+ L
case 4: printf("请输入要删除的职工号:");: L2 i6 b( \( N) W) {
scanf("%d",&id);
0 s. m0 P c; H* w( a7 |* Y$ r) p7 vdel(pworker,id);
$ u9 ]! o' ~# c7 I0 [( J1 ~break;
+ t7 z9 P+ o8 P, ~0 dcase 5: modify(pworker); break;
+ t) E; N' y& x3 P/ o6 Xcase 6: message(); break;/ E3 `; b4 C4 I
}
# `% t% I" [6 v7 E6 Mprintf("请输入操作命令数字:\n");+ Q. U* e. K2 J: f1 t% _% z
scanf("%d",&cmd);
7 e' L* T2 c! j7 m. s! K}
% O7 Y' _& e) J: Z. E9 Xprintf("谢谢使用!\n");$ L3 u, P6 W+ l6 r# m
release(pworker);' X" N3 t! j8 m F) P
return 0;% a4 B3 C- n0 b" O& r5 `$ P$ r
}
. d4 V$ ]6 ?! b+ a: S6 E: K( H% F) z
) A2 K& b- P$ f6 |1 H这是职工信息表 能运行出来不过查询功能不行能帮忙看一下是什么原因吗。。再此谢谢了!
S. T2 a4 V& B( z* g/ e" y y+ S: }% d" |9 K) s
|
zan
|