- 在线时间
- 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>5 r" X: x2 [# i& Z0 a4 n* t+ T2 S
#include <stdio.h>5 H8 e1 y4 {. O5 n" T
#include <malloc.h>
. \! x- a# `( [) @0 N( G0 | e#include <string.h> - y& q$ x! ~0 K }% @$ X5 p
typedef struct worker
& p. \! A( e- E5 S. w( R; ^{/ v3 _/ m! B7 p) U
int id;
% ~: f6 W8 ^8 I8 n) i$ W4 pchar name[20];& H* ]$ F8 c& O o2 R
char sex[3];8 n) o. x8 p9 r' ]: I' Y" V- y
int age;8 k; q) T4 |5 c' K: z
char edu[50];# I; L: R$ y- O% u) k1 L
int wages;
$ Z' M* a/ |5 J$ K. `char adr[255];7 u' c/ D0 j1 u; z( C: m5 y
char phone[13];
4 y/ d8 h9 [9 p# |# ?3 e; i! m. c}WORKER, *PWORKER;( r; |( G* U5 G: R- c' e0 p
//typedef struct WORKER *PWORKER;0 s6 \; n& H- _' E! Q0 s" j
typedef struct link6 ~( A3 @* H9 p: B4 J9 W
{* m" V0 h" |; _0 w2 U. @ x
WORKER w;! J. j# z; W( A: T0 `! e
struct link *next;. }% I) x5 p$ H8 v% V% r* k6 f
}LINK, *PLINK;& N, A! w# o2 k9 Z2 m3 G: F
//typedef struct LINK *PLINK; /*创建职工信息链表*/
* E$ r) `6 J4 a: WPLINK create()
2 I4 r- z# ]4 u# m2 N. L. U7 {{1 B2 L# \, S/ r, |
PLINK p=(PLINK)malloc(sizeof(LINK));
% F. c5 E: |- P0 X0 F# eif(NULL!=p)
8 b0 @- x8 K3 b{
! ]2 x: t: G1 w! _8 Up->next=NULL;
3 n0 L5 m- C) T1 n2 h! @+ kreturn p;5 L k7 I' G) ~) f6 {
}7 I1 Y5 w' O5 b+ @, p6 ]
printf("内存不足!\n");
. g/ G1 ?9 }) X1 Ereturn NULL;6 ?) _- ]4 h) u0 l. O" l/ e
} /*显示程序界面文字*/5 [' n* q- K0 M$ r) [' ]2 v# D3 g
void message()! ?4 z# x& V$ f
{ system("color 0f");/*设置当前窗口的背景色和前景色*/; B: W( k% ^ j' o* w3 g
/* 0 = 黑色 8 = 灰色* o2 \, x4 b$ w! e0 Y
1 = 蓝色 9 = 淡蓝色4 _; L7 M' b: r: z3 u. S2 w
2 = 绿色 A = 淡绿色
5 u$ U( u0 ]) T) J: x8 G5 w( w( S3 = 浅绿色 B = 淡浅绿色4 r! i( O$ Y7 G
4 = 红色 C = 淡红色
/ q' G1 |) Q$ g& |+ A* G# w5 x5 = 紫色 D = 淡紫色
0 w1 G/ d% t* x+ n, q+ R, G: @6 = 黄色 E = 淡黄色6 K! q$ W8 ]& F/ V, N: M
7 = 白色 F = 亮白色*/1 f/ D8 ]/ S, O( K
system("cls");8 r6 f; }5 r; V1 c, j
printf("\t\t************************************************\n\n");) b4 \ b8 i) `( i: B# u! {
printf("\t\t>>>>>>>>>>>>>>欢迎进入职工管理系统<<<<<<<<<<<<<<\n\n");# G5 S3 l6 Z9 i! k* K
printf("\t\t************************************************\n\n");2 u1 W5 @/ E4 D; O8 I4 f7 i
printf("\t\t ************** Choose Function *************\n\n");/ F% w1 C5 m7 W5 G* X
printf("\t\t ************ 帮助 请输入:0************\n\n");; w3 s9 ]0 W( `3 f0 i/ ~4 n
printf("\t\t ************录入职工信息 请输入:1************\n\n");* D' h0 x/ A! X; \
printf("\t\t ************浏览职工信息 请输入:2************\n\n");. b- \: e& k3 ~" [* m; b" X% D+ A4 ^
printf("\t\t ************查询职工信息 请输入:3************\n\n");! d' e. @: ?# g4 u; o$ t
printf("\t\t ************删除职工信息 请输入:4************\n\n");# d/ }* M9 |5 o/ Z1 P0 b0 n/ N
printf("\t\t ************修改职工信息 请输入:5************\n\n");
# [' ?- G/ ?( |+ a% N" o8 b$ h, hprintf("\t\t ************ 清屏 请输入:6************\n\n");
5 C! C9 G/ g' T( @) Oprintf("\t\t ************ 退出 请输入:7************\n\n");* I! n) G+ ^: x( H0 j: \5 d% Y8 l9 {) T
printf("\t\t************************************************\n\n");, D5 B" o \# g( A% _
printf("\t\t************************************************\n\n");
! {2 C' A* A+ V% h0 u} void find_sr(PLINK plink, char* str)
. q* Q9 v# t( u2 G( m( F{! s. g4 R6 g0 _) r& ?+ I
for(PLINK curr = plink->next; curr != NULL; curr = curr->next)
6 P" L: A& W8 J; H" v. }! B{
1 ]! ?3 ^- U( I& _& C; ^6 |1 b0 P; aif(strcmp(curr->w.edu, str) == 0)4 w E8 X) @3 v* o( T* k# A
{
+ H, y* O# K. l2 zprintf("职工工号:%d\n",curr->w.id);
1 |" j* l* u* C2 Y, Q, d* Oprintf("职工姓名:%s\n",curr->w.name);
Y; b. \ C, j) j* y: E3 u# pprintf("职工性别:%s\n",curr->w.sex);- G& A, e1 I* X1 S& k
printf("职工年龄:%d\n",curr->w.age);
, B9 U. E$ j& Qprintf("职工学历:%s\n",curr->w.edu);
" ~$ P* F7 ^! t4 U0 G* k$ Lprintf("职工工资:%d\n",curr->w.wages);
8 M8 |3 i2 g3 a+ D K6 Yprintf("职工住址:%s\n",curr->w.adr);, D7 m. i5 _! z( `% ?1 A
printf("职工电话:%s\n",curr->w.phone); }
) c7 P, A; W! J7 Z5 H}0 q8 A' s! L: q3 V. \
} void findid(PLINK plink, int id)5 \! A% x4 ~/ V. D. R4 U* o
{
0 b8 M$ `8 w" K0 H$ c3 \for(PLINK curr = plink->next; curr != NULL; curr = curr->next) R. y' x0 F* I! @
{
' z1 `1 T$ r$ k5 ~3 Pif(curr->w.id == id)
+ O3 _. r* a8 g/ b$ s, L{
; t! M; a' Y9 `2 }printf("职工工号:%d\n",curr->w.id);
. y" H! ^! ~ f$ J3 n( _printf("职工姓名:%s\n",curr->w.name);$ Z/ F% ~! _% C
printf("职工性别:%s\n",curr->w.sex);$ s0 O" f) x& a; R. [2 L
printf("职工年龄:%d\n",curr->w.age);. A6 x! Z' |0 b6 Q, k: y
printf("职工学历:%s\n",curr->w.edu);% P5 | r3 n1 R4 o$ b' i
printf("职工工资:%d\n",curr->w.wages);3 X6 j+ M' p' v3 O: }
printf("职工住址:%s\n",curr->w.adr);
' k+ i+ r: L5 D" q: T% m9 mprintf("职工电话:%s\n",curr->w.phone); }
+ t# Q7 ?. G* T1 J5 T} R6 J: s) s1 X
} void show(PLINK plink)) H e& e: y# v* @( R! e
{ for(PLINK curr = plink->next; curr != NULL; curr = curr->next)% _$ r' P# h1 M4 ^( ]1 ~; S) K
{
! b) |8 y) c! G1 {) sprintf("职工工号:%d\n",curr->w.id);* u. |0 d, Z) S7 l
printf("职工姓名:%s\n",curr->w.name);
$ V1 M5 z6 E7 a6 Z f( Sprintf("职工性别:%s\n",curr->w.sex);
0 E! A8 L9 Y+ K; Y9 ^printf("职工年龄:%d\n",curr->w.age);1 q2 C8 ^# W" w7 P d
printf("职工学历:%s\n",curr->w.edu);
6 o- ]- [* t, oprintf("职工工资:%d\n",curr->w.wages);
) x; n# X) z) Mprintf("职工住址:%s\n",curr->w.adr);. D" X+ J9 w: O5 }% a2 g: o2 B
printf("职工电话:%s\n",curr->w.phone);
! [, e L9 R2 M8 G8 S}
+ U1 q( X- Z8 W: h$ ~} /*录入职工信息*/: y5 |/ ~: x2 i
int add(PLINK p). I' `, W4 Y+ y/ z5 _
{7 @3 b. A0 l& j0 i" y$ O/ k7 l: }
PLINK h = NULL;& B) r' F2 ~/ M' t- {
PLINK q=(PLINK)malloc(sizeof(LINK));
1 O- @' L6 n8 U" `- X+ ~if(NULL==q)1 j3 ~7 y! w+ o! W
{
+ }- r/ J6 S- W5 t' mprintf("录入失败提示:内存不足!\n");
1 G. Y: g; X2 B! E/ Hreturn 7;
! a" ^" C8 v \& `}
6 ^6 y6 i/ {9 v$ u7 B; V" W- lprintf("请输入职工号(数字):");
; X8 h0 D, H, {9 C$ [# U" r2 M$ Uscanf("%d",&q->w.id);
' a- x [4 _- Jh=p->next;
, Y$ g3 ?, |; u) `& {while(h)
) |8 a+ t' H5 V C% ?% J2 V{
2 M6 W8 ~8 o; N% Oif(h->w.id==q->w.id)3 R5 {. x) }) f0 L2 z
{
( `/ d6 a( u7 J ]8 n. {free(q);
- E+ C! R4 z% }9 P6 d; oprintf("录入失败提示:此职工号已经存在!\n");! |$ E) S( G' L: N
return 7;
& k( S" m! s0 \; j}
4 O( {4 g& f2 U3 Q' d# Sh=h->next;
* x, c; Z8 N0 B7 t* x# o$ q}7 D, h; h% m7 n) w* W Q+ n
printf("请输入职工姓名(文字):");* V) s6 k4 s7 l
scanf("%s",&q->w.name);
5 l# a6 x8 N- L. H |printf("请输入职工性别(文字):");0 J" m3 g2 S) T% e3 N( K# K0 I
scanf("%s",&q->w.sex);
; t4 ? W; u& a8 ~- N- j5 i# cprintf("请输入职工年龄(数字):");% B3 h5 s9 \6 L
scanf("%d",&q->w.age);
- U! ?# e$ {" e3 g. i7 qprintf("请输入职工学历(文字):");
2 e& E" ]: g3 V: o- ascanf("%s",&q->w.edu);
9 a7 o1 ^3 n. Tprintf("请输入职工工资(数字):");, `7 \( S: z/ A8 b; d3 y& y% [
scanf("%d",&q->w.wages);
' N; O6 b9 K4 j+ r+ G) pprintf("请输入职工住址(文字):");0 I0 L# ~* S" h ]" A
scanf("%s",&q->w.adr);
/ t0 x- o. u( W- \printf("请输入职工电话(文字):");. W" f; J: l6 e* U6 V c
scanf("%s",&q->w.phone);
+ V5 o- _3 ?, Hq->next=p->next;
* U4 E0 `' z$ Q3 i( bp->next=q;
7 B( H% t8 y- [+ J) d( Mprintf(".^_^.录入成功!.^_^.\n");
0 I; O& H# g3 L) u- V0 p& W& E+ Hreturn 7;1 q0 s9 J; O B7 a. ^% [
} /*按姓名查询*/# ]. D6 }1 W1 ^6 P
PLINK findname(PLINK p,char *name)
* {* v- d) k x, y' N2 ?6 g" e- c6 N{
: x' f+ I2 N% F* G( _message();
- i& f; @+ {0 R. e! v' Mprintf("按姓名 查询\n");0 S/ N5 Q. H8 v1 i3 n; T
printf("职工号\n姓名\n性别\n年龄\n学历\n工资\n住址\n电话\n");2 }/ O) X; ~' R" o( _8 L
while(NULL!=p->next)3 u5 K0 }& P3 X% d: w- G* `
{
+ t) H1 u9 B. T4 H7 S' Xif(0==strcmp(p->next->w.name,name))
R4 D: c# C8 Y6 u9 R# G{* Q# k9 u. `7 I9 J( h
printf("%d\t%s\t%s\t%d\t%s\t%d\t%s\t%s\n",
) S3 l/ Z* H+ }5 Kp->next->w.id,p->next->w.name,p->next->w.sex,p->next->w.adr,# k% W8 ~* [5 M+ G9 a M' T
p->next->w.edu,p->next->w.wages,p->next->w.adr,p->next->w.phone);
0 x) e3 m0 l$ o* Z$ [( V, f% Zreturn p;5 \7 k( } D- n0 S
}
. K& n6 r4 v) w" q. [, Q) O5 [p=p->next;/ L; q* K: h6 e, P
}
; v- ~- V& J9 M' @# |+ U ?" ~+ Qprintf(".^_^.查询结束!.^_^.\n");% r7 I/ G. I+ O- k& m; i( A
return NULL;* D. w8 [# B! y3 G6 o) b" ^
} /*按职工号删除职工信息*/4 G' w! a; ~. J9 E; k5 c( Q3 R
int del(PLINK p,int id)
/ q% I' k9 W; W( b7 ?! G& b8 O+ p{
; R' s8 e& R4 `) K) E3 Pmessage();; D2 G: x2 H9 G- ^1 p% b' k
printf("按职工号删除职工信息\n");, X2 h% O& |, q+ N
while(NULL!=p->next)
0 i. M# u8 h: r+ f9 }# s# E% \{. @. @ |2 S9 Y; r- t
if(p->next->w.id==id)
4 G2 s7 x* p% X, p* H{+ T0 T8 M5 S% T9 }0 Q
PLINK q=p->next;+ Q! h' r6 w$ A
p->next=p->next->next;
- e" ~# s1 x6 @0 m3 Q; xfree(q);, C8 M5 k! K6 h
printf(".^_^.删除成功!.^_^.\n");
% Y1 K6 H# J# [$ lreturn 1;0 B2 d. u& ?2 j; \/ ?. [
}
6 S4 A, `, H9 ?4 k5 [p=p->next;; Z5 r& B/ V7 ~- G6 Q
}* h6 `( i! U1 D8 \8 [$ W3 G) F
printf("没有你输入的职工号!\n");
7 y5 K6 ^5 j2 [. H( M" ]; h' [* jreturn 7;
4 p8 m6 h- d# s W; d! T- b+ `} /*程序结束释放内存*/
4 G5 x% J) D6 P1 x) ^, b0 ~7 [% `3 Nvoid release(PLINK p)
4 @+ B8 _5 E5 R3 h{% E2 Y. R2 u+ U, v* u; e5 ~, K
PLINK q;
* K8 k7 z) a$ N! K, Iwhile(NULL!=p->next)
9 g5 @( s0 i% s( R/ _- D; p{
( t6 F: @: k1 mq=p;9 Y$ }% R$ t5 o @2 Q' O+ [
p=p->next;
: {" p; _- q* r; E& s# W" ffree(q);
" q% k, r, O' L8 [- T}
# }% \! Y* [! R# Sfree(p);. k$ c6 d6 p& d+ F: z
} /*查询调用*/& ~. _+ f( ]8 B
void search()
. [. D9 q# m; d( m# D: \8 ]{8 W" ~% [% J' B
int id;
. W! I" o" W9 h c; Ychar name[20];
, \- Y& \- Y" J' L, c. cchar str[20];
[4 Y6 q0 k% Q4 z& v2 s8 f3 GPLINK pworker;
2 B# l$ e1 r8 E! iint l;
+ Y. _6 w% e# y' Jprintf("\t\t\t\t*姓名查找按:1*\n");6 u+ j9 q0 C. z2 d- B
printf("\t\t\t\t*学历查找按:2*\n");
' A" R) w) E! y- A) o/ V: a. m: e0 a: @printf("\t\t\t\t*职工号查按:3*\n");
# L7 ?+ ?( r9 N: ^scanf("%d",&l);
9 f3 z+ k' P! Y/ V' O0 uif(l>0&&l<4)0 P+ n4 o% L+ a1 \" |) @, Y# P
{switch(l)+ y* ` ?/ t- Z4 Z1 s% D
{
4 E$ b( X7 g! e6 hcase 1:printf("请输入要查询的职工姓名:");
+ w2 o$ J+ l4 ?( g8 X/ X$ kscanf("%s",name);
# w1 @4 Y. f1 G6 y% i. }/ U' Hfindname(pworker,name);
! T' N7 H5 ]- rbreak;; `: C, v3 y3 Q4 N4 X L8 ~
case 2:printf("请输入要查询的职工学历: ");
) ]9 K( q! q3 r0 ?scanf("%s", str);
* ^1 n$ T/ R1 O9 Bfind_sr(pworker, str);
6 q9 ~, b$ [) d+ y, Q, B5 Sbreak;
* Y+ c, {3 I' M+ \7 ^2 t" w ccase 3:printf("请输入要查询的职工号:");2 g$ i7 U0 o3 v2 X$ ~
scanf("%d",&id);% A( P$ s2 p6 @8 A o$ ?4 l$ b
findid(pworker,id);4 h' q5 d9 m3 B0 Q, f3 `# [0 Y3 Q+ Y
break;8 F. W- X8 d. d: c( \
}
$ O! u4 Y" ~( I& W& K/ J* Yprintf("\n\n选择完毕!!!");0 {. e' C8 ?$ X* F1 }. z
}
, w' _' ]& P/ y# F/ ~- ^ Selse printf("\t\t\t\t输入有误!!!");& `" B$ s9 L7 }& H! |
} /*修改职工信息*/
# `" f0 I4 ?0 h6 [& m) m0 R o. Yint modify(PLINK p)
# v% {* w" O* X2 I' D% B" l{ int id;4 G1 V( |; n/ p! H J5 P
PLINK q;
. T" a4 G/ [& {4 r" BPLINK h = NULL;( I: i w7 w7 V7 j, M# J
printf("请输入职工号(数字):");* M# ^. T; j( r' |7 g7 @' N* e
scanf("%d",&id);1 R9 n6 h& e. F( \" Z4 U0 k( q
h=p->next;+ ] Z+ z- h1 q; H+ L. d
while(h)
( O7 o* I; q. ^8 ?+ A. v/ Z5 A{/ \4 D* x( t& ?, c
if(h->w.id==id)
5 Z( M5 M5 a) D( }% R{4 T, h0 l" L0 ]6 Z6 M F2 q* ^0 v
break;
/ ]6 F% ~6 p- Z$ |" D}3 I( ~4 b, r# ]; m% \
h=h->next;
( S4 E# s5 m" @: l& D5 t+ U9 v: D}
~; @7 u0 G6 x4 M7 }3 Yif (h == NULL)
O" R/ K3 r! O% B& ^8 Y/ r{1 u9 @- e& q: x4 R+ O
printf("找不到此职工,请重试\n");
) Q& K6 D0 b2 M7 `9 u6 n! wreturn 7;9 L! ~; x9 b5 b/ Z
}1 w! j' L, X% \) C! c5 `& C1 B
printf("请输入职工姓名(文字):");
8 s+ p% B5 k$ h0 qscanf("%s",&h->w.name);1 m5 u" [* K# @; H7 }0 M! w! B5 }
printf("请输入职工性别(文字):");0 i8 k' ]. l* G( B: J# E/ f! ]
scanf("%s",&h->w.sex);
' k8 S. a% H) d8 B/ s# tprintf("请输入职工年龄(数字):");
+ [; a8 n' g6 P0 A7 o bscanf("%d",&h->w.age);
: F+ X' I& {: B2 r. O4 k; q* n- P5 oprintf("请输入职工学历(文字):");
5 }. R+ Q% a; J. R8 K7 V. l, o9 p, l! [scanf("%s",&h->w.edu);5 Y4 w$ q; d7 p' ?. Z
printf("请输入职工工资(数字):");
+ p( r c. O$ C5 N, R$ Hscanf("%d",&h->w.wages);
% y Y" F5 x# ?1 iprintf("请输入职工住址(文字):");: v7 U$ |. [+ a6 M; [6 k, Z; A/ B" c
scanf("%s",&h->w.adr);2 q" x& U8 N0 L/ I
printf("请输入职工电话(文字):");
7 |2 h8 ^* n' t% D7 L- fscanf("%s",&h->w.phone);1 V' o: z# o5 q D+ `% h5 R
q->next=p->next;
( j" @. H( C/ W1 v9 q v, {p->next=q;
( B- u" l/ \. C8 Q7 uprintf(".^_^.修改成功!.^_^.\n");, l) V' A+ e) w. l; Y5 ]( b/ S: h
return 7;
9 V- g2 ~5 \% m$ C+ j: a" @} int main()
' d- X" C" k2 R/ ~{
7 [* P8 D% v8 m' ^& S; L. }& U$ ]. g% m I( B0 s3 ?5 V# `6 r
int cmd=0;
4 o, o. B+ f# p5 N, z, N$ j2 Cint id;- g6 ]/ W5 y. G
char name[20];0 e. a& y1 ?8 k! k
char str[20];- O0 R9 \: P* l
PLINK pworker; c6 P" |: D1 j; x$ e1 ~
if(!(pworker=create()))
' y8 Y: A' o$ S4 x{
% v2 R$ e5 Y& xexit(0);1 L3 g. k& S' u" d9 j Z
}/ a7 ?' I$ T7 U$ w2 Z$ l6 M* G
while(cmd!=7)7 y) f$ n: L2 D+ X) ^3 J
{/ ~2 Q9 b! E. b' M$ x# {" y3 B
switch(cmd)
! r; s0 W3 h+ \! i{5 v' S' y3 v' Q
case 0: message(); break;& r a+ i5 u/ g; `. ]: G
case 1: add(pworker); break;
. [. h6 D( u4 m9 _case 2: show(pworker); break;
4 e4 {! n2 V; h& z: ]- e) M, u$ t6 zcase 3: search(); break;0 ?9 A; |. _$ R' A
case 4: printf("请输入要删除的职工号:");8 i- r9 p9 R2 Q0 p/ U7 H+ z+ e8 K
scanf("%d",&id);
0 h/ d6 V" J* O% ~del(pworker,id);4 P" g8 } M( p
break;* x* e; f1 p9 G# H
case 5: modify(pworker); break;8 r6 m9 z0 a5 s7 q3 p! X: c' A
case 6: message(); break;( U$ C8 l' U! j5 s
}* F$ L1 I- S; I; z
printf("请输入操作命令数字:\n");6 A' s$ u4 X Y3 R
scanf("%d",&cmd);- l6 J7 ?+ N# @4 U) E$ x! A/ t
}2 C+ \9 B: N' R) y/ f
printf("谢谢使用!\n");+ [" ^& C, Q/ s2 R- w3 N
release(pworker);' T3 b6 U2 Q g) P0 a5 X% v! V
return 0;
L: O* W# O- S6 ]}/ {* l; J7 q1 K' V/ q0 J
' H- h6 A. g# ]/ z
" ]) b: _' N, H# x+ K这是职工信息表 能运行出来不过查询功能不行能帮忙看一下是什么原因吗。。再此谢谢了!
n5 F' q+ _- w3 I$ m1 Y# {) [; Q! c& @1 n* N
|
zan
|