- 在线时间
- 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># i2 d1 r1 \$ l4 d
#include <stdio.h>
# F2 j) U& W% |& e P+ G# p#include <malloc.h>
* g& h* [* {, W7 t: s7 E#include <string.h>
7 N0 M8 p) y5 A' M5 ~4 a: @0 Utypedef struct worker
# f9 u6 N% | k0 Z{
1 d* P# d7 l) M5 A9 y9 cint id;2 f+ i& u$ Z# ^) w4 c
char name[20];, y( H. }/ p% A/ H( E$ w
char sex[3];7 U B+ x$ B, |7 o
int age;
- p) X: A; a" M9 Dchar edu[50];) w! L( @, z) O0 @% R
int wages;' c- s% o) h6 k& g; _
char adr[255];$ S9 V; r9 j6 ]& g
char phone[13];% L, t% c. }- x, N5 g0 V
}WORKER, *PWORKER;0 c% u/ _$ G2 S' ^ J& E/ L( e
//typedef struct WORKER *PWORKER;& s, U% w+ K2 Z) k7 m+ a2 I b
typedef struct link" A+ G6 V8 K) ]+ l* N1 G
{
" z0 X" I' |2 _WORKER w;
+ y; [( B6 q! `8 I \struct link *next;
: \* e$ h* y9 R+ O3 @5 b1 h}LINK, *PLINK;: N: L+ {3 Q; o* a9 |
//typedef struct LINK *PLINK; /*创建职工信息链表*/
- y6 ?* h* A( [) _2 D, e; zPLINK create()3 m! `' ?6 @/ c$ ~* `) d$ C% `( E
{4 |$ c* c0 w( L% f: n1 i) i' ~
PLINK p=(PLINK)malloc(sizeof(LINK));/ Z& r- E0 J$ p3 ^# ]- p
if(NULL!=p)- V' {; q5 W- Y) N. Z
{9 o$ C, H$ r" D: {; T* E
p->next=NULL;
& J% L& J+ o* Dreturn p;
% M8 g; A) E* r& T; c* d}& \' |! \4 E9 s0 j$ Q; v' }
printf("内存不足!\n");
& e0 R" U, t0 dreturn NULL;$ d, o) E5 x9 V- F1 A; n8 [
} /*显示程序界面文字*/
8 h6 v$ P+ t2 Cvoid message() u, v# d1 ~9 w
{ system("color 0f");/*设置当前窗口的背景色和前景色*/9 l. a; ~9 @# t: _% x$ X+ A! g8 g
/* 0 = 黑色 8 = 灰色" [1 A1 b7 C, E/ W
1 = 蓝色 9 = 淡蓝色' ]' U! B! m+ J8 ~/ a
2 = 绿色 A = 淡绿色
3 y: g, A2 J9 @) h. A* h3 = 浅绿色 B = 淡浅绿色 Y4 K) F& _! L2 `. J
4 = 红色 C = 淡红色
4 f: F3 X# v: u! d% j5 u, g+ B' t5 t5 = 紫色 D = 淡紫色3 h- p) C, k: L. u$ G. |
6 = 黄色 E = 淡黄色
% k- j4 f! g2 z7 = 白色 F = 亮白色*/
5 G% s- s3 X2 Osystem("cls");, t, e# I9 q" z
printf("\t\t************************************************\n\n");
: p9 [8 W# ^* j; Uprintf("\t\t>>>>>>>>>>>>>>欢迎进入职工管理系统<<<<<<<<<<<<<<\n\n");0 ]: |: l( @: g; w' D* D. F a( K; I
printf("\t\t************************************************\n\n");
) G9 e% `4 l. i2 s; Lprintf("\t\t ************** Choose Function *************\n\n");
1 I- x" S* U( O2 H$ Iprintf("\t\t ************ 帮助 请输入:0************\n\n");+ G. l& R3 w$ p( B5 M' n
printf("\t\t ************录入职工信息 请输入:1************\n\n");: u7 d0 P' s# a% ^& J H/ P- T
printf("\t\t ************浏览职工信息 请输入:2************\n\n");
3 n; K1 s0 L- r, A" }printf("\t\t ************查询职工信息 请输入:3************\n\n");8 S3 l1 o* Z8 s5 Z$ V" O
printf("\t\t ************删除职工信息 请输入:4************\n\n");
& M7 t5 b4 o" y" l$ {$ @" [1 V4 fprintf("\t\t ************修改职工信息 请输入:5************\n\n");
) p# P0 e8 k' _( Mprintf("\t\t ************ 清屏 请输入:6************\n\n");
( {, ]: k% L4 |& ~: d _% }printf("\t\t ************ 退出 请输入:7************\n\n");
7 }4 ~- F7 [" O7 k( w' }% Iprintf("\t\t************************************************\n\n");
. v- J1 [4 I- L% s/ W% a, X$ J) Nprintf("\t\t************************************************\n\n");
# p" L/ q1 f% p+ W2 F5 c7 p} void find_sr(PLINK plink, char* str)
' S' R4 p1 ?4 `6 f: J6 F; I{
1 w2 O* I% `" s4 Jfor(PLINK curr = plink->next; curr != NULL; curr = curr->next)
4 U" `& Q/ Y8 N, d4 y$ k: ?{
, `6 G7 W5 y9 S. l0 Wif(strcmp(curr->w.edu, str) == 0)7 C1 s8 K2 z, m# R* u
{8 g" L; ~4 M; \. J4 F- Y& k
printf("职工工号:%d\n",curr->w.id);
# e! a0 Q& v* q4 Q% \# dprintf("职工姓名:%s\n",curr->w.name);
2 }9 y6 L: ^0 D( e3 x* X9 B3 Gprintf("职工性别:%s\n",curr->w.sex);+ `4 `, J g: v5 _; J& H" a; |
printf("职工年龄:%d\n",curr->w.age);, e8 ?: P4 \: u2 L* k: s
printf("职工学历:%s\n",curr->w.edu);
5 I: E2 j0 o2 R& Z8 h Jprintf("职工工资:%d\n",curr->w.wages);
9 {* g6 F6 ~, d8 H, Vprintf("职工住址:%s\n",curr->w.adr);* H6 A- Z6 I1 x X' K
printf("职工电话:%s\n",curr->w.phone); }
* n( ?1 U' R! s: n7 L7 W# X5 x$ i}
1 G, i z: I: b6 E4 K$ q8 S6 u& q$ P} void findid(PLINK plink, int id)
3 |% C0 c m5 A* x% l* d" x6 y{
6 f4 K2 [+ c+ S) Z( o3 l" pfor(PLINK curr = plink->next; curr != NULL; curr = curr->next)- T. a) O' h) Y/ B! R" W, |
{, L' D- u" `4 j0 L3 N4 _. U. D" M
if(curr->w.id == id)0 a! I3 T0 j- A3 ?, ?
{& O4 r9 o1 ^" }1 u
printf("职工工号:%d\n",curr->w.id);. i0 r) W+ @7 z! N7 r# h: O# L$ G
printf("职工姓名:%s\n",curr->w.name);* [& ]% d {7 O: x# E
printf("职工性别:%s\n",curr->w.sex);, E& O9 E8 O' `4 B" J
printf("职工年龄:%d\n",curr->w.age);# K- u6 q$ L6 i0 J
printf("职工学历:%s\n",curr->w.edu);
9 q. t+ D( x( M F4 @printf("职工工资:%d\n",curr->w.wages);
1 k( t. Z' `. cprintf("职工住址:%s\n",curr->w.adr);
, ?1 a5 R* I! pprintf("职工电话:%s\n",curr->w.phone); }' K, Z3 N$ ?. m D1 a1 _
}
* q7 w, Y$ e; ?# g8 d5 s5 B ?} void show(PLINK plink)
# k- I7 j) ?6 z0 e s{ for(PLINK curr = plink->next; curr != NULL; curr = curr->next)$ D* X" N( ~% I- _$ W# V* `
{ L6 p/ w1 F2 r; q5 ~, Q
printf("职工工号:%d\n",curr->w.id);- W! V! H: r# {0 g+ \$ l, `
printf("职工姓名:%s\n",curr->w.name);+ X6 [, g1 W0 E# A N- @/ e( w
printf("职工性别:%s\n",curr->w.sex);
0 j3 K$ V" B1 M, `printf("职工年龄:%d\n",curr->w.age);) o8 S& w0 g4 { K$ _ u o D& w- P
printf("职工学历:%s\n",curr->w.edu);( Q W: f) \( u' e
printf("职工工资:%d\n",curr->w.wages);
- }/ r/ Z, _9 N5 N* pprintf("职工住址:%s\n",curr->w.adr);6 m; i, J7 r4 g" {- O8 k
printf("职工电话:%s\n",curr->w.phone);0 X" `" h \! s, @# J- e2 u* p2 g
}# I$ N6 `: x% z$ E; l" \5 N( R
} /*录入职工信息*/8 W5 h) b$ v. z3 z
int add(PLINK p)- |+ m9 d. ~ [2 p# @
{+ E& n H5 o# d f+ [
PLINK h = NULL;5 c4 J# f2 b e8 V
PLINK q=(PLINK)malloc(sizeof(LINK));: r; O% n1 K( m, l3 }' j3 Y
if(NULL==q)
. A' Y+ E# E- o/ M% g{3 A1 c+ m3 h$ s" a8 N" n \/ J+ S0 H
printf("录入失败提示:内存不足!\n"); q7 l4 V/ J2 V
return 7;* S: a5 T8 g4 Z- v: n8 C
}
X8 r4 x; j" u ]% M1 X2 A+ P( Dprintf("请输入职工号(数字):");
: V% O) Q5 m' y2 E: a+ Lscanf("%d",&q->w.id);7 A i4 H' Y$ V% M9 b6 F; R
h=p->next;
# ^6 J2 _5 w5 v/ y! X6 j% ]! d% Swhile(h)6 w. B" y. w& {1 e
{
; D1 B8 a+ r, K: Q* Q3 hif(h->w.id==q->w.id)- e9 t# F, n2 e: W, ~
{
/ l+ a0 j4 R! _/ r& D3 Rfree(q);
5 H% E+ l* j' R# T5 fprintf("录入失败提示:此职工号已经存在!\n");3 _0 T7 L3 m$ b- L) @9 C: Y
return 7;' i# W/ Y, ]6 p4 Q. T. N
}3 L( x1 X' y3 [; h
h=h->next;( l7 r3 P8 c" J) u
}
- x" n5 ^/ z% n. v$ n; aprintf("请输入职工姓名(文字):");
- A6 ~ Q4 ?0 R4 K: \scanf("%s",&q->w.name);
( a w7 i% N( ?2 ?# Dprintf("请输入职工性别(文字):");
1 k3 R X/ n6 Q: [ ]scanf("%s",&q->w.sex);
6 R9 ]9 V$ V; h; r+ Aprintf("请输入职工年龄(数字):");! A- G" r9 w. g- e4 ?9 z; [
scanf("%d",&q->w.age);
! k8 S9 {: O# K7 e- d5 x+ \5 Tprintf("请输入职工学历(文字):");
/ N+ A% R; g. N. Oscanf("%s",&q->w.edu);
- z- J$ o; z. E8 Gprintf("请输入职工工资(数字):");
, z! O! o% ?- d! E. oscanf("%d",&q->w.wages);
{ j( E5 {( g) ]. @- Nprintf("请输入职工住址(文字):");+ w0 a( W. w. |2 z
scanf("%s",&q->w.adr);
% j4 j# C9 T8 |printf("请输入职工电话(文字):");" U# G& n3 N/ v& _, t7 H
scanf("%s",&q->w.phone);
+ }+ m" W' w! yq->next=p->next;
: i& `: N7 K. F/ x, \$ ^" fp->next=q;/ E: V4 Q4 v( L. q% _
printf(".^_^.录入成功!.^_^.\n");
0 G8 h) x Q0 T) Freturn 7;: v2 U( L% M% W4 l* k! P
} /*按姓名查询*/# }% d8 j9 S5 C1 r3 ^0 j
PLINK findname(PLINK p,char *name)
) p. v# N0 B+ _1 W$ @9 ^% |6 D{
, [$ G1 |/ K: [) Z: t4 qmessage();
/ s" W3 \( e! z2 X6 wprintf("按姓名 查询\n");
8 ?$ ]7 Y0 i! g, R0 J3 ~printf("职工号\n姓名\n性别\n年龄\n学历\n工资\n住址\n电话\n");
8 ?/ v" T) q) O' g, Wwhile(NULL!=p->next)
" Q6 k6 N) b+ R{' ^% d! _7 e( M+ |% o) N; z% L7 P
if(0==strcmp(p->next->w.name,name))! `* I# J4 I; \9 K% o
{
: X R j( ^, J8 aprintf("%d\t%s\t%s\t%d\t%s\t%d\t%s\t%s\n",
- `5 H9 r: ~- ~6 X3 R( gp->next->w.id,p->next->w.name,p->next->w.sex,p->next->w.adr,
& ]/ I% m: V! }/ np->next->w.edu,p->next->w.wages,p->next->w.adr,p->next->w.phone);
, V1 B7 o4 t9 O4 Z' X/ E2 K v5 {return p;$ [! A1 l- i4 G8 t% m$ U
}% O- T9 f6 m8 e3 Q+ l4 t
p=p->next;( c; X0 {% A3 O, u
} g, G! S5 |) Q2 c$ p( \
printf(".^_^.查询结束!.^_^.\n");
" C' Z7 {, Y% ereturn NULL;
. J. F' k4 g( g+ h6 F} /*按职工号删除职工信息*/# I1 U0 ]. o9 R9 B' R2 z
int del(PLINK p,int id)
- D# p; r/ L( N' V7 R{' M! o/ O+ W" z
message();
% Y" X- `) C) s$ j. ]: Z) cprintf("按职工号删除职工信息\n");& y3 o5 C4 m) g6 S/ W" T& Q) X- B
while(NULL!=p->next)
) V: ^1 q" P& B# `/ K/ c{- k" J& k3 s7 l, y, g7 c
if(p->next->w.id==id)
k5 Z8 b' e$ `! C6 q9 v9 d5 N, ^. \{0 `; G+ Q4 b# Q$ _. d) ?
PLINK q=p->next;
2 S% i: r6 t; i ~! [$ ~p->next=p->next->next;- R3 M6 ?: S ]" z) D& Q$ j
free(q);2 h* @# h9 S3 ]4 b% w
printf(".^_^.删除成功!.^_^.\n");
4 v0 Z8 m/ g5 W& `3 sreturn 1;8 r* ]5 p7 c! s; S' X8 b
}
# `8 r# ^# v; O+ rp=p->next;
/ N: [# L3 e4 X: }* }8 U- g}: C4 d6 W8 I. y
printf("没有你输入的职工号!\n");
$ h2 S; t+ }) Yreturn 7;! p! g) e! G" D9 P; @/ }
} /*程序结束释放内存*/
9 T- N1 L2 B( d9 avoid release(PLINK p)
+ q0 g+ m* ^" A. L0 ~" w{
* p7 x2 v; J& \2 H- i- T1 g0 {' CPLINK q;( H+ U% e- a7 J/ @: t' y
while(NULL!=p->next)0 A( O1 Z& O q; }3 S+ |4 e
{% F4 u( i0 X$ x- n0 S. P& ^
q=p;
8 M2 d5 P j9 a& T% j" Gp=p->next;
' Q6 E6 W& W: E0 bfree(q);* G& r: X0 C6 i( r
}: _$ P4 j1 i5 p( Q6 k
free(p);
* ?4 T5 h7 e' B0 ^6 q7 R8 A} /*查询调用*/
& Y6 D1 d5 Q0 m7 H' f7 p8 |) H2 cvoid search()
" k6 |% J1 V/ @. @{
- _, h, {9 U; h7 S O0 @9 wint id;
7 h. q; m; E/ F0 B7 r$ g- Ochar name[20];' `$ A2 T; k s; {4 U% H6 ^
char str[20];
9 c# l$ ^. O* ]6 n3 l; S6 v* ]% pPLINK pworker;
& k2 P. E- u, W( n5 Q- b' hint l;0 j8 p5 X3 A8 b, r" l1 M
printf("\t\t\t\t*姓名查找按:1*\n");
4 x' M4 q8 K, ^8 P y/ v9 T+ lprintf("\t\t\t\t*学历查找按:2*\n");- a) C% P6 g7 H$ \' E
printf("\t\t\t\t*职工号查按:3*\n");
7 E2 d3 J- M* ~* |8 n; S2 Cscanf("%d",&l);2 m& Y3 u* ]+ z! }; k. o
if(l>0&&l<4)
* f. A3 V/ A2 w! I7 s @{switch(l)
& R/ c w# Y( @7 S{4 e- }3 b$ m9 V$ A6 ~$ _3 x
case 1:printf("请输入要查询的职工姓名:");
; t- I* U' L& L6 l1 {' d" r0 Rscanf("%s",name);
* n$ \+ i. L( u& s* C4 mfindname(pworker,name);3 a& {. p* B& c) @9 m
break;
( m2 W; l+ f$ }8 t8 W- rcase 2:printf("请输入要查询的职工学历: ");+ V: U& b! n$ R: s& D8 B( l
scanf("%s", str);
9 ~6 E% D" j+ u7 `) Gfind_sr(pworker, str);
* o3 n B. e. Xbreak;
" F7 y5 c6 v' o5 H( |4 I" F9 ccase 3:printf("请输入要查询的职工号:");
# }$ O$ y6 y* Qscanf("%d",&id);
3 ~ E0 j( A7 [. h! U$ ~" Xfindid(pworker,id);% r1 ?9 H. V2 i' f% o$ a a* V
break;9 E) A$ B0 s, g" V3 j, k! p! i
}( c4 z- }& H; ?, S' h7 Q
printf("\n\n选择完毕!!!");
1 g0 T H, d; ]* Y8 ~* \}# v9 t. r& d! n% t3 u
else printf("\t\t\t\t输入有误!!!");' n; m* Y1 v* u
} /*修改职工信息*/
3 i: P. [5 H5 w) g6 r) F" Nint modify(PLINK p)
A6 F6 j; @- I- E. ]: k& a{ int id;
: [" C; [% y/ N6 lPLINK q;
8 m3 H2 M# g, U7 f& XPLINK h = NULL;
! v1 U$ h) D- y- R9 w8 |3 Cprintf("请输入职工号(数字):");
7 D1 d' H/ Y$ m( b* @) z0 yscanf("%d",&id);7 ~8 \8 R. d7 I; \6 D
h=p->next;
! P2 a$ ` k1 kwhile(h)
# ?. j- Q% I s! l{: d% `$ f1 K% R; @
if(h->w.id==id)- Y9 K6 z' R7 P2 J) q1 }
{
7 J( L) O: c: X2 z1 z& z$ m( xbreak;
& a# i4 I6 O. e/ }# B, F: {- r! r}" h1 J$ c5 c4 ~" S6 I( N! v1 U
h=h->next;4 a' p2 I* l- Y: h$ W P% Z5 j
}
3 _$ {! q+ U/ a5 o* w Q, Yif (h == NULL)
4 v5 f. M9 q: c& U% k{# Z/ W% E4 W J+ J
printf("找不到此职工,请重试\n");
* M- h( v/ l/ k3 [: n# R+ T+ |' \' Rreturn 7;" w/ S+ Q! {! t' Z
}; s+ g% h0 Z3 g5 G$ A) s B
printf("请输入职工姓名(文字):");
+ z0 P0 Q& B4 o( Z* Hscanf("%s",&h->w.name);% W- x* j/ w C% S
printf("请输入职工性别(文字):");; Y% p( I: z% o q- a8 H: J# g) f
scanf("%s",&h->w.sex);0 |* a" i' E t1 j& U
printf("请输入职工年龄(数字):");1 k2 L, Y0 t- E# {& l) y: T
scanf("%d",&h->w.age);
8 N# s' h- S' u) @, \+ q" C! }% Oprintf("请输入职工学历(文字):");) e: W; ~ v7 K: W" v- ]5 ~) K/ A1 e7 |
scanf("%s",&h->w.edu);. t# K6 z5 t: Z/ [! h. y x
printf("请输入职工工资(数字):");
, s3 G% o+ S0 iscanf("%d",&h->w.wages);
' C* @& _4 K( S0 Gprintf("请输入职工住址(文字):");
# _! \# R9 P9 W1 Mscanf("%s",&h->w.adr);
! g1 A, T9 b7 m9 [+ h* Mprintf("请输入职工电话(文字):");
- N6 _$ ~. b2 d% O5 @scanf("%s",&h->w.phone);; [/ D3 p- a m8 E# c# u2 u
q->next=p->next;3 x" }' e0 |" N
p->next=q;/ Q/ T( X6 F& I
printf(".^_^.修改成功!.^_^.\n");8 d% g R$ T# P4 O4 Q+ u* x) T! o. z
return 7;) b& w/ g4 l2 q6 ?0 J: q d
} int main()6 {; c- X" i' K- j% U- |3 P) w
{0 v5 W" h# j1 f# o
+ E/ s' ~$ \6 c9 S) [0 |
int cmd=0;2 c7 e0 Z D) ? r6 ` b4 n' n7 V
int id;* v! o0 M- s/ w( P! S. I1 c
char name[20];6 g6 @" Q" d- F1 w/ r+ J
char str[20];
/ `6 S1 o( ~/ k8 O5 L8 aPLINK pworker;- U6 [3 N' O0 K6 a {
if(!(pworker=create()))
1 t* V1 { P: h7 C* J{
7 ~3 |3 b/ X) ^$ M" w: |8 eexit(0);
L' d+ m. ~/ D. c/ K}$ ^' r9 |. ?* P$ l
while(cmd!=7)( q3 o" `/ Q$ ^; S- T1 x: a
{
3 g! y9 E) j! D, iswitch(cmd); Y! S; d$ R9 B' m% B* E, r
{: I7 @- |, r+ B: u3 A; B* T# |
case 0: message(); break;9 T/ x8 j) L4 M+ c& p" W8 O( ?# r' r
case 1: add(pworker); break;
8 I% n% X, D$ U0 g0 q& @. a$ [case 2: show(pworker); break;
. _2 ~$ z, M/ U8 ]case 3: search(); break;
. n. S% J/ x j9 n( ^( F" pcase 4: printf("请输入要删除的职工号:");7 |- P/ Y8 R5 |( }6 M M
scanf("%d",&id);
( d% X8 T5 P: I+ y! ldel(pworker,id);* S. R! C3 X5 g
break;% y4 }+ [( Y+ [" U- z& [& S
case 5: modify(pworker); break;7 H- n) P+ M4 }. ~
case 6: message(); break; f0 x! H" E& [- `9 K
}
6 P, E# H- g5 u/ _7 q* `printf("请输入操作命令数字:\n");
; h, }4 M+ r0 ~2 v9 G- ]scanf("%d",&cmd);
/ G; ^! y7 e+ f& P# j}
) Y; R: Z0 o. W5 b. c6 Rprintf("谢谢使用!\n");
9 R7 G3 o2 S: mrelease(pworker);
6 V% s: L) ~ u! S" Kreturn 0;4 V0 q9 ~* o/ f$ Q8 H6 a
}
, S. k) Z: r k/ {% E0 m. \. Q/ K6 Y; U& e
* I. v/ a& j' D" s2 j! Q5 L( L& ?8 N
这是职工信息表 能运行出来不过查询功能不行能帮忙看一下是什么原因吗。。再此谢谢了!
9 h* P) g' C9 s( P* R& Q4 ]: F& P4 N. T. q% G' N3 p; \, M, f
|
zan
|