- 在线时间
- 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 V1 k: \, u9 }, t% @
#include <stdio.h>: s& g# q& |: ^% S
#include <malloc.h>
1 H( W: J& s% n8 J1 m8 N+ C#include <string.h> % A& `0 n& p2 R- H9 {2 S. V
typedef struct worker9 t9 Y( E9 Y. L9 u: \
{& ^% }+ W* {) q
int id;
i2 {0 U( J1 P9 Rchar name[20];
6 `% i; M% R! Z9 e }$ Mchar sex[3];
0 ?& v# `, b( Aint age;
, n. b8 z( x4 E7 |% H# S) l6 achar edu[50];
4 c! I) m$ \6 I. X8 B, \int wages;4 y$ w8 _' V b2 \& Q o
char adr[255];
; v: L" s: r3 Wchar phone[13];
6 j3 o3 w, C6 d* ]6 @}WORKER, *PWORKER;
- b" {) V7 T" u5 z2 ]& r//typedef struct WORKER *PWORKER;
! f! g$ P* t0 H+ Q5 Q, m- _typedef struct link
% v, @; @( K: U" f{
& F v8 I( G- Q# Q: B* F, iWORKER w;, ^7 Z0 s! m8 y
struct link *next;4 {! t* b. I# N# ^
}LINK, *PLINK;
' k- Y& j/ M0 e. R% A+ k1 [//typedef struct LINK *PLINK; /*创建职工信息链表*/
$ m* a3 r! `: ?* WPLINK create(): n3 k! [ ]' n- Q/ v
{* A$ j# G3 t$ {7 j6 o
PLINK p=(PLINK)malloc(sizeof(LINK));& z! `( D: }7 V% y1 i7 `5 U$ `
if(NULL!=p)
$ r7 s# g+ V; H4 v; H) P9 L8 A{
2 P: h7 _4 U8 U! Op->next=NULL;
2 E1 _* m0 K9 ?/ K- X/ ireturn p;
# t% {, N \; z# v: i2 I# ^}6 j* i6 ?2 `2 D8 `4 n
printf("内存不足!\n");6 g) U* K/ C: p# l9 ~. ^( Z4 L
return NULL;0 }7 a9 }& c+ H6 b' f2 M0 q- [
} /*显示程序界面文字*/0 w+ z C' o' f* w& I- Y
void message()
8 T5 h+ y; }' b4 s7 @* X9 L{ system("color 0f");/*设置当前窗口的背景色和前景色*/
7 J/ C8 I! j* r+ l4 g; c1 ^( R0 ?- e/* 0 = 黑色 8 = 灰色" q2 Y& e3 b- o# W( j' N2 v
1 = 蓝色 9 = 淡蓝色/ b9 I4 w" R$ ^& Q
2 = 绿色 A = 淡绿色/ ^) i0 `, B( k9 L7 a! z! `) q; }; U
3 = 浅绿色 B = 淡浅绿色
5 y+ P j# s! y/ _4 = 红色 C = 淡红色
4 l" m- J& k" w1 ] c4 T; F0 F5 = 紫色 D = 淡紫色( d5 e" U& W5 O! Z, B9 C
6 = 黄色 E = 淡黄色7 m6 e7 K+ k; \4 |
7 = 白色 F = 亮白色*/
% s0 _" m' v9 g" j1 @. {system("cls");
2 v9 }# N7 _7 F7 R4 Nprintf("\t\t************************************************\n\n");
" ~) O0 _4 d6 f1 |2 Cprintf("\t\t>>>>>>>>>>>>>>欢迎进入职工管理系统<<<<<<<<<<<<<<\n\n");' ?# t' o+ q y8 q. a/ U
printf("\t\t************************************************\n\n");
5 g! [1 I& H& B2 y/ z% p- Vprintf("\t\t ************** Choose Function *************\n\n");
0 b( M* `* U# l! r( {printf("\t\t ************ 帮助 请输入:0************\n\n");
9 a$ F% x0 b1 |/ _# L/ `0 Gprintf("\t\t ************录入职工信息 请输入:1************\n\n");3 L1 \3 b& b' r( a; o( r
printf("\t\t ************浏览职工信息 请输入:2************\n\n");
7 R* O6 |7 T4 Y: y8 m5 u- oprintf("\t\t ************查询职工信息 请输入:3************\n\n");4 g) g+ Q6 }4 @& e) G" h7 x
printf("\t\t ************删除职工信息 请输入:4************\n\n");
# ~& h- d# a. \& G7 bprintf("\t\t ************修改职工信息 请输入:5************\n\n");
7 I$ H3 Q4 l+ a% @7 p4 ^printf("\t\t ************ 清屏 请输入:6************\n\n");
- J9 M* j) Y/ b5 i: _! h, C$ [* sprintf("\t\t ************ 退出 请输入:7************\n\n");
5 D! p" S1 I1 Y1 B/ _, Zprintf("\t\t************************************************\n\n");* ?& ^- z, o% j) @
printf("\t\t************************************************\n\n");
. S% _1 e, s& w# r( R+ ^0 w} void find_sr(PLINK plink, char* str)
; z; A, X5 e- o K. K [3 ^+ K{! G v( v# e( d/ [
for(PLINK curr = plink->next; curr != NULL; curr = curr->next)
/ |7 k6 `* T5 W8 S& G{" }! t+ A l$ W' \
if(strcmp(curr->w.edu, str) == 0)
: x! H" Q" R( E: L. y! B{$ q) ^1 y4 A6 Q4 j3 H7 T3 U T
printf("职工工号:%d\n",curr->w.id);0 s! {! a9 [5 d- O! C# R
printf("职工姓名:%s\n",curr->w.name);
+ T6 `. j0 \5 [$ z+ z5 @: Q; S. ?printf("职工性别:%s\n",curr->w.sex);/ h4 ^9 x0 a: A$ F
printf("职工年龄:%d\n",curr->w.age); J1 c+ j1 Y2 P! j8 S
printf("职工学历:%s\n",curr->w.edu);- b* b. v8 h& e; m
printf("职工工资:%d\n",curr->w.wages);
/ }8 l, Z5 s" E6 M5 v) Rprintf("职工住址:%s\n",curr->w.adr);8 p, T( I% s/ T5 }9 W7 Q$ G6 k
printf("职工电话:%s\n",curr->w.phone); }
" p$ ]( I- q5 o3 v# u}
$ ]+ f" \$ [. Q0 B& _7 F8 w4 g} void findid(PLINK plink, int id)( u, p; x+ x( e- L0 G7 @8 Y3 ]* V$ _
{* } c8 m$ W- I1 J. D% B
for(PLINK curr = plink->next; curr != NULL; curr = curr->next)
2 J( W V. u, B, i- ~{
B/ \) l9 x% u* j! Mif(curr->w.id == id)3 M; b/ k) r: w( t ` n: ]" c' E
{6 R# I8 u5 u7 m- u( |
printf("职工工号:%d\n",curr->w.id);
" C1 `9 M5 W- \# A0 {0 oprintf("职工姓名:%s\n",curr->w.name);. D8 e- m* x& M; f l
printf("职工性别:%s\n",curr->w.sex);6 w8 F3 M/ w; U7 h* _
printf("职工年龄:%d\n",curr->w.age);
e/ s$ H* C2 s2 D v' B8 rprintf("职工学历:%s\n",curr->w.edu);( x. q0 I/ \& z' `
printf("职工工资:%d\n",curr->w.wages);0 N0 L: J. @# s) B, s# y
printf("职工住址:%s\n",curr->w.adr);
0 Z2 |) i# x( e( R# Y( hprintf("职工电话:%s\n",curr->w.phone); }. T1 i( G1 k, ` n0 V9 ^
}5 I# M: F" {% ?: P7 A7 a% P* Y
} void show(PLINK plink)' Z/ _' F& u" p# k# O
{ for(PLINK curr = plink->next; curr != NULL; curr = curr->next)* ]2 B* Q% j7 n% v" d
{
n! v/ ]9 o; k9 o2 Kprintf("职工工号:%d\n",curr->w.id);
8 x3 S9 ]/ j4 _9 qprintf("职工姓名:%s\n",curr->w.name);
6 v9 U+ F' l5 g+ J6 {printf("职工性别:%s\n",curr->w.sex);# e( L& x. |1 b, V9 @7 ?! e
printf("职工年龄:%d\n",curr->w.age);; { V2 @% Y! w. A! a/ r
printf("职工学历:%s\n",curr->w.edu);
; J, T) W1 }/ g0 i, w# M+ wprintf("职工工资:%d\n",curr->w.wages);
$ Y% i+ t- J- Y! e4 r4 o6 |printf("职工住址:%s\n",curr->w.adr);. S0 M- y: m# o
printf("职工电话:%s\n",curr->w.phone);. L4 G+ X: l! R) b0 D, v
}
# s' ?; e$ n) v8 }2 j* Q- N} /*录入职工信息*/9 Q5 ^+ i( _3 Z2 r+ S
int add(PLINK p)+ A# `; v; ^2 O1 }. ^- N3 l1 m3 q9 ?
{) S5 _1 F$ l1 x- d
PLINK h = NULL;) M# V( l. b5 r* J2 F
PLINK q=(PLINK)malloc(sizeof(LINK));; T. c( P5 n6 Y' S
if(NULL==q)
; f/ G: T8 [& z% c( l3 _{! |( S6 A; \! b$ V
printf("录入失败提示:内存不足!\n");
l! T7 a" C4 U5 c! @! i8 G* Kreturn 7;% Z7 n- K% X; [: Y
}) u0 Q" g: e: {6 t
printf("请输入职工号(数字):");# Q$ V% d3 j1 d7 S+ L# ?& L+ V
scanf("%d",&q->w.id);
- k7 C% S# E4 {5 A" w* bh=p->next;% C2 o! u5 \& {0 o
while(h)+ r, z& Y! y7 t2 p/ u
{
8 C2 e9 U2 R6 Q S/ Xif(h->w.id==q->w.id)$ q* Y& ?! u2 N" k1 ?
{. s! k: n: V: F0 H+ V
free(q); M. Z" g( X% Z9 y9 z
printf("录入失败提示:此职工号已经存在!\n");
/ a5 W2 N9 |, Y0 U% ^; Nreturn 7;
! f- B, z. I9 r" w}
! q1 l& W# n1 nh=h->next;
7 @; M5 [4 ^8 w/ T9 F. `}
% `7 p& T* ~. b; w( f4 [; W0 jprintf("请输入职工姓名(文字):");
7 }" T- D# m4 L" Q3 H1 z5 U9 Wscanf("%s",&q->w.name);% T, `. d! G [+ C! d
printf("请输入职工性别(文字):");
0 F; P/ A+ G! w: \7 u- Bscanf("%s",&q->w.sex);% r5 ]7 a, l& L# q" _" b
printf("请输入职工年龄(数字):");
! x+ Y# q1 ]. Nscanf("%d",&q->w.age);; V# F3 e& [& ?! b- `
printf("请输入职工学历(文字):");
. ?$ W9 I2 X0 [5 O4 ^% U) Ascanf("%s",&q->w.edu);% P: Y9 x5 R7 V, B# Q: H& z
printf("请输入职工工资(数字):");
8 Q" d: z% { \1 C* Tscanf("%d",&q->w.wages);1 H# H' v% V0 s* W2 H) M- k! g- d
printf("请输入职工住址(文字):");
) n" U1 w5 ~ n8 D$ h3 |! b& T! h9 Pscanf("%s",&q->w.adr);& o4 T( }! y" @6 ^& g. l! |
printf("请输入职工电话(文字):");0 A% B, p) I. E Z, ]# k) P
scanf("%s",&q->w.phone);
& A8 X, b$ m6 \! @$ c! n4 R2 v, T7 uq->next=p->next;- t% |( z7 A* L
p->next=q;) n' n3 I$ ?/ L2 T: a9 h. R
printf(".^_^.录入成功!.^_^.\n");) R# T# E. L7 K1 w" ]1 p$ k. b4 Q
return 7;
' P* x3 [% K9 [! C} /*按姓名查询*/) \# E5 A7 x; O3 t5 o
PLINK findname(PLINK p,char *name)
) r' @8 @0 K& s' k$ `{
: P8 J0 d6 q' `. u5 o' e3 Umessage(); t* S" j; e9 ~5 U" D% E" n" Z
printf("按姓名 查询\n");- i2 t& n: Y1 g* ]
printf("职工号\n姓名\n性别\n年龄\n学历\n工资\n住址\n电话\n");
5 @# c5 {- u# [while(NULL!=p->next). O+ i6 C3 h3 R* {; F. N M+ V7 K
{
3 W: {# y2 [$ P9 S: H. eif(0==strcmp(p->next->w.name,name))& O& C9 @' T7 u3 g( Q- ]1 Q9 `
{2 \* V7 J6 q: h8 b8 u
printf("%d\t%s\t%s\t%d\t%s\t%d\t%s\t%s\n",8 {% C7 ?4 C A6 `/ f- a! I0 n
p->next->w.id,p->next->w.name,p->next->w.sex,p->next->w.adr,
% `& h) s, ^$ |. f1 tp->next->w.edu,p->next->w.wages,p->next->w.adr,p->next->w.phone);; ` D* ^$ o$ ?( R' z0 x
return p;& y% c! [: C# w3 W
}3 k. L$ R& P. E2 j
p=p->next;" r. |, B5 K0 o8 }5 S# r
}
$ |8 M: ~& u5 L# z) Q# a7 w; m% C# j+ kprintf(".^_^.查询结束!.^_^.\n");
( J, C/ t, E1 vreturn NULL;4 m4 Y: m- V8 J! R
} /*按职工号删除职工信息*/- R% p( H; a" \, ?- s5 F7 j8 a
int del(PLINK p,int id)
& x# O9 Y0 Q8 E4 N! L% N{& S \, Z7 R1 K0 _/ d
message();) d: R6 a: Q( H. _2 V7 F
printf("按职工号删除职工信息\n");
& e0 y. s, X- i( U% Pwhile(NULL!=p->next)
# M: A2 [" K& e6 _6 D9 N{
% z7 t4 C7 E3 X9 y& y; l1 [if(p->next->w.id==id)% I1 s* k5 S% }9 h* e; @2 t, }
{( Z" ^* a2 H- S) m
PLINK q=p->next;. J G" \- c3 X: Y) P2 ?
p->next=p->next->next;
# I: I! v* U7 s( w7 I; _free(q);3 I p# T8 D( p9 J7 X$ P! F8 S O
printf(".^_^.删除成功!.^_^.\n");
8 T- C9 K' u5 z' \8 W9 hreturn 1;( @, y: M1 W! |8 H: q7 I
}! b$ O I) `' k! B% b$ z1 n/ ]6 |
p=p->next;* [# G x0 v: f) W9 R' [- H2 f
}( @. m: ~. `: p5 V
printf("没有你输入的职工号!\n");
, k! B0 Y% l' I: `return 7;
% N0 E0 F \2 v# @( ?} /*程序结束释放内存*/0 G2 n7 [/ G, n2 Z; q
void release(PLINK p)
9 |' j9 V: j) C0 ]5 x! W5 V{8 j- s- [' N2 z+ l& V
PLINK q;
, F% c1 a( g+ T5 Ewhile(NULL!=p->next)
y: e% L% R( c; m+ g) [3 u, H{
Q" o0 o" I5 ?& ?) C. Gq=p;
4 N' h7 i& Y; a. hp=p->next;
* r0 m7 K. A% E7 \6 sfree(q);
: b2 D6 S# \ H9 [$ Q' r t}
0 B. i$ n, U4 {: {( w5 p4 j0 Yfree(p);1 l, \: e! R! }7 h5 H
} /*查询调用*/
' r+ L, g# F& [; s" G* `9 |void search()6 h" a; ~, Y1 G/ i( z
{. e0 C) e+ e$ j: c! u9 X1 r9 m+ a
int id;
: U; L7 G% Z. D& W, echar name[20];6 ^# I/ l8 L. H5 ~4 u
char str[20];: _1 E2 O$ e0 \+ }
PLINK pworker;
: k: \8 B# i' @' aint l;. ]& U2 Y# l" E- }6 c) V! W4 [1 L2 W
printf("\t\t\t\t*姓名查找按:1*\n");, S$ J" k/ I- N G1 ?' s
printf("\t\t\t\t*学历查找按:2*\n");
- p0 m% p- Y. r( K! k' I- m. Zprintf("\t\t\t\t*职工号查按:3*\n");2 _/ N# s: b: ~$ \1 s# P$ O
scanf("%d",&l);& d3 w& {% e" J
if(l>0&&l<4)2 r3 g* ]+ I k' w! ]
{switch(l)
& R1 R9 }5 O" ^{8 Z1 f- C, A- a! A
case 1:printf("请输入要查询的职工姓名:");
7 q( ^- P y4 w/ H% Nscanf("%s",name);: T+ T8 U3 K, O
findname(pworker,name);
3 A5 W- X" E- lbreak;8 O$ P4 C8 k( ] P5 k. ~; _2 u
case 2:printf("请输入要查询的职工学历: ");+ `- E% ~, U$ g
scanf("%s", str);
6 r6 ]( g* U& y! Xfind_sr(pworker, str);
" P' a. H; @- v1 _# ?; ^; O. H$ Cbreak;
* m6 q. L2 R# S0 W' X$ Gcase 3:printf("请输入要查询的职工号:");% _- {: V4 T! [: ]* C4 k0 k- h
scanf("%d",&id);
/ Y# B2 e7 h- g& v5 b/ U% G4 vfindid(pworker,id);0 w9 C) t- e$ O/ P! N
break;
o, z6 e( ?3 b" ], _}5 E s1 u6 y7 W
printf("\n\n选择完毕!!!");; y, ^# M# m+ J& ?4 S
}
$ n/ W# r, M$ ~5 w+ m% }else printf("\t\t\t\t输入有误!!!");
$ c) S, A0 }/ S, P6 T L} /*修改职工信息*/
# g8 y; x% G) A; |- a# t" aint modify(PLINK p)* n1 i1 S" a h6 b; Z6 d
{ int id;
: |7 n, `/ c: |1 TPLINK q;% y$ a1 t# Y* F$ t/ |4 X6 T
PLINK h = NULL;! t! X8 E5 g" z2 X
printf("请输入职工号(数字):");
' ^. d9 C. ], }1 R, J5 Ascanf("%d",&id);' w3 \# G3 {' V8 B4 n; t& Y
h=p->next;6 ? z0 [6 U0 e4 i7 q
while(h)
8 a$ T9 M, l' H6 J{. y5 D- a' |- [0 N, k
if(h->w.id==id). R g0 l5 f% e r I
{# z' n, z( ` ~$ Z, e& Q, W" V
break;$ [) A- L. U1 R6 q' o4 j
}
6 M$ [ \! f0 U2 @7 lh=h->next;
# \5 W9 n5 v: u}) R) w# s" w8 ]) d0 [
if (h == NULL)
3 O. B/ q( l7 h8 @" A! w/ G8 Q+ w; |{# j5 f- A0 Y6 Q; t
printf("找不到此职工,请重试\n");% |7 x. r' p* s% H! |
return 7;
- q9 w. v0 P `+ F ~. Q}
" n: x& d! X" k! Eprintf("请输入职工姓名(文字):");& {/ R: R7 C6 |! z- B! n0 V
scanf("%s",&h->w.name);
; v( g% m" T6 t' q) O5 {9 ?9 aprintf("请输入职工性别(文字):");$ c% M$ ^ [! c2 Z) Y8 `& E( C
scanf("%s",&h->w.sex);! n0 ~; e% i# t) J
printf("请输入职工年龄(数字):");$ L% c- P+ P( a; P8 S2 `( f* u
scanf("%d",&h->w.age);
/ M9 G4 A: z3 W+ Cprintf("请输入职工学历(文字):");
) ]8 v& A: S/ n- V' f) Hscanf("%s",&h->w.edu);
' H! `6 R4 e ~: c% F# _8 G4 Eprintf("请输入职工工资(数字):");5 r: I% f- ]' l8 a
scanf("%d",&h->w.wages);, D% a' Q* r" f! V8 o. C: J
printf("请输入职工住址(文字):");
1 x4 U& V& I" S8 \# K$ i& M& Ascanf("%s",&h->w.adr);) c# K4 ^ v: c
printf("请输入职工电话(文字):");7 d( k V( }, @) D% Z! X
scanf("%s",&h->w.phone);
3 \. U8 O0 x6 r' \( H' M$ j! S. \5 ^q->next=p->next;
/ T5 `9 R5 {+ op->next=q;
$ k/ M$ k$ ^& R4 s- f, z6 sprintf(".^_^.修改成功!.^_^.\n");* a; F) q( s* a
return 7;) w( {; b5 k+ r- p+ u! M; d
} int main()
" f7 \/ z3 N. U5 j; i" S{
2 s7 C$ f' ? t7 z. T* t7 R, I# y& p9 T4 H2 P* \2 L! q
int cmd=0;7 I; u( Q3 w$ ^2 w2 P+ O6 q
int id;. t5 K# e6 p4 j, v
char name[20];$ u6 A3 S5 K+ i
char str[20];
. W0 K+ W5 Q" J) W7 V: I0 lPLINK pworker;" b) I3 ?, ^; z9 G
if(!(pworker=create()))& y1 E, {% m, X4 ]+ }9 h" j
{2 U; c' j- k: P7 s4 A* \9 @
exit(0);
: l, Z0 ^' \2 N" G. P2 H2 M0 P}
2 K* c U3 C9 m* Bwhile(cmd!=7)8 }& {( Q3 V% g! U
{2 P! ~; H+ N$ P7 @
switch(cmd)
+ r! U( E$ }$ T: C2 j- A5 j, {0 J{% N. P# d8 p+ s$ d" l- i1 h6 l8 V
case 0: message(); break;
9 T v* z6 @: x; Mcase 1: add(pworker); break;
' n! O: N- p( Z& V9 Tcase 2: show(pworker); break;" b# N$ Y; w5 _# e# C
case 3: search(); break;
3 J/ b% |, ?" B) Q& Icase 4: printf("请输入要删除的职工号:");
4 H. V8 a, u& ~scanf("%d",&id);1 g# H* @9 r! a1 G) m) e
del(pworker,id);) Q5 V I1 [0 a9 J* P: w
break;! G/ G; Y" W- z: Z; u
case 5: modify(pworker); break;
1 ~ Y; n8 Z& X' h: i; C/ [4 Ycase 6: message(); break;" J5 Z' |* \ r5 S2 F, S& z. a
}$ d/ d ?9 n9 i/ j
printf("请输入操作命令数字:\n");( ^' J- j, X% J2 C1 E5 D8 o! R
scanf("%d",&cmd);8 }* P1 A% `! a2 {0 Y; y
}
) Q% P, K: }1 }. h" A; g. kprintf("谢谢使用!\n");/ F; C) i6 x1 ]2 m" n4 y% s
release(pworker);
6 ?% C6 k; w/ S9 u Z1 Dreturn 0;# a& o! Y* s I1 q
}/ T; l9 `+ V$ \) d+ J7 g7 W7 A
/ j( Y2 s" F! n" q% i2 T3 V% [% e/ T" R( m) O
这是职工信息表 能运行出来不过查询功能不行能帮忙看一下是什么原因吗。。再此谢谢了!
+ S( z8 X; Z) |- G7 u4 c
) P$ F: g3 L1 l% Y: O |
zan
|