数学建模社区-数学中国
标题:
【转载】C++源代码--学生&教工管理系统 求大神帮忙改错~!
[打印本页]
作者:
wangzheng3056
时间:
2013-7-23 15:39
标题:
【转载】C++源代码--学生&教工管理系统 求大神帮忙改错~!
#include <stdlib.h>
1 }% O' J/ w5 ~5 M+ O5 Z/ h2 ~( Q
#include <stdio.h>
# c" f& O' S3 B. t3 e" @& H/ ^& m% A1 W
#include <malloc.h>
$ Z8 Q* ]4 z |' U
#include <string.h>
( T( F. e0 }5 w h$ M' o) w
typedef struct worker
( W" ?# v9 s2 y+ i3 t3 ?: g) n
{
( p) g8 b+ D9 w, U( d& b
int id;
: e, g* a$ h k6 m, b
char name[20];
H0 u, V& K3 t
char sex[3];
) o( e/ y. s( u6 z) {+ L
int age;
* p. [! P1 t# F" x
char edu[50];
6 F) j6 T5 @2 Q% k
int wages;
7 E$ @" I' x: S9 t' z
char adr[255];
( n& e0 o8 n& A6 o3 r& D& N8 J
char phone[13];
, a( | |* l+ h
}WORKER, *PWORKER;
) r% j: I! O2 v3 k X2 G3 _% ]
//typedef struct WORKER *PWORKER;
! E: n( k, m4 {5 `1 O' K1 [
typedef struct link
+ @" Q" Y/ z5 q8 f: W; f" {2 d" I/ c
{
# q- W! \$ `+ ?0 b
WORKER w;
; {4 \- l# h% ~/ l9 f# `
struct link *next;
! O' X! i: f `
}LINK, *PLINK;
5 B, S6 U5 E, B' |
//typedef struct LINK *PLINK; /*创建职工信息链表*/
- M" e# \# R& Q( Z
PLINK create()
2 |! M3 ]$ w' A, D- D* |
{
) L$ r9 w( C# M# G9 {
PLINK p=(PLINK)malloc(sizeof(LINK));
. k. N: w- X& u) D# f
if(NULL!=p)
& S, E" G; d r' W- Q5 ?
{
( h$ |% }4 o* Y7 A( @$ }
p->next=NULL;
" {( K) R0 K' _8 _8 n/ X/ I2 C
return p;
I' g& l* a5 r5 u
}
4 x5 E0 N( t- R5 Y
printf("内存不足!\n");
) n$ m9 c7 [5 \% `' I: D" W; k
return NULL;
' b7 ^) k- a9 L6 |5 @+ I
} /*显示程序界面文字*/
* `7 m) U2 P; f1 k
void message()
" K( j6 D$ [7 C8 G# H% j8 i
{ system("color 0f");/*设置当前窗口的背景色和前景色*/
! a( T% }+ A* m
/* 0 = 黑色 8 = 灰色
/ e" `3 d+ h: X, W
1 = 蓝色 9 = 淡蓝色
- @: y5 ]# v3 Z% O. {" ?. I
2 = 绿色 A = 淡绿色
; [& T* n* B- N! D$ w2 f1 w
3 = 浅绿色 B = 淡浅绿色
! v$ h k. E @, l" e/ Q
4 = 红色 C = 淡红色
G9 [: B* `# o* f) L8 o
5 = 紫色 D = 淡紫色
. ?8 k" Q/ w5 y+ E* |
6 = 黄色 E = 淡黄色
; r( n+ K, K5 B% k0 G+ V
7 = 白色 F = 亮白色*/
, j" y. U/ A2 w2 |, F
system("cls");
$ q; f: J E7 ~' l( d+ }0 R
printf("\t\t************************************************\n\n");
0 I$ p# R( O# A7 r
printf("\t\t>>>>>>>>>>>>>>欢迎进入职工管理系统<<<<<<<<<<<<<<\n\n");
* Y5 A% X- l; S9 B0 q
printf("\t\t************************************************\n\n");
4 U' w) w$ p2 ^. C. e: i
printf("\t\t ************** Choose Function *************\n\n");
. z' T% E" H0 G; E) R9 f
printf("\t\t ************ 帮助 请输入:0************\n\n");
" @8 H" q7 \( z3 |1 Z* Y* j( \
printf("\t\t ************录入职工信息 请输入:1************\n\n");
; B& B# c, {# |+ V9 S# ?" K: \! x
printf("\t\t ************浏览职工信息 请输入:2************\n\n");
: ]" H/ a+ g: B( W
printf("\t\t ************查询职工信息 请输入:3************\n\n");
! k" v+ N% s0 U, V
printf("\t\t ************删除职工信息 请输入:4************\n\n");
" @. ^& \2 J( B+ Q. _
printf("\t\t ************修改职工信息 请输入:5************\n\n");
9 D: L; H3 x$ \' [4 Q+ j& c
printf("\t\t ************ 清屏 请输入:6************\n\n");
3 e: A8 T& G& r: e2 P
printf("\t\t ************ 退出 请输入:7************\n\n");
% t) o( @! C4 D! G
printf("\t\t************************************************\n\n");
- w; ^8 z9 S; e$ o, k4 C: M
printf("\t\t************************************************\n\n");
: g7 _5 _, Z$ |
} void find_sr(PLINK plink, char* str)
! N: N# y$ ^; B0 M, q' M6 h
{
, ~4 ]" q9 a- k) K$ F( M
for(PLINK curr = plink->next; curr != NULL; curr = curr->next)
" ~2 [ N+ g% W+ F
{
) O; ~) [% E9 I; B) ~
if(strcmp(curr->w.edu, str) == 0)
. d# a& ]' \# W6 n$ R
{
7 p5 Y+ Q w2 b/ x4 Z0 m* Q
printf("职工工号:%d\n",curr->w.id);
/ C9 s0 b# v, r1 w0 Q) E2 O
printf("职工姓名:%s\n",curr->w.name);
+ R7 Q: N! }4 I- c9 u
printf("职工性别:%s\n",curr->w.sex);
2 V. W6 N& N8 X- }/ t8 T
printf("职工年龄:%d\n",curr->w.age);
- j7 W6 L0 i6 F2 T9 K+ L1 x
printf("职工学历:%s\n",curr->w.edu);
: o, D% o6 P% q) |) f' U
printf("职工工资:%d\n",curr->w.wages);
7 w) a; ?+ }9 {: f! r
printf("职工住址:%s\n",curr->w.adr);
; I0 t$ P- e- o9 h8 X
printf("职工电话:%s\n",curr->w.phone); }
( Z2 y5 x: r) e6 _# g+ y
}
$ ]' |/ _! Z+ I7 K1 w( W
} void findid(PLINK plink, int id)
2 G& e, w" r2 G% R% y& Z0 s+ W
{
! a9 j5 ^1 ^$ Y' P* S) g
for(PLINK curr = plink->next; curr != NULL; curr = curr->next)
0 [- m9 p8 W: t) V# G T0 N* z H
{
$ y, X9 R8 O9 @5 K" {
if(curr->w.id == id)
. ^3 J3 R& w+ Y: {
{
2 O; a B, `, }2 S; b
printf("职工工号:%d\n",curr->w.id);
7 _# y- C5 ]/ R) C0 o& @
printf("职工姓名:%s\n",curr->w.name);
1 F$ j A+ d0 A# f! D
printf("职工性别:%s\n",curr->w.sex);
- J4 W; L9 C3 H' \
printf("职工年龄:%d\n",curr->w.age);
1 b* P8 G3 ?1 V: U
printf("职工学历:%s\n",curr->w.edu);
& B2 \' r" r1 Q M
printf("职工工资:%d\n",curr->w.wages);
5 \. Y: r0 X# k
printf("职工住址:%s\n",curr->w.adr);
. Q! |! O' d& Y* z& ] c# F' H
printf("职工电话:%s\n",curr->w.phone); }
- l1 P2 v( v# A% C0 W$ J6 j6 `
}
- _& J, }9 f8 v7 y# S% ?
} void show(PLINK plink)
6 b/ ^- d5 b) p) e$ d. `( F) D
{ for(PLINK curr = plink->next; curr != NULL; curr = curr->next)
' x' P7 N1 ?. A; b, S- @6 h' R) D
{
1 M3 g6 i U* \! e
printf("职工工号:%d\n",curr->w.id);
0 [7 ^9 l) y# c5 ^
printf("职工姓名:%s\n",curr->w.name);
) B1 n$ e" H+ r4 y
printf("职工性别:%s\n",curr->w.sex);
& B0 ~. ^ m$ O1 g- z1 ^, f
printf("职工年龄:%d\n",curr->w.age);
% m9 f/ `: z7 y* B
printf("职工学历:%s\n",curr->w.edu);
/ T& }% p/ {* z/ c
printf("职工工资:%d\n",curr->w.wages);
+ b! l$ N, O7 I0 \3 R: i
printf("职工住址:%s\n",curr->w.adr);
- N- f2 }9 n4 `/ X5 _, n
printf("职工电话:%s\n",curr->w.phone);
6 `$ S; f& K. Z: I6 ?0 }
}
, N1 Q9 [1 G/ V- ^
} /*录入职工信息*/
$ b4 U" j( e) F# K
int add(PLINK p)
& g: ]' i1 g( j) w/ K, }- x
{
3 @; {- C9 Z8 p1 X0 x! ?
PLINK h = NULL;
7 Y+ l$ P( k1 }3 E
PLINK q=(PLINK)malloc(sizeof(LINK));
, P! G7 P: T7 y, I
if(NULL==q)
/ d1 ?% V- M- k7 p1 p
{
. z |( \. o$ O% I4 a
printf("录入失败提示:内存不足!\n");
) D% f7 _$ l8 S4 r
return 7;
3 G# V! S1 r5 u2 H; P
}
7 H8 Y; }' u/ F+ D
printf("请输入职工号(数字):");
# a! f( ?. Y6 E: q v3 L( B2 |7 M
scanf("%d",&q->w.id);
8 S1 `* ^) I- r
h=p->next;
D/ \* Z$ i; g! m
while(h)
0 s) D J# i* k; h- I" K
{
% n* `7 A2 `( X3 y5 Y8 n
if(h->w.id==q->w.id)
- p; B$ R! H. u: R' [, ^9 v2 A
{
) H4 `+ X4 K- m0 m5 a! _" ]: o
free(q);
' g# m1 \$ d ^8 R
printf("录入失败提示:此职工号已经存在!\n");
' q8 d$ `: ^" Q t/ C
return 7;
# u1 F8 `$ ^/ O- b% B$ I
}
" [) w( u' z- ?2 p. Q; q4 k$ S
h=h->next;
u. K8 a5 b! F. ?
}
# I0 s( v0 ?% q8 z# S' D9 f; [0 D
printf("请输入职工姓名(文字):");
! N0 M7 Z. n, g) C
scanf("%s",&q->w.name);
8 F0 i; ?6 P9 v6 A: }& Q$ e* u
printf("请输入职工性别(文字):");
: O0 H* b1 @' C4 R Q- E( R
scanf("%s",&q->w.sex);
/ @5 n1 p5 y, g2 o
printf("请输入职工年龄(数字):");
. o9 ^ f9 j" S: Q9 ]
scanf("%d",&q->w.age);
) p& Z; g* I: {2 T3 v
printf("请输入职工学历(文字):");
' H5 B0 g( S9 t2 C! {# }; _* e5 ~
scanf("%s",&q->w.edu);
- H6 K& u( z% p8 c. A1 n( x
printf("请输入职工工资(数字):");
?) U, `% d6 T$ X4 L+ {
scanf("%d",&q->w.wages);
K3 h9 R. W# A3 x" L4 I) L$ c0 e
printf("请输入职工住址(文字):");
( f7 S( E9 H2 v9 Q7 a$ X8 `3 E( n: K
scanf("%s",&q->w.adr);
; h7 v8 m! l. B8 I. _6 L; D
printf("请输入职工电话(文字):");
5 U& F F( v0 i+ h$ J3 X
scanf("%s",&q->w.phone);
E4 ?2 M1 V' S3 x
q->next=p->next;
I4 V. ~5 H) x4 i4 v
p->next=q;
/ _7 O. @5 n4 ? _" w
printf(".^_^.录入成功!.^_^.\n");
" s/ v7 ?0 O" y
return 7;
' T% ~5 w9 q1 b/ {# a
} /*按姓名查询*/
6 U1 e i5 i/ G' y& o
PLINK findname(PLINK p,char *name)
) V) S4 x. b9 q# a: S+ V
{
2 o- E0 d- O& F: {& L7 C0 P
message();
) N- ^% k" l& ~9 L
printf("按姓名 查询\n");
+ Q4 Q" @) x1 u. _
printf("职工号\n姓名\n性别\n年龄\n学历\n工资\n住址\n电话\n");
+ J0 {1 r5 l& V3 W3 i+ F1 S
while(NULL!=p->next)
1 Z$ s i' v4 I2 D8 I
{
; r0 Z- Y; F. w. d; a+ n; ~7 o
if(0==strcmp(p->next->w.name,name))
4 E& e/ Q$ {( v0 W: S2 t
{
# U, y8 P3 p/ ]7 D) u- g& S @
printf("%d\t%s\t%s\t%d\t%s\t%d\t%s\t%s\n",
4 j" B: T. Z/ O3 M4 c. |
p->next->w.id,p->next->w.name,p->next->w.sex,p->next->w.adr,
1 C4 ~2 Z% q: n8 _) Q' Z+ A! X
p->next->w.edu,p->next->w.wages,p->next->w.adr,p->next->w.phone);
" l) Q1 K4 J# V0 C% r" ^1 d
return p;
. A5 V+ {' K: u6 _$ _2 q. J
}
0 ?7 S) M1 I0 g+ X* p
p=p->next;
# |7 u9 E3 p, M5 H$ G [
}
+ b3 S4 D- p' l: ^
printf(".^_^.查询结束!.^_^.\n");
4 w, [" K5 \/ n$ O& N( I% B
return NULL;
& \) I+ |( `% a# N) D
} /*按职工号删除职工信息*/
K4 W! F: i( m* H! D
int del(PLINK p,int id)
# S) |$ c+ N$ U9 r; U
{
& y4 E. u+ D z' O/ l
message();
( Z/ E& N1 ]( c9 D* ?1 [
printf("按职工号删除职工信息\n");
1 X( P7 S5 ^- p7 r/ J( V
while(NULL!=p->next)
6 k" }* a- k" ?) B8 c8 Q3 }# v
{
. i3 q- T% n, G1 H
if(p->next->w.id==id)
0 q; z; e* v( G9 r) B
{
/ Q+ ] K1 V: l" M1 b* i4 N4 W6 ^" m
PLINK q=p->next;
: Q9 j* y7 B! ~" e( l. e
p->next=p->next->next;
1 c, i- b+ }9 J6 h
free(q);
! j {% r1 V" q6 L; N. w
printf(".^_^.删除成功!.^_^.\n");
4 {" e2 k$ ?2 E( p1 @1 b
return 1;
* l) W" u9 p' A( F5 W- i" ]) _0 \
}
; V' o k! \7 k2 o8 c0 K3 o5 j
p=p->next;
4 V2 q3 w; U6 i4 O9 s
}
% Q' \3 O) @ K/ @- O
printf("没有你输入的职工号!\n");
0 C# j% t; T" T& p
return 7;
& `: s1 K, P+ \; d* U' t& A
} /*程序结束释放内存*/
8 D7 o; b; O2 C1 ~# G! |! e0 g
void release(PLINK p)
9 d7 [+ w/ ]5 x8 L& h% L9 }
{
" h% H* f, n' s) l Z, M: `8 |: b" T
PLINK q;
q% ~6 @+ {1 i* k# A; V0 K
while(NULL!=p->next)
* B# T6 b$ _3 Y9 z
{
2 A9 ~5 P; i: S7 w
q=p;
' N x6 m6 O3 h( T3 q8 ?8 m- y3 a7 L
p=p->next;
0 ]) B: ?6 f0 b0 ~1 w
free(q);
! e2 @% U% y2 I
}
, u B7 f) h: F/ J8 R
free(p);
* u8 I9 G. o# i; L
} /*查询调用*/
2 z8 ^8 J. y8 d' X r. x% F( M& ^0 B
void search()
# C% n; V; l: r3 h# s) I# f
{
" h* ^. d* F4 y7 D7 d1 u3 o8 ]8 D
int id;
- V/ c5 u) `5 C5 g8 Z) Q, {
char name[20];
# h3 k$ i0 X' m6 y- v& v
char str[20];
5 g( W) M% I0 g+ v3 G: D
PLINK pworker;
" { |% O- M' M: c7 z
int l;
`' }4 F6 S$ q/ J% o( C8 ?5 l
printf("\t\t\t\t*姓名查找按:1*\n");
1 x. ^9 K$ z f/ e) e5 f+ r
printf("\t\t\t\t*学历查找按:2*\n");
1 o( `; g5 R; Q
printf("\t\t\t\t*职工号查按:3*\n");
& y: K* r7 z7 T
scanf("%d",&l);
% A1 ?6 d1 r% h: z; m5 [ l
if(l>0&&l<4)
4 y, m* G% t. [5 Q$ w
{switch(l)
: c' D* w, g. ]8 }4 X7 k
{
0 s! {8 \8 E6 m3 \' E
case 1:printf("请输入要查询的职工姓名:");
" h) a! ?4 D: l& c) a, H! g
scanf("%s",name);
3 @' A2 I2 y6 i7 [( H' A/ n
findname(pworker,name);
" k6 E, S6 L) x1 A7 ~
break;
0 r0 v6 g$ c2 G" \5 e3 T5 [" H
case 2:printf("请输入要查询的职工学历: ");
; b! I8 U {/ w, w& J" @
scanf("%s", str);
. T5 Z H, B# P/ q
find_sr(pworker, str);
: r5 p. U- \. D" |, ~
break;
+ s. P, |$ d- h0 q! z
case 3:printf("请输入要查询的职工号:");
! c: ~$ A7 e n/ E: z, I
scanf("%d",&id);
) A; O& p- e8 ^3 r& t, `
findid(pworker,id);
+ |( f1 v2 E% S: P
break;
% U0 S) P( N' g& E' E9 r; A
}
0 [" Q) s, c& ~7 H- b% {
printf("\n\n选择完毕!!!");
9 ^& ?: i. `+ W5 d2 B, D
}
|3 J3 C% v4 f; \, d) ^
else printf("\t\t\t\t输入有误!!!");
+ |0 `: e( z+ P
} /*修改职工信息*/
( J( t* \- T0 V% u: k5 R* t c
int modify(PLINK p)
- u& v. R: e: B, P. C% B! E. [& W
{ int id;
9 i w( W+ q5 @
PLINK q;
5 h4 p; ^5 q0 Y" V3 Y2 @# }2 I9 l
PLINK h = NULL;
; s2 L N9 K, U# L% m' q% V
printf("请输入职工号(数字):");
( u2 W7 J' f0 S/ W/ X
scanf("%d",&id);
Z# s) O" x$ `3 `# g+ M- s0 s
h=p->next;
8 H3 e9 z; V! r" i4 d8 b# H- v
while(h)
# r7 v4 V7 `' g5 U/ y0 U2 @9 T j; F p
{
* x, I( Z0 Z% u4 [% o
if(h->w.id==id)
8 x/ Q" M/ R5 E+ V
{
3 E- i9 k, H1 X- ~: G1 O. B
break;
1 W9 u# F9 c; S6 N$ e
}
0 K5 @! M" _3 |5 _% W8 [7 p
h=h->next;
Y; m* M, C. E' K2 o1 ]/ ^
}
" M4 ?7 S- A0 w* y( Z6 Q
if (h == NULL)
( U! z5 T4 ]: x4 O
{
, g( V) r! d' m. Q6 i1 H- r4 m/ y
printf("找不到此职工,请重试\n");
& G- V& Z0 Z# O( ?, T; O0 d8 T0 d
return 7;
/ O% `3 j. t# M$ _, p
}
, w* @# i g- `6 o' W
printf("请输入职工姓名(文字):");
6 L) p* p- E7 i% k1 q6 F$ i# ?3 R
scanf("%s",&h->w.name);
" w: Y: l1 \) P* Z
printf("请输入职工性别(文字):");
1 R f0 ?5 j2 I4 d" ]- H
scanf("%s",&h->w.sex);
8 p6 ~9 n4 d, Z
printf("请输入职工年龄(数字):");
u9 M; z, M/ j5 L$ t
scanf("%d",&h->w.age);
) N' K+ K: n" x
printf("请输入职工学历(文字):");
- o9 k- w- [( ^4 m- {- W1 ~
scanf("%s",&h->w.edu);
* [9 f7 }8 [7 z0 Y
printf("请输入职工工资(数字):");
! p; u' c# B5 I1 w+ Q8 i" n
scanf("%d",&h->w.wages);
* L; e: l @: b0 W: C& g
printf("请输入职工住址(文字):");
+ R1 i0 h0 f l7 S7 ~
scanf("%s",&h->w.adr);
# @+ R, ]3 A* ?+ ^, ]
printf("请输入职工电话(文字):");
; K( G' ?0 i8 R+ o
scanf("%s",&h->w.phone);
( `' b' {; I1 W- q
q->next=p->next;
9 } S$ i/ j; t8 ?& N T: {
p->next=q;
. d& C2 }% F* {' M% a6 p G
printf(".^_^.修改成功!.^_^.\n");
4 Q( b% z- `: I- B4 b8 O
return 7;
5 `+ K& z+ b2 m2 l ? n" l
} int main()
/ }5 A) i8 r9 f
{
' s, Q z% g+ p! u0 ], y
8 }* V, g8 ^' @8 ~6 \) |/ V% Z5 Q
int cmd=0;
" E/ X; [. a! m/ S# [3 ~! Z
int id;
& ]. S% e, r3 f1 n5 y! ]$ L
char name[20];
. W: u; i- A, }4 ^/ q1 v
char str[20];
7 c9 ~8 z4 g' S8 ^; c. N3 H
PLINK pworker;
2 H. M+ _# C! g8 {( n6 G( \6 h+ U: g
if(!(pworker=create()))
' _+ v8 ~1 X" }, a. U5 T" P
{
) n9 z8 e; X5 V0 b
exit(0);
8 J% @ @' C! ?$ b, j
}
# y5 \; Z7 X, J/ Q% _% M
while(cmd!=7)
7 p3 W8 j% p3 ~4 X. Z
{
( l. w2 D; p- D% C& i
switch(cmd)
) D) j4 P- H" e. `. C& c
{
/ a$ E, Z7 h$ u" u& C9 C9 }
case 0: message(); break;
4 s9 K9 e1 c" P- O
case 1: add(pworker); break;
0 \# Y* B. P7 R3 d6 E
case 2: show(pworker); break;
- M# }# k; ?! Y- j/ y4 T
case 3: search(); break;
x8 U: i+ \6 e6 k! Z0 c
case 4: printf("请输入要删除的职工号:");
' e- e$ w* j4 @/ m. k8 g
scanf("%d",&id);
8 r7 z9 l, K- P, M
del(pworker,id);
$ [7 R; m( V% ^& Z
break;
. z2 w2 I9 m1 s
case 5: modify(pworker); break;
! T+ c$ c( b8 Z& O1 k
case 6: message(); break;
( h6 u8 A* m6 I {
}
$ \6 n( D5 r( f
printf("请输入操作命令数字:\n");
5 L# t6 C; X" p* g( S/ c! G
scanf("%d",&cmd);
" o) j3 W6 X6 B( r, {$ e( \
}
! e& Y, h5 u: j4 D5 D
printf("谢谢使用!\n");
! U& h4 z( ^; c
release(pworker);
9 r4 V: b$ n; z: B @. c
return 0;
1 Z7 x# p* ~# H6 l
}
& a i: ]8 O* t9 K
7 a% B/ L. t2 B$ P3 U! V5 z: L" n; m
6 z& ]1 H d. r: t" d+ c
这是职工信息表 能运行出来不过查询功能不行能帮忙看一下是什么原因吗。。再此谢谢了!
1 i, c! M" O( U( e7 b. o
! ]* H; X/ z2 ^. @! O7 i% K' d
5bde8c5494eef01f15b25a35e1fe9925bd317d69.jpg
(118.36 KB, 下载次数: 111)
2013-7-23 15:39 上传
点击文件名下载附件
欢迎光临 数学建模社区-数学中国 (http://www.madio.net/)
Powered by Discuz! X2.5