- 在线时间
- 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>2 x8 W9 n5 J X
#include <stdio.h>
# H. i* _0 E( e$ R& W/ Y* B& ~#include <malloc.h># Q* L% y+ _& J8 `
#include <string.h>
! j' L; [$ I9 _+ m* [typedef struct worker4 v' [" Y; ]: W a: w5 o
{
# B% h* V/ g% cint id;
2 Y. o7 k2 H) c% `. ? V" _( \char name[20];
- y7 m- U& E2 u K$ V; achar sex[3];
! h2 t% `# @ u Z8 P! K8 }1 wint age;# u) y! c. U% E9 x# Q0 C
char edu[50];
8 k4 C+ E* ?' b3 b1 l, t: R, A u) Aint wages;
7 _2 j7 W+ P: V( h% H1 f7 Schar adr[255];
9 \7 b* A7 S; ^$ I, { Z7 dchar phone[13];6 Y3 ^& I! O7 F) Z: ^5 B
}WORKER, *PWORKER;
- x7 p: ^' M' `+ a9 B//typedef struct WORKER *PWORKER;) F% m9 j/ @6 r
typedef struct link9 @% v5 ?3 y, c: q8 g
{
3 `* o4 G- X4 n3 }WORKER w;
; P: a$ v, [+ C: J$ s" s ostruct link *next;
* B8 ^% b: o) X! |, l}LINK, *PLINK;% g1 K# f2 ^3 ?3 F. T, H( f
//typedef struct LINK *PLINK; /*创建职工信息链表*/
3 e: r( A% X0 F) q/ Q3 b7 TPLINK create()- K# W: }+ Z$ l( b. M' B% V
{
6 n* Z4 d: U8 i& X: {; KPLINK p=(PLINK)malloc(sizeof(LINK));
( M9 N7 l4 I9 s4 l4 sif(NULL!=p)
# @6 ?5 D/ p, ]5 k- _{, J- M a, n3 Q: E) ~: |) M
p->next=NULL;+ x, P* }2 [$ C0 y
return p;* S% {( V2 ~5 G' y! Z4 o9 _/ Y
}
: M) h4 K) n6 a4 ?printf("内存不足!\n");
, q: Y9 ?; y( mreturn NULL;3 V7 M5 F+ o2 v: h; ~. L3 ~
} /*显示程序界面文字*/
1 G+ o6 t) ^5 k' a4 yvoid message(); F' v( [7 v* o
{ system("color 0f");/*设置当前窗口的背景色和前景色*/
& }* ?/ t9 g r: m0 L7 {. T/* 0 = 黑色 8 = 灰色1 a& \- P) s0 @
1 = 蓝色 9 = 淡蓝色
& ]6 K4 W, b S7 Y2 = 绿色 A = 淡绿色0 O! k. z$ b _: U
3 = 浅绿色 B = 淡浅绿色: q) P; z- I( \4 K
4 = 红色 C = 淡红色
4 }# \/ Z; P7 k9 P5 = 紫色 D = 淡紫色4 ~9 W! [1 L0 V9 q
6 = 黄色 E = 淡黄色
- `, V% A! S9 ~+ w- X2 _. Y7 = 白色 F = 亮白色*/
7 [/ M. M, {& C" W/ fsystem("cls");. }. Y9 j9 m$ g1 b- U7 m
printf("\t\t************************************************\n\n");
$ L. l( J' D4 O G3 S, ?9 k& uprintf("\t\t>>>>>>>>>>>>>>欢迎进入职工管理系统<<<<<<<<<<<<<<\n\n");
; g$ h" c2 ^( U4 P+ o: Dprintf("\t\t************************************************\n\n");
0 ~/ H8 Z5 i m1 F' n# Fprintf("\t\t ************** Choose Function *************\n\n");
3 [# ^7 w k- ^ vprintf("\t\t ************ 帮助 请输入:0************\n\n");
7 G8 X0 }% D) n* M) Pprintf("\t\t ************录入职工信息 请输入:1************\n\n");7 { _, W2 e: h0 C
printf("\t\t ************浏览职工信息 请输入:2************\n\n");- P3 f) N, C* L* d
printf("\t\t ************查询职工信息 请输入:3************\n\n");6 v& T7 S6 @) j2 _
printf("\t\t ************删除职工信息 请输入:4************\n\n");
$ X) i2 z1 F9 N9 M" Sprintf("\t\t ************修改职工信息 请输入:5************\n\n");. o2 P* ? D' l. E- |- \! H9 u
printf("\t\t ************ 清屏 请输入:6************\n\n");: ~, T- W, A& K) ~% ~" M2 s
printf("\t\t ************ 退出 请输入:7************\n\n");
, o. k& a: `5 i% z1 ?! U# n0 Bprintf("\t\t************************************************\n\n");" q2 B5 p' B8 A/ [
printf("\t\t************************************************\n\n");
7 F- `' P3 o- |} void find_sr(PLINK plink, char* str)
6 G! o- ^3 V$ h6 V+ K9 j' m1 c) i{8 J0 W. X; D5 V5 ]5 ~5 w
for(PLINK curr = plink->next; curr != NULL; curr = curr->next)
9 ~; V+ _& l; L/ `4 F$ V9 k{
$ F& W0 d+ W# Y8 Xif(strcmp(curr->w.edu, str) == 0)1 \: J8 \( _) d& h, V2 N
{
; @: W3 N+ Q) ^# x& Mprintf("职工工号:%d\n",curr->w.id);/ j6 e3 m9 ~# z2 o: u/ H3 v
printf("职工姓名:%s\n",curr->w.name);* Y) G; \6 m8 o& Y$ ^( [
printf("职工性别:%s\n",curr->w.sex);. Y$ A0 n' I: w
printf("职工年龄:%d\n",curr->w.age);7 C) [5 S2 P8 [" V- }
printf("职工学历:%s\n",curr->w.edu);) R8 g, K7 L s n* X* j+ Q7 O4 t1 L$ k# A
printf("职工工资:%d\n",curr->w.wages);- r& P J8 p$ X, \5 E8 k
printf("职工住址:%s\n",curr->w.adr);
( j5 A8 B; U& N' h, sprintf("职工电话:%s\n",curr->w.phone); }
* {+ l! P, Z3 w( U; `8 Q7 L: q}4 V. F6 P: P) [( y L
} void findid(PLINK plink, int id)% U) W# r+ G) c( p' \
{
8 Z6 P$ E0 v* ]- ^7 S" o- Cfor(PLINK curr = plink->next; curr != NULL; curr = curr->next)
# J8 n( I" S. W8 b{
) q: E9 Y& @3 q" b7 U& f$ ~if(curr->w.id == id)
8 S, Y2 J0 F+ Z9 ]3 Q4 s# G{ E; A. b$ N7 \ E! U$ V# ?* Y% ]
printf("职工工号:%d\n",curr->w.id);$ h( w+ e" D- M i+ m
printf("职工姓名:%s\n",curr->w.name);
. b% B$ I0 |4 {printf("职工性别:%s\n",curr->w.sex);! \% b- j+ T- ]! v2 B( C( a* }
printf("职工年龄:%d\n",curr->w.age);
# z' d& F2 K" L1 Fprintf("职工学历:%s\n",curr->w.edu);
* r/ t i# X. z5 \/ J$ ~+ ^, z5 V' A" nprintf("职工工资:%d\n",curr->w.wages);
5 I* `5 X4 r/ ~printf("职工住址:%s\n",curr->w.adr);2 r G" M5 ~; w$ I- K8 _( K2 r7 c
printf("职工电话:%s\n",curr->w.phone); }: a6 j3 e8 I* K+ L
}
- g- W, Z$ _5 Y; {, O6 n0 X} void show(PLINK plink)
& H. s" I n5 I{ for(PLINK curr = plink->next; curr != NULL; curr = curr->next)
$ t3 r# R! h& b) _ f: D{5 ?0 `/ a- b! l# ~$ g1 T
printf("职工工号:%d\n",curr->w.id);
! h8 c4 ]) O6 x2 Jprintf("职工姓名:%s\n",curr->w.name);, j% ] B3 R! M2 q& Q, l, v
printf("职工性别:%s\n",curr->w.sex);
& O: o- p3 i3 Y) y: J# {! `printf("职工年龄:%d\n",curr->w.age);
: n/ f- b: V; u) w, _printf("职工学历:%s\n",curr->w.edu);
3 j% ~7 K. O& Iprintf("职工工资:%d\n",curr->w.wages);$ q6 A }& k: a2 ?& }
printf("职工住址:%s\n",curr->w.adr);
* A8 ^$ j' h3 c8 qprintf("职工电话:%s\n",curr->w.phone);1 ]3 O6 r4 D" O* k g0 Q3 U X
}5 V6 h1 M) y! {; l" f0 P7 p" ~
} /*录入职工信息*/
) F2 W% f- S1 R, Jint add(PLINK p)
F! R/ ?; P1 s1 s' M{# k) V0 Q3 x" b u0 q8 Q
PLINK h = NULL;
2 y! M) M2 R7 _4 n% HPLINK q=(PLINK)malloc(sizeof(LINK));
: x, ^6 a5 u+ s7 {if(NULL==q)' s" B* D% E' }* k9 a1 l
{& E" U* v; m: W" h7 ]
printf("录入失败提示:内存不足!\n");1 a) X4 N& p" @
return 7;
1 x* O& a$ M9 _4 J2 ^} U8 h6 f( l: K
printf("请输入职工号(数字):");
0 o. E. S/ G$ ]/ nscanf("%d",&q->w.id);" x; a, Y" j* j. V4 g
h=p->next;
. j, a7 i4 @5 k- ywhile(h)) _7 i; j s4 F( Z# M$ C2 |3 w
{
2 U; q) r( S: p; r( F+ i& T% lif(h->w.id==q->w.id)7 z0 w u0 U( \7 J9 B) x' f+ s
{
3 b$ r: K# X1 h( {2 Xfree(q);
" g4 E5 V. m3 ^4 k) v+ j* eprintf("录入失败提示:此职工号已经存在!\n");* w% d. k+ C1 ^9 o5 p& j: P
return 7;
: [; \3 f8 X4 I8 y4 p" j- A}
7 w) Q# \' C, f' _2 F. \h=h->next;
1 B' Q/ {9 p/ J. i3 U}
; O, a& M' B# i8 N _& e" Mprintf("请输入职工姓名(文字):");
1 K7 t* n9 s5 F. y6 n% w8 i2 j" M* Mscanf("%s",&q->w.name); J1 s7 G( O0 c1 G
printf("请输入职工性别(文字):");* W, n7 n- |( l( c( k
scanf("%s",&q->w.sex);& B# H1 I) ]: o; {5 O' ~
printf("请输入职工年龄(数字):");
+ K& t% a, o( h5 Ascanf("%d",&q->w.age);8 a A5 O# c9 u" @* |- x: F3 y* S X
printf("请输入职工学历(文字):");9 l" V8 o- l# t U: ]8 n/ J( N6 ?
scanf("%s",&q->w.edu);, V5 S7 a& q% h2 l9 N: t; O9 A
printf("请输入职工工资(数字):");7 l( N9 ?: _! j$ Y
scanf("%d",&q->w.wages);; n6 Z) R+ `. j% H* H, U. {; F
printf("请输入职工住址(文字):");- O: J( H o! Z' z7 _* H: Q- P ?
scanf("%s",&q->w.adr);; \2 @& G; x% e+ g2 L) q
printf("请输入职工电话(文字):");4 D3 D, N$ D4 p; W: D e
scanf("%s",&q->w.phone);
& z8 Q" P* e* {$ [1 Sq->next=p->next;, t8 x+ r4 L q' [- H0 t# T
p->next=q;
$ W$ y, ?! ?# X/ Zprintf(".^_^.录入成功!.^_^.\n");
9 w1 y) c8 f+ B; t; S' hreturn 7;
; v& j( G9 E( w! y$ o+ \} /*按姓名查询*/
- @8 f" m$ t" l* B+ g+ }PLINK findname(PLINK p,char *name)
- a5 A! }4 m P9 `7 X3 C{# k* S+ V) m9 F, p9 f
message();
! M' h+ e- y+ n1 B! l) K+ W/ _! D$ ]printf("按姓名 查询\n");5 f3 f. t o+ R& o T2 x
printf("职工号\n姓名\n性别\n年龄\n学历\n工资\n住址\n电话\n");- T2 @1 Y! C5 v9 r4 J/ \% W2 B
while(NULL!=p->next)
$ A8 Q9 U9 Z: [0 ^0 s5 t{
! G1 }8 e ~0 r* _) N2 Eif(0==strcmp(p->next->w.name,name))
" M4 X) G( u2 T! s R$ M{% V# T& f1 B! C
printf("%d\t%s\t%s\t%d\t%s\t%d\t%s\t%s\n",
7 y5 K' J6 @5 j. i; [/ {4 E5 H7 p3 op->next->w.id,p->next->w.name,p->next->w.sex,p->next->w.adr,
% Y, G6 N- P3 ^p->next->w.edu,p->next->w.wages,p->next->w.adr,p->next->w.phone);# V. t' u8 m; a6 f& ?7 o! D
return p;
8 S& _1 |. v# H, n p. Q}
I! u, z9 ]" @/ bp=p->next;! z* _' E% e+ L' S
}/ M( A8 N6 I' [, {4 Y. q
printf(".^_^.查询结束!.^_^.\n");
1 |* M; J9 d, }* oreturn NULL;
' d# i: n L8 z2 Z} /*按职工号删除职工信息*/# a% |4 @! a7 A5 t, H& _- b
int del(PLINK p,int id)1 S# r$ R4 V* X* J
{7 P) q5 |7 O- B/ F: G" |8 M
message();$ N3 \8 y1 o3 i. s+ ^4 R( I" H# D
printf("按职工号删除职工信息\n");
' a: { U) L4 W8 D) |while(NULL!=p->next)& Q% M% s( Y$ l4 V
{
! i/ L8 `4 q6 V. V) oif(p->next->w.id==id)
7 _+ Z( Y) r5 |& Y( s7 Y% d* b{
8 |1 J9 m/ N- ~5 x j9 c, c, t- ]+ UPLINK q=p->next;
- s. T& ~4 E3 Q( |: Op->next=p->next->next;$ y4 u4 \0 |8 U# e! g
free(q);
2 v, ?7 V W3 {# ?) M3 D$ vprintf(".^_^.删除成功!.^_^.\n");% J! W, e8 X3 K
return 1;
5 p' J& T: A. Z( z}
1 c. O( F9 Y0 L1 n9 n* dp=p->next;* x! ?0 b4 o! A/ \$ B1 ~2 ]
}6 T/ {1 ^% k' Q* d. l/ ]
printf("没有你输入的职工号!\n");! l, s+ c1 o3 N7 _$ g) y/ K* J
return 7;; X e( ?( e! o# d- z6 f
} /*程序结束释放内存*/2 u" p2 t! _) s5 O! y+ x: s
void release(PLINK p), d' L: O" a" o9 J F4 k! A
{
6 ]) `3 x7 M. iPLINK q;
* R0 H2 o+ X. E$ A) Mwhile(NULL!=p->next)3 W v+ _& L3 x7 f. n4 Q
{
* E# g6 R! K) @: ]2 rq=p;
O4 g2 N u% U$ kp=p->next;
; i& S# X; I! D( Gfree(q);
# N) U6 h, @1 b}
3 k7 ?: S D4 r4 U+ @5 V! @free(p);6 X1 L6 M! N; q: {/ |
} /*查询调用*/" o1 S8 ?' U+ V8 U$ t
void search()
+ ^& |& h* a( @ h" f1 m- f1 p9 b# I5 R{4 w# |9 i' R$ N0 C8 L* x
int id;
X [. {+ O" V' G: y% \7 _! }char name[20];
/ e/ `: g6 s! Wchar str[20];
: ?0 @& f8 e" ` v, X: Y6 {9 h/ [PLINK pworker;" i/ p2 q9 n2 G: _' O8 z1 K4 k' s
int l;* T7 f" \1 q f' n5 K
printf("\t\t\t\t*姓名查找按:1*\n");! n# i/ S/ R+ J' n/ a' I) }$ g
printf("\t\t\t\t*学历查找按:2*\n");7 k( \5 `, L' z5 p, C: u
printf("\t\t\t\t*职工号查按:3*\n");
T( f+ ?3 J" C" [! y7 r1 I' @scanf("%d",&l);
7 X9 E1 Q( V$ Nif(l>0&&l<4)
5 ]# U: C% S. [" f1 p% v% q{switch(l)
* q5 F2 D" |. _% `1 O7 X4 K{4 F& }/ ^4 J( w. C; Z
case 1:printf("请输入要查询的职工姓名:");! M$ C7 T3 ^1 ?
scanf("%s",name);' s' S3 F# P) m0 D( y
findname(pworker,name);' ?9 H: ~) N! Y1 ^7 t) v$ u
break;
/ P1 S- I# |6 ^" X; lcase 2:printf("请输入要查询的职工学历: ");- H4 i. n' R$ e/ u
scanf("%s", str);
' f# \1 b! p$ G% Zfind_sr(pworker, str);* a4 {3 I' |- q9 y! v2 P2 ?- @ r0 \
break;' A8 q- W, l- d& p
case 3:printf("请输入要查询的职工号:");7 W6 H2 q9 z2 Y' C1 L6 U$ t8 ~2 r; Y
scanf("%d",&id); d3 ~/ Q: x# r7 X) d4 H- r
findid(pworker,id);! J% Y$ R9 X& M! C$ {" B
break;
4 X8 u0 p5 ]( g. L}3 V. `( |% S9 O( d( s2 s( X$ U0 l
printf("\n\n选择完毕!!!");
% h* P8 y* Z) _}& C. u) [; [ Z2 ?) a
else printf("\t\t\t\t输入有误!!!");
) [( N7 |9 P) }( a0 h8 N} /*修改职工信息*/
7 P( W$ z; B* P% a! P9 dint modify(PLINK p)5 I0 n$ z) n1 s" q c
{ int id;
" T* E# B" n2 KPLINK q;
) h; K; z( d6 |! i" [PLINK h = NULL;
9 m* h- z2 ~6 y: j% p- b* Gprintf("请输入职工号(数字):");
1 ~1 O e% u7 ~" b' f- qscanf("%d",&id);- k& Q6 d. |0 [& [
h=p->next;( T* v0 g% ]* K" @: C, n7 v
while(h)
% k( e/ J& ^& N! T% O{+ N# I' E" t/ X$ [$ \9 q
if(h->w.id==id)
5 b0 Y0 Y+ j! \# i5 v) s% T{. x$ X' ~ ~$ ]9 H) w D
break;
( V" h3 T/ {5 S5 A+ L! R}( s2 ]6 v) q4 Z7 {3 J
h=h->next;% V( v- [5 U! [
}, M0 P# x6 R5 q' |- O. @' y
if (h == NULL)/ I! j# J: R! j/ {' r2 i5 H* c
{
% n |9 K0 \* W4 Kprintf("找不到此职工,请重试\n");
3 I# f% r9 D: ?. s9 g5 ]' [return 7;
1 k6 m$ s" h/ |/ T' E}
" _2 S; b n) _' J, k( ]printf("请输入职工姓名(文字):"); \8 D5 V- d5 }" T
scanf("%s",&h->w.name);
# ?2 a- c$ B, ]% S3 ~* jprintf("请输入职工性别(文字):");
; |3 ?0 W7 _5 i! x2 A0 Qscanf("%s",&h->w.sex);
6 M3 n* a* v+ b+ c; \" j4 Zprintf("请输入职工年龄(数字):");
4 _- b* t- Y# k8 _$ v7 S- Z6 zscanf("%d",&h->w.age);
* a- F7 e9 @* R7 ]2 X3 ~7 Y. d% W! vprintf("请输入职工学历(文字):");
% f0 }6 r' G% e& b( y Lscanf("%s",&h->w.edu);
. C/ u" F! ^8 l: W1 |- @printf("请输入职工工资(数字):");
* S$ Y- t4 I# F: T3 lscanf("%d",&h->w.wages);
4 Q. }7 t% r/ vprintf("请输入职工住址(文字):");6 o# r& X2 }4 B4 V5 o9 g7 M) F H
scanf("%s",&h->w.adr);
+ ~, b8 u0 {: _: F, f, ]$ tprintf("请输入职工电话(文字):");
7 x! \. t: ], c- ], d5 v1 n V: U2 Zscanf("%s",&h->w.phone);/ { d/ N M$ y, l
q->next=p->next;" w5 z9 K& d1 k" v
p->next=q;
" h3 G. G( g, B6 [printf(".^_^.修改成功!.^_^.\n");
Y9 ~8 H, P" y2 @; p, R3 wreturn 7;
4 r- i ^1 d) ?. s: V: l} int main(). H0 z7 x7 `; e1 @+ Y" N
{* V% r' B: I- B, }+ N
" Z# F! y& {8 s. {# B' }
int cmd=0;
" s s; g$ p0 f a( B: U; Jint id;/ n! w( u/ Q4 {; X$ {& N N: v
char name[20];% t1 L, ?( l8 z9 I- x1 Y
char str[20];$ [) g2 ~) D3 }
PLINK pworker;# d9 a+ _. x: a* Y
if(!(pworker=create()))
! r' Q& [) l, w. ^+ j{
# e# J# |" P& j3 Oexit(0);" ]) p! }. G+ q- j7 ~
}
, Z* Y# X0 F& ~' k( Y& g" dwhile(cmd!=7)7 ~+ C: l$ w* {4 ]9 h+ y* m* e
{0 r* g0 W' k* W. w
switch(cmd)
7 {: A( C. `- E1 H9 o" S$ Y( m$ T{9 d% K. C# G8 |0 U' Y9 I; J6 p
case 0: message(); break; G% [$ W% g \' H/ P" y
case 1: add(pworker); break;
# [' H9 _- O% r; k. Qcase 2: show(pworker); break;6 w1 s9 S( m5 |" r. V- _ v- C# ~4 V
case 3: search(); break;. B/ e% \& {7 o4 Z/ N) P
case 4: printf("请输入要删除的职工号:");& O H* r4 s# R; X* x d0 ^
scanf("%d",&id);& ]8 R) a1 ?3 v. q; Z% g$ k ]
del(pworker,id);/ N# q$ p8 H+ {$ P+ A Y8 Z7 T
break;
. G4 }* S3 c1 ^/ Wcase 5: modify(pworker); break;
# b0 t* S+ w5 K) dcase 6: message(); break;5 h# ~/ I {6 C. b3 Y' X
}
3 K5 {) g. x8 L! F) b1 g. Dprintf("请输入操作命令数字:\n");
/ N6 p2 c9 G4 F" r, Ascanf("%d",&cmd);% Y) d/ E. x& |; _+ X9 v5 v0 o
}
0 N+ f6 Z% J( F. Nprintf("谢谢使用!\n");+ b: e+ W" e2 h
release(pworker);5 R6 g8 Z* \# @/ u8 _
return 0;
6 V' R4 T4 b5 M+ U/ b1 t0 }}
" U' x Z$ g( u* Y x% m. b* I# t- ^$ @/ c7 x3 t% x9 R0 n6 [: p2 T
2 m* o% s: f& i% ^* l: h
这是职工信息表 能运行出来不过查询功能不行能帮忙看一下是什么原因吗。。再此谢谢了!7 o8 O5 F2 ]! A" p, S
/ t% d/ p e' u: Z: M |
zan
|