- 在线时间
- 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>
4 ~9 u! N: i& J" \* C( v# p" Y#include <stdio.h>" J2 q" y& `4 y- ?4 n
#include <malloc.h>- W+ N# N/ S; P$ e+ E8 O0 [& n: }
#include <string.h> ( ^; O/ I2 D9 S9 T6 b8 F2 p# W! w# A
typedef struct worker9 [. ^" N! @1 S: _
{4 M N" K& C+ q; }# R, g+ e- X
int id;, H1 ~3 _* H. l' ?
char name[20];' _; h/ r; Z2 s9 e. T. y0 }5 d& f
char sex[3];
( [: u3 K! U1 E- m8 u) m8 K7 jint age;7 g( g: d C: S- j0 E0 l
char edu[50];
* Z r! q8 c+ l& Qint wages;
: l) _- v- ]" A( d/ l# A/ t7 Wchar adr[255];
. D9 |- m$ S4 `& schar phone[13];
, U; D) Z) ~& Z, @) Y}WORKER, *PWORKER;1 D M; \8 v2 {$ b
//typedef struct WORKER *PWORKER;
1 A4 e, T$ a. utypedef struct link
& I, V1 a, K8 Y9 I }( Y0 S{
3 F+ h' k9 C% }; L9 a* C$ H3 C( t" jWORKER w;
7 I* b* S0 [" f6 Astruct link *next;3 @9 M! f; J p7 j9 `) b: D
}LINK, *PLINK;
! h, B! P" i1 ]//typedef struct LINK *PLINK; /*创建职工信息链表*/9 M+ Y4 d# r* o: D8 k& v( v
PLINK create()
& L3 _9 f9 S) Q5 m* B* M{
8 K% Z) ~) x8 Z+ F+ C+ u* XPLINK p=(PLINK)malloc(sizeof(LINK));3 f: e2 h$ ?, { W0 y
if(NULL!=p): ^/ S ~6 W4 ^) P! g8 p
{
8 H& n0 p/ B( R2 L* H, ip->next=NULL;
) p4 P* H5 v; f& w% K6 O! V/ x7 greturn p;! t7 \- X5 X" w6 r- O! l
}/ _ s! \7 q' ^1 V% y- `
printf("内存不足!\n");: H0 V1 j, i6 e! n2 J' \! L$ {
return NULL;
! N0 K/ [; f6 T} /*显示程序界面文字*/9 d9 i' Y9 ]0 ?
void message()
& ?/ }& M7 y S7 |# k* ]{ system("color 0f");/*设置当前窗口的背景色和前景色*/; U! Z1 f. W) X5 N9 D+ V
/* 0 = 黑色 8 = 灰色; |; p# w, L4 U$ l
1 = 蓝色 9 = 淡蓝色
/ R8 F+ r. P7 K" m2 = 绿色 A = 淡绿色
+ H. V- C7 o3 R$ m3 = 浅绿色 B = 淡浅绿色2 P. t' h/ c* I! R) P
4 = 红色 C = 淡红色/ \$ e4 m; V2 Q4 W' L& c$ a/ ^
5 = 紫色 D = 淡紫色9 {6 g' H1 G( ]' ~
6 = 黄色 E = 淡黄色1 P) @$ S# B: k' `4 J7 F# I9 L4 N
7 = 白色 F = 亮白色*/! s6 C' X, k. X0 r# y+ J5 y
system("cls");5 m! R( V9 E9 a& P* @
printf("\t\t************************************************\n\n");
+ c4 a9 M J' Q; `7 b* Zprintf("\t\t>>>>>>>>>>>>>>欢迎进入职工管理系统<<<<<<<<<<<<<<\n\n");
$ R! D: ^4 B! X6 f& t/ z) J2 Tprintf("\t\t************************************************\n\n");
* t# T& C" k$ q0 e/ j! ?printf("\t\t ************** Choose Function *************\n\n");, e. a# U4 \2 y' B: k4 v' u0 V8 Q
printf("\t\t ************ 帮助 请输入:0************\n\n");1 T! A- X/ S9 ]! E: f0 ?# G
printf("\t\t ************录入职工信息 请输入:1************\n\n");
5 L, | I/ w& ?0 N' C2 \printf("\t\t ************浏览职工信息 请输入:2************\n\n");, j* o5 F3 V" k' {# H% T9 z% U2 \
printf("\t\t ************查询职工信息 请输入:3************\n\n");8 v& z+ v0 j8 r' l, S
printf("\t\t ************删除职工信息 请输入:4************\n\n");
* Y7 d# Y' p, Xprintf("\t\t ************修改职工信息 请输入:5************\n\n");
0 T! D! h7 P# X/ b) A. uprintf("\t\t ************ 清屏 请输入:6************\n\n");- x4 _% T5 C$ V
printf("\t\t ************ 退出 请输入:7************\n\n");
/ j9 r& F3 a* e6 M1 rprintf("\t\t************************************************\n\n");
" u" m; t4 N$ bprintf("\t\t************************************************\n\n");
5 q% c' g6 X( L! C; g} void find_sr(PLINK plink, char* str)
# r6 {& b9 A! J) h{
/ Y3 ^8 `6 H% s! _9 efor(PLINK curr = plink->next; curr != NULL; curr = curr->next)
& q) Y. H7 I4 ~6 ~8 H{
8 t$ R) k' R5 l$ h8 x/ Dif(strcmp(curr->w.edu, str) == 0)9 E e6 o7 s0 ~7 e0 s
{
8 S- V; Y' ]& z4 c) {printf("职工工号:%d\n",curr->w.id);, R* h' W7 H* `7 }8 ~. j
printf("职工姓名:%s\n",curr->w.name); m/ d2 `2 E, S- f3 @: f# Y
printf("职工性别:%s\n",curr->w.sex);4 C% \" @+ Z f7 J
printf("职工年龄:%d\n",curr->w.age);
/ I0 Q$ o$ s0 \4 U8 Mprintf("职工学历:%s\n",curr->w.edu);6 ]. {" e/ L1 u, z, c# g/ p1 _
printf("职工工资:%d\n",curr->w.wages);
* w4 R+ A2 M W, |+ i7 ~' tprintf("职工住址:%s\n",curr->w.adr);3 z- ?' B$ I+ a- C
printf("职工电话:%s\n",curr->w.phone); }7 @! Y5 o& X3 {/ {- Z# z$ E/ d* ^
}8 h5 p+ ?4 Z9 k9 O
} void findid(PLINK plink, int id)! h5 O8 c; w. E: [: b1 e7 p$ U( A
{
9 d9 j* |8 v" z/ }5 F4 j3 mfor(PLINK curr = plink->next; curr != NULL; curr = curr->next)
2 y& g( |8 N" w; k- `- ^" S6 W{$ H% M- X' ^9 O4 R" t/ O3 H% t9 L- T* \
if(curr->w.id == id)
6 P! E, |- l9 `9 w" J3 C{
; G. A8 }' D2 w) m1 I8 l9 K- `printf("职工工号:%d\n",curr->w.id);
7 S: @' a4 I; G9 d3 a$ gprintf("职工姓名:%s\n",curr->w.name);/ t5 V: g& k6 L9 z) A
printf("职工性别:%s\n",curr->w.sex);7 q2 R0 E* |( R; V6 c7 a" [/ i$ H
printf("职工年龄:%d\n",curr->w.age);
. [1 J3 j0 w: q' Z; l$ n0 [! qprintf("职工学历:%s\n",curr->w.edu);# D( ^! G6 r" Q* T# [; O! H
printf("职工工资:%d\n",curr->w.wages);& l. i1 v* {3 d# F
printf("职工住址:%s\n",curr->w.adr);9 Y* \$ ~1 e% A# ^" l5 F6 D! ^8 \0 G
printf("职工电话:%s\n",curr->w.phone); }1 b1 o! M7 O" \! R* ?
}
3 S$ [( q2 N; U) U' o} void show(PLINK plink)
8 W/ u! B, [9 Y, i! c* A{ for(PLINK curr = plink->next; curr != NULL; curr = curr->next)
; B# L9 D: T$ `0 I4 `3 O{
. g: O: F, ?( u3 G, H1 C* vprintf("职工工号:%d\n",curr->w.id);
: z# l' _# O5 w9 W# S5 bprintf("职工姓名:%s\n",curr->w.name);
6 i0 p% O: i5 I" Y, [' wprintf("职工性别:%s\n",curr->w.sex);1 @) D6 M0 W5 E) }# k) v- A& G* [5 z
printf("职工年龄:%d\n",curr->w.age);
" D; T) D! n1 ?9 i. u0 Z" w9 Pprintf("职工学历:%s\n",curr->w.edu);
' E% _0 k+ f, S& cprintf("职工工资:%d\n",curr->w.wages);2 b. Q3 o# b, l! a9 F' F$ }
printf("职工住址:%s\n",curr->w.adr);% u! A3 e8 k7 p7 t
printf("职工电话:%s\n",curr->w.phone);
, V: N+ X% t g5 c! y}! Y- H; ~8 ~2 }) @- B. _
} /*录入职工信息*/" T" m6 R9 y9 b5 `
int add(PLINK p)
" @0 W+ w" V2 o/ ^/ Z{6 f }" A/ w3 s0 U/ _* N
PLINK h = NULL;/ G( k2 i; d- x8 o! F2 z8 K C+ S
PLINK q=(PLINK)malloc(sizeof(LINK));$ {" W# y- ~3 b& r
if(NULL==q)
. z+ |( f0 D. i3 H{ x% L. u, R/ W# p2 n$ o2 d
printf("录入失败提示:内存不足!\n");) V+ k6 u+ ^8 W, ?7 }! Y2 {% O
return 7;! h8 _: K9 i- J4 d6 G1 y. I2 g Z
}, `) V3 j" F6 ?2 ^7 R
printf("请输入职工号(数字):");+ S j6 s& k# R4 N3 Y3 \0 U. v
scanf("%d",&q->w.id);6 ]: z: ^- I# M# J# n
h=p->next;0 f/ ^ }$ e; C
while(h)
; D5 n& x, m& l9 l% i( |{
* x3 u8 c. u h& {if(h->w.id==q->w.id)) q8 L* v# a8 r5 w8 C7 \
{( N7 R! X" W4 d1 y( ]! @
free(q);! O e1 q( n" C: }
printf("录入失败提示:此职工号已经存在!\n");6 t5 Y c7 X! v8 A
return 7; \' F" Y/ l9 a3 W- O* Y% t# T' J, [5 ^; B
}1 B2 E% O0 X( j- e; W- K( L! V
h=h->next;0 A; G$ O2 w X% ^# i
}0 x- e0 G. M; ]$ Z+ q% D
printf("请输入职工姓名(文字):");5 i/ z6 ` I4 H9 f7 d
scanf("%s",&q->w.name);
( t1 v8 {; b( \% j' tprintf("请输入职工性别(文字):");) }, E- P; E3 @$ I. K0 z1 U0 W
scanf("%s",&q->w.sex);; n5 w, z: t* a1 h1 e( B8 H2 e
printf("请输入职工年龄(数字):");2 g! J3 e5 N7 a* e m# I
scanf("%d",&q->w.age);
7 e) d* T) R( o! }8 A: u. l; ^. zprintf("请输入职工学历(文字):");
' [2 {1 B8 |- P: K, jscanf("%s",&q->w.edu);- x5 c+ {1 u( C, I2 q5 d
printf("请输入职工工资(数字):");, m; C& m' n y1 E
scanf("%d",&q->w.wages);: k2 {% x6 V8 c( m( c: z; L; k
printf("请输入职工住址(文字):");9 J8 c& A6 V7 A4 R1 g
scanf("%s",&q->w.adr);
6 B x6 B+ V6 }4 iprintf("请输入职工电话(文字):");/ N( L a8 C/ }% y* L9 F
scanf("%s",&q->w.phone);
* e6 o4 B( g! b: gq->next=p->next;' ^6 m1 D8 N0 d3 u. }
p->next=q;
, s& I( B8 l& y6 Y9 `printf(".^_^.录入成功!.^_^.\n");
1 @% b4 X; i. @+ p* ?return 7;9 f5 k5 ^" e2 R# x. M6 N
} /*按姓名查询*/4 z. H8 G7 Z; d# m. `
PLINK findname(PLINK p,char *name)
- \; |( Q3 q7 S/ J# C5 ~9 s{5 ~3 `9 a9 \- m4 Y/ `, R/ w
message();7 \9 q: f7 e2 J* O2 Z
printf("按姓名 查询\n");
& H4 g) d$ j5 Aprintf("职工号\n姓名\n性别\n年龄\n学历\n工资\n住址\n电话\n");$ j) u$ h3 n: q9 V' {5 Q* d8 F
while(NULL!=p->next)
Z% } H0 M2 p; f{
& d7 h- W' t. @) Z" p3 Z- Q' Zif(0==strcmp(p->next->w.name,name))
+ A, D9 P* Q! F# Q7 Z; l. o7 b{+ _: Q: X1 |7 q4 r. ^( L2 ^
printf("%d\t%s\t%s\t%d\t%s\t%d\t%s\t%s\n",
) v$ f7 Z3 e1 m3 {p->next->w.id,p->next->w.name,p->next->w.sex,p->next->w.adr,$ x) N, \3 p) ^) c6 L
p->next->w.edu,p->next->w.wages,p->next->w.adr,p->next->w.phone);0 S5 \" N2 [" u; k& y: x$ `! P* h) i
return p;3 @; e2 I! l4 a( l
}8 V4 u7 h$ A* r7 d2 K
p=p->next;) }7 U3 H3 m( S
}
# w" e4 t H* a9 d& {+ Hprintf(".^_^.查询结束!.^_^.\n");
! Y) m3 A7 J$ preturn NULL;
, ]* e( d' z# }: z3 a9 z9 d& R) i} /*按职工号删除职工信息*/* ~# W5 }2 {9 G' o; z
int del(PLINK p,int id)
- T1 _( Z, x$ P6 r- h2 q& m- M# b{
$ `6 z% b. L: j7 X% P4 F. ]message();
# Z4 |; a( U' W& S& W+ yprintf("按职工号删除职工信息\n");( W: x v3 y- Q# d
while(NULL!=p->next). J9 K+ o: `% Y8 ^0 F
{
, g; n: W# z* x6 r3 q* D& _if(p->next->w.id==id)/ X) \8 ^- A) H7 ~9 I0 Q2 Y
{
: |5 R4 o, e3 ]) i/ z wPLINK q=p->next;) I7 K* o$ Y8 a' M% T# o/ D. j
p->next=p->next->next;
# |8 }/ w% n/ u1 O( Ffree(q);
& m1 E* ~$ |: \printf(".^_^.删除成功!.^_^.\n");: y( n8 Q l+ q# `7 t* h
return 1;! ~7 q: n" L. f: u
}
1 a! n& c! l$ e1 Y8 Z+ lp=p->next;
! T7 s# |4 h" p; P) ]+ o' ?}) O) w# O+ e, F7 ~5 e
printf("没有你输入的职工号!\n");
7 j/ ]7 `7 ^. C/ n1 Yreturn 7;
' ]' W+ {/ L5 R8 e} /*程序结束释放内存*/
9 Z2 h5 k# Y# P" P; ~+ q) Ovoid release(PLINK p)
( ~0 Z7 B3 y' x1 q4 m( y; l1 g{* p( I5 q; \, w, T8 a; K
PLINK q;
2 _8 C8 M5 H! X% b+ \, swhile(NULL!=p->next)' Q& R; x4 e2 }& U7 j
{* N6 H/ k$ k, Y4 p; q. j( }
q=p;
# i3 B* j/ E& t1 B4 D! N O) Cp=p->next;) }7 w6 H3 B9 ^% p% u- P4 v8 R
free(q);- `5 I* O% i+ `1 j' g
}
0 |: R; w* o& [$ Lfree(p);5 B; C: O: d# J* k# B" Q0 M1 a8 ^
} /*查询调用*/
) W B2 r @9 n4 ^. nvoid search()
& H4 a! M$ P* c3 m0 I{
( l& v' R' l( K9 |7 Rint id;
, A9 h. D5 c, n+ z- ~char name[20];! Z* e- j: W8 y0 O+ v2 E
char str[20];
' e' G5 w% N) C( B$ Y4 p" e1 O+ HPLINK pworker;
6 y5 K5 f2 b; e) n9 M0 I8 Aint l;
% ^* X- D6 @6 _8 s/ u% Hprintf("\t\t\t\t*姓名查找按:1*\n");6 E/ C5 b2 q- D+ N8 o6 Y
printf("\t\t\t\t*学历查找按:2*\n");
/ b8 u |9 g& Z: G7 Kprintf("\t\t\t\t*职工号查按:3*\n");
4 ?5 {+ f* v |" W) X8 o3 t! X2 Sscanf("%d",&l);
+ e- x3 o3 z. Y# T' C1 Pif(l>0&&l<4)
1 R* K" Q$ y$ H1 t1 z! I{switch(l)' {- W1 J8 [2 r
{% ? ^) c- Q: c
case 1:printf("请输入要查询的职工姓名:");% _/ }- i0 n* n3 K
scanf("%s",name);1 R2 B# v. c& Q' F q. Y
findname(pworker,name);
+ i/ {3 @% ? Z$ K$ dbreak;8 u# x9 K$ O+ C' S+ X
case 2:printf("请输入要查询的职工学历: ");- F' N; z6 L1 e( s. o
scanf("%s", str);! z1 b7 F9 V5 H$ D( `
find_sr(pworker, str);
- F9 |" p7 W( d9 E/ Obreak;
' A0 l$ [7 M! pcase 3:printf("请输入要查询的职工号:");
& S7 v- W' m+ c8 |scanf("%d",&id);
7 p& F" M2 L) y, _4 m, a# jfindid(pworker,id);
; t, {4 g$ H- W- o+ X% Ybreak;
1 n& d: \" ~6 `- R}# d7 o5 n( w3 \* m2 y
printf("\n\n选择完毕!!!");
& V* o* o% m/ W2 V( ?+ x. m}
, t) Z1 i3 I; I- W2 r! M9 aelse printf("\t\t\t\t输入有误!!!");
) ~9 o; H( C2 N} /*修改职工信息*/
# h6 F; g8 v, |. G) }int modify(PLINK p)# L: ]" o @1 X+ G: ~5 l/ t
{ int id;( D0 P& p) z' v; B
PLINK q;& `$ ]7 p) C6 H/ n* h
PLINK h = NULL;
. D; X# B( u1 l. r6 r- {printf("请输入职工号(数字):");
7 t9 S, i4 r" r# `$ z$ h4 N3 A' P! Zscanf("%d",&id);
1 l2 T1 S# C, V2 b* j2 A% ih=p->next;
- k Z, `; p4 R# }# {while(h)
5 }& r# Q9 {3 f# f( n3 Q{
6 q2 H, J& X- N0 R/ f9 Kif(h->w.id==id), [) D @! N# y% N3 R- k3 B: R
{7 _# D0 r& T. o; l
break;
" L1 L$ W5 |0 J}
3 r: I# c/ X, _) ah=h->next;1 p- b! {& Z! d5 Q' g7 H
}
8 [+ K9 c% @/ Bif (h == NULL)+ I0 D/ U- Q- `3 ?2 O5 ?
{4 K2 B) w3 W! X* t4 ?- O" Q
printf("找不到此职工,请重试\n");* {$ I; X7 {2 X/ I- u3 C
return 7;
! m; B) |0 P H" b9 D}' R& n$ _* \8 } O. w! j B
printf("请输入职工姓名(文字):");
+ \9 w& V+ g e& G' N( Nscanf("%s",&h->w.name);- G( ]- g+ b+ s l* ]( |" c
printf("请输入职工性别(文字):");# K" G3 o) z0 o3 @' R1 d$ W
scanf("%s",&h->w.sex);
5 b+ k4 _4 E& Q. n! zprintf("请输入职工年龄(数字):");
) ]9 V R! \( B- T$ yscanf("%d",&h->w.age);
2 W& A. ?4 m# F- x# d: N$ B6 v3 z9 qprintf("请输入职工学历(文字):");1 P5 d* w0 Z5 \( e
scanf("%s",&h->w.edu);
% _2 @$ g' C' _% S( b5 Bprintf("请输入职工工资(数字):");
. l2 f$ _1 G! w" ?' I$ `6 f* X) rscanf("%d",&h->w.wages);
- p7 H& B2 c: k- a% m3 L* ^9 Dprintf("请输入职工住址(文字):");
8 m% b( Z) i) N9 D% ^- Zscanf("%s",&h->w.adr);- e4 d4 H/ s5 Z
printf("请输入职工电话(文字):");
$ z, {+ l Q: W+ n: i. Tscanf("%s",&h->w.phone);1 f! B6 K4 Y8 p \ q
q->next=p->next;
0 u. A- m. ?* f: n4 O4 Np->next=q;
" L3 u9 ? w4 |- [" i% s/ l2 P) Q( o) Jprintf(".^_^.修改成功!.^_^.\n");
8 |4 k% E3 h+ |! e! lreturn 7;
+ ]6 ~# S" i* }0 o( `( E9 |9 |/ V} int main()
# J1 h7 Z. i5 N& q& W{
M0 n) g6 ^4 q/ w. I& e' }" G7 }. s: a
int cmd=0;
4 a% W1 `& A- G: i) rint id;
) b4 S* }$ O' t- c- m' l% Tchar name[20];
# U( ^0 x) Y) V6 S2 F* ochar str[20];
$ n8 P2 E t3 M3 f9 SPLINK pworker;. }% [7 _7 G- [8 d! K/ b
if(!(pworker=create()))
9 i! m$ S; P& ]7 [{9 S; t1 v$ l1 F; y6 @. a
exit(0);
- Q% b3 W3 ]( c0 n3 v2 p3 ^}1 ^1 ]- }7 Y" y+ n* h' A
while(cmd!=7): o7 v4 _' r; u/ S c6 K9 p
{" p7 N* A! J$ M7 W+ R, s
switch(cmd)
& J5 s) B# A6 t9 X8 j. h- o{, [ Y, X9 ?0 N. r* F! a
case 0: message(); break;
( O# P$ f$ k' }1 g; ucase 1: add(pworker); break;
7 {1 l& M! z3 Lcase 2: show(pworker); break;$ c5 ?" u, x) R6 B7 |" F* M
case 3: search(); break;$ S8 x( V) \% x! a# p2 L
case 4: printf("请输入要删除的职工号:");
+ w4 {: n2 y+ G/ Uscanf("%d",&id);6 |. k& I# b8 T- y/ r4 r% Q* X; G
del(pworker,id);9 i: N# R3 H. e& j5 j' S
break;
. s% r+ y$ {0 b- |- ^* Jcase 5: modify(pworker); break;5 `! e. ?6 X1 i7 V1 E6 c! b- C3 y2 I
case 6: message(); break;
( a" b" n8 z }9 [}
1 m' o7 F; _" A) m; d8 E+ c) hprintf("请输入操作命令数字:\n");9 s2 e# a& i# g* @: E7 T( A
scanf("%d",&cmd);
* b% a1 j5 ~9 Q$ J# Z1 B8 i}
/ H1 L8 T1 u- F& j- _2 O' Aprintf("谢谢使用!\n");) q# x! ?& G2 o0 b. C
release(pworker);4 j: s2 V; U% y- l3 T
return 0;4 E/ q! K2 F4 |/ P7 T$ ?
}
3 B! |% a! C; @7 Z U3 L) H
% ]: @6 a% p b9 V/ z, j+ P) d: X. k
这是职工信息表 能运行出来不过查询功能不行能帮忙看一下是什么原因吗。。再此谢谢了!3 y4 |+ ^- r0 G
6 |/ ~# P: u/ O! U
|
zan
|