- 在线时间
- 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> c- {* i: w/ h0 i
#include <stdio.h>/ }6 b" D0 m9 W) o1 F
#include <malloc.h>, E( G% Q8 F# y$ T* V. M
#include <string.h> / {% j' M/ A" f, D3 ^5 b
typedef struct worker
% t9 P& t4 P$ [( S7 Z+ q{
9 `8 t; p% C9 P* mint id;& a! ~. Z0 o% {+ {. k, n
char name[20];$ x7 i8 `4 N. T2 ?- O6 x O6 e
char sex[3];
% [: p, D+ K3 y% U/ P/ Q; J- O: S7 pint age;; x' ?. G/ h" `- Y
char edu[50];; _/ i0 A9 O3 v! t; _# N
int wages; t5 B3 ^: b( ~9 n
char adr[255];5 c6 M8 N) U) K" G* l
char phone[13];. r( N9 R. A9 I1 W* S: ]3 v
}WORKER, *PWORKER;' E* m- I# S( t& A4 w
//typedef struct WORKER *PWORKER;: I0 d( ?5 f$ I# X! r( Z. w, B* ?. A; C
typedef struct link6 p, F, F. P1 {" C+ s
{
1 ?3 t5 O/ U1 c0 k6 e8 {WORKER w;
" z o/ u' {: I! Z+ `struct link *next;
7 W6 S% P; T0 [- ~! m" X1 h2 \4 B}LINK, *PLINK;
$ Y$ t; B0 S' l: V//typedef struct LINK *PLINK; /*创建职工信息链表*/) Z2 z8 h- k% ?3 I/ ~: W* L' i
PLINK create(). O" j2 o0 `+ ?; K! A
{
9 f0 c9 P2 D `# C. l9 Q2 t5 sPLINK p=(PLINK)malloc(sizeof(LINK));, s9 A5 p3 q" k. O4 Y6 v
if(NULL!=p)1 y( p. |7 l# h1 _
{% e3 N0 L; P+ k+ s
p->next=NULL;
' g" c+ V/ t+ R5 V0 W0 d- }return p;
7 |" w4 H' Z4 C% I5 \% W}
/ q$ _# R$ Q7 g+ Qprintf("内存不足!\n");
& A3 _! I# y, m+ [0 X8 e0 ~% qreturn NULL;( i1 m# L$ ~# l3 ^8 X: ?- k
} /*显示程序界面文字*/, L* N+ u1 ^$ T0 p
void message() o8 m% V* L* O% x+ S- \. C
{ system("color 0f");/*设置当前窗口的背景色和前景色*/
. ~+ L; ]' y: ^5 {& z0 o, s/* 0 = 黑色 8 = 灰色; |1 R/ \9 @, H, W6 P$ j
1 = 蓝色 9 = 淡蓝色
% g# Y4 b7 u$ p( d) F+ k2 = 绿色 A = 淡绿色% r' l' a; a$ j* H8 Y' J4 _, A* ?
3 = 浅绿色 B = 淡浅绿色
; U9 I# V n% F' d `4 = 红色 C = 淡红色
4 s/ K! e4 d" ~% L' x% t5 = 紫色 D = 淡紫色
) ]' ? N/ c$ {7 u6 = 黄色 E = 淡黄色
* Z! V/ Z) w: i, }6 j7 = 白色 F = 亮白色*/0 v! v3 d1 v8 ^- `
system("cls");
: A+ t) R- k5 E: Wprintf("\t\t************************************************\n\n");" N. B" E# n! k8 d. [
printf("\t\t>>>>>>>>>>>>>>欢迎进入职工管理系统<<<<<<<<<<<<<<\n\n");
, J3 c2 h- l8 R9 qprintf("\t\t************************************************\n\n");1 r6 ~# S! \6 Z( \$ ?: g& f2 _6 {
printf("\t\t ************** Choose Function *************\n\n");
^$ G/ W5 {% j' m4 W% m% Fprintf("\t\t ************ 帮助 请输入:0************\n\n");4 D: Q! b% p+ v; z7 J$ ]
printf("\t\t ************录入职工信息 请输入:1************\n\n");
8 m" d6 l$ l% ]/ n3 t* Qprintf("\t\t ************浏览职工信息 请输入:2************\n\n");
: Y- T. b5 [& O2 H: aprintf("\t\t ************查询职工信息 请输入:3************\n\n");5 S, }* i) E0 z9 p2 I- [, T# J1 s0 O8 _
printf("\t\t ************删除职工信息 请输入:4************\n\n");
8 A' h2 C' k- W* O+ gprintf("\t\t ************修改职工信息 请输入:5************\n\n");
- S; f( ^5 L+ A' c" I- ^, `) O* rprintf("\t\t ************ 清屏 请输入:6************\n\n");
- a+ E6 Q) a9 pprintf("\t\t ************ 退出 请输入:7************\n\n");* v4 `: S+ ^8 \3 S. H/ h
printf("\t\t************************************************\n\n");
) I- s& p, P. Q- Tprintf("\t\t************************************************\n\n");
; i; w$ W% l% B. K) A9 U} void find_sr(PLINK plink, char* str)/ l2 @, @3 s% y" C- b
{& a0 q( y, @1 G( w4 i0 w1 h
for(PLINK curr = plink->next; curr != NULL; curr = curr->next)
% \4 T% c2 l; k% y+ e7 ?# w' i{# P( l5 B9 _, b k# r" l
if(strcmp(curr->w.edu, str) == 0)
, H1 `" A4 l% X# F8 ?{
) `, F6 E1 d6 yprintf("职工工号:%d\n",curr->w.id);
4 p8 a0 q/ k8 ^4 _7 `) `- [1 M) Vprintf("职工姓名:%s\n",curr->w.name);
; T, N5 `. u" w8 W1 M3 H( v7 Aprintf("职工性别:%s\n",curr->w.sex);2 ]& M2 L5 C+ ?9 l
printf("职工年龄:%d\n",curr->w.age);
! ~/ M" \& F" q! e4 `8 eprintf("职工学历:%s\n",curr->w.edu);( x& w% J1 {3 k$ S# u
printf("职工工资:%d\n",curr->w.wages);* Z( x) s& I% u& `
printf("职工住址:%s\n",curr->w.adr);) V. c/ C* u$ `, ^8 m
printf("职工电话:%s\n",curr->w.phone); }
, r! } j0 y/ O5 A& i}) L) B6 F6 D; `/ {" f( U1 M
} void findid(PLINK plink, int id)8 H* X, x4 z3 V' x
{
4 c( t! b* e9 K4 g5 |/ M: A) h; ]9 p( Dfor(PLINK curr = plink->next; curr != NULL; curr = curr->next); h$ |3 J+ Q8 w# w0 D
{
+ k" T, ]5 h' }* u% Uif(curr->w.id == id)
" d p7 y X& C) i' {{
9 M& i" H3 R1 D7 @" Uprintf("职工工号:%d\n",curr->w.id);* r" n/ r! p1 c' y, C
printf("职工姓名:%s\n",curr->w.name);- w. ~1 _# K2 Y3 u; I
printf("职工性别:%s\n",curr->w.sex);
; x3 F' \% X3 i2 ^; Uprintf("职工年龄:%d\n",curr->w.age);6 m% r8 ]& L# k' T% B
printf("职工学历:%s\n",curr->w.edu);3 \7 A6 r- _3 I/ w9 }- O- u
printf("职工工资:%d\n",curr->w.wages);
& s# T- g G Lprintf("职工住址:%s\n",curr->w.adr);
; _& I; _& _% _, v( Vprintf("职工电话:%s\n",curr->w.phone); } r+ e* |7 N- a
}
% c# |, l. V& t0 G} void show(PLINK plink)
- Z, N8 c5 X7 z2 T9 p( ~; d6 ~{ for(PLINK curr = plink->next; curr != NULL; curr = curr->next)( c" I4 {# C3 o4 J
{9 s" D+ [4 c# i& j/ Y# [
printf("职工工号:%d\n",curr->w.id);
0 P) U2 w( i* }/ x# j' L2 pprintf("职工姓名:%s\n",curr->w.name);
1 o4 n) h8 }: q; `8 n0 Z2 Eprintf("职工性别:%s\n",curr->w.sex);# g+ d) V3 P0 ]/ b' P5 d
printf("职工年龄:%d\n",curr->w.age);
/ b( s$ U- H! yprintf("职工学历:%s\n",curr->w.edu);
, J, `# _. W& N+ sprintf("职工工资:%d\n",curr->w.wages);* i; E) f6 w& m/ P+ N& d
printf("职工住址:%s\n",curr->w.adr);
- `- \/ W* P2 A; |/ t( A, fprintf("职工电话:%s\n",curr->w.phone);: `0 V3 \& ?/ C" l2 K2 Y8 F* K& }
}
8 Q8 F4 a6 e5 n' H: Q} /*录入职工信息*/7 Q1 }7 Z# s: n$ h E" O; @
int add(PLINK p)
: v& t/ \" M/ W; ^1 | S% e{8 R, T7 I. y0 v2 e% C
PLINK h = NULL;+ h- T9 m* e5 P! v: v, ?8 f
PLINK q=(PLINK)malloc(sizeof(LINK));
8 y/ G2 g7 x/ O" Z# V. zif(NULL==q)
$ B* E& N0 b; P; T" U x8 n{
+ e6 R7 l% s% Q! V! `0 \printf("录入失败提示:内存不足!\n");0 ^: G; q4 C1 K8 D a
return 7;
& u6 v0 W, d* o( q+ `}, s( ?9 _, f5 \2 A& p7 Q8 G
printf("请输入职工号(数字):");, x! |8 p# E7 k1 b2 l; N |
scanf("%d",&q->w.id);
! Y" t! r( i8 D( j: O qh=p->next;' M$ t; L' U6 e$ p% ~- ]; l
while(h)& @" D+ Q9 n. T% g7 |1 l% d6 S- H9 n; Q
{5 T4 Q! A& a: B$ O* {. _$ g- C" l+ m3 g
if(h->w.id==q->w.id) }% M% k; P* y* \( g% P
{& c* r" T) g) J* Q0 G
free(q);
; S4 A( j2 ]3 _1 e/ i1 J7 Tprintf("录入失败提示:此职工号已经存在!\n");
2 t0 V% Z" [3 x% v6 a' D5 X0 ereturn 7; C6 B+ t/ S! K
}
9 q+ K8 _4 G3 }1 ^h=h->next;
# G" X4 I! Z7 g# g$ Y" u}
+ b- c# ^5 u% U) ~! L) Dprintf("请输入职工姓名(文字):");$ P6 S/ J4 C' ?1 o0 Z# A
scanf("%s",&q->w.name);+ I1 K. V4 N! F0 z" ]* d* [
printf("请输入职工性别(文字):");
T; z% _) D/ V. T& m5 Rscanf("%s",&q->w.sex);- s _9 h$ a1 Y
printf("请输入职工年龄(数字):");
/ w. i2 q# q+ T# {3 g( t z1 @+ m1 jscanf("%d",&q->w.age);
- `( f* {# m0 |printf("请输入职工学历(文字):");9 o$ q* n' b1 n# k6 J2 r6 W; J
scanf("%s",&q->w.edu);3 r9 M% M. k. c5 N; v( _- f
printf("请输入职工工资(数字):");
" P3 \& w, f, ~scanf("%d",&q->w.wages);3 C+ h' Z2 o) Y7 b7 R9 J( j1 j
printf("请输入职工住址(文字):");; H1 X8 {2 ]8 _* ]
scanf("%s",&q->w.adr);9 E( @) D B ?
printf("请输入职工电话(文字):");
9 b u( y+ F4 \% W# yscanf("%s",&q->w.phone);( ]! Z ?( R- s5 [" A
q->next=p->next;
1 N7 g! ^- j7 P9 Q, j# K' [p->next=q;8 B3 [3 [# o9 i/ q. ~
printf(".^_^.录入成功!.^_^.\n");
9 f/ ?4 m$ P' }$ ]" @0 ]return 7;0 j9 B0 R3 W `2 r. O6 Q
} /*按姓名查询*/1 J4 S! x5 C2 Y( E! t
PLINK findname(PLINK p,char *name)
p! ^) ]2 M9 N{
! s# v* G x( W/ W' Lmessage();+ D% F% Z7 k% w2 O+ A$ U5 n! d
printf("按姓名 查询\n");
* Y6 t( C. r, y7 xprintf("职工号\n姓名\n性别\n年龄\n学历\n工资\n住址\n电话\n");
- b2 ^6 o7 O2 o( Jwhile(NULL!=p->next)4 [, k$ i# i6 A9 ?5 } e! T7 v' z
{
8 h% K0 v2 ~ z0 e! x$ a5 |3 \5 ~if(0==strcmp(p->next->w.name,name))7 M# Q+ L$ t+ V+ ^( ~0 o
{
4 J" a9 K& I0 f) }! K8 G kprintf("%d\t%s\t%s\t%d\t%s\t%d\t%s\t%s\n",* J# M( G) _% c9 j- V" F
p->next->w.id,p->next->w.name,p->next->w.sex,p->next->w.adr,
- g' X A0 l1 Q' K8 m) D% J+ wp->next->w.edu,p->next->w.wages,p->next->w.adr,p->next->w.phone);6 s( r* n$ n& I
return p;
1 U X7 ?/ [* H( `" w' D+ ~$ L8 i}" b9 g, W# j" w# q
p=p->next;
* K8 ^. J! N- E( s}2 N5 V( ]* a% \7 u
printf(".^_^.查询结束!.^_^.\n");
& E! Z! p6 `8 z3 D# `return NULL;
% E* e+ y, J5 z: T6 @' X8 b' l! a} /*按职工号删除职工信息*/
) ^+ \% ]; _, R4 Y' U$ Jint del(PLINK p,int id)
$ g' W% b6 X3 x) }: b0 z{
! D. B( a1 o6 N# Zmessage();
7 r! O e1 A7 \: Kprintf("按职工号删除职工信息\n");% R+ E( X/ y0 j- L4 j6 l
while(NULL!=p->next)6 }2 V) } F8 ] H3 v- g
{
0 O* l: _* n' o' X- h% I+ Y6 q6 lif(p->next->w.id==id)/ P. c$ ?1 O/ p6 V
{& f$ ?9 W/ ? Z2 r ~& i% s0 L/ f
PLINK q=p->next;0 D5 ?7 b% e4 i
p->next=p->next->next;- D8 {" S" n, B3 j( R- d r
free(q);0 X7 Z! U% O0 t: ~& v. i
printf(".^_^.删除成功!.^_^.\n");! ?1 W# W3 u, Q3 ]! p/ u
return 1;3 m2 l. v$ M3 [: N+ D3 Z
}2 l' p% o2 s" s' n) T+ M3 y
p=p->next;
$ j" |7 n5 H1 N; ? ?1 `' n6 Q4 l" `}9 ?1 H- b' c$ \6 o
printf("没有你输入的职工号!\n");
( E" t. d1 w3 w i) w1 i6 Jreturn 7;
# r6 }8 p( o0 o' n2 e/ J/ y} /*程序结束释放内存*/
8 a; n: Q+ {( Z* r, P; `( i6 evoid release(PLINK p)0 z( @3 Y+ j% v/ @) D3 j) U
{8 C" q( b) u, ?4 Z
PLINK q;
" V4 _+ W7 ]' { [while(NULL!=p->next)
0 R/ }0 v" K4 y9 K) o; a" a0 |/ l{2 }2 `$ V# v F0 w0 }7 ]" c/ b- H) t
q=p;+ K+ k! _; ]! [1 D9 H
p=p->next;+ r! @5 p' I7 |6 w% z
free(q);
f$ z# g3 T2 e# i+ W% B" [}
! x/ ]9 X! a5 d# u$ U/ Ffree(p);/ J2 z0 l j2 W w; Y% g' [: Y
} /*查询调用*/
, i8 _- }' X/ f( C: k- Zvoid search()9 @8 x+ }. O( W" A' K$ _5 `( `
{" V' H; D# e! B6 _
int id;
8 f6 r% D9 ^* W" B0 L _char name[20];. I! X8 x6 c$ Q: l; u6 _
char str[20];
* f7 S8 S. b& M- M* R/ ?PLINK pworker;
- y1 `) G* v6 e0 |: @$ Oint l;
* |/ `& ^7 G; g* Iprintf("\t\t\t\t*姓名查找按:1*\n");
7 A& `) E" C j: h( I+ q; A& Jprintf("\t\t\t\t*学历查找按:2*\n");; a6 L+ ^) R; c; U
printf("\t\t\t\t*职工号查按:3*\n");
2 h, K6 b$ p3 w5 I) C- d4 O2 \scanf("%d",&l);4 B6 a/ t$ E2 ?* L: S E9 p# i
if(l>0&&l<4). [- x" c: M& f" Z& |' Z ?
{switch(l)2 l h/ }1 L, t# h* E
{0 [! a( i) y4 I8 s5 @- f7 y8 X2 Y
case 1:printf("请输入要查询的职工姓名:");- a4 T- Y( V# i/ Q+ I0 D0 J( g( ~
scanf("%s",name);
* D/ }& Q7 t# m$ u2 ^findname(pworker,name);
4 M; ?/ J# }# }! B3 K' Gbreak;
f* P0 a, e8 n0 |' R: rcase 2:printf("请输入要查询的职工学历: ");4 s! I% W5 U) h! k( D8 ^+ ?
scanf("%s", str);4 q# h8 r+ m1 I4 i0 Q$ ]" F" C
find_sr(pworker, str);- c: i N; \) J2 z$ s, V8 \' m
break;% G/ a8 x/ G" W- d; Y- ]! d
case 3:printf("请输入要查询的职工号:");# z) R( r$ k, F+ q
scanf("%d",&id);
3 o" m3 M, N: \% F) Q( cfindid(pworker,id);( G8 Q: G+ R7 r N6 i0 I
break;/ f0 I4 |/ n2 q4 s' z5 z
}! v: `, k3 v \
printf("\n\n选择完毕!!!");
' n3 j" |6 j: a$ t}
5 G0 u& f4 W& _) k# `$ e% k0 i7 Oelse printf("\t\t\t\t输入有误!!!");
. p0 x; y& p9 N) K7 M" b9 R- Q} /*修改职工信息*/
) z6 K: h" h. q" k) D! Mint modify(PLINK p)
$ ~ D2 N* ]; ^" |" f# ^{ int id;( ^+ p' I4 J5 W$ ?
PLINK q;
* h: E7 E+ g! `7 [, I4 _PLINK h = NULL;
0 |- Y# E$ ^3 U9 }& B0 G/ X3 Wprintf("请输入职工号(数字):");
7 i1 T$ M! M, X- K7 }9 o ~scanf("%d",&id);4 j. V" d4 n$ ^ t% x, c/ }4 O
h=p->next;, n T* c6 g; `" Y3 h% b9 P" T
while(h)2 ` \0 W/ C4 E/ W& u/ }( M, M# `+ G
{! B3 x- ^$ D: P
if(h->w.id==id)% w) _5 f1 h# b G+ y: S' Y8 g
{
) X( w6 Q$ ~# p6 c7 _) s2 G' pbreak;
4 g, w! t) z# I* n# g8 F! p}/ x8 p3 g8 C. g
h=h->next;
- r+ h/ X) R2 t: K) x, D}
! d4 m4 u0 t" fif (h == NULL)
. Z8 M& ^" A# P{+ c9 l' {" e4 U/ l
printf("找不到此职工,请重试\n");
2 q/ i. D: e# \0 N; X% U7 rreturn 7;
' |4 b7 [, h( J6 p) @4 x- d* Z* A; U}6 h, r/ m# M! h" p5 B
printf("请输入职工姓名(文字):");
' D+ _4 n5 w) H9 A' ~scanf("%s",&h->w.name);
]$ P5 ?% R9 N6 Uprintf("请输入职工性别(文字):");. d, t7 N3 p; T" ]
scanf("%s",&h->w.sex);
, l/ w7 ~! a" m* l e' s% d9 Wprintf("请输入职工年龄(数字):");' H/ P6 H# ?9 K A& Y# j, U
scanf("%d",&h->w.age);* m5 o$ D! B+ I) v
printf("请输入职工学历(文字):");' U6 O6 F$ F) [3 ?1 J \
scanf("%s",&h->w.edu);+ [. Y5 u' Y N9 Y7 `
printf("请输入职工工资(数字):");
: A- I* @, J% c+ nscanf("%d",&h->w.wages);0 G; C- X) l$ h" i! q
printf("请输入职工住址(文字):");
3 q( V$ @6 X8 J3 Q4 f4 Q+ X zscanf("%s",&h->w.adr); g" p, {1 C- K, M
printf("请输入职工电话(文字):");: m) s: Y3 B, ?' C6 |
scanf("%s",&h->w.phone);
' q" j8 q/ t, x! x8 b, Vq->next=p->next;! c, }. }8 c: M c* r1 L
p->next=q; [* ~! c% i% x' }4 a8 U
printf(".^_^.修改成功!.^_^.\n");. N$ g0 {2 K- l* \7 Z
return 7;
5 ?. C) l0 r( t5 J7 @( z} int main()
8 n+ V- u6 f) R{
( Z$ I% n$ t6 {: c" |% o# W' u8 x2 e: N* d
int cmd=0;( C) P! T; R6 Z, K! l r
int id;
4 j+ ^3 y1 U2 _char name[20];) W3 H8 Z, K5 s
char str[20];* G, [* k; b2 X, f( p
PLINK pworker;
1 c0 Y$ B& H4 B$ l1 S- b9 N! o" aif(!(pworker=create()))
/ Z! T$ m1 D0 a/ L$ b+ I* x% f L% Y5 V{
9 P, t5 a7 F% I; ^9 L Texit(0);/ N, y6 q; N7 n' J2 Z# x) C$ b& ]
}9 N4 c* ^3 e$ V+ w# l& L
while(cmd!=7)0 [ C' T& y5 Z# z" P) p
{2 m9 D' m' [- L4 l2 O- ]2 @; b
switch(cmd)$ m8 u' O$ f; [ w, E
{
, O1 ]9 n. O- X5 M& H& {4 Dcase 0: message(); break;
- A! B2 h" U: B% g2 l7 scase 1: add(pworker); break;' y! k: J1 a5 r" @
case 2: show(pworker); break;
* l2 p' m- l( r9 d3 I) Acase 3: search(); break;6 w# H0 Q2 L0 P6 T) S
case 4: printf("请输入要删除的职工号:");% Z8 b" u, R* a" `3 o3 J% X
scanf("%d",&id);# {6 N( M2 i4 P" X2 r* e& |9 y* p
del(pworker,id);
0 x ~) s( z2 p8 W$ sbreak;
; D' |* i& l J, }$ ?1 }case 5: modify(pworker); break;
7 x( i: I/ I+ {$ Wcase 6: message(); break; I1 S! K( ~9 B. x8 U
}
: f# l2 R0 u! l \* ^printf("请输入操作命令数字:\n");
+ e3 k* e/ P+ ]. f. v7 rscanf("%d",&cmd);
! I) [ s" V$ s$ [ p# L: a/ |; ~}# b6 c1 g0 g' c
printf("谢谢使用!\n");" k$ Z$ M$ D' a5 A! [. N5 K( R# `& g
release(pworker);' w# L8 D/ n$ {: S6 k
return 0;( M3 p( ^, q; ^+ j) y1 |( G; i( W
}1 |/ s/ w: c a8 N0 O
/ A% `2 ~7 L" Y3 P1 z
* K1 m: W* a8 N0 U v. r( {3 i这是职工信息表 能运行出来不过查询功能不行能帮忙看一下是什么原因吗。。再此谢谢了!, y- X) i) G7 O z& H8 O
% O; W7 O, B+ s% L: F! w |
zan
|