- 在线时间
- 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>! ^9 F: P. g' I
#include <stdio.h>+ S$ P- L# I" c) \
#include <malloc.h>
2 A7 Z3 i' h9 D, t0 O#include <string.h>
W6 h( w# `; [! {6 \typedef struct worker' u. M$ w- Y4 J. l0 P `* {8 Y
{& G w9 P5 o+ m3 \: f: G# y5 l6 k
int id;. R; V4 |6 f. l9 z# B
char name[20];
% k2 r8 J9 M( [! H( n0 Lchar sex[3];
8 E& t: s6 {2 ?/ t& {' |int age;6 m% b& s6 h! Y! |. U
char edu[50];; Z# l* @4 }! U M8 B4 y
int wages;
$ l1 j3 Z8 m, M6 R: r3 @- dchar adr[255];
- K! q" H4 r/ \. ]8 ?; Ochar phone[13];
# [9 r: {+ f0 z A3 E- H}WORKER, *PWORKER;0 x6 {* W8 K+ v
//typedef struct WORKER *PWORKER;
( T) z$ o3 q' y7 k0 P1 Q( btypedef struct link
k; l+ M) V# y" N{. k Z& B1 @" A7 [7 O' o
WORKER w;
& {2 ]. h, E2 W8 T( k- ~struct link *next;
# Q5 X6 r9 Z$ j! _+ D( x}LINK, *PLINK;3 `' f/ V& H! z: E, m
//typedef struct LINK *PLINK; /*创建职工信息链表*/
& _' l" b$ H( b. k9 K$ LPLINK create()! V& @' z, M! u" s) L* _ d: N
{
A/ q( {8 f) E& o; V3 NPLINK p=(PLINK)malloc(sizeof(LINK));
3 r% b$ y$ O' a' ]if(NULL!=p)
, a. O M+ Y: t; W{
+ T7 K$ S4 K' @' [# q! ^$ ]) l. e$ rp->next=NULL;
; T5 A/ I( _* g/ d8 Ureturn p;! r) V: T& P3 f8 R# j9 l
}1 T- _% x6 ^5 X
printf("内存不足!\n");" u' j$ o3 M& R+ p; X
return NULL;
( r, Z. A2 S# `8 l} /*显示程序界面文字*/
! R3 F2 O3 a. X) Yvoid message()
+ w0 ~* u8 t$ j2 R: J" ?{ system("color 0f");/*设置当前窗口的背景色和前景色*/
9 l0 F' s& |, Z2 U/* 0 = 黑色 8 = 灰色6 j2 Y& V3 h; r
1 = 蓝色 9 = 淡蓝色" z) B* \+ o5 L; n; e# A
2 = 绿色 A = 淡绿色0 j1 t: a/ A+ p7 I# u7 |8 m
3 = 浅绿色 B = 淡浅绿色
/ Z9 @1 e4 B# G4 = 红色 C = 淡红色
+ c, h5 ?( x# K; E: p( F+ ?5 = 紫色 D = 淡紫色
: L4 c. ^7 @, _$ }& j9 M" `6 = 黄色 E = 淡黄色9 L3 T3 P$ Y3 \8 ~
7 = 白色 F = 亮白色*/* q- y- c8 X6 C2 b8 Y
system("cls");
5 w9 ~1 Z7 U6 r$ U3 hprintf("\t\t************************************************\n\n");: ~" g+ Z6 v7 C' \7 M
printf("\t\t>>>>>>>>>>>>>>欢迎进入职工管理系统<<<<<<<<<<<<<<\n\n");1 o3 a% c- G7 E8 ]" u( v# E
printf("\t\t************************************************\n\n");$ g/ i9 I' v* q' o N) }
printf("\t\t ************** Choose Function *************\n\n");
8 {/ `" z8 P. b# ]" k- _printf("\t\t ************ 帮助 请输入:0************\n\n");1 v6 m& J. B/ \9 q+ L, A7 H5 l
printf("\t\t ************录入职工信息 请输入:1************\n\n");
% n$ `/ [" W8 v9 [0 o/ l; W9 `printf("\t\t ************浏览职工信息 请输入:2************\n\n");
8 o& P) h7 Q& _printf("\t\t ************查询职工信息 请输入:3************\n\n");
7 P6 i' |* g: d6 \printf("\t\t ************删除职工信息 请输入:4************\n\n");
# [7 n% X8 R$ y( Y) i, p7 yprintf("\t\t ************修改职工信息 请输入:5************\n\n");0 ^" [, K P; i; _9 W
printf("\t\t ************ 清屏 请输入:6************\n\n");
3 ~6 {. N- h5 U# ^0 ]printf("\t\t ************ 退出 请输入:7************\n\n");
# }; ~2 r" @: V* J# |2 v' M6 L9 t6 {printf("\t\t************************************************\n\n");
! O4 B2 a& ?% s- g6 \9 X: ]' Cprintf("\t\t************************************************\n\n");
, j9 N% i+ j, ~2 ]0 {} void find_sr(PLINK plink, char* str) P9 D7 E' Y" }& r- g
{% ~5 e6 t. d, Q" ?- m! O: z5 A
for(PLINK curr = plink->next; curr != NULL; curr = curr->next)
) I s0 ~1 h0 j; x$ i5 R- r{6 U( P: J; z+ W
if(strcmp(curr->w.edu, str) == 0)
: ]/ ]+ j( x- s+ A0 i+ } u! ~{
6 T9 f- ~; F# _; }. r. iprintf("职工工号:%d\n",curr->w.id);
$ v' j( p; A0 Y& ^2 z ~% Yprintf("职工姓名:%s\n",curr->w.name);
8 p3 T- u" G6 q" K8 } f; H/ h, {& nprintf("职工性别:%s\n",curr->w.sex);2 Y$ c, M+ M- |( b- f
printf("职工年龄:%d\n",curr->w.age);
. K3 a: G& N% t9 hprintf("职工学历:%s\n",curr->w.edu);
0 a9 `2 \+ {7 Z$ y5 v2 aprintf("职工工资:%d\n",curr->w.wages);( F+ o3 c; T: t, [' @1 O1 Z
printf("职工住址:%s\n",curr->w.adr);, A, U3 d. p- }( M- G, U" r
printf("职工电话:%s\n",curr->w.phone); }7 f0 U! M2 _' o+ x
}
4 w: I2 T: P: e' H- f5 x9 J0 q} void findid(PLINK plink, int id)/ z% C# e, u& P) f& ~
{
1 H# p) A& ^+ s) N, G/ @/ Ffor(PLINK curr = plink->next; curr != NULL; curr = curr->next)
" H1 m: r5 {+ H& G; l$ u! f, h8 g{& b9 t [* L {+ ]
if(curr->w.id == id)& C' [; S/ n4 Q h7 @
{# W6 f7 L7 }0 P9 ^; i+ q6 @, ^0 e
printf("职工工号:%d\n",curr->w.id);
% R% ]- I; G% x, @$ j* G" j: Vprintf("职工姓名:%s\n",curr->w.name);* F) |5 `% W8 J1 m# r
printf("职工性别:%s\n",curr->w.sex);1 [, S1 F5 s' ^7 o- Z- P- d
printf("职工年龄:%d\n",curr->w.age);
6 \0 L2 B' Q- F& Gprintf("职工学历:%s\n",curr->w.edu);
& G6 u7 l6 B: M7 ]" T8 {* oprintf("职工工资:%d\n",curr->w.wages);
/ T& x0 w( Z2 L Q4 E7 ~9 Gprintf("职工住址:%s\n",curr->w.adr);
5 l" p5 Z2 E& J" Dprintf("职工电话:%s\n",curr->w.phone); }
% x2 @7 w% j/ t* k- b- `1 g' y1 F}, u8 k' u+ r9 m% Y0 Q0 j$ U4 A
} void show(PLINK plink)
2 T6 K* f: q# V. ]{ for(PLINK curr = plink->next; curr != NULL; curr = curr->next)5 B/ {( ^: G: i2 f, S* T2 J
{$ y% c& T( j! J
printf("职工工号:%d\n",curr->w.id);1 g; O) i. O9 \$ E
printf("职工姓名:%s\n",curr->w.name);+ E- s( u( x3 c) T1 L5 [9 m
printf("职工性别:%s\n",curr->w.sex);
8 P) ?- C9 T0 _) ^. `# d6 Tprintf("职工年龄:%d\n",curr->w.age);
" B4 X X9 B2 `8 eprintf("职工学历:%s\n",curr->w.edu);0 M5 y; b b+ ?0 }
printf("职工工资:%d\n",curr->w.wages);
/ D" g. G {! T6 ?printf("职工住址:%s\n",curr->w.adr);
J+ T, W2 J' Z; d# j k. y# Xprintf("职工电话:%s\n",curr->w.phone);3 c4 q% _$ a4 O/ T. t3 h! g
}
" e7 z6 S( q! N/ @% O0 |. [- C9 n} /*录入职工信息*/! o6 |" B' g$ e
int add(PLINK p)
* w/ a6 \, x k7 E{7 o- F2 P; J2 E p8 x5 A5 M
PLINK h = NULL;9 J7 s! U% E6 n3 ?3 y/ ^/ T1 h
PLINK q=(PLINK)malloc(sizeof(LINK));( U- P) T, L% i4 C8 V2 Y
if(NULL==q)
. q+ J& i7 X: A. E) j{* A. N. x$ R; c
printf("录入失败提示:内存不足!\n");5 D: ~( L) L& t; k
return 7;) O" i9 n: C0 T
}' u& m/ e3 ?4 ?
printf("请输入职工号(数字):");2 @! w$ ?) ^; h' J% E2 t
scanf("%d",&q->w.id);
8 D; G$ }# C7 S2 Q; wh=p->next;
( `$ H# E; K* b0 q4 @- Pwhile(h)2 z* B, v! H- n% n0 Y
{
- t" s/ i- \1 k7 M# ~' ]( f" y, g( cif(h->w.id==q->w.id)
1 c0 B! D6 A: x4 j8 I{) ^$ j: e3 [6 D/ j
free(q);
5 h' E6 X- ]8 l' s: Tprintf("录入失败提示:此职工号已经存在!\n");
1 N4 o5 A, U5 yreturn 7;+ B; R. ?" F0 o- z$ r8 |% @1 b9 W
}
, X/ `0 R) w$ _8 v# R! }% Th=h->next;/ G. w, A' y$ a
}
" v' M0 _- s% H# h7 ` tprintf("请输入职工姓名(文字):");
7 U6 |; W; h; F8 q* \scanf("%s",&q->w.name);* ^7 _2 U2 ]8 l. C! S
printf("请输入职工性别(文字):");1 d6 S( K9 z# X5 x% F8 w, Q" U
scanf("%s",&q->w.sex);. V% R$ J; g1 D5 ~
printf("请输入职工年龄(数字):");
( [; I* S; @: V# D( @3 jscanf("%d",&q->w.age);$ ?0 Q* t+ O/ O& g% ?
printf("请输入职工学历(文字):");
9 m$ n2 d& [5 u# p1 }* O+ J5 uscanf("%s",&q->w.edu);
/ X# n" d& Z/ Sprintf("请输入职工工资(数字):");
. w! D' o3 v. s4 Uscanf("%d",&q->w.wages);
2 s0 B' j5 C( {& D+ cprintf("请输入职工住址(文字):");+ g: T2 x$ ?) z* I* t. w7 Q
scanf("%s",&q->w.adr);* s- ]0 p( V$ I5 j2 A
printf("请输入职工电话(文字):");
/ m4 Z, V# H5 m7 qscanf("%s",&q->w.phone);) p W2 G$ R& _% T, q
q->next=p->next;0 n5 M% g: u( X4 S4 H% T
p->next=q;
+ b% h" X# L. l5 N5 Iprintf(".^_^.录入成功!.^_^.\n");& w) ~" y. k* n z9 Y
return 7;
0 Q$ m$ V Z* Y7 q} /*按姓名查询*/7 R, Q+ H9 u5 k) K6 X" v1 A7 L
PLINK findname(PLINK p,char *name)
2 y3 T1 H+ ~$ ?{
. i1 r5 [3 l0 s0 |8 ^( `' }message();
5 {$ P+ F: T6 C+ E0 }( z' O! Vprintf("按姓名 查询\n");& |8 n& C; S: T6 n$ Z: Z' n
printf("职工号\n姓名\n性别\n年龄\n学历\n工资\n住址\n电话\n");3 P/ G5 z3 B3 e# t4 j9 z
while(NULL!=p->next)
7 l* ~5 t3 j; t. ]: @" Q" |+ B: [{
: f" Z- b# e8 Z0 S0 \# Oif(0==strcmp(p->next->w.name,name))
1 x( }1 {6 e/ D4 M{
. k6 H6 F E4 w$ Xprintf("%d\t%s\t%s\t%d\t%s\t%d\t%s\t%s\n",: ~4 @4 H" S, B0 c: r
p->next->w.id,p->next->w.name,p->next->w.sex,p->next->w.adr,4 Q& S+ R; `% \) D6 S# h' h" g( N: k& _& F
p->next->w.edu,p->next->w.wages,p->next->w.adr,p->next->w.phone);! x2 N$ R# o a; Q) X" i
return p;/ a7 B: v: q3 N6 L# k
}
' L! u( J$ E- z5 \p=p->next;9 U- d. F6 w8 A
}
1 ?7 t9 x4 U3 E* Uprintf(".^_^.查询结束!.^_^.\n");
9 R* |, {$ q9 d: w3 A3 jreturn NULL;0 f2 i* C# K6 q4 P
} /*按职工号删除职工信息*/
3 Q. M+ G3 k4 h( Q8 ~int del(PLINK p,int id)
5 p; ?/ \7 P- w: T4 f& Y{
% O$ s3 \' r) o8 ~( |5 ^message();: ^) Z7 H( [. m8 O. n. ^+ R5 y
printf("按职工号删除职工信息\n");4 g1 ^1 d9 i. b7 c
while(NULL!=p->next). S5 U! l& c, R* F. V( B, a
{" f g4 d5 O- \; [1 O. c: C
if(p->next->w.id==id)
3 B! S2 C2 G* L- c; ]{& F o9 l2 m w$ D% c e- R' V
PLINK q=p->next;; o5 I9 H8 q. u
p->next=p->next->next;
. K8 ~8 \+ R: o; Mfree(q);
- a/ D2 K- y& I% eprintf(".^_^.删除成功!.^_^.\n");
- v* ~' b# @4 y' U; X) Q7 q% H9 Q/ Treturn 1;/ S: N; A3 L; }* U' l/ U
}$ q- |% _/ l( W* H, G4 I8 _
p=p->next;" ~ I# o4 P: Q8 g! B3 Q
}
+ Q; r n+ {, J! s0 T& \+ Hprintf("没有你输入的职工号!\n");' l) B4 ?3 x+ I
return 7;% j9 [2 r( I# b* L, A# n/ R3 G
} /*程序结束释放内存*/
/ J1 v9 x& e6 F$ X. }- W2 Pvoid release(PLINK p)
1 B( g4 |* Q U* p4 s( T, X{- u) `/ ~. m, d! j. G9 w7 g+ U6 C
PLINK q;; z5 L& g" {# s. l' K
while(NULL!=p->next), N; L$ N' D5 b
{; g4 ?1 y4 M; y1 m d
q=p;& u3 f2 S' }& |- n: Z
p=p->next;
4 H7 b, V( v( J2 J) o# \free(q);
' z% K) ?7 G* {: z}0 w* J( t! C7 z( D$ ~
free(p);3 H- L- b+ @! S$ a) N
} /*查询调用*/
- d. E1 u& S4 cvoid search()& C# A' Z+ }: u! R* N7 l$ C9 X" s& N$ o
{
" X$ A6 |. D0 fint id;# b. `7 c& _0 j( L" n& y
char name[20];
1 J1 q- m" K( ?6 a$ D J2 hchar str[20];
8 q# t- P# H0 `2 F. A6 tPLINK pworker;
/ b& g# Y" n5 d* u7 w4 B' f Hint l;1 v6 \3 f' y* `$ k5 Q
printf("\t\t\t\t*姓名查找按:1*\n");
; j' G" i7 z5 G# N3 }4 Pprintf("\t\t\t\t*学历查找按:2*\n");4 }5 t9 W. |) }/ d; J3 E
printf("\t\t\t\t*职工号查按:3*\n");# T, E2 ?6 {( g
scanf("%d",&l);9 N) N& ?# u; N2 W5 d- q0 m# R
if(l>0&&l<4)
) K5 ~. U" d6 n2 V% @6 Y4 G{switch(l)
: j+ _ b! Y9 V; ?7 i) Q{
& B3 V/ w1 U7 E# s7 s1 h9 t8 p& t3 tcase 1:printf("请输入要查询的职工姓名:");: k: U$ J$ d1 p- f
scanf("%s",name);/ h" {& j" o; M9 c
findname(pworker,name);
6 f0 m2 @; R; q5 I, i0 obreak;
( L( z% j4 F/ s! G2 R l. dcase 2:printf("请输入要查询的职工学历: ");
1 _7 w; _; o. Z& p! X. C4 Hscanf("%s", str);
4 H: r& Y( t, B+ m& t# tfind_sr(pworker, str);" K$ Q4 A1 V, [1 m( W1 Z7 S- b1 E
break;
* o% y* X% |/ @case 3:printf("请输入要查询的职工号:");
5 r$ B, t1 d2 s oscanf("%d",&id);$ W. ^! ^3 }8 q8 O
findid(pworker,id);
4 a+ l* u% {# r& f3 j% Xbreak;" M+ ^$ r& Q7 u# f
}
# a! r2 o5 |! }3 Lprintf("\n\n选择完毕!!!");- x7 v3 b. Q( [% v1 Q
}
( c: {- I6 d8 W, a7 B( belse printf("\t\t\t\t输入有误!!!");
6 Z, _) h9 I" M% ?8 ^2 m7 j} /*修改职工信息*/' a% O# d: q# b0 ^ P9 Y/ U
int modify(PLINK p)
9 `. z: ]6 y5 s{ int id;+ @" c9 Y0 ]. ^' ^
PLINK q;
9 G& r+ H, B! t, }: BPLINK h = NULL;
5 w: K- `5 N4 p% i/ J$ `% V1 E4 Dprintf("请输入职工号(数字):");1 P* U) _: s* u' S
scanf("%d",&id);, {5 H+ F) s. m8 s0 @
h=p->next;; T9 E- D; j- \/ |1 G
while(h)
( T0 j# ]+ S/ I7 c, I4 u0 u{
( t, C. ` e' J$ ]6 u& Q4 i4 lif(h->w.id==id)
" D, k3 G0 U! g! S' d+ Z{
3 n. n( Q. Q* i9 R$ \+ dbreak;% J, J! \' U5 {* R
}& U, r: U" z" _' l+ [' T: ]
h=h->next;
# w/ q b( y6 }( R0 F, ]; Q}5 s3 X; l! B3 {% L8 |0 S
if (h == NULL)6 S* v) D& `+ {* }0 `% g i: _8 r% i
{; S: A* C8 j- A9 N
printf("找不到此职工,请重试\n");
7 G- N! X5 j& G |. Hreturn 7;
9 _/ |" V q- C}6 N: ~! o# E) H
printf("请输入职工姓名(文字):");
/ j- Z' I# g3 Z8 z& I+ q7 V2 iscanf("%s",&h->w.name);+ |) W6 D( B+ n7 p/ C5 P
printf("请输入职工性别(文字):");
4 M$ ]4 c: ]$ Vscanf("%s",&h->w.sex);
+ {' r1 @7 q! ] O: e+ }. v5 C; Zprintf("请输入职工年龄(数字):");+ @/ K* h! t) X# O. M, P0 b7 m Q
scanf("%d",&h->w.age); K# b! W8 h3 M' @; Q
printf("请输入职工学历(文字):");3 K/ k5 w/ b. W
scanf("%s",&h->w.edu);
" O( d# i' J; |7 p2 l' ]6 yprintf("请输入职工工资(数字):");5 m9 i; J" }% y
scanf("%d",&h->w.wages);
. d1 z$ w1 W" \2 g1 lprintf("请输入职工住址(文字):");8 I2 k8 `( ^" ]) t7 K2 [
scanf("%s",&h->w.adr);
C/ m! e( T9 q2 n* k# f( \printf("请输入职工电话(文字):");
. e" ? e3 Z$ \scanf("%s",&h->w.phone);3 _: O8 m- u! Z% k
q->next=p->next;
$ q9 A+ X1 T( v5 \p->next=q;
5 k5 G, P7 ?) bprintf(".^_^.修改成功!.^_^.\n");
1 U( ?) B7 @# E' i8 z/ j+ Wreturn 7;# B" e2 h, ^, C! a. ?
} int main()3 c' L8 v6 w5 C2 b. F( @" D" S1 V5 x
{
1 R. n, y3 x/ |) w% \& a' j) [& L7 T# I1 s
int cmd=0;( ^+ ~% s% A0 x Y S3 p( s. P$ G$ n8 f& v
int id;+ i2 k( k( u% M1 n4 E* v# R
char name[20];
F1 Y, b7 U, U8 C& _( _5 _% bchar str[20];5 Y. \8 t* C3 L0 ]( F% ^% f
PLINK pworker;2 ]! }. y- \& p
if(!(pworker=create()))( ]3 M1 Q: t. ^0 p$ a
{6 f: ^) M; Z/ G9 A5 q: ^8 p& d$ s
exit(0);& u/ t' ^9 a, Z0 @8 X& b' [. U
}( }) J/ A& |3 X3 j$ b- ^0 W" l
while(cmd!=7)
z5 k0 I4 g4 w" X; X6 w0 i{4 h5 D7 o: S% M3 H% t
switch(cmd)2 Y9 O w. A0 W" _9 u C4 |
{
+ Q/ l/ G0 N2 ?2 v9 u7 j( Q% x* Scase 0: message(); break;: g2 d9 R' j; m2 }- |. N1 y! Z
case 1: add(pworker); break;$ m3 A4 m9 O$ b q0 p- i% P
case 2: show(pworker); break;6 j, c+ p9 R8 N# O: q& N
case 3: search(); break;
( s+ o/ f9 m! R3 l+ k5 H* Gcase 4: printf("请输入要删除的职工号:");
; b" o5 A2 \6 }# ^5 y1 q; T" _ Oscanf("%d",&id);
) z+ n) l6 m$ h8 hdel(pworker,id);! X0 O3 ]/ C" b; k% E* ?6 e9 b. V; l
break;
: _; O! H# b8 E8 Ycase 5: modify(pworker); break;
- r0 y4 j% P$ {0 K! M1 zcase 6: message(); break;
" j9 T h( R3 c! P4 x5 f, G* T}
& |# H+ e0 ^6 lprintf("请输入操作命令数字:\n");
$ k+ f+ B* E+ H3 s4 Q# X" S, ]7 Sscanf("%d",&cmd);
# p" l+ b2 {$ G& O0 }/ }}
% G, Q/ y+ n' K! iprintf("谢谢使用!\n");
/ a5 N) K) t' M' r' z8 |4 ^9 srelease(pworker);: V: P; a3 ^* ]# ~2 m! o
return 0;
# p8 R# Z: O) K}
/ Y ?$ X5 Y/ T1 e' s9 V# R+ u9 L% @+ m) A
+ Q6 \9 P- b, j这是职工信息表 能运行出来不过查询功能不行能帮忙看一下是什么原因吗。。再此谢谢了!
4 Y! B- P6 n& W% k! Y: w6 h8 C
+ N3 S. m; j" J& j* u' Y |
zan
|