- 在线时间
- 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>
0 ~; i6 G! P8 `' |5 K) b+ h- Y#include <stdio.h>
! F; s) \8 z. f9 e6 v+ r' d#include <malloc.h>! v* g+ _' [3 L6 l0 [& N7 o( ]0 G
#include <string.h> + c- Y- |- S' d1 [0 ^7 r
typedef struct worker. f' |$ S$ m" o$ E
{+ {9 @" ^- \! v- c: k& F2 v
int id;, n8 t; n) @: @& p# p$ J
char name[20];
$ G% O/ z7 u% @- q4 Ichar sex[3];0 ^6 p' a# S! U) \
int age;& s, Q2 t; v% v2 Z. y
char edu[50];
' r! [! Y- e* Vint wages;5 O5 v$ Z% ^2 }: [
char adr[255]; J3 b, U- `8 ]; J$ w1 Y- a
char phone[13];
% k# C+ p4 c. P. p) M1 t}WORKER, *PWORKER;7 A9 F5 R- z/ O+ c" M6 G
//typedef struct WORKER *PWORKER;- P" e5 N+ ^% {1 F, F! k0 J
typedef struct link" p7 l* E- w* X9 ?9 Y
{' V: T( \; c S( e
WORKER w;
) P1 ^2 J0 W* h5 fstruct link *next;& S) u w6 X8 e. e
}LINK, *PLINK;, i* v7 D" C/ T8 e1 [
//typedef struct LINK *PLINK; /*创建职工信息链表*/' G( C$ x" j0 B) f J9 Z
PLINK create(), f) g: V" g: {6 b
{7 E* B4 s3 K! p- [ D
PLINK p=(PLINK)malloc(sizeof(LINK));, S) v* o7 n; ^6 O
if(NULL!=p)3 a7 _ w+ g7 ^( ]2 Q. n9 K
{- r! y% _7 P& X" A! i( v+ Y
p->next=NULL;/ d4 q; E' X% X5 T. q7 T7 J
return p;
& S2 \" l1 w( w& `" v* ]}1 w1 A. d% O* T; g8 q2 m
printf("内存不足!\n");
- Q: t B; `4 W+ j$ w) yreturn NULL;
4 ~1 j8 }6 b( N. }} /*显示程序界面文字*/4 R$ p5 p# D: F% t$ w7 ?7 U
void message()
5 j( _, ], F& k) \# O- O) D{ system("color 0f");/*设置当前窗口的背景色和前景色*/; x9 [4 M5 ~9 g" V, h( L2 B( \( C
/* 0 = 黑色 8 = 灰色
9 u. O& V) a# x5 D3 P1 = 蓝色 9 = 淡蓝色
! O o: Q6 C! y, K( Y) u. D( z2 = 绿色 A = 淡绿色5 v# ?& L/ }! O- M
3 = 浅绿色 B = 淡浅绿色
8 K \5 |: g/ h* E9 R/ _4 = 红色 C = 淡红色! n( ?/ l2 l+ w1 F2 c
5 = 紫色 D = 淡紫色
: ]* W* d7 R. C9 F+ `6 = 黄色 E = 淡黄色 p4 f, ]: x( a) \: M* F
7 = 白色 F = 亮白色*/ \9 z3 \4 j+ q X) {
system("cls");* D0 L, b. \/ I9 u J1 s- `) d
printf("\t\t************************************************\n\n");# }5 n; n. U! B! W0 D% K
printf("\t\t>>>>>>>>>>>>>>欢迎进入职工管理系统<<<<<<<<<<<<<<\n\n");! [& o* {0 P/ G% @, z. ^4 d+ T
printf("\t\t************************************************\n\n");
0 ^- G. L; H+ T1 t# k- N% U9 Cprintf("\t\t ************** Choose Function *************\n\n");6 F9 a- d% N B* p/ Z
printf("\t\t ************ 帮助 请输入:0************\n\n");! p ?% n+ l9 X1 P; E, @5 d" Z4 h; R, e
printf("\t\t ************录入职工信息 请输入:1************\n\n"); S: r/ u. B* @3 P. j" h9 D
printf("\t\t ************浏览职工信息 请输入:2************\n\n");
4 M( o6 T& W& z6 ?; zprintf("\t\t ************查询职工信息 请输入:3************\n\n");
' C9 c9 G/ c" P1 N* zprintf("\t\t ************删除职工信息 请输入:4************\n\n"); M+ w8 j' M" K
printf("\t\t ************修改职工信息 请输入:5************\n\n");3 H6 h/ z" i0 f3 F; F1 }$ a" P/ ?( C
printf("\t\t ************ 清屏 请输入:6************\n\n");% J" l9 |" P% y7 L' F
printf("\t\t ************ 退出 请输入:7************\n\n");4 h' T, r: F% `+ u1 |7 R
printf("\t\t************************************************\n\n");
; ]. E5 W4 D) @% L& ]1 H/ Kprintf("\t\t************************************************\n\n");
- R: p7 @5 n% K6 o/ D1 ?( P- |4 B} void find_sr(PLINK plink, char* str) f! b6 s) ~1 z' T- g
{. G3 A: L; T: k
for(PLINK curr = plink->next; curr != NULL; curr = curr->next): v" X* i5 }4 A5 ~3 r$ R
{
, I; Z4 L3 @1 \/ M& B2 t, v5 }1 w0 Bif(strcmp(curr->w.edu, str) == 0)( I1 J2 B) {9 ~8 @2 d0 r }: M
{
- |1 z x& H7 |2 I: Uprintf("职工工号:%d\n",curr->w.id);
" R' m" k8 h+ B- n; N) Aprintf("职工姓名:%s\n",curr->w.name);) x& \! ^. L, T' K! V
printf("职工性别:%s\n",curr->w.sex);7 B4 x" v; o# C* t" X) D- N
printf("职工年龄:%d\n",curr->w.age);. J& B& i. L3 U* K
printf("职工学历:%s\n",curr->w.edu);1 k, S3 e" {- P5 y9 g6 f) k: l
printf("职工工资:%d\n",curr->w.wages);2 R; i) u3 o0 L2 _2 ^% l# w
printf("职工住址:%s\n",curr->w.adr);; h$ p8 L5 u- t$ V* C4 q
printf("职工电话:%s\n",curr->w.phone); }8 U3 l8 _1 F6 ~4 ]+ C
}
- _7 b) [* \$ O! a6 Y6 g} void findid(PLINK plink, int id)
; O% B c, B/ l; F) b% \* Z, m) O{7 M9 \+ ?% v' d5 B& j% F0 o
for(PLINK curr = plink->next; curr != NULL; curr = curr->next)
# J' ~! z* }0 T{* k0 q" C1 |1 C! T* V
if(curr->w.id == id)3 ~! J: g! |; _5 a# ?+ ]. C) r
{
) Z9 z! ^! \4 b0 _7 V) M$ |printf("职工工号:%d\n",curr->w.id);
' c, u( a/ ^' I8 }printf("职工姓名:%s\n",curr->w.name);, R' {% f% J! _+ I
printf("职工性别:%s\n",curr->w.sex);
- a4 f+ U. G3 r* F8 Fprintf("职工年龄:%d\n",curr->w.age);
$ L" J' \7 G1 s. jprintf("职工学历:%s\n",curr->w.edu);
% U p6 p2 f* o. n2 Aprintf("职工工资:%d\n",curr->w.wages);
7 A+ k# {) f' A1 U3 i: E# oprintf("职工住址:%s\n",curr->w.adr); N" k, o s2 B5 {- K- c* p( v
printf("职工电话:%s\n",curr->w.phone); }9 f( F' b! K- K' W* U0 B Y
}
( j! A1 J4 A, G3 p- r7 G} void show(PLINK plink)) {4 |9 c5 G, N. q; v. C, ?
{ for(PLINK curr = plink->next; curr != NULL; curr = curr->next)+ ^% a% {- g2 L- T7 j+ \2 `
{. ~& T" x! s7 s+ Q4 w
printf("职工工号:%d\n",curr->w.id);
P& ], @0 o5 L: u, Jprintf("职工姓名:%s\n",curr->w.name);( l- S5 p& T3 e! M& S/ V7 N
printf("职工性别:%s\n",curr->w.sex);
+ Z# D. |! n7 {, p( Jprintf("职工年龄:%d\n",curr->w.age);
% w$ |3 B5 Z8 C/ j6 ^4 Wprintf("职工学历:%s\n",curr->w.edu);
4 N* O; i' Y6 j5 ?, qprintf("职工工资:%d\n",curr->w.wages);0 c2 ?, k B. e6 U& h1 q9 c
printf("职工住址:%s\n",curr->w.adr);, f2 T' Q' P9 N: @, T5 \, y
printf("职工电话:%s\n",curr->w.phone);& h$ K1 L; P9 @: O" `6 l
}
& i! w1 a9 ]5 e6 ~} /*录入职工信息*/
8 p% j1 L/ P2 H7 Cint add(PLINK p)
- Z- B1 K4 K. S. T3 A{
1 i* N% g# R' z% g4 u9 h1 K. C* sPLINK h = NULL;
b% q+ _! A2 q- ], d6 _& UPLINK q=(PLINK)malloc(sizeof(LINK));
4 l! P) G0 r. n q& U6 Uif(NULL==q)+ O& W1 |; x% L, o% m
{
+ ?7 u7 ^1 K2 J! \% @" Tprintf("录入失败提示:内存不足!\n");& B, T0 ?0 a$ w! ~' j- j; g
return 7; Q; d" |& l3 s- w
}
# h$ P) D- Q3 Q, lprintf("请输入职工号(数字):");
/ @1 l/ u' Z3 Q. t& T8 k. escanf("%d",&q->w.id);
. N9 n) R2 P! z7 R9 b- q/ Vh=p->next;- c) q9 u0 j! `7 \1 k4 r
while(h)8 N" ?" S) v% q3 S; B0 P$ D4 b g/ D
{# J$ b/ A+ v# K# i/ o* ?5 R" |) J- s: k
if(h->w.id==q->w.id)/ n7 D5 m# x. b* k- E1 z2 A& z
{; u* _: [7 `2 a% n# g
free(q);, U3 G3 ?5 p. K0 y: k1 C( h
printf("录入失败提示:此职工号已经存在!\n");
# g( Z* Z7 G- }& B4 g7 L2 i0 u) Wreturn 7;- L3 u1 q3 I% u
}4 _; c1 `8 o' k5 b4 K6 K' k" u
h=h->next;0 a5 W, b: y3 B7 S, e2 c
}
! S+ ?) j, S# m/ R; ]& @6 zprintf("请输入职工姓名(文字):");
7 T1 X% t# h, Oscanf("%s",&q->w.name);' C2 G6 q, s5 Y8 n' u) n
printf("请输入职工性别(文字):");. V# h" y& R/ n6 W; O$ V0 L- e
scanf("%s",&q->w.sex);
/ p6 h6 ?# x8 z; I [% Z, pprintf("请输入职工年龄(数字):");
; |+ V: C% N" y c9 B% jscanf("%d",&q->w.age);! X# n7 x+ N; m, r: z2 x
printf("请输入职工学历(文字):");
3 F5 H4 R9 L! [6 Nscanf("%s",&q->w.edu);, }8 K3 R& M" m
printf("请输入职工工资(数字):");
* L( W5 G1 W# N' H Y1 f3 pscanf("%d",&q->w.wages);+ Q. s6 ?& I( A: R: f( V
printf("请输入职工住址(文字):");0 T5 O/ A, `; V8 w% x, W0 G2 U* ?$ l3 S- C
scanf("%s",&q->w.adr);8 p0 Z+ P- w& F5 q0 x' S; ^" p
printf("请输入职工电话(文字):");
2 L8 A' j" ?: M1 g# Y. E' Rscanf("%s",&q->w.phone);3 M: }. n/ `3 g3 \ c( m: D
q->next=p->next;
) x9 z% {7 G+ p6 N z& Jp->next=q;! @& T6 Y2 J5 ?# {. [2 m2 B7 \
printf(".^_^.录入成功!.^_^.\n");8 |% L( r, v: M1 @& U
return 7;4 ~$ {7 E9 O* Z# W% R4 d4 l
} /*按姓名查询*/: ^3 I: B& m8 k
PLINK findname(PLINK p,char *name)
+ z8 c: S7 t9 x) V6 L2 R{# O% z o; h. y- I
message();
% j# N+ W) ?" M0 Hprintf("按姓名 查询\n");+ m8 O% i8 a% n I% r
printf("职工号\n姓名\n性别\n年龄\n学历\n工资\n住址\n电话\n");
" _: G, v6 k8 Owhile(NULL!=p->next)
9 f* Q$ B3 }, T0 J{5 ~: n! S5 b* t* u, T
if(0==strcmp(p->next->w.name,name))6 u- Y3 i# n5 I; Q: v
{
. F" |1 g3 B4 G' X' R: Fprintf("%d\t%s\t%s\t%d\t%s\t%d\t%s\t%s\n", ]$ p8 j0 R, [. ]
p->next->w.id,p->next->w.name,p->next->w.sex,p->next->w.adr,( @, |! f. [4 b) g, C# r
p->next->w.edu,p->next->w.wages,p->next->w.adr,p->next->w.phone);2 a; k# r( I) ~# h* t4 r6 J8 Q
return p;3 E, w7 ^) S3 x- m& m: |
}! z4 L& y' y3 `- N% m% X7 c
p=p->next;
' V9 Z- q# k" M% `# f7 Q}
+ i2 O6 |2 I3 j+ s+ M8 bprintf(".^_^.查询结束!.^_^.\n");! U# [+ t" x/ v N
return NULL;; `, u d7 g' S
} /*按职工号删除职工信息*/" @0 a# j5 M4 y1 P
int del(PLINK p,int id)* f" u3 l" u: I0 k7 b3 V; H# ~
{% n P& H2 L& H4 K% ]8 W% e" s
message();
* m+ H) s& t' S9 Oprintf("按职工号删除职工信息\n");
! {3 r6 _3 K% L$ m, a; qwhile(NULL!=p->next)
) b3 d! u( \# X7 V{
' y" D& Z4 Q8 R1 b$ l2 {: qif(p->next->w.id==id)7 g+ ?7 m& z- I, i. i
{
( K2 a1 N4 P9 ?6 J" ?PLINK q=p->next;* ?: V7 e5 y7 X
p->next=p->next->next;
2 A2 w; D+ P7 E# u& ufree(q);+ \( f1 R$ \. g# z
printf(".^_^.删除成功!.^_^.\n");
, {; x, U& O! s" L2 ?# rreturn 1;' o, y: y% [4 {2 w7 n$ U: g d* [: n
}$ f) `8 e) e6 _ d( F# r2 E
p=p->next;- O. @% b0 D2 t9 r, h8 H) A) y
}. m; d3 T/ y6 o+ N' A
printf("没有你输入的职工号!\n");
' r+ S- }* \4 v% x, Dreturn 7;9 f( ?1 B7 f0 @- ^% C
} /*程序结束释放内存*/( ?- Z) x {' |3 i: o1 Z
void release(PLINK p). O" t9 O' {* K2 y" n0 o9 Q
{
& p+ q9 n* ?; ]; TPLINK q;
) z1 k1 ~6 W, U3 iwhile(NULL!=p->next)
5 A2 P" }8 A$ l& K b{$ g1 e% G6 S( z" E) U4 K3 Y
q=p;& X' u: G+ l" e$ I V; R' l
p=p->next;! H$ P8 {* S- ]
free(q);
& S! s/ t6 ]3 d8 X% Y}
# D& j( z3 }" d+ l3 ]free(p);, r7 o! C: g) r3 {& H9 _
} /*查询调用*/
4 I d1 T# j9 c4 Q8 E' Yvoid search()& |1 `1 Q7 K! P9 [) d
{
. N# B& d7 b0 `+ wint id;$ ~- S2 S4 z% Z+ p9 R- j6 O
char name[20];7 N# F& v5 E: N2 `( L) D! _
char str[20];8 O" H* T o+ }$ e
PLINK pworker;% D. E! R& a0 p! W1 L7 _' x- A: z
int l;
& q( \4 u( a( \! L: p3 pprintf("\t\t\t\t*姓名查找按:1*\n");
# A5 T9 t6 s5 u! Z2 v0 yprintf("\t\t\t\t*学历查找按:2*\n");$ z( s$ j0 z% r3 B
printf("\t\t\t\t*职工号查按:3*\n");' B% w$ ^8 D) i9 B3 [# l
scanf("%d",&l);
1 E' m+ G" Y2 I8 }( w Vif(l>0&&l<4), L! Q; u9 a% g9 x9 c% y
{switch(l)" A1 h+ c$ O! D* ]& T$ J0 g8 W; ]
{
0 q! i! N3 Q0 c u3 L9 S- Zcase 1:printf("请输入要查询的职工姓名:");0 q& |4 P; m- X& W* Y1 U
scanf("%s",name);
# _. J7 y& @1 c1 g( Efindname(pworker,name);) I" K0 D1 V' w: E: U7 {: B
break;
- N$ n; L: `* i% d; Kcase 2:printf("请输入要查询的职工学历: ");6 d' o; q+ M3 h; R( Q' T F) L+ V
scanf("%s", str);
/ G/ n* D, R E( h0 Ufind_sr(pworker, str);
3 o" w$ @5 m5 Pbreak;
4 c5 q c6 s6 P* Pcase 3:printf("请输入要查询的职工号:");
) u4 s% U4 M: Wscanf("%d",&id);
9 f2 z" U! U& Q: Vfindid(pworker,id);4 _7 S/ [' s' k: K: [
break; p% A# u- l0 C! y% o
}
$ q* a0 R. P" k7 U) }. yprintf("\n\n选择完毕!!!");
# w4 l9 P; ~; T) q/ W} `! p) k9 a5 D& [( U4 ^5 Y
else printf("\t\t\t\t输入有误!!!");
* p- w8 I* V4 {- O8 ~} /*修改职工信息*/
8 e7 t) Y0 V% @3 s1 {int modify(PLINK p) O% h* o4 t# C8 Z. @; G
{ int id;, g" U( R7 Y1 w; }# G- }7 m% I
PLINK q;
$ g: K+ H+ ?$ R+ ~PLINK h = NULL;% {2 m5 @3 I$ i) B7 g
printf("请输入职工号(数字):");
, A6 u- b+ p$ A/ x+ yscanf("%d",&id);
/ Y* O1 l3 U7 C& e+ Y5 Mh=p->next;1 E+ f3 K, r- J( K9 S% f4 }0 ]
while(h)2 `2 w6 w+ n8 x4 D! u; T$ c
{
* b$ W- m. D1 s) @; i- P0 q# pif(h->w.id==id)8 ^# S" D! U7 M) y6 p" Z
{8 k& m5 |" @, e% ~3 j
break;; h% J8 {& e, [2 U; S: s2 k
}
/ ]; K" S. E* P: gh=h->next;+ d# X4 r8 T* P0 ?. ?
}2 s# f9 f2 ^% C! `, U8 U- w( q* ^
if (h == NULL)" w. j% |5 G1 ~ }0 e9 M9 X7 W+ c
{
6 Y; C, @/ ^ H) ~! Sprintf("找不到此职工,请重试\n");; [# V1 |/ c ~
return 7;; m3 C( [& T* h- O
}
, v( S. X4 ^. z q" n. Mprintf("请输入职工姓名(文字):");
. }$ B# K8 W. dscanf("%s",&h->w.name);
& G0 A3 m( K% G" B2 Uprintf("请输入职工性别(文字):");( H6 |6 t. S' ?# E! J! M
scanf("%s",&h->w.sex);3 _9 U4 I- a* T% e O3 |4 u, }
printf("请输入职工年龄(数字):");4 T v' x( g# d& ^4 S5 d* r, _! R
scanf("%d",&h->w.age);2 ?8 U) i' Y# G/ }$ z$ Q* m* ?
printf("请输入职工学历(文字):");
! x; {- ]4 s" Nscanf("%s",&h->w.edu);
! ^. K/ G. Y1 E6 iprintf("请输入职工工资(数字):");
+ ~1 g' B* }6 Z3 U5 sscanf("%d",&h->w.wages);. u6 d5 s+ k$ c4 y0 A0 z
printf("请输入职工住址(文字):");2 j* J9 ^7 m- S1 p9 u
scanf("%s",&h->w.adr);
% Y6 v& v) r9 q7 R' Hprintf("请输入职工电话(文字):");( \* i/ H5 z8 N/ i* {+ u
scanf("%s",&h->w.phone);4 p; w F* P2 J2 O6 P& R" N% h! x0 D
q->next=p->next;
. [, N5 I- p) p) J4 ?/ ^5 @. jp->next=q;
' d" Q( k" f% n& c* D; gprintf(".^_^.修改成功!.^_^.\n");
4 O3 {( N0 a2 d6 s+ Yreturn 7;( F0 h Z, H7 S! s% N- o; j
} int main()
6 f ^* s. V# w. M Z3 v2 K% Q9 U{
* c5 F1 `# S% e/ m5 |- B, X% U
) \, u* l% y; g; I" n9 P" zint cmd=0;
" p1 ?( b5 u/ G/ d& k3 k Yint id;& V% ?0 }* V+ t1 H# M/ W E6 p
char name[20];
) e F0 W- q5 X Ichar str[20];$ F5 L( e$ t* ~
PLINK pworker;
$ O% W+ V- {+ q7 r/ w/ P& o0 [if(!(pworker=create()))8 Y1 Q: V" J/ W+ X# B2 j
{. K! E4 t6 E j
exit(0);
' h. S1 r. l8 Y: J( G6 ]}
Z5 @6 E2 c, \$ Awhile(cmd!=7)
+ A- T* H* L) K) O! b* _( g/ M{
# ?( ?( \$ j6 e! Y& cswitch(cmd)0 N# V/ `5 g; y8 e# k! @+ E/ N
{
+ l, u$ n P( r% u% E4 e! L, z$ |case 0: message(); break;
0 g% g! W: v$ m1 L7 u" kcase 1: add(pworker); break;
% `6 S, u1 u& o( S5 t8 A2 Ucase 2: show(pworker); break;
- q. w" ]& c& |& q0 j( Icase 3: search(); break;
% A' U- ^) U, {- l) a/ x( g3 {6 R6 Zcase 4: printf("请输入要删除的职工号:");/ j* l l, G* K2 @% ?$ ^, @6 d
scanf("%d",&id);
) w$ i7 {( P- W' I* k2 Adel(pworker,id);7 L. w5 g7 n9 v) _* A
break;$ }9 \" \3 H7 h. V. C! @
case 5: modify(pworker); break;2 `2 P( I, u, O" J
case 6: message(); break;6 d ?6 ]4 l( O) W
}
+ S/ X9 Z9 w4 w# v" v" Oprintf("请输入操作命令数字:\n");
" j+ e3 N/ r+ W; J2 u/ h p1 o) L4 H# sscanf("%d",&cmd);- D# ^3 `. K( O6 X! h9 a
}
, _& b/ y$ {# ], b I. R! Sprintf("谢谢使用!\n");
1 L, l' d, ?# o" j1 S0 [- `release(pworker);) V) Q: N0 E( h% n* Q6 X
return 0;* T R; j0 e8 T3 y. z
}- Z6 J0 F! e: ]* W. B, B: m6 [
) M. `: ?# K( U+ D1 }4 ?
% U& t- S& P: k G2 h这是职工信息表 能运行出来不过查询功能不行能帮忙看一下是什么原因吗。。再此谢谢了!
6 I/ Q. Q/ a0 W9 J2 p) Q8 x
& v6 i9 V+ E. J+ H |
zan
|