- 在线时间
- 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>
3 o$ N" |( x, X#include <stdio.h>
3 \& p9 u" i3 O7 i* |#include <malloc.h>8 e! r2 v1 z1 t# B& J# S9 \2 m8 f
#include <string.h>
4 J# W Y7 m9 r+ ftypedef struct worker$ E! N8 P7 ]/ `0 ^/ Z' D+ \3 ^0 B
{- Q0 q) ]4 x$ z! o% V: S5 X9 Z$ o! ^5 j
int id;2 Q A$ \& Y# x7 O! Q
char name[20];
; h$ [" \, N' ^6 D' l3 C4 `+ g: qchar sex[3]; P0 x5 Z6 r; r* M6 Z/ A. D9 F
int age;
9 [9 c2 N3 n% m# v# M9 Bchar edu[50]; i8 X9 N9 [4 J3 v
int wages;, |8 b, {5 ^# q" D: O: @4 S, v5 v
char adr[255];. `9 r6 d {1 D7 s; }7 N4 L, A
char phone[13];& X. N- J$ h0 g6 a% y& V
}WORKER, *PWORKER;' G- S% m: j- w' {& ~) q7 `6 @
//typedef struct WORKER *PWORKER;
2 K; ~% Z* Q- V: N; _6 `typedef struct link$ `6 ?, w* h& M% R w
{& q3 d* C, A4 Z5 K# B1 w, Q
WORKER w;3 k; X1 e& c" a/ E5 |
struct link *next;4 s+ `/ [0 }1 W7 _/ {; w
}LINK, *PLINK;
) C$ f4 u9 T- c# p//typedef struct LINK *PLINK; /*创建职工信息链表*/! C, ^5 z0 }7 J8 y A! q( Q# y
PLINK create(); b- A* j. R0 t7 T. |
{- R/ @: S0 D( W7 \6 S# p
PLINK p=(PLINK)malloc(sizeof(LINK));& ^0 [3 O, A3 J8 Q& S! @ e: ~
if(NULL!=p)+ B$ _' T9 E* d r9 S# m1 e* i
{- Z, l3 m7 |6 ?4 V
p->next=NULL;5 G- g8 Q" T& ] [
return p;4 c. F) c* N7 l2 A
}, ~6 Z9 f" R; q9 V$ T7 u. p
printf("内存不足!\n");
, E5 s, `2 M; J9 a6 wreturn NULL;
3 C$ s7 H( t$ @9 w& V( C} /*显示程序界面文字*/- X% @& J! ~, q! B
void message()
3 p% w' y$ c* V3 H{ system("color 0f");/*设置当前窗口的背景色和前景色*/
* |* G! i. T$ {& L! m+ [/* 0 = 黑色 8 = 灰色
0 }& ?3 G- M; b1 w. m1 = 蓝色 9 = 淡蓝色
" d( H! O" x+ C8 }2 {2 w. J2 = 绿色 A = 淡绿色9 F. f* v4 S8 e* Z) C8 Z
3 = 浅绿色 B = 淡浅绿色
" p4 \6 H) y4 n5 D$ N0 o i4 = 红色 C = 淡红色' K+ Z9 U) M% }7 c
5 = 紫色 D = 淡紫色' q4 i- m, v4 s: X' X
6 = 黄色 E = 淡黄色' S* ^0 S3 P+ N" R* G' C( {
7 = 白色 F = 亮白色*/
+ w1 _- b/ o# U# M M- q. F: Esystem("cls");
, U% j/ K+ A, O o6 Xprintf("\t\t************************************************\n\n");
/ P" u* p) z0 ]7 \6 Oprintf("\t\t>>>>>>>>>>>>>>欢迎进入职工管理系统<<<<<<<<<<<<<<\n\n");
* q) H0 {; E6 Nprintf("\t\t************************************************\n\n");# r A7 N; C; f4 T" o. ]5 R! R
printf("\t\t ************** Choose Function *************\n\n");
* [" c9 I+ D" K! y! {: Eprintf("\t\t ************ 帮助 请输入:0************\n\n");6 f% A8 ~. @0 X7 P
printf("\t\t ************录入职工信息 请输入:1************\n\n");2 {4 y0 g- \+ j# a
printf("\t\t ************浏览职工信息 请输入:2************\n\n");: \; l; g* L% T
printf("\t\t ************查询职工信息 请输入:3************\n\n");
, A% G8 ?7 x+ i4 Z j' }printf("\t\t ************删除职工信息 请输入:4************\n\n");4 Z9 }5 q* U) P* S# W
printf("\t\t ************修改职工信息 请输入:5************\n\n");
" P" i/ Z& Q6 u" y. G8 hprintf("\t\t ************ 清屏 请输入:6************\n\n");
( j. b/ c/ U7 O3 }printf("\t\t ************ 退出 请输入:7************\n\n");4 ~ c. g: E& m& N* u
printf("\t\t************************************************\n\n");
" Q( ?+ [ ]; G( _ nprintf("\t\t************************************************\n\n");
- j# M/ r5 X* e! ?) P) m} void find_sr(PLINK plink, char* str)
5 P# \9 J- v! e9 e{
2 L4 h- f( R+ q$ `; wfor(PLINK curr = plink->next; curr != NULL; curr = curr->next)
+ W5 O$ F9 Q- T- z$ Z& T; i{
& ~5 ?7 r* F2 q+ z1 i; U+ f7 R5 sif(strcmp(curr->w.edu, str) == 0)- T: M, e4 p. h, S
{
$ x& g% g% o1 @1 Q# Rprintf("职工工号:%d\n",curr->w.id);
! ]: ]; Z5 w: N% G! ~& Vprintf("职工姓名:%s\n",curr->w.name);/ b! M& H/ A0 E6 J) r( H) Z! T
printf("职工性别:%s\n",curr->w.sex);- i5 v2 X' `2 z c
printf("职工年龄:%d\n",curr->w.age);
# E& F1 x9 V( M) x/ Z0 M, j; I( tprintf("职工学历:%s\n",curr->w.edu);; ?4 F+ ?$ |6 t" B0 P
printf("职工工资:%d\n",curr->w.wages);
% R: R$ S+ o, |- yprintf("职工住址:%s\n",curr->w.adr);5 u* }/ P5 ~% j& n
printf("职工电话:%s\n",curr->w.phone); }
3 o$ P( J) } |2 x! \4 R n9 F}- G, r3 N5 x: e! Q
} void findid(PLINK plink, int id)* q( u# V% J z3 @3 e$ g
{$ X1 Y9 B! T9 s: C/ G, Q% m4 b# t
for(PLINK curr = plink->next; curr != NULL; curr = curr->next)
: N6 p0 H9 Y% r0 K: k& F0 K{
4 V$ q( x3 a2 Z8 V# c% {4 sif(curr->w.id == id)6 W! W; \9 x- H( I' C' w; g
{0 S* J) T* I2 }- t) f' J
printf("职工工号:%d\n",curr->w.id);
9 V9 A# |& S( W3 sprintf("职工姓名:%s\n",curr->w.name);( I' H5 I: |) ^5 p. M
printf("职工性别:%s\n",curr->w.sex);+ c! @5 P3 g9 f1 L( L/ l( n1 T( m, _
printf("职工年龄:%d\n",curr->w.age);
. o$ c. \+ P9 D1 Y3 L/ Sprintf("职工学历:%s\n",curr->w.edu);
1 O5 K. ?8 \! fprintf("职工工资:%d\n",curr->w.wages);
; Q( h3 r. G2 a( |, Pprintf("职工住址:%s\n",curr->w.adr);5 W2 L. W- s6 ~9 X, Q' I9 u0 j
printf("职工电话:%s\n",curr->w.phone); }
f: F) e" {) {: \}
" I- P3 c5 `# ]' ~( N} void show(PLINK plink)
5 q2 s: p' ^# g9 e{ for(PLINK curr = plink->next; curr != NULL; curr = curr->next)# C( T+ c/ K4 M: K
{
3 B3 w" `1 v0 M4 E& @ o' G0 ?8 Kprintf("职工工号:%d\n",curr->w.id);
n$ x4 Z9 Y; L* cprintf("职工姓名:%s\n",curr->w.name);( p- d% I4 l) ?5 l5 ?
printf("职工性别:%s\n",curr->w.sex);! S2 j7 g: r# ]
printf("职工年龄:%d\n",curr->w.age);
* K# J+ y3 y; h* @printf("职工学历:%s\n",curr->w.edu);7 \7 ]0 y5 E3 G1 n
printf("职工工资:%d\n",curr->w.wages);& M' b- ~" C' _* Z# f2 R5 E8 M
printf("职工住址:%s\n",curr->w.adr);
0 R- q4 r9 p* n6 P4 ^- \+ Pprintf("职工电话:%s\n",curr->w.phone);
" ` s* u! l0 S7 Z! a6 @}0 G6 e$ ?: s( N( n: J+ Z
} /*录入职工信息*/
- v- J8 m( ^ E) Aint add(PLINK p)
) A- g q0 v0 R7 B' `{& Z2 y5 L0 e, W* C
PLINK h = NULL;2 s6 ]; x" x3 a$ D: p
PLINK q=(PLINK)malloc(sizeof(LINK));3 L7 ~8 ?' n- f
if(NULL==q)
) G( m# b, z5 c! D2 U5 {' n{3 N$ I8 C' o/ ?' j4 U4 W% j: R
printf("录入失败提示:内存不足!\n");
. ~' i. G9 p, |) G) Lreturn 7;
0 V e; U- H: @* A0 {0 `}
0 ~! ^/ v4 a& C$ i- iprintf("请输入职工号(数字):");- R- h! m' C. f9 i1 k
scanf("%d",&q->w.id);
( b; g% q' Z$ S5 ]2 Yh=p->next;* c8 ~2 u3 `$ o
while(h)
- i$ m+ `% H2 G7 c! {{7 Y8 t* W9 S: i7 F
if(h->w.id==q->w.id)4 P8 G: U4 j! K5 {0 ^& j
{
, r. U1 O! ?* i9 }% U* {free(q);! s* L; c' n/ h# j5 ]- O$ U* ]
printf("录入失败提示:此职工号已经存在!\n");
- _) ?6 A$ D' P6 D( p+ Lreturn 7;
8 v p$ G6 i5 H2 j}4 @1 y3 l: y" p
h=h->next;
2 e+ i# B9 q' ]" g- r ]}
6 T" U- A: S; V- Y$ yprintf("请输入职工姓名(文字):");9 B" F! Y2 ]2 Y; S0 v7 g% K! ?" C
scanf("%s",&q->w.name);# S- N* T9 n/ b7 \- W4 B
printf("请输入职工性别(文字):");) ? i' [% e% X% \- O3 ?& q- N; M
scanf("%s",&q->w.sex);' @8 S1 [& |6 d2 K, z" C4 f G
printf("请输入职工年龄(数字):");; o% I+ h$ k2 W1 y. U+ J; ?
scanf("%d",&q->w.age);
2 O- r& \ b5 n/ h* r2 h9 Aprintf("请输入职工学历(文字):");7 J! m2 q3 J7 ~% l+ @* P5 }
scanf("%s",&q->w.edu);1 u( \! q# @7 b" W
printf("请输入职工工资(数字):");
! C0 b; J( `4 @: j4 Z: Lscanf("%d",&q->w.wages);' ~7 k6 C% V! j7 w5 Y9 K
printf("请输入职工住址(文字):");" L' U. M* i, X& J. B$ T9 m
scanf("%s",&q->w.adr);9 @' I& i& ], T' P( C, G: E" G
printf("请输入职工电话(文字):");+ O- J& d6 |# i9 Y# o2 X
scanf("%s",&q->w.phone);
4 O+ w6 ~$ g8 l6 D, K/ p3 rq->next=p->next;
# m4 ~( Z W; G$ Mp->next=q;, T2 l8 Z/ Z( P
printf(".^_^.录入成功!.^_^.\n");5 W2 A; r) R: g" L
return 7;+ ^$ c9 x& z1 |) h5 p4 ]2 B
} /*按姓名查询*/3 m# i7 A" U* m D9 W' T
PLINK findname(PLINK p,char *name)1 c$ H. x' u1 C1 r8 u
{
% m N4 g' J$ jmessage();
. b! P* A& c3 y# K- Qprintf("按姓名 查询\n");' }( @# ?7 n" b
printf("职工号\n姓名\n性别\n年龄\n学历\n工资\n住址\n电话\n");' E. o# m4 ^- W/ s3 D4 N L
while(NULL!=p->next)
! u5 ^( G1 `4 i{
0 Y( c% ^. _1 H8 K3 y* V1 I, Kif(0==strcmp(p->next->w.name,name))
3 c3 B6 F( N4 r, q3 H; Q{
3 r9 z. G9 {* E) r8 l# z) k& Vprintf("%d\t%s\t%s\t%d\t%s\t%d\t%s\t%s\n",) y- B- g+ m: i0 J- u7 @
p->next->w.id,p->next->w.name,p->next->w.sex,p->next->w.adr,. x" g3 N# ]% ]' r- a
p->next->w.edu,p->next->w.wages,p->next->w.adr,p->next->w.phone);
$ P" j1 \$ f/ j$ Y6 q Zreturn p;% V$ A! D$ D: N: `# X- v; S
}$ S$ }6 V" }0 P! u" I1 I4 J
p=p->next;
1 K, ~" |& @! Q& }}
$ N6 B: v5 k4 Y- v- W) ?printf(".^_^.查询结束!.^_^.\n");
4 m4 k+ O) ?! |' V0 A- |return NULL;
# A/ _) W9 M' H} /*按职工号删除职工信息*/! q/ x8 L4 n. K6 l" J. Y) t9 P
int del(PLINK p,int id)9 H1 r+ f6 ]! L/ G+ J9 _
{/ G2 N. z9 {+ B/ G3 ~
message();
s% {9 h4 i4 l9 ]printf("按职工号删除职工信息\n"); o* l& m4 _! h
while(NULL!=p->next)' I T7 B' s% }& F# `
{
0 r& d q& [6 W: \$ s* i: \if(p->next->w.id==id)
- I3 L& _, r+ D5 i) d2 N! P{ ]2 v$ q" p: t9 ?) @' C/ r
PLINK q=p->next;# n' D$ R+ `. K
p->next=p->next->next;
- {% X/ _, J1 I9 \free(q);
c5 B, c& r' N' w1 d9 [3 dprintf(".^_^.删除成功!.^_^.\n");
( Y- w" L- s) v! i' qreturn 1;+ D4 l1 [& t% j! n+ k
}5 X6 X9 G) O8 N" q
p=p->next;
# y0 }) a, l* L4 x2 e" b9 ]6 n}
5 K: q) K2 t2 v! |. c% sprintf("没有你输入的职工号!\n");
$ q% h* ], N) B8 ~return 7;; K; v% | _5 K! @0 g
} /*程序结束释放内存*/8 C8 y7 i% N c2 }
void release(PLINK p)
+ \9 c0 v, z1 `% b$ `{
# b! E$ A+ t( \2 h, c+ XPLINK q;$ Z" f# K% L7 z# W4 s3 z) }0 D4 g
while(NULL!=p->next)/ u; M, q/ S% \; x- @, E. W
{
9 ?" n; Y( ?$ O2 T% f2 Mq=p;$ |5 H. J3 D8 _6 J; H
p=p->next;
: b; h' t9 l$ c# qfree(q);* R5 [( \ D* C0 O" t( H, y
}" z( `7 E7 r; m- B; m7 n0 Y1 F7 `
free(p);% f' ~, [( T" f# z. ~
} /*查询调用*/
. B5 q/ x3 i+ r1 [' m# Gvoid search()! q* M* {" k. K. {8 g4 ^ \% K
{
2 H# r# K- E, jint id;. c$ _# c/ u: f: H2 S N5 P
char name[20];
6 K5 q t9 H. e" R6 H1 _ tchar str[20];1 g1 p0 ^" a. Z' [; {9 G
PLINK pworker;/ P6 Q3 ^3 T/ X0 {
int l;
! d7 A9 r8 x' b& \& R, v/ Hprintf("\t\t\t\t*姓名查找按:1*\n");* p, H+ u9 m! ?
printf("\t\t\t\t*学历查找按:2*\n");
' _& Q6 U4 L. c" _: E3 _printf("\t\t\t\t*职工号查按:3*\n");2 O# }* F: N' q$ h: j2 O, P
scanf("%d",&l);
9 r* C, x- q" F" O# y6 b3 \& kif(l>0&&l<4)
+ n/ |0 f e! r, K# t' _% ?% I{switch(l)& Q7 d! b A% c' _
{
7 ]/ R7 [, E2 ~9 v1 Fcase 1:printf("请输入要查询的职工姓名:");
7 Z. u" Q. C9 ?; rscanf("%s",name);7 B/ {) ?* n9 a" G
findname(pworker,name);6 C( Q& \9 w3 {1 S$ R) x
break;
/ W+ r2 j8 V$ v7 i, x7 F) F6 \$ Dcase 2:printf("请输入要查询的职工学历: ");
+ ~$ `' `0 S& B" Rscanf("%s", str);# y% U/ \$ x+ S. c o/ R5 _
find_sr(pworker, str);/ t6 N* ?, X( D& r4 N; i$ [* a4 [+ T; p
break;
4 ^" f5 @0 y- p. Ycase 3:printf("请输入要查询的职工号:");
2 N5 x/ w* f2 E9 {% Fscanf("%d",&id);
9 c' ^. l: K4 Lfindid(pworker,id);. ? r0 @1 `* Z
break;
1 c1 {! @7 J4 x5 i}" d$ q1 t& W" n8 ?' j
printf("\n\n选择完毕!!!");
0 n( q6 R- m+ P2 P# |+ y}! \: M! F/ o/ u* T; i
else printf("\t\t\t\t输入有误!!!");; U, A$ r" \( H6 M4 Z
} /*修改职工信息*/
A: Q* H/ K1 ^4 B, ^8 ^7 c* bint modify(PLINK p)
0 u3 ^! m. ?0 A. x" x5 b{ int id;
: K; L! h: L/ ~PLINK q;
/ e2 @2 D9 m, r; S# A3 }PLINK h = NULL;0 X2 D& a) @) i5 n. M
printf("请输入职工号(数字):");
8 Q/ Y) @/ o$ y& |scanf("%d",&id);
0 L1 ]: K3 z0 u7 b* ph=p->next;
" L' S) d% u0 }+ xwhile(h)- B( b" @9 Z/ a8 z
{
. v3 D8 W$ g- Fif(h->w.id==id)8 W* X: s3 @, i4 F. h0 b$ k+ M
{
" ]% X3 g% s; N0 ybreak;8 |1 q+ m: D0 `1 h) S# R
}
0 Y2 ?# o* c8 ?, Y4 Ch=h->next;7 K) c2 ~& |" t! m- o4 M
}" Y$ w7 O4 J$ {+ b
if (h == NULL)
) j9 T6 V9 L+ L$ f. X$ o{$ y2 s2 @ w" q1 A5 P7 w
printf("找不到此职工,请重试\n");
+ I" O1 E5 E; Creturn 7;
+ o5 \" n0 L J2 |1 S}; b! w* { I- L! H
printf("请输入职工姓名(文字):");( @ J& B* d" S
scanf("%s",&h->w.name);; c \4 {6 M% ] H
printf("请输入职工性别(文字):");' p& H9 E" d6 E& p+ y# p- m
scanf("%s",&h->w.sex);: l* o5 u) \' d1 |' q1 e2 u6 D' ^
printf("请输入职工年龄(数字):");
- ^7 g0 Y* V( `7 q7 Qscanf("%d",&h->w.age);- }" W) W( s) n( h; k
printf("请输入职工学历(文字):");% q8 E3 W! U6 @! d% d
scanf("%s",&h->w.edu);
( d' v& {9 x( H; ^printf("请输入职工工资(数字):");! Z- T4 D$ F8 Z; V2 a5 ^- b
scanf("%d",&h->w.wages);' z: m- j9 F9 h. W" l
printf("请输入职工住址(文字):");9 a' Z/ `1 m5 L8 n; Q
scanf("%s",&h->w.adr);( N0 ]: s7 s# s0 o2 l* ?; @8 h! h
printf("请输入职工电话(文字):");; p0 F% _8 p. S6 Y* U" ~( A: n
scanf("%s",&h->w.phone);
$ |/ X( q) q8 S" q- ]q->next=p->next;
. r, F6 c3 D: v& [p->next=q;
9 a1 R2 i3 b8 k% c+ _( Pprintf(".^_^.修改成功!.^_^.\n");
# D! W. ?. }$ d3 n' ?0 P6 Z7 wreturn 7;; i! w+ E% B% F& [
} int main()6 [, j. S- |0 x/ c4 j, n
{3 Y/ H: w/ u. B$ J& R: z
4 \+ e7 j6 t3 m4 G0 H) fint cmd=0;
+ x7 R; J5 B6 Y& o5 C4 S5 ?int id;* o- N/ d6 S' p' |% g
char name[20];- h2 `( O1 X" m* |, e6 }! n4 K p: \
char str[20];2 S$ _' W ]6 J$ _1 u1 U
PLINK pworker;
I- O1 V1 D9 `if(!(pworker=create()))1 i" `8 ?% }9 |& M) g: C
{4 d# A$ A, V4 k0 _( N
exit(0);
$ P$ d. c- U; f1 x" v! s}! w7 k/ }& J+ f% y& D% Z; p
while(cmd!=7)& r H8 D( `% T2 g4 S- D/ y8 Y; K
{& W% T p+ q( n; f# m# R6 T
switch(cmd)
% e/ a3 S# K7 J2 D" b, M{
) F5 v5 { U0 Ocase 0: message(); break;6 ?+ l: e' T2 d$ t; |2 e& o
case 1: add(pworker); break;
, A- [$ d. w1 Rcase 2: show(pworker); break;
0 K6 b- x8 w0 }: a. I0 D! mcase 3: search(); break;
1 q; v6 ^ l- ?( b o; o2 f9 \1 u, Hcase 4: printf("请输入要删除的职工号:");
% L, K. g1 A ^- x2 oscanf("%d",&id);# u0 L* D; ]; T. C5 q0 Y7 Z
del(pworker,id);
+ g4 n$ |# P6 a0 pbreak;4 m, O5 o) ^( c0 y3 O
case 5: modify(pworker); break;
, g+ ]/ R, Z$ O% r8 acase 6: message(); break;
* \; T5 E, P I8 t$ E0 \. W}
4 S. y1 l# P+ q% _( V4 A fprintf("请输入操作命令数字:\n");7 C% d0 G0 f4 B; Z+ J, ~. _
scanf("%d",&cmd);6 ^" l; j }4 T
}
* m# w) Q8 f' D2 h! K' t& K# _printf("谢谢使用!\n");. }$ u& ?) J4 q& h* O
release(pworker);
3 V @4 ]) a. U- D S' \3 Areturn 0;
( r3 T( L( S5 |' M' w) z4 G}
+ A. y7 u# u. n1 C8 C. ~
; u. K' c( C% a2 \: N ]* V; s3 x$ ^" @; C! s
这是职工信息表 能运行出来不过查询功能不行能帮忙看一下是什么原因吗。。再此谢谢了!' i, F1 T6 H7 X- v, _
' q8 {1 m! m6 J
|
zan
|