- 在线时间
- 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># v( a( N# z" S5 G* r6 G* ]
#include <stdio.h>
5 S6 i2 L V8 S. I- A) h/ g#include <malloc.h>. B5 V) V- \6 ]8 F
#include <string.h>
- k7 s+ K' N* T0 ]typedef struct worker
5 C* U9 s. R+ j, R+ ]9 V3 }% Y$ x% B{
2 b3 ]6 J' n+ M0 ~9 a; W; x/ Hint id;
i: {6 z8 q. W7 L, {2 z2 tchar name[20];: Q1 }0 I4 ^7 c4 I! f# g
char sex[3];6 a* f8 M4 m+ g' R# J. J1 w8 k ?
int age;8 |1 B6 y" c6 y/ b# `
char edu[50];9 w% h# Y* b* h$ b1 \4 |: ]
int wages;
4 H; M2 A5 S7 u+ Ochar adr[255];
9 v' }7 y8 ^9 b2 @9 Gchar phone[13];- G6 u$ G% U! [) u
}WORKER, *PWORKER;4 g# e, G" V/ h( q5 t6 C- p
//typedef struct WORKER *PWORKER;* O9 d: Y# F2 |, O
typedef struct link
* b1 m2 G7 N, U* D{- ^. y& T4 O; W2 N2 K
WORKER w;+ l- c P+ \( N" t- ^
struct link *next;+ n2 `1 r; c; c& U
}LINK, *PLINK;
2 t5 D& ?, n3 Z. f5 o9 o o: b//typedef struct LINK *PLINK; /*创建职工信息链表*/
8 k: B: \4 i& FPLINK create()
' t+ f* H& g; P/ K9 j. S{
/ R, M4 t5 `4 |( ~. NPLINK p=(PLINK)malloc(sizeof(LINK));
# [' e7 ?' C5 |if(NULL!=p)
4 \' h( l4 Z/ x- r% }& h* Q{
$ ^$ x8 j% R. n% ?p->next=NULL;0 z& [3 y) j- N5 W2 S
return p;) i2 p" O9 Q, U+ h) l
}1 {) K0 H% w* B8 d, P* Y
printf("内存不足!\n");
+ B2 R: u& Y- M1 `: Ereturn NULL;
1 G' l! ]6 x9 u% [} /*显示程序界面文字*/, w, n* j- G- {- i5 o. L! ~( @
void message()
3 F$ K7 U! Z; @{ system("color 0f");/*设置当前窗口的背景色和前景色*/$ T# e' U0 G. a4 ?2 _) z5 y$ R
/* 0 = 黑色 8 = 灰色
4 o+ {( j# Z! I) D$ R1 = 蓝色 9 = 淡蓝色
7 P' u0 [& Y* Q" `% l2 t! {2 = 绿色 A = 淡绿色
/ Q4 {4 d% i5 q$ d; B% z3 = 浅绿色 B = 淡浅绿色- Z+ c+ g1 ^- x9 W u& H
4 = 红色 C = 淡红色
1 N; g: I% S6 G3 H5 = 紫色 D = 淡紫色
# [. Q0 L/ L# ]9 J% j0 Z6 = 黄色 E = 淡黄色4 c- x0 x/ h" L# w0 L
7 = 白色 F = 亮白色*/
% g& f4 j& P' Jsystem("cls");
: I- B+ |$ Y, c2 \3 oprintf("\t\t************************************************\n\n");
) D4 j$ L1 i, b4 iprintf("\t\t>>>>>>>>>>>>>>欢迎进入职工管理系统<<<<<<<<<<<<<<\n\n");7 w$ J+ N$ w# W/ l2 z/ i2 @3 g
printf("\t\t************************************************\n\n");3 R1 \2 [. F! z7 t; j
printf("\t\t ************** Choose Function *************\n\n");
$ S2 e4 `6 w _! S |: F6 vprintf("\t\t ************ 帮助 请输入:0************\n\n");2 R( b5 O% g7 y ?- i
printf("\t\t ************录入职工信息 请输入:1************\n\n");
' V0 z' q. M* j2 [" D: oprintf("\t\t ************浏览职工信息 请输入:2************\n\n");" ~& R, `& l+ T2 ^
printf("\t\t ************查询职工信息 请输入:3************\n\n");
' S& ?9 z* }% J. ^: Z7 Wprintf("\t\t ************删除职工信息 请输入:4************\n\n");+ U4 h/ K$ S% {' c: U
printf("\t\t ************修改职工信息 请输入:5************\n\n");2 F U W8 n, I3 X) i+ \
printf("\t\t ************ 清屏 请输入:6************\n\n");5 {9 V* E6 s) Y% |( T8 B
printf("\t\t ************ 退出 请输入:7************\n\n");
% {6 E7 C5 i. _6 w3 vprintf("\t\t************************************************\n\n");
/ V; y& Z$ T6 T/ L3 t% Wprintf("\t\t************************************************\n\n");
9 M5 e) \5 v# T' I} void find_sr(PLINK plink, char* str)
# W: [, N9 w: _{
: e- G% W8 W2 Rfor(PLINK curr = plink->next; curr != NULL; curr = curr->next)+ d6 ^8 h( I& D8 v0 _
{8 q( w% k8 s9 T2 L1 U
if(strcmp(curr->w.edu, str) == 0)) o+ O3 {. m3 d9 A
{
0 L1 g- K; K. g1 `8 @' Z' zprintf("职工工号:%d\n",curr->w.id);, b/ Q1 c' h$ Y) D; S
printf("职工姓名:%s\n",curr->w.name);, s4 P& c+ j4 ^/ U) [; s/ ^- G# a
printf("职工性别:%s\n",curr->w.sex);; W9 d/ f5 `4 ?) j" x/ M( [9 M# Y1 |
printf("职工年龄:%d\n",curr->w.age);
/ Z9 X8 P7 R* kprintf("职工学历:%s\n",curr->w.edu);
- ~2 W' i& Z, I* ~& @printf("职工工资:%d\n",curr->w.wages);1 r. B1 O1 X3 N- p6 H
printf("职工住址:%s\n",curr->w.adr);
9 l8 A- {* F. v: ~. m# M& fprintf("职工电话:%s\n",curr->w.phone); }
/ B- Z7 ]& b/ q' E! u! J; U}
1 R/ P- ] `% \& m# T} void findid(PLINK plink, int id)& t* u t+ X( o3 S5 q, C5 U5 [- T
{9 h: v6 c4 ^% ]6 U- F
for(PLINK curr = plink->next; curr != NULL; curr = curr->next)
% r9 ~) L2 w( n{3 }; l% `; z/ y
if(curr->w.id == id)$ L3 n" j' M6 T$ @1 G
{
7 j: n2 ~& p5 S: Jprintf("职工工号:%d\n",curr->w.id);
5 Q! S6 e% q0 g+ hprintf("职工姓名:%s\n",curr->w.name);
6 q1 R9 I2 z" F6 c) h! J1 ~printf("职工性别:%s\n",curr->w.sex);
0 a/ |8 y( ~5 x9 }) N/ Sprintf("职工年龄:%d\n",curr->w.age);( p: A& y4 c: U- R y$ c J
printf("职工学历:%s\n",curr->w.edu);1 W+ @6 k9 H) K, d6 A; V
printf("职工工资:%d\n",curr->w.wages);
! n9 q! L( y% Gprintf("职工住址:%s\n",curr->w.adr);% d9 y" I) x% b; t5 ^# v6 V
printf("职工电话:%s\n",curr->w.phone); }
/ }9 [. v: B1 H6 J, U% A2 R0 e}
# b. F% |' B8 q} void show(PLINK plink)
& x/ A2 k6 A c% q5 v# s" H3 s{ for(PLINK curr = plink->next; curr != NULL; curr = curr->next)
, \( g8 ?6 ^, |6 |" y{
: P5 e2 S3 {- U9 r& e0 ^* }5 gprintf("职工工号:%d\n",curr->w.id);# a! I6 Z" Q/ i. ^2 ?
printf("职工姓名:%s\n",curr->w.name);8 [; X% |! M% x, V& B
printf("职工性别:%s\n",curr->w.sex);
: F1 n9 X' e2 o& t0 ?, ] h# |printf("职工年龄:%d\n",curr->w.age);
) E& o4 a! e2 }printf("职工学历:%s\n",curr->w.edu); f; [# T ^! C0 ? O' B# ^
printf("职工工资:%d\n",curr->w.wages);4 V9 K" Q9 D6 }* e& w, f- Y
printf("职工住址:%s\n",curr->w.adr);; U# ?+ Z( ]1 V# k0 u D* J# o% F
printf("职工电话:%s\n",curr->w.phone);6 ~ b# ^4 n m8 J
}1 Z( }' g7 A, W3 P0 Q
} /*录入职工信息*/
$ d! |' J+ B- E: ]4 G% d, pint add(PLINK p)- j4 I5 o4 Q; b* S
{
/ N: U# u8 P. X/ V- k8 W( iPLINK h = NULL;8 K: s8 f. `; z, i; ]8 `
PLINK q=(PLINK)malloc(sizeof(LINK));
. }: F1 H0 }8 C* Z, mif(NULL==q)
. G" u& A. }" \{
0 U0 R* y% Q" {5 L( {6 b( [printf("录入失败提示:内存不足!\n");% v. s9 c, Y& r; J! f* x( [1 n/ P7 x
return 7;: K l& n' G: T' o0 R2 Q
}
" w' ?2 n3 s. d1 a8 e! |2 K! Mprintf("请输入职工号(数字):");
! m' C4 e( ^1 w2 Dscanf("%d",&q->w.id);
( \. B& e, T& {0 Xh=p->next;/ W/ b7 q; ~8 @! E9 t6 D8 H
while(h). c5 t1 [5 i& c' g
{
/ \& c' N) h, J rif(h->w.id==q->w.id). ] E7 D% E `: n9 J5 b& Q0 |
{& B! J* w- M; K- Z( b+ p4 t7 M
free(q);. ?4 w+ [1 K# l% N
printf("录入失败提示:此职工号已经存在!\n");
3 A4 W; \7 n8 c8 ^return 7;' A5 L, a3 A6 H8 C" |
}
- z8 e |, l- o4 m, R/ U. ^ Yh=h->next;, Y$ B! G$ ^* g0 _0 O9 a- v" r# X9 ?
}
" U$ y# Q: e ^. f% d+ J; Kprintf("请输入职工姓名(文字):");! J) T+ D' }) e& P( v
scanf("%s",&q->w.name);6 g( I+ e9 L' _; k. o/ ~2 ]7 r
printf("请输入职工性别(文字):");) {$ l0 p6 b& b- }9 Z: }8 M
scanf("%s",&q->w.sex);
$ m9 h9 S! ]7 k7 _' Zprintf("请输入职工年龄(数字):");
- y! s' [) y& m- S! ?/ h- a. q- bscanf("%d",&q->w.age);3 x- H; x' `. i& u
printf("请输入职工学历(文字):");( e6 |, }( U& S
scanf("%s",&q->w.edu);
) F. @7 y' @3 Kprintf("请输入职工工资(数字):");5 ~+ Q, m+ A v) [
scanf("%d",&q->w.wages);7 W' N6 ?5 B) h( h2 X# n
printf("请输入职工住址(文字):");
) s+ J4 i+ r) q8 {/ T1 `scanf("%s",&q->w.adr);
% H5 h7 l+ ^" C6 Hprintf("请输入职工电话(文字):");. k3 ^* e d# X# g2 F
scanf("%s",&q->w.phone);5 g- w6 K. F5 z1 m% I J
q->next=p->next;4 P7 L( |9 g3 n( O* l* u
p->next=q;9 l' z2 r' V6 Y: J2 }& x
printf(".^_^.录入成功!.^_^.\n");
! u$ R/ F; d j/ areturn 7;3 G+ Q2 s' r w: d" y
} /*按姓名查询*/
3 r1 j. N) ?" K) i' ]3 oPLINK findname(PLINK p,char *name); @/ @" N1 V/ j: _$ W+ D: G. T" f( v0 r
{
' N. c Z2 W/ r9 u2 [( R1 ~) c2 |" umessage();
: S9 u1 J/ |! Gprintf("按姓名 查询\n");% G1 K6 u# k- i& |) R
printf("职工号\n姓名\n性别\n年龄\n学历\n工资\n住址\n电话\n"); m4 t2 l' D+ Q7 ?6 |
while(NULL!=p->next)
" r" |; ]3 F+ ` ?' L/ Q{
0 ?8 b0 I& z- u5 F/ z x; fif(0==strcmp(p->next->w.name,name))
. f; _) n$ A! o' ]; `& d3 y% Z3 d{7 z* F, Q3 N# W# }7 a
printf("%d\t%s\t%s\t%d\t%s\t%d\t%s\t%s\n",
7 i" K( j( K( y) Tp->next->w.id,p->next->w.name,p->next->w.sex,p->next->w.adr,
1 I/ _! A9 `6 E* m* O9 [p->next->w.edu,p->next->w.wages,p->next->w.adr,p->next->w.phone);
+ [' i. q+ H* F8 t7 ereturn p;
& m4 B. S; B+ R8 A* @2 Q" D& a}5 u4 g, D! p) ]& c' h
p=p->next;5 h+ C2 W" h# f; Z& r; W
}: d* X% m6 ^+ B7 Q3 u6 I: G
printf(".^_^.查询结束!.^_^.\n");* _, j, K$ L: a4 D
return NULL;4 `3 M0 H6 s+ l. ~% H5 q
} /*按职工号删除职工信息*/( j/ I9 B. V" @0 x
int del(PLINK p,int id)1 A! G+ D4 W* V! x& s
{
' X f) k; v/ g: bmessage();
0 N2 y% a/ K2 a8 @: Tprintf("按职工号删除职工信息\n");
% B/ l q$ z3 |1 M, i# H! awhile(NULL!=p->next)
& j2 S# J' [% [: ?$ W* V# E' ]{1 N7 J5 q7 x6 X; J; O' t
if(p->next->w.id==id)
7 Y* A( ^8 R# I8 p( ?{: h* a1 v# K: [! E
PLINK q=p->next;( b" J, |( I) Y0 r: ?1 P: `. L
p->next=p->next->next;, [, G1 C; a, \
free(q);, I" s4 M* j3 ]- Q
printf(".^_^.删除成功!.^_^.\n");- U. t5 q# m% B) M. |
return 1;4 g8 _1 a: J* |! W& s
}" M: B+ c8 C+ N; e- r
p=p->next;# w- a8 I6 ?: C% z& |; U5 W
}& X5 r/ Y& ?& p$ p) w" m
printf("没有你输入的职工号!\n");
* S. ^) b+ ]6 |5 `& Qreturn 7;( D5 h) K u' v% q d
} /*程序结束释放内存*/
- T% O9 ?8 y8 [, Vvoid release(PLINK p)8 q' W" b# R5 |1 _# \$ S1 h9 o! D7 J
{
, {8 C2 M" T( |' Z, x( v) JPLINK q;1 c( l. P n/ m! _7 V6 P) ]
while(NULL!=p->next)7 a' y0 r: `, _4 i4 d
{/ h2 Y0 D) z3 u' }
q=p;
& I: H7 F; L! C" R+ U% Fp=p->next;" W- s7 M4 ~7 E( E8 ?' @5 b
free(q);& D# V) [! x/ R1 q& ~
}
$ l5 ^; Q$ g9 N! afree(p);. R( H/ k" s0 N# O1 B4 k) h
} /*查询调用*/
( K: I' n' o4 `: o. E+ r2 v. evoid search()
3 b1 h" ]8 Q' v& \2 D! U9 l{
( E! q8 h% T! ]) q) Eint id;6 H: s$ ]& \& N' a6 c, ?% l
char name[20];
' B E, |6 y) kchar str[20];
0 h5 ~8 D5 ]. k" [& R4 L1 TPLINK pworker;
6 O' T) n/ e; I# `$ _int l;
* k) b' W. F9 s2 h+ {printf("\t\t\t\t*姓名查找按:1*\n");
1 k" x" a! t# G+ ?. U' x7 ?printf("\t\t\t\t*学历查找按:2*\n");3 ~1 P @( a9 L9 c) F
printf("\t\t\t\t*职工号查按:3*\n");
) K6 s! @6 B" M9 jscanf("%d",&l);
* p% {. E% ~, m- Mif(l>0&&l<4)
& j; p9 R [. R2 ]{switch(l)
9 m' Q- ?2 m# u{: P9 n, P2 t( h- I8 o0 m# ~
case 1:printf("请输入要查询的职工姓名:");' Z" b0 v8 s% [1 _' d# Z3 ^
scanf("%s",name);
7 E! l7 a) b* J9 W# x# yfindname(pworker,name);2 p0 j. u" i7 |& L/ s a" ~ S0 e
break;
8 u/ w. S9 s6 j. I$ w4 P- Xcase 2:printf("请输入要查询的职工学历: ");
6 l* P- E- I: s) d% o. Cscanf("%s", str);. L% P# |* J) S( i5 o6 B w1 l
find_sr(pworker, str);2 B- ^+ Z p9 r5 e& S
break;
* Q O* K3 O% Z* Pcase 3:printf("请输入要查询的职工号:");: S% X) ~8 y- E
scanf("%d",&id);
1 Z4 R$ _: L! g& A6 g( ^5 Bfindid(pworker,id);
0 Y3 Z7 s/ n. N |2 Y5 Gbreak;" k5 X9 |8 u9 w/ I/ _) W$ Z
}
' I3 `, k; N7 @3 v4 k+ y# Hprintf("\n\n选择完毕!!!"); \' N# J- K+ I2 T! O( e' @
}' o' s9 T" L% W# ` Y; F
else printf("\t\t\t\t输入有误!!!");0 P; S( v. `/ Q+ [% C# s/ X8 G3 y1 J
} /*修改职工信息*/
/ L! s8 y6 p% _$ ^0 f+ Uint modify(PLINK p)0 n1 \1 Z$ a. |
{ int id;6 V9 p+ m( g$ l' B
PLINK q;
* k# o4 A7 [, CPLINK h = NULL;
/ a9 C1 }/ M, o! uprintf("请输入职工号(数字):");
7 A0 T+ s# L. |+ @+ hscanf("%d",&id);1 J0 f. g9 Y* m! _, f
h=p->next; g; k6 h8 v# H- c, b
while(h)" o5 K0 |. M7 y# O X% k4 B% D
{
) r/ d5 K2 b& ~' x! R/ s( xif(h->w.id==id)) I2 Z ?$ h$ F+ Y7 ~! o ?
{) @$ B9 v- o5 b' A# j
break;* T! P7 @) Y3 y, q+ q5 u
}
4 }& h( B8 M, d6 g( M$ ?) H$ mh=h->next;$ a5 z6 X! k1 v' u7 Q- e+ Z
}# t0 m5 s% t* J% q, V
if (h == NULL)
8 p; e& w8 b0 ?; m" K* _- \{
/ D) z( J8 w+ jprintf("找不到此职工,请重试\n");
: ~0 J* T% C( V: Y: k' I) y! P' Rreturn 7;# W/ ?9 T9 \* }1 g& ]
}9 f; F" g0 T: l, O+ p7 V
printf("请输入职工姓名(文字):");
# N( f, ~* ^* |+ z$ B% C, @! Zscanf("%s",&h->w.name);6 _1 k7 s4 z/ F! o( h# A8 J' x4 M
printf("请输入职工性别(文字):");4 T- p0 Z; L* N' }
scanf("%s",&h->w.sex);
5 `: n' X! L. Z5 vprintf("请输入职工年龄(数字):");6 ~) ]- r2 H1 D/ \6 A
scanf("%d",&h->w.age);! p' \5 r7 z$ E" P/ M! Q
printf("请输入职工学历(文字):");
3 c9 y* N1 c" c9 w* c3 tscanf("%s",&h->w.edu);, h, ?) ]( }& o
printf("请输入职工工资(数字):");" {) t, A' ]7 C9 Q" q* D1 D
scanf("%d",&h->w.wages);' L2 z. [. t1 P! s
printf("请输入职工住址(文字):");
/ H7 f, p9 W, h2 ^' Zscanf("%s",&h->w.adr);
7 x, Y Q- ~8 H& o( yprintf("请输入职工电话(文字):");# M# M4 j' t: J- t* A2 Y! C2 O
scanf("%s",&h->w.phone);
' O! u0 j! W) h+ ^! Y- Uq->next=p->next;
7 `/ l1 r& z/ v% op->next=q;
. y9 d: K9 h0 b1 @4 X, zprintf(".^_^.修改成功!.^_^.\n");
& D' Y# Q6 a3 @1 l3 areturn 7;6 L; O, n/ Z* D5 ~" p" I( t) c0 p. T
} int main()7 q& S, g! i9 j; Q* S! o% H v4 Z9 u
{
. ]- g; R7 D. b4 c( a8 w
, p: [& a, I" J" v2 I U( L9 Iint cmd=0;
2 q# _! v6 `( e! i8 C! R" Nint id;2 _% l `' ]9 C& W7 N' U4 s' A
char name[20];
4 m+ t0 q4 R6 B4 n8 Schar str[20];
" i7 t0 B5 j1 xPLINK pworker;% D$ e9 J( I3 R, n- d
if(!(pworker=create()))
Q4 I! n2 K3 |7 |" ^{
( c4 P4 D: S W+ pexit(0);6 ?% k, s3 d7 `5 ?" i. l" u' U
}
# C! H% q5 M9 N% _; d. _# @while(cmd!=7)1 n+ z( i, Z0 R% H2 `
{
4 ^3 Q: v0 J" c# xswitch(cmd)8 u- a# O6 M+ c% P# i
{: Q0 R8 t7 ~) x T8 x
case 0: message(); break;9 k; a, x0 ~ A. E. }8 M
case 1: add(pworker); break;
2 Y" M& K% C$ Y/ y5 Q. Hcase 2: show(pworker); break;0 O+ v& x% g3 S1 q8 u
case 3: search(); break;
- o5 [( q$ H% `4 Z" _case 4: printf("请输入要删除的职工号:");2 Z: m2 `! V @& w; ?3 W$ P4 w
scanf("%d",&id);0 P Y4 u: T) E5 k: r
del(pworker,id);. D7 T- l/ v3 l- p" \, ?7 p5 `7 E, c
break;4 U5 {& z* v( w: m% m
case 5: modify(pworker); break;' [5 L0 ?. X o% x; ^+ C
case 6: message(); break;
/ n. l* V8 m4 Q( A}' w7 |! x. L$ p
printf("请输入操作命令数字:\n");4 C( a/ C% `% l* Q
scanf("%d",&cmd);
, X+ w3 m! F a, r}& ?' q* @# {! Y" M5 C9 w$ U
printf("谢谢使用!\n");$ |8 w5 G; [0 X I3 N d
release(pworker);! z n! R- y0 U9 m
return 0;( O/ ~2 Y$ y: }( V, g
}) @7 ~* N5 M' B
1 E: @( _# f3 k3 f: j* l" }9 T+ h
; I! I7 Z8 E: k4 D; R3 e v. n4 {这是职工信息表 能运行出来不过查询功能不行能帮忙看一下是什么原因吗。。再此谢谢了!
& v& R$ U! k! A$ d+ i* l: i$ S0 U: i" O
|
zan
|