- 在线时间
- 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>0 Y0 O0 v# W' U
#include <stdio.h>& v' w/ d7 g' ~( I1 g
#include <malloc.h>
2 r( ~0 c! U, C* b* W#include <string.h> ! o) \5 @2 L0 V* ?9 t# ]) H4 D
typedef struct worker
1 k$ O2 W& F; _' t3 L T{+ Z: t8 n, v( r9 D4 Y4 @
int id;: v& s' ~6 ]. e6 p: `
char name[20];" _4 t5 n: N, |1 O# L* k
char sex[3];
$ i& N. p% t' x' A9 g. sint age;
& O5 I8 B4 b7 b7 l- A2 H! ~char edu[50];
, }/ b0 w+ J9 V! b/ D( y4 c+ Zint wages;9 g) u& R6 \6 L& K: S$ w2 [: ^
char adr[255];! D, u# D5 u9 D8 e3 x, g- _
char phone[13];
/ }9 B2 M. U1 _( ~& b2 k; Z) |}WORKER, *PWORKER;/ ]1 q, j0 X! m3 F2 e. ~
//typedef struct WORKER *PWORKER;! r& h( \$ G* G9 n. R1 K
typedef struct link
& O& {$ ?( @2 i0 o6 a& z( O* v{5 ]2 d* u4 R: y5 d' t2 V6 i1 x0 z
WORKER w;3 U" X: H( @3 F( `
struct link *next;8 z) {3 C/ B* y. X) P4 [+ `* u1 z
}LINK, *PLINK;, V5 \" g# W: g7 X1 D( T% k
//typedef struct LINK *PLINK; /*创建职工信息链表*/
m2 a# }6 k$ x3 i n; YPLINK create()
1 Z/ H$ i" Z! e, E6 d. L' C{
& c- N' Q4 N2 A& Z: ?PLINK p=(PLINK)malloc(sizeof(LINK));' p+ q6 u1 q( a i! t8 D" ~
if(NULL!=p): O3 I* ^5 I: {: e/ }; p
{3 _) e% l- h8 q: f
p->next=NULL;1 a1 o0 W! t- W7 c+ [- T
return p;4 m+ T- @" ~* q) r" V+ q- p* x
}2 R; x* {2 e! x9 r$ J
printf("内存不足!\n");3 |, t/ @/ w) U! I# m
return NULL;' |6 U, K% |0 l8 G
} /*显示程序界面文字*/" {; C1 L- n/ k1 ~: m
void message(), \2 l1 b$ B& @% k
{ system("color 0f");/*设置当前窗口的背景色和前景色*/* P, w" Q% O: x% N
/* 0 = 黑色 8 = 灰色
- d5 c% G9 ^8 ?* P# q7 I# F% h1 = 蓝色 9 = 淡蓝色
- ^! A: F) M0 Y5 t2 = 绿色 A = 淡绿色* ^5 o E1 p$ }2 y
3 = 浅绿色 B = 淡浅绿色5 c1 t7 X7 ]4 E0 b, R
4 = 红色 C = 淡红色
, I2 [" K& l, O# F5 = 紫色 D = 淡紫色9 O, M& W; l; k/ B$ T0 ~7 a
6 = 黄色 E = 淡黄色& B( S- v: W' Y g* @" f% l& f$ P
7 = 白色 F = 亮白色*/
$ n) [' c2 M+ d* v# Z5 H/ Bsystem("cls");
+ ?7 P, W* F1 Pprintf("\t\t************************************************\n\n");1 Z* d" Q/ s) o+ s* D
printf("\t\t>>>>>>>>>>>>>>欢迎进入职工管理系统<<<<<<<<<<<<<<\n\n");8 W& Z# x: [. B- Z
printf("\t\t************************************************\n\n");. p6 i3 Y2 E' h- P1 T- ]3 N2 i
printf("\t\t ************** Choose Function *************\n\n");/ p2 U- m) B0 V7 Z- s% \
printf("\t\t ************ 帮助 请输入:0************\n\n");
2 [' U2 i4 F0 Q# d$ Kprintf("\t\t ************录入职工信息 请输入:1************\n\n");" o* _0 V$ J+ H
printf("\t\t ************浏览职工信息 请输入:2************\n\n");
3 o* N6 r, ?- lprintf("\t\t ************查询职工信息 请输入:3************\n\n");
* w9 Z! N6 Z" ^& Q% a+ Xprintf("\t\t ************删除职工信息 请输入:4************\n\n");' m7 @% Y5 q3 Y& i- @% @
printf("\t\t ************修改职工信息 请输入:5************\n\n");) D- k( \) U! C4 ?5 Y i U
printf("\t\t ************ 清屏 请输入:6************\n\n");
3 j7 U3 p1 G8 q7 Y$ E7 ]printf("\t\t ************ 退出 请输入:7************\n\n");+ e3 K2 _' T5 K1 E+ ~
printf("\t\t************************************************\n\n");
8 |& F7 r$ e- {3 R9 J4 f3 Mprintf("\t\t************************************************\n\n");
* E* k: l) @2 b+ n6 @} void find_sr(PLINK plink, char* str)
' l, P8 I: e3 W! @, Z% r- g# d- l{
0 L* I8 T: [/ g n! J/ Y, `+ lfor(PLINK curr = plink->next; curr != NULL; curr = curr->next)
0 l# p; ?3 H( K9 [+ b0 s5 V, [{
3 K+ C. }8 R7 Y/ c0 \if(strcmp(curr->w.edu, str) == 0)
& @- i. c( w& _6 ?: k( [8 |# p4 i{* D# r0 v: O- _, Y: `% d. W3 X
printf("职工工号:%d\n",curr->w.id);
$ ]7 G; u( P5 Z' v( nprintf("职工姓名:%s\n",curr->w.name);/ w# d; K( Q* X0 {% N
printf("职工性别:%s\n",curr->w.sex);6 @0 I! s9 v+ G) o( P- T
printf("职工年龄:%d\n",curr->w.age);) b5 y1 C9 N d" C) Y9 n# K
printf("职工学历:%s\n",curr->w.edu);& v3 s/ y: h8 t+ a J
printf("职工工资:%d\n",curr->w.wages);
6 }) z" I& c5 T6 [% {( m/ Jprintf("职工住址:%s\n",curr->w.adr);* m7 h$ f, m: C8 o
printf("职工电话:%s\n",curr->w.phone); }
" N" @$ Y- Y2 p: a9 @9 r}7 T% h5 O5 }2 ~* F! W, ^
} void findid(PLINK plink, int id)
! z8 b+ ]6 ]5 q8 ^{& I2 g% @5 J8 I- Z- q) e! _
for(PLINK curr = plink->next; curr != NULL; curr = curr->next)7 T2 ~1 O( M: @+ T
{
, L5 ~( _9 u; W, [if(curr->w.id == id)+ y' ~5 t% U( a! h1 s/ q2 A' \; h5 r
{! M% A1 R& i b
printf("职工工号:%d\n",curr->w.id);
6 d* Q; [/ [- [printf("职工姓名:%s\n",curr->w.name);, u* D- [" V, M' ]. R+ V9 j0 b
printf("职工性别:%s\n",curr->w.sex);& w( Y5 W( i2 T# V2 c0 `
printf("职工年龄:%d\n",curr->w.age);2 z8 K$ b0 s. H/ a
printf("职工学历:%s\n",curr->w.edu);1 X) S7 J; g; Z- B; A2 B, M
printf("职工工资:%d\n",curr->w.wages);
: I6 Y' L+ N& X" n2 @7 Rprintf("职工住址:%s\n",curr->w.adr);
2 c2 K$ ]9 y3 L" j" kprintf("职工电话:%s\n",curr->w.phone); }
* r$ C6 G1 U- ?. d}( y7 k S2 `, L' @, o1 r
} void show(PLINK plink)7 S# O: V% W7 k3 Z
{ for(PLINK curr = plink->next; curr != NULL; curr = curr->next) z& d3 F7 O7 P. r2 a
{
% b( R& ^% f2 j: G# M. sprintf("职工工号:%d\n",curr->w.id);
5 S+ y! T9 J, a. x! D) d @9 a5 rprintf("职工姓名:%s\n",curr->w.name);- L: U( M1 Q9 ?6 ~0 G6 W3 s$ W
printf("职工性别:%s\n",curr->w.sex);
$ X# k1 |+ q$ `4 k7 Fprintf("职工年龄:%d\n",curr->w.age); Q4 [7 c# ^; R+ ]
printf("职工学历:%s\n",curr->w.edu);
% @2 E- K/ K. P0 Fprintf("职工工资:%d\n",curr->w.wages);4 f! U2 ^) x n4 h7 `
printf("职工住址:%s\n",curr->w.adr);- `$ a7 R# n. Z, r
printf("职工电话:%s\n",curr->w.phone);3 q7 y3 \: {- W9 @5 Z+ S
}9 m4 t0 A8 p9 U3 L
} /*录入职工信息*/% D! K+ `! F3 b7 w
int add(PLINK p)
9 g M+ ^# t5 {9 G/ z- t{
- Y0 K' Q. s% w2 ]3 ^) ]2 t* ]PLINK h = NULL;
+ [) Q. m. c( \ k1 tPLINK q=(PLINK)malloc(sizeof(LINK));9 g9 ^- e4 q" m* {4 i) { H
if(NULL==q); r) ^8 J% J% w2 e# A+ z3 c
{
* g5 R. ?# c3 S$ M$ | a+ @printf("录入失败提示:内存不足!\n");
; F2 a8 Y# F3 L/ p: `4 ereturn 7;0 T: I( A$ e8 r
}
" i' j, S7 l: R4 L \2 U! Tprintf("请输入职工号(数字):");; S# Q- l5 L, R( |- n
scanf("%d",&q->w.id);
0 z/ W+ ^9 B1 K/ O1 D) j7 n! l0 ah=p->next;
9 j0 f6 O3 j7 _. dwhile(h)
$ e3 }' v# Q4 X$ ^: `{8 W: F# ~( e( ]0 J" F, C5 ]
if(h->w.id==q->w.id)
0 [& a" ^% c: u j* g6 k8 _ e{
0 v) J) B% s1 n+ dfree(q);4 ^' j' v' j' @* |2 u- I' K C+ J
printf("录入失败提示:此职工号已经存在!\n");
; }3 J* @6 e! H) dreturn 7;- Q5 A3 t: C" l2 ]' g3 M
}. O7 K) h7 E" V1 w, ?% S
h=h->next;( i' d4 C5 B7 u" ^* y r1 {) c
}
* X2 E3 t9 G7 }( w lprintf("请输入职工姓名(文字):");' o! `- A; s4 F) c
scanf("%s",&q->w.name);
# T/ S; a/ h+ m5 X& V1 S+ mprintf("请输入职工性别(文字):");
8 ]- n" g# i9 A( C C* Q* dscanf("%s",&q->w.sex);$ G" J/ I: s8 C J5 r+ z, p6 `7 U) y
printf("请输入职工年龄(数字):");
0 a. U* p0 S* z4 b" V* ]scanf("%d",&q->w.age);8 G, R: i: r( [, K
printf("请输入职工学历(文字):");
: S5 ^( }$ x- V4 h L6 t& _scanf("%s",&q->w.edu);
% o d+ k$ Z! @- Q- P6 Z% zprintf("请输入职工工资(数字):");
/ N6 i* N( f$ R: dscanf("%d",&q->w.wages);1 V+ P# N. G' }! h0 q8 H! J( k
printf("请输入职工住址(文字):");
) E* O* J) O) J, J1 A5 N mscanf("%s",&q->w.adr);
z. e0 k: j/ i. M6 _ aprintf("请输入职工电话(文字):");
9 o2 ]/ C2 Q, \: `6 L$ _scanf("%s",&q->w.phone);
+ B- b. {& c3 W! s4 D( v6 V( V$ `, nq->next=p->next;) N( ^1 D2 A- L5 G
p->next=q;
' C' [# G# z3 I: Tprintf(".^_^.录入成功!.^_^.\n");3 V$ W1 r/ L3 [5 [1 x, |
return 7;% h& ~: Y9 [1 g+ J- u
} /*按姓名查询*/
8 Z( |$ y5 `8 B% c/ YPLINK findname(PLINK p,char *name)8 {8 [& x) a* I/ A$ v
{
3 m+ L' ~) s* E0 O- Fmessage();$ `8 q1 Q3 K) \! }# N5 _) T4 P3 G% w
printf("按姓名 查询\n");7 S9 e4 M1 q- k! W1 o0 @/ S
printf("职工号\n姓名\n性别\n年龄\n学历\n工资\n住址\n电话\n");
; S) p* Z& D( b) kwhile(NULL!=p->next)
$ g9 y! g! ~, {1 R" C, c{
4 K0 s& o( @( U; e! v+ l; E2 t2 |if(0==strcmp(p->next->w.name,name))
7 [* C9 k# b* {1 B- h{% O, Q! t N; K. v
printf("%d\t%s\t%s\t%d\t%s\t%d\t%s\t%s\n",/ f& P0 z7 R* u
p->next->w.id,p->next->w.name,p->next->w.sex,p->next->w.adr,
, G+ n; f4 P- ^, U' `p->next->w.edu,p->next->w.wages,p->next->w.adr,p->next->w.phone);- Y6 n: H: u. E* h7 S( V
return p;
( T) T( y" M, D/ |! d6 G( g% h}
7 Y5 m2 A, J0 _" ?3 c# @4 Rp=p->next;& l# g. L9 u3 m' V8 u
}
8 r$ \/ A) W% ?5 Tprintf(".^_^.查询结束!.^_^.\n");
* J* L# @+ B; |return NULL;
6 z( F* X" x9 g8 b; A} /*按职工号删除职工信息*/8 C% f5 e9 h- I- W
int del(PLINK p,int id)
4 o8 I6 [0 L) L2 D I) i{
% t- |! Z' E4 n& @7 y' Rmessage();1 ^) _5 b. K( C! k# S
printf("按职工号删除职工信息\n");' q* D; t! m; t, g
while(NULL!=p->next)" e, x5 F# G" ]; o8 H2 e
{, B+ {- }6 l$ @# U( i, j% v
if(p->next->w.id==id) i4 V' ~ X# {7 J$ j; ]1 A. f
{
% N6 ]) s! x1 z' B4 ^PLINK q=p->next;
+ t( f5 [/ D, P& op->next=p->next->next;
( g% W; P; O4 a$ M# e% `; t# d$ tfree(q);
% o0 l4 O/ Q! K4 g* \4 Vprintf(".^_^.删除成功!.^_^.\n");4 c1 g9 @- y% a$ |: `9 q
return 1;
) b9 `- V2 A) j ?4 q}
/ K6 h# G1 q1 qp=p->next;
! G Z. T8 ^( l9 p+ |0 K4 D}+ A0 W( A' z( z7 f+ u
printf("没有你输入的职工号!\n");
# H) {/ z1 o7 b$ e. b8 g5 k* \return 7;8 s: |3 A. e6 e5 R
} /*程序结束释放内存*/7 E' {) I8 K- e. H" e- Q
void release(PLINK p)
' T/ X7 r& u1 H! P# X{
) c' b0 H' z4 d* UPLINK q;
) o+ M/ g, E/ M: @while(NULL!=p->next)
) V5 {/ T* e/ e( k{
3 [) ^; W# q; A; w t i0 ?1 Rq=p;
. B& d, P& C# g) Sp=p->next;( d$ U( |6 u% N& Y% _, E
free(q);
- k; U5 @5 h. R: q8 _4 @}
9 p2 C( P2 W; T2 @+ Zfree(p);
* n+ H: u2 K/ x# }( G: U} /*查询调用*/
8 a4 d+ x2 w: J* d% Y# K* Y. dvoid search()8 X7 t5 x8 m) a4 W; \
{
- f/ m- V3 J7 I0 |5 s) G5 Y& cint id;1 U9 S i. v: w) J3 G- v
char name[20];* L( p8 L/ N/ Z6 z, u
char str[20];
3 x) i0 K% _6 M8 T, j$ ~PLINK pworker;
* e r( O9 h+ I# o( c5 w) lint l;! e8 |7 p8 v* T- ]" J1 L- {: c7 _+ i
printf("\t\t\t\t*姓名查找按:1*\n");; ?3 |$ {3 R: _4 O" }, l
printf("\t\t\t\t*学历查找按:2*\n");
( V% s0 [& r( D5 A$ g& u: sprintf("\t\t\t\t*职工号查按:3*\n");
8 i- | h) r! I, v% A' m0 x6 ~2 rscanf("%d",&l);# L8 P. ]. b. \
if(l>0&&l<4)! t" z6 Z, @7 @2 h6 A$ K& B- ^% ~8 F
{switch(l)
! V9 I+ g& w: `; i- p j{
% @# R3 P y) y2 }. @( [/ s' ccase 1:printf("请输入要查询的职工姓名:");
8 _8 t6 h! h. u7 z& U# rscanf("%s",name);
7 e- o5 t- z: x. D8 x/ D- }findname(pworker,name);
+ N* R1 O5 z" r% W0 q- xbreak;$ i! B. w o" @8 Z6 w v' m
case 2:printf("请输入要查询的职工学历: ");2 N. @$ m N: K
scanf("%s", str);. i+ X, _+ q% o
find_sr(pworker, str);( u/ j' U8 X9 H
break;7 Z% U9 {% R4 ]& f6 N
case 3:printf("请输入要查询的职工号:");' h8 K! K' ?9 D- _% T
scanf("%d",&id);
/ u. C6 @, Y0 K, V; H, z$ k O5 hfindid(pworker,id);% E$ M- D. [* b2 ?
break;
# g% A) V7 z2 h}. p, J8 m& e5 z
printf("\n\n选择完毕!!!");5 |! K4 u4 R3 k! _
}
' J( r7 c# n+ C& z1 a3 [! ^* selse printf("\t\t\t\t输入有误!!!");7 M3 w5 C! h0 k( M2 ]% t
} /*修改职工信息*/% F' q* z2 |' E: h8 M2 N. N
int modify(PLINK p)- O7 W# q/ N) |5 N; @ c5 {
{ int id;" R7 O& d8 }9 t+ f$ {, N8 ]: p7 A
PLINK q;
* w* Y0 Q1 j; \/ hPLINK h = NULL;( @& W) C( |. C3 p: h8 q
printf("请输入职工号(数字):");. ]% m0 Z2 K9 |
scanf("%d",&id); y7 b( _5 ^: A/ h& a* l- D, Q
h=p->next;2 X4 @3 P% T3 m. D5 F9 V+ N A
while(h)
6 l, K0 g" i& p& D{
4 `- o0 h4 a) D' B! sif(h->w.id==id)
& h" a, T% [8 Q. O{
8 Z* j/ c3 r5 d' _' U; vbreak;0 A4 N% f9 X0 ?, K2 ^* R' t
}
+ x; b! ^- w5 Yh=h->next;
R& t% F& b9 F& m}( \/ E; r) i/ `+ {2 @
if (h == NULL)7 k U) e- }. H
{
X0 a; J' j! `7 N4 q* cprintf("找不到此职工,请重试\n");
' b' p! C* N* i: s- W- treturn 7; p( U4 U" Y0 o& u/ e2 g+ V5 `" E, F" P
}
1 [6 Z/ K/ ]5 M; Q: qprintf("请输入职工姓名(文字):");- ]- }" Q5 x) i4 H1 g: _/ ^
scanf("%s",&h->w.name);; a2 ?; k [+ x
printf("请输入职工性别(文字):");
- [; T) [+ `. nscanf("%s",&h->w.sex);
* k9 ~6 X7 ~: L- s0 eprintf("请输入职工年龄(数字):");1 U8 r% N) c/ z0 i0 I5 }2 ?
scanf("%d",&h->w.age);
3 Z& L+ @, I- _( f( U8 Z7 ]printf("请输入职工学历(文字):");
/ G4 |& z, R7 R9 ] y) zscanf("%s",&h->w.edu);
% y8 E6 t! ~* B& B; e0 Jprintf("请输入职工工资(数字):");$ I. h, E) e9 e
scanf("%d",&h->w.wages);
; v' M I, m, d- x8 \7 R: vprintf("请输入职工住址(文字):");
2 f. h) K; B0 u$ H$ } Y1 J- mscanf("%s",&h->w.adr);
6 D4 J, |5 l$ W5 R+ h3 sprintf("请输入职工电话(文字):");( L! R# z8 z0 O8 r) ]" g1 g+ U
scanf("%s",&h->w.phone);
2 h5 A0 C9 E, s8 ~: yq->next=p->next;
0 y8 z0 Y+ [# i6 w- Gp->next=q;8 D) k0 f' H, ]) h
printf(".^_^.修改成功!.^_^.\n");1 T. k5 x! ~$ R. b% S( a4 u
return 7;
- Y; G1 R+ W& p+ J} int main()
0 ], H# w7 L1 j( x2 Z" N{
- v1 o, k7 a5 S2 e
* E2 @' _! ]8 d& e4 [- r4 t7 O5 q% [int cmd=0;- r1 m) F2 b3 c5 P1 N# f9 X) Q7 |
int id;$ w* q, P/ s+ Y0 I7 ~* u6 f2 j
char name[20];- n; }5 i% |1 I- u7 K
char str[20];) q5 J, A4 }4 Z# F
PLINK pworker;
' j/ b: p8 {& c: aif(!(pworker=create()))
% y/ D) ?1 L3 |$ X* ~' `0 p7 k{( |, }! u" K2 z# W2 }
exit(0);
, I4 d& }1 j4 X; I% T- V6 [- x- ~ A}
5 X2 ?" H0 w0 W- swhile(cmd!=7)
, e4 H$ m: S- y0 W1 _, L# M{
# h7 D L+ P; `1 U6 w# y6 iswitch(cmd)
) Z1 ?* w# k/ h{
/ e; Z' g' j0 H6 Wcase 0: message(); break;
* p9 w; f% }# Z- ]1 A' ^( i1 Ycase 1: add(pworker); break;
: |/ y; Z! [5 R! I% N9 r2 W) bcase 2: show(pworker); break;
# t1 U t' o; q7 b( W" F) Mcase 3: search(); break;2 G. x, v9 T2 h( ]5 D
case 4: printf("请输入要删除的职工号:"); O, D: j$ E0 X9 Z+ P
scanf("%d",&id);; j( M- W o2 T8 r' p8 e
del(pworker,id);1 e9 G! m2 o& G0 i6 Q
break;" E- T$ O5 I6 O
case 5: modify(pworker); break;
' G& M0 a2 g! T7 n4 [* Scase 6: message(); break;
1 m* Q# U' e0 B0 g/ [}
; |4 H! Y) o: ~4 i0 z9 Vprintf("请输入操作命令数字:\n");7 s5 `! n, q$ r* i1 l% D7 ~0 z. I
scanf("%d",&cmd);3 A: E6 G/ P h% j' ?$ w
}, P. g* e4 [2 ]; l* w7 P l' }5 ~) [
printf("谢谢使用!\n");/ ?( ^* E8 \+ F; t* p
release(pworker);+ j8 k& e- T3 g k$ A9 ?* | s
return 0;
, b* o% c7 H8 @) g}3 B% d8 h$ v5 a: c
" b5 J$ I: z `3 A0 E
/ q& O" V$ `2 r* Q5 m这是职工信息表 能运行出来不过查询功能不行能帮忙看一下是什么原因吗。。再此谢谢了!: j* j6 }) u( v$ s0 M1 m
4 A1 t1 W# {3 c1 w5 `2 r |
zan
|