- 在线时间
- 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>
6 ?( l. H2 D/ {2 s#include <stdio.h>1 X2 }( V6 _$ `! Z6 S
#include <malloc.h>* j* ?2 L# R4 Z! {% ?8 S7 H* n0 A
#include <string.h> , Z7 Z6 e5 Q' Q/ A
typedef struct worker
% U" d- j. R, K0 y2 U{
9 c& @- B# [* ?int id;
8 e- N) @8 i* q( U1 o: E* O! Uchar name[20];0 m5 H" Z. {9 N: D2 v8 }1 b5 \
char sex[3];" I4 P: O6 @+ g
int age;6 R" k5 ?( G0 k: [: a% U3 Y) N
char edu[50];
% m3 D. N4 o1 aint wages;! m" J$ S% I4 V f/ j* r3 S
char adr[255];
: R ^2 d- [5 F9 l. J9 T& W$ g3 e1 g- zchar phone[13];9 @: J: q# p7 K& ]* r( h+ B
}WORKER, *PWORKER;
/ P) {' |" D. P! W//typedef struct WORKER *PWORKER;
4 o% d7 _1 @, @# T% b( mtypedef struct link
0 T6 z1 v h' ?0 l6 o{
8 [5 P q4 N v. qWORKER w;
, w4 p8 [% {3 J* ~* }8 Hstruct link *next;0 z4 Q. z& z* B3 u9 t
}LINK, *PLINK;0 S6 G, @4 r. H1 f
//typedef struct LINK *PLINK; /*创建职工信息链表*/
& U, m; M5 f. @PLINK create()4 J) T% R2 C) z7 G! T2 |
{
2 b/ G- X9 u- { G! _- K; _PLINK p=(PLINK)malloc(sizeof(LINK));
) O& m: `0 u& g, X+ V% {if(NULL!=p)
- B9 u6 ~: u% f( @0 D{
& s: N S, a1 d Q# a+ W" |p->next=NULL;4 k q; x D J3 q- s4 G3 Q
return p;
9 O- H: |# J5 [! t T3 o0 M- C}" T+ m# f, y5 ?! c9 U9 L
printf("内存不足!\n");& h1 y! R) g1 B* g
return NULL;
$ Y' G0 A! o4 ~8 ^5 y' b+ J} /*显示程序界面文字*/' a e1 x2 h% ~
void message()6 l3 h' {) U, `4 ?* l: \% ?, [
{ system("color 0f");/*设置当前窗口的背景色和前景色*/2 i8 q8 @! R/ n" W' q$ c# l
/* 0 = 黑色 8 = 灰色
0 D0 y) x8 W" L1 }7 U* i" N1 = 蓝色 9 = 淡蓝色, s3 Z4 K0 r- L2 R
2 = 绿色 A = 淡绿色
6 W ]# d) ]; R. B9 o3 = 浅绿色 B = 淡浅绿色: z& {- g6 l6 V$ X9 I
4 = 红色 C = 淡红色
- s# P8 v3 V" _! ^& d- H5 = 紫色 D = 淡紫色
- m3 l1 A6 r% M6 = 黄色 E = 淡黄色
0 G2 ~0 E: n* i7 S* ?7 = 白色 F = 亮白色*/% P3 S1 R3 R& E: U
system("cls");
2 o- G8 q0 g/ F3 M7 e9 Y, ` ^printf("\t\t************************************************\n\n");- Y2 f( @8 ^/ T+ H
printf("\t\t>>>>>>>>>>>>>>欢迎进入职工管理系统<<<<<<<<<<<<<<\n\n");% K3 D1 V- N" B
printf("\t\t************************************************\n\n");
7 @* }0 I$ L, Uprintf("\t\t ************** Choose Function *************\n\n");
7 K- X9 R. y1 D$ b) J/ E9 r+ N5 X) \5 mprintf("\t\t ************ 帮助 请输入:0************\n\n");0 L5 v' {0 C$ f M0 ?
printf("\t\t ************录入职工信息 请输入:1************\n\n");* A# t0 e* T& I4 Z9 B
printf("\t\t ************浏览职工信息 请输入:2************\n\n");) ]) C8 B8 f6 M1 J
printf("\t\t ************查询职工信息 请输入:3************\n\n");7 l/ E4 d1 ^ h9 C* c# N
printf("\t\t ************删除职工信息 请输入:4************\n\n");
- u- p% t7 Z. A* E3 Jprintf("\t\t ************修改职工信息 请输入:5************\n\n");
: E/ \) g# p+ K: J/ w2 Rprintf("\t\t ************ 清屏 请输入:6************\n\n");) p E+ G K- P/ @* z* }
printf("\t\t ************ 退出 请输入:7************\n\n");
6 Q- Z0 {3 V- Z3 S. I/ L, {% S5 sprintf("\t\t************************************************\n\n");
3 J3 m% M. w7 jprintf("\t\t************************************************\n\n");" F0 n' Z; v- d6 r# s5 c" ]9 g
} void find_sr(PLINK plink, char* str)
$ E+ K, A: a1 h1 q{, a* I+ t$ n" |; `) h
for(PLINK curr = plink->next; curr != NULL; curr = curr->next)
+ t; z- y: J9 m& f9 X; v1 y' Z7 H{
- ^8 c8 k# }6 ^& V/ R k8 X! y: Jif(strcmp(curr->w.edu, str) == 0)
9 |! H: k) l3 s/ ^# I{
9 w% ^6 F/ u+ ^- gprintf("职工工号:%d\n",curr->w.id);
i6 H N! F) R$ N% [8 iprintf("职工姓名:%s\n",curr->w.name);+ S' t6 f/ d" G. D9 r" I) \
printf("职工性别:%s\n",curr->w.sex); k0 d9 k0 \% p( b# ~
printf("职工年龄:%d\n",curr->w.age);
& u/ r1 c# u2 o" j \printf("职工学历:%s\n",curr->w.edu);
5 g2 V! u# m7 G" o% Pprintf("职工工资:%d\n",curr->w.wages);
% w U) R+ d. |printf("职工住址:%s\n",curr->w.adr);# P+ @* l- S2 @$ x& ]" C. L
printf("职工电话:%s\n",curr->w.phone); }8 h5 V6 L4 x; p$ Q) U
}' T* Q+ d" S7 i" W1 `8 D$ K
} void findid(PLINK plink, int id)5 O* l" `1 [( e9 ~
{/ ^, l8 q( R4 s) I. L9 F
for(PLINK curr = plink->next; curr != NULL; curr = curr->next)8 s7 V( z g0 ~. z1 [
{
9 L! @7 E6 y! ~" xif(curr->w.id == id)
! J/ {' \6 ~6 E; \# N{
7 g' }, e0 U# D9 uprintf("职工工号:%d\n",curr->w.id);
: z8 }* h- C% x+ f9 c0 X6 T) n* qprintf("职工姓名:%s\n",curr->w.name);
7 x0 p, I+ d2 i* M7 [& Qprintf("职工性别:%s\n",curr->w.sex);
5 j0 J: j! I8 F a+ iprintf("职工年龄:%d\n",curr->w.age);
: M. |) M$ w. Fprintf("职工学历:%s\n",curr->w.edu);0 O# a- \$ s2 V. I! F
printf("职工工资:%d\n",curr->w.wages);" i3 P8 I2 B. ^" H, n5 j
printf("职工住址:%s\n",curr->w.adr);
' X. }" d m! f- }( M1 W% x* xprintf("职工电话:%s\n",curr->w.phone); }
* E- `$ Z& p& f$ x}
! a& R- W9 l8 o3 ]} void show(PLINK plink)& n- X: p, h& W, _* O0 u: b
{ for(PLINK curr = plink->next; curr != NULL; curr = curr->next)
$ o* ?! P. k0 @4 H7 _{6 w8 E9 K9 K" h. k" L. A
printf("职工工号:%d\n",curr->w.id);
" G) r8 I2 R; j; G* oprintf("职工姓名:%s\n",curr->w.name);
) f* g% ]1 H3 S, V% l% g9 S9 F- wprintf("职工性别:%s\n",curr->w.sex);: y- m4 e! P- @3 @+ N* [/ \
printf("职工年龄:%d\n",curr->w.age);1 }' [" ?* }( {0 }
printf("职工学历:%s\n",curr->w.edu);
; I8 R/ j3 F+ [7 n8 Nprintf("职工工资:%d\n",curr->w.wages);
% K2 e8 I6 S$ i F+ k' y" Z- iprintf("职工住址:%s\n",curr->w.adr);/ h6 w h4 Y7 w i! V0 w3 Y2 y- t
printf("职工电话:%s\n",curr->w.phone);" Y7 o9 j2 L$ H, O
}
4 [% H1 S% ^+ V5 y6 Q. o! a/ J} /*录入职工信息*/
( g! G1 U1 b& L9 L$ ?+ V! Mint add(PLINK p)
6 R8 _7 w, F+ y' T7 e1 U" E{
& [; O) x1 f9 C& TPLINK h = NULL;2 M X3 K3 ?2 g$ a7 r& l. u
PLINK q=(PLINK)malloc(sizeof(LINK));
' F' B+ K* O( vif(NULL==q)( s3 f" v5 |3 Z" J0 p
{
; U* }% B* I4 f' c# Pprintf("录入失败提示:内存不足!\n"); r+ ]- P1 Y3 f6 j% V) H* a
return 7;
# f! w8 J2 \6 _1 N1 s}. ~- }$ c$ ~; o; Y
printf("请输入职工号(数字):");
9 H6 ?) J; U E2 Lscanf("%d",&q->w.id);4 w) g2 _, g- z g* x
h=p->next;
$ `5 {) P8 z8 }; k; {* `! `8 zwhile(h)) _, g4 ~, o4 {4 R, w; x8 i& t
{
, H$ T0 [. t, | kif(h->w.id==q->w.id)' a" H3 s: u* d
{6 `4 C; e; Y" ^) _$ u" t
free(q);/ ~1 T0 m5 E. f4 t
printf("录入失败提示:此职工号已经存在!\n"); s! J' e& Z& A+ t0 i5 I
return 7;6 v& N, |; P& l, C
}/ Z {/ ?& x8 a* I0 d
h=h->next;
5 R& @$ P+ w1 ~+ V- \2 N}
3 g5 t7 |; R! I* x' `! v& gprintf("请输入职工姓名(文字):");+ Q# y( l& E0 F: H2 J3 I9 k
scanf("%s",&q->w.name);
5 }6 E# h! e* Lprintf("请输入职工性别(文字):");
9 i! u: g+ A" X4 H# \4 _! z5 `* O9 fscanf("%s",&q->w.sex);
% [0 Q6 c" T) F+ T% x" `printf("请输入职工年龄(数字):");& A' x$ Z5 L9 _0 K& F! S3 m
scanf("%d",&q->w.age);+ ~0 I6 B5 k: Z! _ h I* Q
printf("请输入职工学历(文字):");
( j( K4 t' I5 p2 q" \" K2 zscanf("%s",&q->w.edu);% g; {$ {4 i- q
printf("请输入职工工资(数字):");
' H# v0 B5 @. wscanf("%d",&q->w.wages);8 L6 u m+ C9 f1 k
printf("请输入职工住址(文字):");
9 Q7 ?4 @/ B( `+ E' i( |9 @; [% Lscanf("%s",&q->w.adr);8 H! y% S" z7 j O. t
printf("请输入职工电话(文字):");
' d& A' T( m* |scanf("%s",&q->w.phone);4 u0 B- V: W/ g& s- g3 V0 L
q->next=p->next;' b; u3 d+ p m5 L( k8 L
p->next=q;& v z- [5 i$ B0 J9 r
printf(".^_^.录入成功!.^_^.\n");/ |4 G6 Z. j1 X5 i) C
return 7;
' K9 i X' W- V+ |} /*按姓名查询*/
9 Z2 M! V! X. a. kPLINK findname(PLINK p,char *name)
- r5 b; z C* Z, z1 v3 P0 \{
+ J& q& d% A3 _message();
( c, f& W4 V2 z9 c: q" Oprintf("按姓名 查询\n");
/ w$ W0 ~( Z( R6 ]; g* gprintf("职工号\n姓名\n性别\n年龄\n学历\n工资\n住址\n电话\n");3 D/ f* U3 U9 t! k. d
while(NULL!=p->next)
0 D4 q8 c3 J1 D0 D- z) F9 B4 T{
) o! ~2 D& O2 k. U" Q$ N9 z* yif(0==strcmp(p->next->w.name,name))
8 L, M- [; q# J: e* ], u2 E! E{
+ n; O: X O2 jprintf("%d\t%s\t%s\t%d\t%s\t%d\t%s\t%s\n",
0 T. ]7 S/ e3 K# [1 R) ?" B6 A% Mp->next->w.id,p->next->w.name,p->next->w.sex,p->next->w.adr,7 F; Y6 b$ j$ X2 i. j: i8 k
p->next->w.edu,p->next->w.wages,p->next->w.adr,p->next->w.phone);
! c$ G2 p8 k7 G/ a0 J* Freturn p;
l/ R: W& X9 t- N$ T) L}% K, `; E0 D. o2 t+ F2 b% V' Z
p=p->next;# b# l* q) r: H }- `9 X+ o( `- q
}
: F, g* n* v5 f/ y/ Eprintf(".^_^.查询结束!.^_^.\n");
& ~$ o4 p1 [# H$ H/ {return NULL;
2 F. q% k' F+ x. V} /*按职工号删除职工信息*/0 a& t& A+ k) R
int del(PLINK p,int id)
7 `7 [5 X6 R' Z. {{! ~( g5 ?3 N# K$ M7 ^
message();6 k Q* V2 Q1 _8 l, B% j. F
printf("按职工号删除职工信息\n");
6 H+ p8 o- a k, lwhile(NULL!=p->next)
& d$ F- D# {/ t+ @: n( Z* f. V{
& A E/ t- j: {/ N* ~5 Jif(p->next->w.id==id)+ q# v% A' q+ e1 b1 ]0 W0 [
{1 ?0 z) p( F' A. ?; C) r0 ]
PLINK q=p->next;
5 y6 E" i0 d6 Ap->next=p->next->next;
9 ?& i# m. t* @$ b: N! H2 n7 X3 yfree(q);
; s; C5 _# W/ K1 wprintf(".^_^.删除成功!.^_^.\n");! U) t* l8 U8 V/ B
return 1;! C4 E% g, c- `! w- Z& r5 r
}
% W2 c4 H2 }1 S) y* V: I( U9 s; Bp=p->next;' j# o4 J9 [: @% L2 [! j
}, U8 q: T. K" I" V2 p
printf("没有你输入的职工号!\n");
; f6 r% a, F" }7 P, |, ? E' Hreturn 7;
; h# u) A2 Z$ j, I( R: q} /*程序结束释放内存*/6 L, S4 P$ M0 }9 P! {
void release(PLINK p)
, l; O5 w1 [6 |3 x1 z( p/ {6 L{7 x x- ~! b2 c- G# _0 @/ D) H* }
PLINK q; |3 L* u. L7 A2 c) _ g
while(NULL!=p->next)3 e |. T) [3 C. ]0 B$ ~8 C
{
6 C$ P. W- R1 k9 @5 g" f) Z# tq=p;
: \7 l; r! Y5 Rp=p->next;) G; Z+ q F# U
free(q);
4 }2 C- Z2 t) m}( u. u1 \8 h. P! x! w' R5 @
free(p); a) n- m. Q8 ?( k3 i$ J# l
} /*查询调用*/5 q8 Y8 k# Z/ M* H* P
void search()3 P' m# o* ?& G! M
{6 @% G, f: _$ D1 Z( A: Z
int id;2 d) O% L7 L9 L \
char name[20];
, M1 c) }& `& }( P( b7 j( \, Vchar str[20];
' A X! @4 a( IPLINK pworker;: i# m: R3 `- e9 k5 w |) `
int l;
3 z: D5 z* S) [; oprintf("\t\t\t\t*姓名查找按:1*\n");
0 I4 c. p/ k6 K, x" S: B; n. x: Sprintf("\t\t\t\t*学历查找按:2*\n");/ Y8 Z2 L& e3 q, B9 C
printf("\t\t\t\t*职工号查按:3*\n");
' T+ E# X. S- L, [$ k6 a" f% wscanf("%d",&l);
, v' ~% q9 c: ~: J) Qif(l>0&&l<4)
1 K! r+ L. N7 C* T( }{switch(l)4 M/ W$ k4 y1 ^6 [) t* n+ Y
{: e2 L" c e+ k: f4 R
case 1:printf("请输入要查询的职工姓名:");
9 m& t7 J3 [- A) A! z' f" t1 tscanf("%s",name);# G' ^* V, W/ L- V5 F* X
findname(pworker,name);6 F0 m. b6 [( ]% [
break;$ q$ f- Q$ A5 i$ ]+ p7 X+ n5 ^
case 2:printf("请输入要查询的职工学历: ");
4 B9 i. E- Q+ w1 N( T) bscanf("%s", str);/ C6 e R, k F: e/ z* w
find_sr(pworker, str);6 z8 m, D0 l( _' _8 j6 Y- n6 \9 ?
break;; O. B4 `" d0 W) i! w
case 3:printf("请输入要查询的职工号:");
7 }7 y! P9 J* S' O5 Q1 y( w+ }scanf("%d",&id);, I- W2 O, M p( d1 Y9 v4 T% K$ x
findid(pworker,id);" G: A$ l ] c, s1 o% |) S
break;, Z. b" E) u4 S6 R
}3 C' `; F7 J! o: \& d
printf("\n\n选择完毕!!!");
! k- `0 X$ q# | B' e$ y. }4 h}5 ~ O T/ X8 l. c) ]% U; K
else printf("\t\t\t\t输入有误!!!");
0 h! E* a0 q2 {9 d} /*修改职工信息*/
" N5 u& g$ K( u& {0 U* T" g% lint modify(PLINK p)
; G. s$ B! v' m5 L9 H0 H6 K{ int id;; F) w1 M) d" d7 j
PLINK q;$ g3 A2 E( X) J3 h9 k
PLINK h = NULL;
! o( ]6 k/ W2 b ?printf("请输入职工号(数字):");7 B; V$ { j/ O% E, E) e
scanf("%d",&id);
# p% `$ y- U3 W5 b; `* R7 Wh=p->next;
! B/ M/ K6 `2 ^2 F% [4 _while(h)
5 e6 |9 B2 c+ o# |0 U{
. v. b8 u' c4 E2 z3 ~+ J" Lif(h->w.id==id)8 a; f' d' R" T9 I0 x( L
{! t# b" q, s& I' R9 y! I% N' K
break;9 G* z' L/ ?1 R B' D s5 e) ]
}
2 X4 q6 L4 ?6 ?8 n; K( n; Yh=h->next;
4 O6 I6 `1 X) A1 D$ E7 H}+ r* z' k7 s* `
if (h == NULL)6 a2 l- ]# [2 t+ D
{
2 J* H6 l+ ^0 f+ c0 A. }3 oprintf("找不到此职工,请重试\n");1 V: n% K7 V1 V- ?! q4 }& _
return 7;
: a% U- [4 t. h& f* ^}8 U' v# [0 ~ R' Z x
printf("请输入职工姓名(文字):");! d4 u9 h$ [+ h( U5 v' R- G$ h2 m4 y" \
scanf("%s",&h->w.name);) X0 d5 l/ a" t6 X" q) K
printf("请输入职工性别(文字):");
& m) o' f+ H vscanf("%s",&h->w.sex);
) }9 b8 V; Q0 Y$ V! I1 i" Wprintf("请输入职工年龄(数字):");0 m1 u" L9 [6 k% h
scanf("%d",&h->w.age);* ^5 ]7 `/ V6 j* ^
printf("请输入职工学历(文字):");: `! l5 h$ ^6 {) |0 z9 R: ~3 _
scanf("%s",&h->w.edu);
3 Z9 }" |" D1 E# |5 Vprintf("请输入职工工资(数字):");1 a1 @' ?% s+ I5 w6 G$ ?
scanf("%d",&h->w.wages);
* w, J6 l4 E: b$ @; Sprintf("请输入职工住址(文字):");& w) X; U" {' n
scanf("%s",&h->w.adr);4 ]7 w7 C3 T4 c! V- Q/ M- c
printf("请输入职工电话(文字):");
: @ A& I2 j( O6 s8 A$ ]scanf("%s",&h->w.phone);
. T/ c2 Y& ]0 `' C2 {q->next=p->next;' e& Y, }) v) C2 i# S4 c
p->next=q;
x) }% E! g: k" Lprintf(".^_^.修改成功!.^_^.\n");4 d! [* i* X8 V0 m
return 7;: m0 V2 ?8 e6 E5 K, M* P& y
} int main() [- x9 {% X3 e0 N! N
{
$ z, [* a$ c& Z- ?4 I2 n5 F" n( d% c4 D* m) c0 c% H: }
int cmd=0;
! t# [$ c, _- i- q; E wint id;
! E: ?' t& t; Rchar name[20];
8 z; t! w% R- h+ j3 ^char str[20];* M" |: U0 `8 I `* \6 r* ~
PLINK pworker;1 E; M3 ^0 E: U* k+ L3 [8 Y0 @+ _
if(!(pworker=create()))
: K) |( o+ }4 Y$ L* o G' `6 _{
4 Z# e( s8 a* zexit(0);6 P7 S# e9 D( a$ E
}, |; _; C& [: l: H
while(cmd!=7)/ U. o0 X' _ W: v* ~
{ r0 |9 f% E8 U7 M( j7 k4 w
switch(cmd)
. Z+ j: E* W6 q7 n- F7 Q" ?{
: ~3 H! F- r: U9 W* Wcase 0: message(); break;
% {6 z/ Y+ D, ^/ u& c3 j, bcase 1: add(pworker); break;& N/ s: M" M2 t5 Y
case 2: show(pworker); break;
& A. r: ^- ^) U. I1 i' wcase 3: search(); break;
0 t8 i' t% F9 X/ Xcase 4: printf("请输入要删除的职工号:"); ~) z& _" m* v4 _7 V1 N
scanf("%d",&id);. Q$ G \, N. f7 m% x+ L
del(pworker,id);' V8 T# x1 A; ^8 F5 `; s
break;
! O% t/ e; [# k2 ^% j( e1 ccase 5: modify(pworker); break;
3 d( o j9 j+ S- z7 Q3 z) e% ccase 6: message(); break;, J4 [. k/ Z0 h) Y# y* H, N
}
$ [% M& V2 d3 U, S/ j, ?6 qprintf("请输入操作命令数字:\n");4 G+ c$ Q! Z# u8 C; c
scanf("%d",&cmd);
# o2 M0 E: Q/ {}8 L: |9 O/ S9 R! Q7 {
printf("谢谢使用!\n");
5 `9 P/ R. S% S/ m0 Nrelease(pworker);) `" c% B& l( t' x6 V" W" q$ Q
return 0;" T& I2 f8 ^$ j+ e. z6 u; y, B W& F
}, `1 R' G) u# V, ?
; y U7 w) E% X) J& i; L
9 a) l/ _- e8 g& Y- h5 p这是职工信息表 能运行出来不过查询功能不行能帮忙看一下是什么原因吗。。再此谢谢了!& @7 E. ], e2 B% W+ _ ~4 j/ o6 Y
" m1 H6 q2 }3 E# f8 D5 T
|
zan
|