- 在线时间
- 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>
I: y+ x( }2 D* q, w#include <stdio.h>, ?) @ N1 A) i/ K
#include <malloc.h>
( S7 ^; E! g! Y8 _#include <string.h> ' s3 \- [/ C6 |5 b
typedef struct worker6 `+ D4 x9 z5 ~
{6 d2 t6 a' ?* f5 `& K
int id;
) J# H, P) F3 H0 }char name[20]; E1 U5 \- n; {, B
char sex[3];) W+ m& a1 K! }! V' P
int age;8 v/ _& e; r- [
char edu[50];
4 V. c3 c) V K: o/ x6 b) l! Vint wages;5 l! @: c M) P: }" V7 R4 z
char adr[255];
+ P, u/ z6 g" q$ u1 Dchar phone[13];2 B. k3 w( V- I" f0 x
}WORKER, *PWORKER;# Z* o! l! t: D+ K; M+ M! T: J8 q
//typedef struct WORKER *PWORKER;
" E4 }/ T {/ r" T& |% Qtypedef struct link
0 b$ _! O, {0 ?: [{/ t5 R5 h: @. H; R; U; A
WORKER w;8 b1 d. g( o6 q" ]# W) @
struct link *next;# N. ^- O! x" r
}LINK, *PLINK;
2 B7 B- ^9 M- p, P" S, {4 T6 l: Q& P//typedef struct LINK *PLINK; /*创建职工信息链表*/
% S0 Z- _) U8 `+ y# p, GPLINK create()
; F2 S6 p- o" Z& {{
; b* w! b1 |* w* A1 mPLINK p=(PLINK)malloc(sizeof(LINK));
# n( M W5 r- xif(NULL!=p)9 e1 \3 p, e5 }0 I- d
{
" J: k4 e; K, A rp->next=NULL;
6 q2 x& a6 y3 A, D# b' t8 Areturn p;
! t$ I- J- Q# A' Y' z" A}+ k& Z( q Q4 r8 e1 O
printf("内存不足!\n");2 }$ R: x7 e# u' {' ~
return NULL;
3 n" ~4 ?6 b. H/ m; N4 k} /*显示程序界面文字*/, M3 [; f3 }, Y) H/ U) E7 a" ^
void message()( w& f6 v3 [. O2 h4 y7 b) F
{ system("color 0f");/*设置当前窗口的背景色和前景色*/- U' D6 Y, q/ Q5 V7 b+ H1 a
/* 0 = 黑色 8 = 灰色' T4 P$ W) k% c9 v b+ ~
1 = 蓝色 9 = 淡蓝色
3 M) i( q5 m4 u- g( k! y8 G# Q2 = 绿色 A = 淡绿色& ~" X: d7 T! z& X, U. G# L
3 = 浅绿色 B = 淡浅绿色# E3 z+ A8 n& C) E1 N
4 = 红色 C = 淡红色/ e+ n/ L9 f9 ]6 C5 O
5 = 紫色 D = 淡紫色
6 _: }& Z7 [1 Q$ `& M% {6 = 黄色 E = 淡黄色 R2 }' A# |, H0 K: Q
7 = 白色 F = 亮白色*/
; y. _+ p9 O' k4 asystem("cls"); R1 p) h/ x0 Z8 b# Z! r- C
printf("\t\t************************************************\n\n");
/ ~% A4 S+ }) n: _% L- {printf("\t\t>>>>>>>>>>>>>>欢迎进入职工管理系统<<<<<<<<<<<<<<\n\n");
9 E6 F6 i, U3 w, ~: qprintf("\t\t************************************************\n\n");# j4 ?; d2 G! F( z; s
printf("\t\t ************** Choose Function *************\n\n");
F5 s0 @+ L# I+ P7 @printf("\t\t ************ 帮助 请输入:0************\n\n");
. m \0 f7 P$ F5 kprintf("\t\t ************录入职工信息 请输入:1************\n\n");
/ x F1 w/ N. u" Bprintf("\t\t ************浏览职工信息 请输入:2************\n\n");
. U, f( `7 E- s$ _7 J( Fprintf("\t\t ************查询职工信息 请输入:3************\n\n");% w4 |3 H- p* z3 X) D$ c+ k
printf("\t\t ************删除职工信息 请输入:4************\n\n");. U0 M8 H* q: p- J | H3 y
printf("\t\t ************修改职工信息 请输入:5************\n\n");
8 R/ ` \- A2 ^& Iprintf("\t\t ************ 清屏 请输入:6************\n\n");( A$ o$ I% Z3 h* Q$ C
printf("\t\t ************ 退出 请输入:7************\n\n");
$ \/ W' n) m# aprintf("\t\t************************************************\n\n");, C% L; e: e2 n8 H
printf("\t\t************************************************\n\n");2 M$ k* c: u7 q: W m: A( R
} void find_sr(PLINK plink, char* str): M2 R) n7 u5 n" {- k/ g
{% \1 d( P' f: T4 s6 B+ n
for(PLINK curr = plink->next; curr != NULL; curr = curr->next)
7 T. w5 d+ x9 |{
; M6 | H7 U' |7 I" Mif(strcmp(curr->w.edu, str) == 0)& A: I0 G. H0 W
{* C" j, V* D0 P0 _& X
printf("职工工号:%d\n",curr->w.id);
- Z; _2 R! _; z O% C fprintf("职工姓名:%s\n",curr->w.name);
5 j; D1 \* `. m2 rprintf("职工性别:%s\n",curr->w.sex);* n8 x& X+ G% D5 Z- E
printf("职工年龄:%d\n",curr->w.age);
! @& W2 E" J" U& xprintf("职工学历:%s\n",curr->w.edu);
0 R1 y. [# S8 h) s; l" r) ?/ Hprintf("职工工资:%d\n",curr->w.wages);+ ]- X* ?( ]( r, E4 a
printf("职工住址:%s\n",curr->w.adr);
7 C% B( l1 o, \2 ~, oprintf("职工电话:%s\n",curr->w.phone); }
' [- h$ E6 M" {8 [, ?# {}, u+ ~- C/ T2 g; ]/ L
} void findid(PLINK plink, int id)
1 M0 g# ?0 r, _, z{
7 P' ^" E, f5 X" V L$ e0 ` n6 qfor(PLINK curr = plink->next; curr != NULL; curr = curr->next)
, \* @( g# y' a- g: e2 `' Q{$ }3 I7 K" Z8 X- y3 E1 j! `. @8 p7 Q6 n o
if(curr->w.id == id)
% \: R' M, @ W3 d5 V2 W, |* x* ~{8 H$ Y& k. H h' O7 W7 x/ w
printf("职工工号:%d\n",curr->w.id);
; ^: ]% I( M4 ], Hprintf("职工姓名:%s\n",curr->w.name);
) J5 x2 H0 h0 }/ T7 ^, ?1 ~/ x2 Zprintf("职工性别:%s\n",curr->w.sex);% F. @4 S" }5 r8 q) u/ z: S% D8 F; q
printf("职工年龄:%d\n",curr->w.age);
5 r4 ^6 o# }* @% ^' O; Y" _( Mprintf("职工学历:%s\n",curr->w.edu);
- W/ F+ c/ T7 ?3 v; }( ?$ cprintf("职工工资:%d\n",curr->w.wages);1 Z# ^* g* s: V4 C0 [) x e
printf("职工住址:%s\n",curr->w.adr);. o/ c& P% \, t" w' k5 j
printf("职工电话:%s\n",curr->w.phone); }, h8 w) ?$ T: F0 ^' D- t! J
}+ T6 B* s2 T1 c' a; ^6 c% a
} void show(PLINK plink)
3 o( {: P1 q" p0 w& u) Z{ for(PLINK curr = plink->next; curr != NULL; curr = curr->next)
/ `) h0 l' u* f- C{( G: L ^- G+ [( _- S
printf("职工工号:%d\n",curr->w.id);
, R3 z7 X% @2 {) s6 V8 G1 rprintf("职工姓名:%s\n",curr->w.name);
0 q. ]( [$ |+ L$ _printf("职工性别:%s\n",curr->w.sex);
9 N. H$ k( m2 k% x- b3 k# D. h/ Eprintf("职工年龄:%d\n",curr->w.age);/ z' `* c1 t" F
printf("职工学历:%s\n",curr->w.edu);9 i* e" R1 F$ U9 |
printf("职工工资:%d\n",curr->w.wages);
6 w, X3 b( F0 Y& N* I( {5 C$ Gprintf("职工住址:%s\n",curr->w.adr);/ Q# z7 a" P" a# t4 P) ?
printf("职工电话:%s\n",curr->w.phone);
9 R% e& P! N7 f) ]2 I}+ j1 T0 {# l: O
} /*录入职工信息*/
" S+ |. \: I# W4 S6 fint add(PLINK p)2 y& F V$ d3 A/ q( A$ M- O+ e* [& t
{$ `( |8 M* J' f5 S! o, I6 P' X/ g* z: z- X
PLINK h = NULL;
3 {7 u" B- ~% `& s- K, r, ZPLINK q=(PLINK)malloc(sizeof(LINK));6 }, p. J* w" G1 V8 P6 i2 B# v3 I2 D {
if(NULL==q)
: o' \% }! K7 K! m/ b{
/ Z+ X9 j6 p+ j* E# r9 \printf("录入失败提示:内存不足!\n");3 D1 E! o% e3 u. @% B8 _# s4 s
return 7;
1 M" v) r& M+ E; l7 _3 p* W" @( Q6 b}* Q. a4 J: ~. c M7 i
printf("请输入职工号(数字):");3 H2 x' F5 |. w' I( J) M* n
scanf("%d",&q->w.id);
9 O) }6 T4 ?& N! Q' Kh=p->next;
. i* v H" N( Q2 X$ ]; V5 I8 {' mwhile(h): [4 c# ]( {, M5 g$ o Q
{ M- U& _! d; ~, ?, } `
if(h->w.id==q->w.id)+ }; q. E0 G( @
{
1 f3 |. D/ q7 v; afree(q);7 m/ M; l" M' D
printf("录入失败提示:此职工号已经存在!\n");
+ o: x0 \! @, h& J( Q! ~, s2 Mreturn 7;9 E' S: g- N/ W8 j; |* ~* S. [
}
/ h6 {+ w9 I& K- I- F0 u' _h=h->next;) M. E1 Z& Q1 E. K# G4 @
}
2 m* e% C+ l3 y, i g& h" Kprintf("请输入职工姓名(文字):");" D$ `; f5 t% a1 i
scanf("%s",&q->w.name);
" s# s6 c1 @+ Wprintf("请输入职工性别(文字):");
' j5 n& c% S/ j0 [3 h1 w5 |scanf("%s",&q->w.sex);/ [3 ~! r T: V9 |* S/ m& _
printf("请输入职工年龄(数字):");
- H" P: L+ _" Y. ?$ D7 `+ P E; pscanf("%d",&q->w.age);
, e8 v3 a% n! G# c$ v0 R9 aprintf("请输入职工学历(文字):");
! `( d+ l. w7 L; _9 Z' Xscanf("%s",&q->w.edu);
3 ` i7 d8 z& Z3 a, f/ S1 }& ^printf("请输入职工工资(数字):");
0 B# n1 J- G0 M7 G) P# h" h$ kscanf("%d",&q->w.wages);
/ X' t7 o# s3 l; @# iprintf("请输入职工住址(文字):");) ~1 s: }! a9 I+ }8 ~0 y
scanf("%s",&q->w.adr);* w, V r0 ~& G4 [- d. _* o, W
printf("请输入职工电话(文字):");
5 i8 S2 x' E. rscanf("%s",&q->w.phone);
/ k$ o4 y/ q7 g9 ^$ R9 |q->next=p->next;2 p7 |3 h l# {& h' U' L, r4 C
p->next=q;
2 _# R9 C) z( w. \printf(".^_^.录入成功!.^_^.\n");9 c3 s9 k4 c+ ?9 G' G) F
return 7;
5 o3 Y. R0 H8 S' ^8 i1 I} /*按姓名查询*/7 c; q, G! Y6 {& p1 a& J; o
PLINK findname(PLINK p,char *name)
1 S2 ]% N7 d) \) [8 r{
: j% p) r; |6 u8 v* t1 v; Jmessage();0 d+ h) L2 C- q' U, |
printf("按姓名 查询\n");' } S: m9 }8 a3 p% K1 P2 x- R
printf("职工号\n姓名\n性别\n年龄\n学历\n工资\n住址\n电话\n");, A& W% \& o. ]5 l& v& P' j
while(NULL!=p->next)+ {( p0 d2 J$ h' y! C% ^2 z% \2 O
{, O' o, T4 E/ @ N1 k
if(0==strcmp(p->next->w.name,name))
i0 ^( k& H# H8 `. n. G9 ]8 n{! t' H( Q! r/ D* A6 {2 P
printf("%d\t%s\t%s\t%d\t%s\t%d\t%s\t%s\n",+ F7 y& o% H5 v, P6 @. A5 J" a) B
p->next->w.id,p->next->w.name,p->next->w.sex,p->next->w.adr,# k+ f* ~- e4 h D' z: u
p->next->w.edu,p->next->w.wages,p->next->w.adr,p->next->w.phone);0 i: W. s& k4 u# u4 c
return p;/ M) R+ w3 h* h7 F2 V% s: N
}
9 \8 b; L) H2 I- Z9 f* S) ^, yp=p->next;( J! x7 i M$ q! X9 `
}
# Q& ]6 H3 \) f2 Y, dprintf(".^_^.查询结束!.^_^.\n");5 o# U! o, M' O5 B
return NULL;
r3 _" j- H; }' R7 U4 |; {} /*按职工号删除职工信息*/
4 A* n; N9 f$ b) t" J8 \( V \4 ~int del(PLINK p,int id)% n0 v1 f6 e h' I+ M9 g- p
{) d F B6 W" y- o$ Q" i( e/ s
message();% h2 y" O" z( }4 C
printf("按职工号删除职工信息\n");; I$ d5 p# d+ J V$ ~2 c
while(NULL!=p->next)1 {8 h9 p+ r, Z7 j+ ^% C" ]
{& Y9 L1 E8 K7 u" p* [
if(p->next->w.id==id)* _% A3 L: `# Q4 ^
{
8 d) U8 O, _! f1 Y C7 YPLINK q=p->next;& r" |( c5 h) G# h
p->next=p->next->next;9 p& ^6 W* i9 K' @( ~* g( G3 i
free(q);
: r- g- a p2 N, W1 Q/ a3 S* Pprintf(".^_^.删除成功!.^_^.\n");
9 S7 G4 q& D( Q7 h/ y- Preturn 1;
% x9 d4 }3 w. ] [# I}
6 ~! v( g% T& S% z- N. o1 O- n* y. Fp=p->next;. X" B7 q2 U1 U3 J' R
}
" F2 `/ U: |" D* N2 B4 H/ qprintf("没有你输入的职工号!\n");
: w& y) e' F% k1 I+ R: U2 freturn 7; ~2 [3 Q. I7 ^* ?0 c7 t" P. ^
} /*程序结束释放内存*/
$ {. `( s9 r/ F) jvoid release(PLINK p)
: H" N3 Y6 g% V* P{
' b( s) @8 H+ i4 B6 ?PLINK q;6 @7 {- u% U3 b$ c
while(NULL!=p->next). W3 T; n& U- N8 B0 F. T% v) L/ ] t
{5 }, b: J. z3 R5 |$ |; @
q=p;
; X7 K, n7 x+ Z2 J8 mp=p->next;2 }: h) I& H' W* ]3 M; [4 e
free(q);
& M$ o4 W3 V$ b3 S}( W, `( D \$ a5 F) B7 R
free(p);3 T$ Z4 S8 ^2 L
} /*查询调用*/0 ]: z Z2 A" n- h
void search()" ]( ? s# Z+ E) O/ t1 B' g
{
2 O1 b# s7 {) V' L3 u1 ^8 N& Lint id;
* r# I4 u0 {& s# |- e) W, R" pchar name[20];2 i* X% Q6 R9 [8 L# T* N9 e
char str[20];& h0 J2 x+ v/ Y/ g
PLINK pworker;& M9 I& S$ B0 t0 k9 K1 z. k# Z" h
int l;) B, V4 E; p8 [, k! [
printf("\t\t\t\t*姓名查找按:1*\n");/ O0 h0 [/ Q+ r7 x& A
printf("\t\t\t\t*学历查找按:2*\n");
; b+ J& U% a6 H3 g5 Zprintf("\t\t\t\t*职工号查按:3*\n");
1 v, v+ p$ m _1 g; m4 `scanf("%d",&l);
; k X& N3 _1 w1 ~! k( [/ nif(l>0&&l<4)
$ f) U: A6 |3 L& T; N{switch(l)
' A3 [, V# g3 \* `{
( n5 v3 n& H! v1 s o& K9 n3 P9 S M: gcase 1:printf("请输入要查询的职工姓名:");3 A' T5 L. x7 q
scanf("%s",name);
# w/ g. |4 ?' f6 J( ?" e4 g+ ?findname(pworker,name);
! s. J6 f4 v/ M# Pbreak;6 Z$ J# s& Q0 y! S4 @: Z1 [
case 2:printf("请输入要查询的职工学历: ");
! g" w/ J+ R7 ~# b5 fscanf("%s", str);
% [8 E1 U+ }% M" R; F& Zfind_sr(pworker, str);2 q2 h$ \7 E A8 A+ m) i
break;
; n [; L& M; Z4 }$ s( j* Scase 3:printf("请输入要查询的职工号:");
}+ H7 d+ T* v3 W" @% E4 ^- Wscanf("%d",&id);) p, w1 m% d, y% s8 o+ d x
findid(pworker,id);
- L/ ^! q" T: obreak;
7 d- ]2 X9 u3 [% I6 K}) `3 k d5 Z. C8 q
printf("\n\n选择完毕!!!");
" X7 h. {( Y$ h8 P8 { V}
# e+ Z5 m3 H/ s" X) T8 Jelse printf("\t\t\t\t输入有误!!!");
4 D ]5 k y+ r( U$ o5 t: y} /*修改职工信息*/
. O8 E* v( r! ?! {5 Y* eint modify(PLINK p)
+ x. a0 n1 D6 w t! M( t- h{ int id;
9 C7 }( ^1 E7 M* j$ J$ K# K0 {8 UPLINK q;9 a0 v3 g1 }" G' R
PLINK h = NULL;
' M6 W- O3 Y1 q0 y- Kprintf("请输入职工号(数字):");, Z4 f5 X# }# s$ a5 E# |
scanf("%d",&id);, S5 h8 z6 V0 `6 ^3 H
h=p->next; y \; w( b m* N, F# {
while(h)- f$ D1 a2 {8 {9 f# }5 k
{
* f+ ]" m- O; r6 s* Fif(h->w.id==id)( V0 f) u7 z, x. z
{
% f2 R% {+ m- M- u8 \4 \* [break;: I) \3 x( m# r) Y
}
9 v/ Q( G9 Z6 |7 j" {h=h->next;
$ a8 @& g( ]2 b4 W3 x& H}2 p% v( l7 }$ C9 n$ j
if (h == NULL)
& A5 u+ d' N, S{
5 `; S2 X9 D2 F- s0 oprintf("找不到此职工,请重试\n");; |' T" L! {. D5 y5 U3 @) k
return 7;+ m: o4 ^0 T! i: [" H' N
}
( e# w8 m3 D1 M9 L2 T7 B: _printf("请输入职工姓名(文字):");# x1 P. \) T q! s3 z
scanf("%s",&h->w.name);2 O' ^. M$ q l: p" x% T
printf("请输入职工性别(文字):");
6 Q4 v: a! _1 D' s8 o' h3 Nscanf("%s",&h->w.sex);
- Q2 n# j8 H6 _4 ]" Q3 L: u. kprintf("请输入职工年龄(数字):");
% B# i$ E% g+ H6 x' @) `scanf("%d",&h->w.age);
, h7 p& k# H$ _. bprintf("请输入职工学历(文字):");
. G4 Z2 X' G! H6 B3 Bscanf("%s",&h->w.edu);
+ m8 n" {; x' r: Uprintf("请输入职工工资(数字):");' i! N7 M% a2 S
scanf("%d",&h->w.wages);4 h# E- O& d) v1 t
printf("请输入职工住址(文字):");# g1 a: G* x: ~! T7 q
scanf("%s",&h->w.adr);/ P+ h0 \. y& e2 h2 g- y, d
printf("请输入职工电话(文字):");
2 ^) T3 ~7 f+ o ]$ [scanf("%s",&h->w.phone);" n: G# O1 |( M* M |+ Z! T
q->next=p->next; v3 a0 t# H4 @) z# s
p->next=q;
( T1 u, o" b8 w$ Pprintf(".^_^.修改成功!.^_^.\n");
. U& z* A, A/ r# G$ }% o1 I; \# creturn 7;1 i8 H8 p" I9 Q b7 d
} int main()
* a! |7 P! G9 Y) k. p: W{$ k0 p/ s5 ?) S0 e
/ T- D& V" o2 R; n; c6 g0 g/ X
int cmd=0;
. y' e, C4 V: l$ S: cint id;6 Q. V6 s2 o0 q$ ^ V
char name[20];
5 v" c" r4 `1 R- A D3 vchar str[20];, y. V$ A" ~% ?; P7 v: \3 I
PLINK pworker;! I& x! ]8 P r1 k% W
if(!(pworker=create()))6 u6 i" k+ Y/ f5 n! P! f
{0 K( D1 l$ H* |/ m, A& w
exit(0);
# T) } V6 P4 |' v. a" ~ y# {}
: O# F) J" g0 z' O. e1 V# ^while(cmd!=7)8 Z* |, f& Q- w6 w- ^ S
{
* `5 ?" n* W( G" \7 mswitch(cmd)7 C, v+ A: \) O {7 p
{1 _* t' z; w$ U% c e1 j
case 0: message(); break;: C# R$ O1 q: U, o9 g
case 1: add(pworker); break;1 C. P0 o) m5 i
case 2: show(pworker); break;
: Z+ z6 h. G9 I. W/ |case 3: search(); break;
9 y0 P! |; h/ |& wcase 4: printf("请输入要删除的职工号:");
) t) D+ G, H: a( {% C0 s- Nscanf("%d",&id);
+ ~/ f' _1 F% l1 y2 odel(pworker,id);, P/ |# @# Q' z2 V
break;
8 `' _, }% x3 d( Scase 5: modify(pworker); break;: q5 S$ y# j& [
case 6: message(); break; e! b# u$ S- }
}' b9 K5 i3 T0 H8 V) e# s3 ~
printf("请输入操作命令数字:\n");
0 w6 R2 a0 ~; G6 nscanf("%d",&cmd);3 i7 K0 Y0 V0 }; p Y4 ~+ l
}
' L1 K) D0 h% ?: _2 Uprintf("谢谢使用!\n");; w6 K- y- T2 U+ Y \7 R
release(pworker); @& x( @. R8 T4 `$ w% P
return 0;/ }' L1 h' Y2 N8 k" g* M
}3 Z! H7 a6 n7 \
% l/ `7 S8 L9 { W2 B( D
6 c( E8 K' T. p0 b" c这是职工信息表 能运行出来不过查询功能不行能帮忙看一下是什么原因吗。。再此谢谢了!: b3 g8 O! M$ I' x$ n
& @; R) J2 w& E+ J k
|
zan
|