- 在线时间
- 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>& b3 J6 a2 U1 f! O7 i, {
#include <stdio.h>
/ j" A# d" i# P. k/ q#include <malloc.h>
& T+ @6 r% p9 Y8 u# M8 s& r$ ~#include <string.h>
4 M. g8 s0 N% R& L& Htypedef struct worker
5 t0 e9 Q/ a+ L- _/ [% ]! }: j6 b4 `{
! L( `, o% [8 f1 ~int id;% |2 a4 b) C$ W* ~
char name[20];2 ?" K P' O% M, m+ R' M0 Y
char sex[3];
% k" c% I: Y& Qint age;9 E. ?1 d) R4 s5 o) h. R8 z2 y
char edu[50];3 l7 ?! Q9 t2 ^
int wages;- C9 b3 ]4 w# h! @; c+ F8 u
char adr[255];
" p' m5 y1 [. d# }. }2 t. J Q& a) xchar phone[13];( P9 ?) _) Q! r& m& ^
}WORKER, *PWORKER;$ I% c- @3 @" ]7 L1 b
//typedef struct WORKER *PWORKER;5 |4 d! H& U. B( d/ x
typedef struct link
, d3 ^. o, a& j6 w0 H{
9 |% `" ^$ v9 n; z; yWORKER w;; r) D9 R5 |% x" d% D6 c9 q6 M p
struct link *next;/ W1 @+ C9 Z0 `0 d5 c: u0 \
}LINK, *PLINK;
- _, N( a+ U4 h) E* G//typedef struct LINK *PLINK; /*创建职工信息链表*/
" e& U8 l: q. ^9 l8 {7 j* h$ p6 vPLINK create()# i. ?! {% y: n4 b+ P
{/ u/ K# b9 w+ J* o7 n" V
PLINK p=(PLINK)malloc(sizeof(LINK));9 X; P& D( z+ c& Q8 m! y, M7 p
if(NULL!=p)2 E* _! g9 o* k" K
{* n, Z. B, T. j
p->next=NULL;
& U B, C: p0 Zreturn p;7 n& X1 z2 ?6 c$ k
}
) y; a& r q7 [1 Uprintf("内存不足!\n");" }) U/ c- X( e" j0 ~
return NULL;
! X; g1 R. d1 r( ?6 E: {} /*显示程序界面文字*/
% I$ i! \! Q' M6 V; Z' z. Fvoid message()
3 d, i5 m: [& _2 F! x" G{ system("color 0f");/*设置当前窗口的背景色和前景色*/$ h s0 R( W. p
/* 0 = 黑色 8 = 灰色
- @* u( M- b0 U4 j) ]& }+ i. Z" \1 = 蓝色 9 = 淡蓝色
2 D. @4 f1 s# R2 [2 E: x6 h" a2 = 绿色 A = 淡绿色% ~% ]9 ?6 k3 s2 A6 p7 u0 I
3 = 浅绿色 B = 淡浅绿色; b/ ?7 w3 b( d+ ]3 _) u8 f% u
4 = 红色 C = 淡红色- o& h: {2 r% f' D/ ?2 c
5 = 紫色 D = 淡紫色: J! T; y. z" A6 w/ o4 a. q# G
6 = 黄色 E = 淡黄色0 G% y+ e% ?/ R- _
7 = 白色 F = 亮白色*/$ P& J1 T& `. A7 a; P/ r
system("cls");7 o& X( U% D( q) ]) D$ E" v
printf("\t\t************************************************\n\n");1 G& S3 m0 [- ]4 c
printf("\t\t>>>>>>>>>>>>>>欢迎进入职工管理系统<<<<<<<<<<<<<<\n\n");9 V; E4 R% r4 s9 |5 ?) M
printf("\t\t************************************************\n\n");% d" b, W7 m7 F# b& a
printf("\t\t ************** Choose Function *************\n\n");+ H) W0 \/ c$ F& d' c1 f
printf("\t\t ************ 帮助 请输入:0************\n\n");' j, W5 E4 c% @2 a6 c* C$ C
printf("\t\t ************录入职工信息 请输入:1************\n\n");4 \0 G( B' C, i. H! u
printf("\t\t ************浏览职工信息 请输入:2************\n\n");
, i. b& h4 T0 Z- Z" f P. Y) Dprintf("\t\t ************查询职工信息 请输入:3************\n\n");7 U4 l) |7 F" \3 e0 R
printf("\t\t ************删除职工信息 请输入:4************\n\n");
2 ^: h9 ?1 C$ S+ R0 @printf("\t\t ************修改职工信息 请输入:5************\n\n");
: H5 c, d( t) S: G& l: }printf("\t\t ************ 清屏 请输入:6************\n\n");* s' |' i1 S: D+ B& O' T) C
printf("\t\t ************ 退出 请输入:7************\n\n");; { b5 i5 x3 S1 M" ~
printf("\t\t************************************************\n\n");; ]- I% z1 I8 u- @
printf("\t\t************************************************\n\n");& @+ ?& g a" E) [
} void find_sr(PLINK plink, char* str)
u( ?( K" |$ P6 M [& f{
$ Z/ F$ T- _( [" R" H3 B: Lfor(PLINK curr = plink->next; curr != NULL; curr = curr->next)0 X b% K2 @5 E- A8 n; S) w
{+ N/ V7 H. E5 R \1 E0 q, _
if(strcmp(curr->w.edu, str) == 0)
* \/ `$ g V1 A. V, u{
9 W5 b9 K3 p- d% S2 ^printf("职工工号:%d\n",curr->w.id);
* H2 p5 }$ ?. n; K* kprintf("职工姓名:%s\n",curr->w.name);4 u' L, t* g+ D# E7 j
printf("职工性别:%s\n",curr->w.sex);
9 o, n0 b3 |2 w+ m' N% Sprintf("职工年龄:%d\n",curr->w.age);
: f, h1 J" E/ a4 |/ p* oprintf("职工学历:%s\n",curr->w.edu);
. G! ~ j: w3 H) S' Cprintf("职工工资:%d\n",curr->w.wages);$ o' W- ~6 K' G ~
printf("职工住址:%s\n",curr->w.adr);
1 M9 B4 r8 n5 f: @' E, m0 gprintf("职工电话:%s\n",curr->w.phone); }
9 ] F. }6 u7 m1 ]. a8 U0 `}9 d- T0 ]( C& J
} void findid(PLINK plink, int id)
8 H1 d2 q1 h# W) M }{4 h5 J1 v- ]: n3 [2 ]( e
for(PLINK curr = plink->next; curr != NULL; curr = curr->next)
# Y, N- w2 q2 d& A4 u# E9 {' `5 x{1 D) m8 q' C6 l3 t: D
if(curr->w.id == id)
! M- a: C" {/ U5 P{) q7 n( c) H, {4 U
printf("职工工号:%d\n",curr->w.id);
) b: }( n% ^8 K1 yprintf("职工姓名:%s\n",curr->w.name);
# c) G7 g9 ^9 e- r+ x" lprintf("职工性别:%s\n",curr->w.sex);
+ c' r5 @' Z+ X7 y1 H+ uprintf("职工年龄:%d\n",curr->w.age);
" Q. {" \& v$ M( a7 tprintf("职工学历:%s\n",curr->w.edu);
6 @9 o) I% Q: t# e& c' zprintf("职工工资:%d\n",curr->w.wages);
1 g% M; W2 _+ ?! Kprintf("职工住址:%s\n",curr->w.adr);5 F$ {5 F8 V# p; b; L; p
printf("职工电话:%s\n",curr->w.phone); }6 [$ V/ i2 X/ S8 N! E+ Q2 l# J* b
}
1 O/ d3 d2 @/ c} void show(PLINK plink)& b1 w& J' V( y! R$ d
{ for(PLINK curr = plink->next; curr != NULL; curr = curr->next)
. O2 ]6 o! V! R{. }7 T P4 W& ?( g$ p4 B5 g
printf("职工工号:%d\n",curr->w.id);; f, `' q+ ^ i# A; T! Y3 A
printf("职工姓名:%s\n",curr->w.name);
$ F; M( f F: K+ aprintf("职工性别:%s\n",curr->w.sex);
z V, I6 W2 E& {printf("职工年龄:%d\n",curr->w.age);
2 {; @, K4 [ l0 p1 j3 qprintf("职工学历:%s\n",curr->w.edu);
8 E4 ]2 p& _/ h& A- P& |printf("职工工资:%d\n",curr->w.wages);
7 ^& w. j# W7 X. E. Wprintf("职工住址:%s\n",curr->w.adr);
* x: f( i; q# u' l1 N" ~printf("职工电话:%s\n",curr->w.phone);. s! V( K8 x# I8 M: U {: l
}
2 o s7 R# v+ P c} /*录入职工信息*/( Q/ ]: w* |1 \2 o6 k$ }
int add(PLINK p)* e4 s+ }# U! ^: l2 n7 d, g
{
8 d0 Q$ ^' p1 J6 ]" O: u7 ^PLINK h = NULL;. G; _& g: i; \5 v: M
PLINK q=(PLINK)malloc(sizeof(LINK));
0 A5 v/ {6 ^* H- c8 O. vif(NULL==q)
9 B4 n! z2 v# V{8 ^# V+ r1 K& x# z+ k+ w" m; l" |
printf("录入失败提示:内存不足!\n");0 M3 }, b7 \& j
return 7;
) n3 z7 s- `( M4 d: u7 | h/ x) T}( a+ n1 C4 c1 ~) V! S
printf("请输入职工号(数字):");7 h' T) \( B1 C ^4 C: m; d' o
scanf("%d",&q->w.id);
5 }' ]* j* H& J- I$ c7 ^4 lh=p->next;
3 M q% f1 e, {7 {5 N4 a: c+ }while(h)
; R; u$ x6 t ]/ N4 k' a. M{1 ^7 {& w! N% p% [+ z0 A# @
if(h->w.id==q->w.id)9 I7 ^" w) Y2 d% e1 ]
{6 G* C2 _! ^3 b! g" r. d* Y! H
free(q);
Q5 y3 f$ k Vprintf("录入失败提示:此职工号已经存在!\n");6 I0 D1 Q3 R/ _$ [
return 7;& W2 m7 U1 T* G5 ]2 z* [, e9 g
}
5 C" I3 x" Y9 }, b* bh=h->next;
1 _( C4 `& v( i8 T0 s, w}
( \% w& H u- V0 h( ]5 F6 iprintf("请输入职工姓名(文字):");& M' Z5 Q$ D) K) z! M0 A
scanf("%s",&q->w.name);
3 l4 e1 W/ z3 @5 ^- E3 ~printf("请输入职工性别(文字):");* H6 O5 l5 a' v. j* L( N# Q$ j/ G0 ^
scanf("%s",&q->w.sex);
3 X- c( }+ y# r% ]/ g7 S. t zprintf("请输入职工年龄(数字):");
; U8 L$ @8 Z8 e5 a8 | ?; [scanf("%d",&q->w.age);$ B0 s/ _# x0 j3 h
printf("请输入职工学历(文字):");
$ s+ m6 A7 G; S$ o& lscanf("%s",&q->w.edu);5 U! t! q: @! Q+ ?/ o5 ]
printf("请输入职工工资(数字):");6 A7 I4 r" _9 O! D: s9 d# i5 C
scanf("%d",&q->w.wages);
& ~( u5 V. Z0 I% {! Rprintf("请输入职工住址(文字):");
' T) q# V; T; a& f u. l! oscanf("%s",&q->w.adr);. L0 J; e) {1 \$ c
printf("请输入职工电话(文字):");
1 c" D: o5 M/ N0 ?! Gscanf("%s",&q->w.phone);
1 ]% a0 I& @( O w" f" Lq->next=p->next;6 X6 Q+ S4 ~; Y4 O3 ?
p->next=q;
# U( W. ?0 \9 w4 r6 q7 D# Tprintf(".^_^.录入成功!.^_^.\n");
0 i# \, {4 _2 b; `- Z/ m* Qreturn 7;
5 f. O1 u3 {" i. h. e* y" W. m& }} /*按姓名查询*/
% L$ [& Y: ?# X5 J% c; IPLINK findname(PLINK p,char *name)$ z" I1 S5 ^) Q6 U
{$ q# `0 V9 Y$ t' ]+ ~+ Y
message();
* h& U0 ~9 h8 X8 L& v) J, hprintf("按姓名 查询\n");* e& G2 t0 U! V$ q! D0 L
printf("职工号\n姓名\n性别\n年龄\n学历\n工资\n住址\n电话\n");, g$ w% J" F6 ]( e9 U5 r( ^
while(NULL!=p->next)8 W6 z* |2 ]" Y) X% }3 @" U: s
{
& O8 X# _3 v" Hif(0==strcmp(p->next->w.name,name))7 ~ c! _ B+ l
{
3 y) i6 D+ m! U0 Pprintf("%d\t%s\t%s\t%d\t%s\t%d\t%s\t%s\n",
0 ~! |- |0 f# @6 fp->next->w.id,p->next->w.name,p->next->w.sex,p->next->w.adr,
5 d7 Y# p U, Up->next->w.edu,p->next->w.wages,p->next->w.adr,p->next->w.phone);
' Y7 Z9 E! R9 n, Z' p5 d5 Breturn p;
' l: O. P2 a! i}4 {% o. L7 W6 O
p=p->next;: C/ X( H7 P" @! i7 K" p: _8 W* ]
}; I8 z4 w* V) l- S0 t- v
printf(".^_^.查询结束!.^_^.\n");
7 B0 x3 a! U7 G% L* k) Creturn NULL;( x6 Z) z' a6 r. L# N$ l- q8 i) F! s
} /*按职工号删除职工信息*/( x# q$ g. [% E4 e1 U% E' {
int del(PLINK p,int id)
/ B e1 A3 ?: ~" h3 K: b, v& Q{
9 s. u) e3 r# s9 Xmessage();
. j" y" X8 z. J( U; u8 i7 cprintf("按职工号删除职工信息\n");, Q. n. D9 z) l% ~* s' Y
while(NULL!=p->next)% X3 l( J7 N( l5 a
{) H+ Q6 b5 i4 M/ t4 g J
if(p->next->w.id==id)
7 f: a; m' H6 J2 H8 W7 t4 j+ R{3 c* S" Z! ~) O$ ], A
PLINK q=p->next;& H; y% r3 F( e. \& ]4 M; D
p->next=p->next->next;, V9 F1 H4 Q- q1 ]5 ^: x
free(q);
$ s G" z6 u" ]9 Kprintf(".^_^.删除成功!.^_^.\n"); a+ k" L5 m( X% F }. F( \
return 1;0 p p5 O& W8 w7 u, u) ]/ E. w2 ~
}% u5 ?' \) d _5 y! m9 x4 R
p=p->next;
1 E+ g) P% C/ b+ m& s6 L- y# h}% c4 {$ Z5 P/ @) i! P
printf("没有你输入的职工号!\n");1 m7 L7 [' G4 G- n3 w
return 7;
* O# Z" _4 z& C0 W. N+ A: V7 |% p} /*程序结束释放内存*/7 `% G: m8 e% G
void release(PLINK p)
. z8 m# \$ }1 P. `4 V: F{5 R5 r: E9 g& X) O$ R5 ]
PLINK q;
( H6 N/ Y5 g9 K( Xwhile(NULL!=p->next)" W6 V( q8 C+ _. X
{
: P: T8 v- ]+ S' x. C7 Oq=p;- ^* P# B1 B X2 z
p=p->next;8 {+ Y0 a9 M, ]5 U' k
free(q);3 b3 [ M; A/ O$ K {, b
}
5 I5 p8 j. w3 `3 ~: Z0 Dfree(p);3 Z2 [3 s4 b' h" ]& c5 x E, x- V7 f
} /*查询调用*/
: v0 C( _) @8 o) k* |3 F2 zvoid search()
/ E; |" y% S3 \6 w% g; N# C# i{
1 a3 C B. ]: t6 Vint id;
3 v& P% [! x7 B6 m" o4 n9 Lchar name[20];) ^8 l, f7 Y5 x5 \
char str[20]; {& ^4 M4 u, I Y4 k6 x& Z7 B
PLINK pworker;
3 y p3 a2 i$ N8 G& f" wint l;8 g, q) v5 M8 ?3 F# U' i
printf("\t\t\t\t*姓名查找按:1*\n");
* z, k5 W y+ Q0 l- Fprintf("\t\t\t\t*学历查找按:2*\n");7 g( E2 m/ u4 c4 t0 i# o6 _% u
printf("\t\t\t\t*职工号查按:3*\n");
; B6 r% W9 p0 h0 r7 T6 dscanf("%d",&l);* x" I. J! I. f/ `" `7 R
if(l>0&&l<4)6 h( R( s4 z- T0 x( {
{switch(l)
; O; C9 {9 o7 k% e/ T+ I{) [/ h2 u1 x8 Z! P0 a
case 1:printf("请输入要查询的职工姓名:");2 Q4 G' I# T1 G4 ~
scanf("%s",name);4 k! B0 B, c1 \! X9 g
findname(pworker,name);
2 v7 G% R Z2 E% Y- ebreak;
: d: z$ @ ^; ~# Gcase 2:printf("请输入要查询的职工学历: ");
/ {. N3 L1 }8 m7 V( i9 ]! yscanf("%s", str);2 u8 U( M, N( F+ ^8 L) E- L; q/ j
find_sr(pworker, str);
, \) B0 Q- b8 \! q W6 `5 rbreak;
4 L4 U/ ?& a) {8 N" e, Wcase 3:printf("请输入要查询的职工号:");
- X$ o( }% b8 h' s0 Wscanf("%d",&id);
/ T5 ?: o/ d( {9 kfindid(pworker,id);
2 ]5 \5 p* h+ L' q- u% k- K: I: Sbreak;
' ~6 Q5 ?" J& @; g- d1 Q- t& U} X4 n- ]# y, A l5 z; m: L5 @
printf("\n\n选择完毕!!!");
- ]+ Q2 g: L9 k# {3 j}
5 \9 B1 V3 R3 I, W! T7 Delse printf("\t\t\t\t输入有误!!!");
# d/ I- M! _% y2 v8 P& H} /*修改职工信息*/
2 E) N! o9 N! {, d8 i) Dint modify(PLINK p)/ z- D* s! x' G k; [/ V5 h
{ int id;. p0 F/ e7 {+ m
PLINK q;: }( D; j, @$ [0 A$ q. J! c/ c6 h
PLINK h = NULL;
* ^' a4 R& G7 a ~printf("请输入职工号(数字):");) j& Y! N8 N+ x: X
scanf("%d",&id);
2 G- A5 n" }7 |$ {6 gh=p->next;
% ^/ }" I; U4 Bwhile(h)
0 ^ t1 p9 D( Z* ~{
O/ f3 L( H: u6 }9 ^- g. } \if(h->w.id==id)
, j, s# m5 k" g: H% _! x- b& m' s{
1 A# s7 r& ]+ R/ M6 z8 U. h& p2 _break;# f( z* s% G6 I# V7 ~ Y
}
- t# h; D% q- t" l. _8 x5 u- ^1 Sh=h->next;7 |* `7 G9 T* l* E! e8 i
}' b0 B% }) p* Y9 ^* }
if (h == NULL)# @3 u! r; N/ E5 m6 |
{1 O% I1 E+ s; f- t# E7 p# n
printf("找不到此职工,请重试\n");
- B& U# J2 p4 `0 \return 7;" c/ u# p6 P D5 g
}
6 k, s( [7 A; F0 P6 T; }% ]) Q$ ]0 d% Vprintf("请输入职工姓名(文字):");% c4 j( x5 j! D( {" x$ P
scanf("%s",&h->w.name);) y% B. N) Q6 v6 {, Q
printf("请输入职工性别(文字):");, I. d" E$ t7 _6 m
scanf("%s",&h->w.sex);
! h& ?5 `" y8 Oprintf("请输入职工年龄(数字):");- Y0 y9 a }0 `* v4 f4 t) n
scanf("%d",&h->w.age);
# d$ }/ b/ ~' }0 m. tprintf("请输入职工学历(文字):");& C8 A+ J( e' n0 [/ S$ y/ t% s+ @
scanf("%s",&h->w.edu);
9 E; Y1 K1 ^' x( j9 {4 P3 U# aprintf("请输入职工工资(数字):");4 B. a! {6 \2 b
scanf("%d",&h->w.wages);
6 v& h( Y. r% q" N) Sprintf("请输入职工住址(文字):");
9 X9 x; z6 t: s5 x! z, ^9 H, wscanf("%s",&h->w.adr);; P3 I' T! A2 n+ I N# a
printf("请输入职工电话(文字):");; a( v1 _, \3 q: ^0 G- B& E
scanf("%s",&h->w.phone);: ?" w0 \7 L7 y. M4 j
q->next=p->next;+ [" v C" @8 c+ [
p->next=q;
& E4 f- N. ]3 @printf(".^_^.修改成功!.^_^.\n");
4 U. e1 d- l. O) _8 P9 p( | e3 xreturn 7;6 k) }; N8 H: x0 l; B
} int main()
& m6 p. k0 X1 w/ p z* ?{
. b5 Y/ i" O- n* b, P [. ? N0 z% }2 R k
int cmd=0;1 X; B6 T) c# r- l4 v
int id;
/ H" t; |9 k& kchar name[20];" ~( W; f. `8 D- z3 U/ Z
char str[20];
; `# p( y( _5 R0 u/ A; a7 ~2 xPLINK pworker;
+ c, Y$ m+ @3 hif(!(pworker=create()))
% E3 S6 I6 y0 W6 [( ~8 X{( n- \1 d* h7 D# Z& ~) T2 B7 d0 }: f
exit(0);: B( }& c- T4 N" I: q E5 K
}
. D5 V/ V+ _2 O4 Cwhile(cmd!=7)
1 j, v' u9 H: A. y3 V{/ K* O6 n& i+ z: w3 A+ X9 d0 u
switch(cmd)2 t6 R+ W$ q( d' h2 h
{
6 K7 ^8 l3 l5 e. j" @4 Kcase 0: message(); break;" O; _3 w4 I8 F+ M" g/ ?' Y
case 1: add(pworker); break;
) a' g: b" C2 B. E! I) X9 q9 N z2 Kcase 2: show(pworker); break;' l# c. G4 ~, B0 u- P6 L/ A
case 3: search(); break;
3 ^) d- C4 C# A, W; Fcase 4: printf("请输入要删除的职工号:");% u( K3 p8 B" U" r# z- H- H
scanf("%d",&id);2 l5 g6 d1 s$ r ?' g, a
del(pworker,id);3 u3 j- }$ P% e# `
break;
! u, a8 w* f, ?- C4 T8 Y/ Jcase 5: modify(pworker); break;
+ c, C7 a4 Y- p ]5 a/ ^, O" Ucase 6: message(); break;6 d6 k8 F# L2 P: A7 D5 c
}
% O5 G& u7 f# `& |printf("请输入操作命令数字:\n");
, H0 ]+ n0 e) S& s* hscanf("%d",&cmd);
8 }1 J' _% B* l7 |1 ]( h}, R% c$ {% `, M& R( |7 e, K- s
printf("谢谢使用!\n");
+ n+ m2 O% O- r4 ~; ?) {, l0 Prelease(pworker);
* E K' }: i3 o* ]9 b% l Wreturn 0;
' u+ g, i; e0 Q}, e! o3 S! e8 b+ h
2 c/ T& d( k3 @; ~" N
& M8 q% @0 S7 u$ K' ?这是职工信息表 能运行出来不过查询功能不行能帮忙看一下是什么原因吗。。再此谢谢了!
2 D: f: u4 u9 n4 q5 }/ ^3 ~ B: l/ Z; ]8 E2 S$ V4 y& Q
|
zan
|