数学建模社区-数学中国
标题:
【转载】C++源代码--学生&教工管理系统 求大神帮忙改错~!
[打印本页]
作者:
wangzheng3056
时间:
2013-7-23 15:39
标题:
【转载】C++源代码--学生&教工管理系统 求大神帮忙改错~!
#include <stdlib.h>
9 j8 M) x i6 O6 @# T
#include <stdio.h>
2 l4 a F% ^% i" s R: v
#include <malloc.h>
5 X3 V: C. ?2 i s6 h
#include <string.h>
5 m+ b) a' j, u1 Z& n
typedef struct worker
( H u5 S! @0 _0 t: z& J
{
; m ]5 t6 \4 Y# q& Z c
int id;
" ?7 ^% ^9 q9 J, e/ K
char name[20];
- A" F; k* [: P* d
char sex[3];
/ n; E/ f3 I- G5 L
int age;
# {; E5 }7 K- x% O4 W& x) b/ E) Q6 R
char edu[50];
3 k F* Q. f0 B0 X& I
int wages;
, g7 M4 l) t% b: v. f. \+ C
char adr[255];
b) N" g4 |7 [" G
char phone[13];
, |* H! e8 d: k8 F3 @8 `+ s
}WORKER, *PWORKER;
9 h' z$ M, K, m$ m
//typedef struct WORKER *PWORKER;
2 I, ~/ ?1 u# s+ R/ i
typedef struct link
2 x7 i6 @& x. a, j0 C6 k
{
6 d4 }) B8 g' X: P6 G" b
WORKER w;
& p% }( m$ I3 Q+ i Y J
struct link *next;
/ z% M* S) f4 L2 N# N9 P
}LINK, *PLINK;
0 X ]! H8 Y1 h$ t
//typedef struct LINK *PLINK; /*创建职工信息链表*/
2 z; H8 ~" s( T/ Q
PLINK create()
5 d8 N! f, y5 X& \
{
; z$ z& z0 W5 Z, l
PLINK p=(PLINK)malloc(sizeof(LINK));
' h! W" c7 s! b
if(NULL!=p)
4 E( T5 f0 N% u8 d
{
) y! n8 V9 o; h7 [. R* o0 g6 g
p->next=NULL;
- c" L5 |2 [7 x
return p;
+ W, }! Z* D/ N) c3 P( K
}
# o7 M' a2 w( M4 R
printf("内存不足!\n");
0 T9 \( Q$ ]+ v( h2 C! m, [9 V' E
return NULL;
" j; x. R( o' } h+ n6 e0 I) l
} /*显示程序界面文字*/
9 P. F( J }' s9 w3 A- c# l
void message()
" s2 |9 I0 A/ q. h( P, B
{ system("color 0f");/*设置当前窗口的背景色和前景色*/
7 G$ [0 z, }2 Y. F
/* 0 = 黑色 8 = 灰色
/ G* v% B. _$ b2 d9 z# X, \
1 = 蓝色 9 = 淡蓝色
# R1 O/ V+ ~% ]$ M3 k5 ?
2 = 绿色 A = 淡绿色
# R5 o: _# c+ J7 F3 R% j0 F; g
3 = 浅绿色 B = 淡浅绿色
* z$ f* |! I( A: E Z, B
4 = 红色 C = 淡红色
* E2 f, W' Q, Y! e
5 = 紫色 D = 淡紫色
: g7 u6 c. x+ g M( ]/ Y% E" [* V
6 = 黄色 E = 淡黄色
: M$ y. E# L2 l) @0 d" V1 l& L' h; f
7 = 白色 F = 亮白色*/
2 m7 a5 V4 K: i9 e' d$ N/ g. G4 j
system("cls");
0 M `$ F' ~; i' P
printf("\t\t************************************************\n\n");
- H& o' J5 f9 ]7 L1 \! N$ K
printf("\t\t>>>>>>>>>>>>>>欢迎进入职工管理系统<<<<<<<<<<<<<<\n\n");
& f' `- Z8 \: B6 Y) @5 v
printf("\t\t************************************************\n\n");
& i" A5 `5 }$ c" q8 m8 N- @
printf("\t\t ************** Choose Function *************\n\n");
4 T& W- q6 s# L% i8 v8 O9 \' |. c
printf("\t\t ************ 帮助 请输入:0************\n\n");
' x/ ^- I1 r) C0 w- o/ u0 P
printf("\t\t ************录入职工信息 请输入:1************\n\n");
c2 M, c& V |
printf("\t\t ************浏览职工信息 请输入:2************\n\n");
# I2 \) `$ _8 F3 l( f
printf("\t\t ************查询职工信息 请输入:3************\n\n");
& u# _' q. m3 R7 m9 B3 d
printf("\t\t ************删除职工信息 请输入:4************\n\n");
8 f5 l2 |9 ^) y6 n) E1 F- f. {: @
printf("\t\t ************修改职工信息 请输入:5************\n\n");
+ @/ f, q% j+ C9 C! R* ~5 g
printf("\t\t ************ 清屏 请输入:6************\n\n");
* F4 n0 \5 r/ Z+ i$ M/ D1 N1 n
printf("\t\t ************ 退出 请输入:7************\n\n");
! ^: O2 @: w4 L* X( z
printf("\t\t************************************************\n\n");
- j! r" Q4 {0 Y; Z0 J" {' A
printf("\t\t************************************************\n\n");
; g/ l \# S* V; n" N+ b$ P' E4 z
} void find_sr(PLINK plink, char* str)
8 K# h7 U( S* [
{
7 h5 d; x' O; W0 a0 N
for(PLINK curr = plink->next; curr != NULL; curr = curr->next)
6 q$ Q) e9 q$ K( C' s4 C3 B/ h" M
{
?0 n# z, Q+ m4 w
if(strcmp(curr->w.edu, str) == 0)
3 A! N y# F0 ~6 f0 Q, P
{
6 Q/ I5 g/ l3 L
printf("职工工号:%d\n",curr->w.id);
) h0 M) X r6 O/ e5 J
printf("职工姓名:%s\n",curr->w.name);
: o" x: i& z2 S
printf("职工性别:%s\n",curr->w.sex);
9 D" ~8 b7 x; L/ [. G9 Z7 Y6 q/ F- R
printf("职工年龄:%d\n",curr->w.age);
# |8 _3 E0 T9 U D! q3 y. A
printf("职工学历:%s\n",curr->w.edu);
- B% L m' W6 R5 H$ @9 w& [
printf("职工工资:%d\n",curr->w.wages);
5 ^9 W7 D. X; J+ l4 R' `; ?
printf("职工住址:%s\n",curr->w.adr);
) }% B0 G4 s; R' P& I9 p& d) d
printf("职工电话:%s\n",curr->w.phone); }
: i7 s: a* m; z6 v4 x9 c1 L
}
7 s, T; X0 v7 q; M! J9 `
} void findid(PLINK plink, int id)
- f# r7 p6 i6 G/ Y
{
# q% e1 o( k6 _" X$ V
for(PLINK curr = plink->next; curr != NULL; curr = curr->next)
% |. V( D3 j8 x) h0 }& p$ R0 i7 d
{
* `4 W5 e% j/ k4 p) {, Z
if(curr->w.id == id)
6 |, L) U% D( g! l7 p: L& u' z- n
{
7 [+ ^7 u0 x/ [
printf("职工工号:%d\n",curr->w.id);
7 _3 K- r6 U0 R, y- F) t' g/ `2 o' p
printf("职工姓名:%s\n",curr->w.name);
) L% S5 }& o! {' U w u- N
printf("职工性别:%s\n",curr->w.sex);
$ W+ H$ ~+ W, G0 i/ ^
printf("职工年龄:%d\n",curr->w.age);
+ u( l& c) F/ @
printf("职工学历:%s\n",curr->w.edu);
5 u8 z7 |# R! f3 P9 M
printf("职工工资:%d\n",curr->w.wages);
+ s; o# O3 a o+ A& z
printf("职工住址:%s\n",curr->w.adr);
% p- k& f1 C9 s
printf("职工电话:%s\n",curr->w.phone); }
0 V7 t i! Z, L3 z$ K
}
2 ^% k8 o% A/ R* ]5 _' o9 A: c
} void show(PLINK plink)
: F# s* D& K! v
{ for(PLINK curr = plink->next; curr != NULL; curr = curr->next)
4 ]8 \+ E8 H) k* j5 ~
{
! g1 H- @7 w0 n
printf("职工工号:%d\n",curr->w.id);
! \( e( B" p2 _: A
printf("职工姓名:%s\n",curr->w.name);
$ w3 I! D3 p- C( W: x
printf("职工性别:%s\n",curr->w.sex);
$ B! [/ E' Y! M: L- P4 \9 G0 C
printf("职工年龄:%d\n",curr->w.age);
! A: Y3 I; F9 X$ `, k4 N4 N. ~
printf("职工学历:%s\n",curr->w.edu);
# B r" r. ^0 g: X" | g8 L
printf("职工工资:%d\n",curr->w.wages);
* M2 I0 A- N" n8 T
printf("职工住址:%s\n",curr->w.adr);
6 c5 K' m: u. f
printf("职工电话:%s\n",curr->w.phone);
+ n l' ]- k0 ]2 T8 _
}
3 R2 w1 B. O) m
} /*录入职工信息*/
0 W& O$ E! R6 s
int add(PLINK p)
& m- Q9 k, i3 W# ^' |1 J+ c
{
- U/ a3 s* L8 n6 }0 m, x
PLINK h = NULL;
, V+ p4 \* O! h" ]; l$ I; m
PLINK q=(PLINK)malloc(sizeof(LINK));
2 q4 t* h3 G8 [" l( h5 U
if(NULL==q)
! |( U; q3 `& B1 }- {. K3 h
{
/ c5 T0 }& S* |- K" ?8 `# o
printf("录入失败提示:内存不足!\n");
4 H$ X0 P8 n7 ~. Q2 _3 p
return 7;
% V& W/ j! N$ n7 l& G# F
}
. n7 m2 O- T5 s! v
printf("请输入职工号(数字):");
$ @! m- q7 `: S1 i* A" r- O! i( f3 E
scanf("%d",&q->w.id);
3 O1 {' K B# e. _) E/ f+ a& P3 C
h=p->next;
\+ `' H* N& j3 m
while(h)
. w# v9 I6 P( b
{
8 Y* T& [- t" r6 E
if(h->w.id==q->w.id)
! i [! m2 B9 |4 P5 ~
{
" R* N! Y) l0 i& E
free(q);
/ \% i7 y& j) W/ \
printf("录入失败提示:此职工号已经存在!\n");
7 J; @# j( W. ^1 b2 Q4 s
return 7;
5 h- X( Y0 t; o) c
}
+ J* b& s4 E% s0 @& y- O
h=h->next;
$ p+ o6 R) u" f" _, T# _
}
1 t b I1 O* r. v
printf("请输入职工姓名(文字):");
% F Z, t6 C" A& [' O! f
scanf("%s",&q->w.name);
3 O8 q( |% E8 U; l7 c
printf("请输入职工性别(文字):");
( b8 V G2 J* p. ?( J/ f* D1 C
scanf("%s",&q->w.sex);
0 P+ G, ^/ S% T$ b% P
printf("请输入职工年龄(数字):");
; P# Z! M0 K$ b& e
scanf("%d",&q->w.age);
: Y# J% m m, q+ E
printf("请输入职工学历(文字):");
% Y) o; m7 U5 n2 x, ~
scanf("%s",&q->w.edu);
4 B. |1 N7 v' J
printf("请输入职工工资(数字):");
; p" q5 x& }. p( N9 `& | a
scanf("%d",&q->w.wages);
# V& p# c1 n1 o0 o) W
printf("请输入职工住址(文字):");
! t# z9 b1 B% b1 c' ? E
scanf("%s",&q->w.adr);
2 G, G$ b4 o: Z; `: N! F1 c5 Z! O
printf("请输入职工电话(文字):");
# a5 s0 F3 A/ ~1 i G3 c4 o
scanf("%s",&q->w.phone);
! k" U N! o( H( [0 Y i9 L
q->next=p->next;
6 e' ~, z" O0 p+ w
p->next=q;
* h3 k" N# {8 c: d
printf(".^_^.录入成功!.^_^.\n");
/ b& m# |1 W: d( [4 i
return 7;
$ k7 Y' A5 Z5 @0 l% O
} /*按姓名查询*/
6 S: k0 T% S: Q" M
PLINK findname(PLINK p,char *name)
. a3 E6 x. D, L
{
- ^1 k3 q- P5 |
message();
5 c! V5 k/ P- c7 \2 l5 e
printf("按姓名 查询\n");
4 J9 h8 L* c, _9 \, k, M
printf("职工号\n姓名\n性别\n年龄\n学历\n工资\n住址\n电话\n");
/ J0 f5 T. \7 W% F
while(NULL!=p->next)
: l0 s2 B# u8 \( C
{
. c8 W: j1 ?+ g; p
if(0==strcmp(p->next->w.name,name))
4 d: s3 H/ t% L! @8 X1 Z: `1 L
{
" t8 b2 p: B/ W4 G7 ^; f
printf("%d\t%s\t%s\t%d\t%s\t%d\t%s\t%s\n",
/ j+ ]2 L% B+ q! ^ J7 s
p->next->w.id,p->next->w.name,p->next->w.sex,p->next->w.adr,
' S( F( J/ J' z" m; W% B
p->next->w.edu,p->next->w.wages,p->next->w.adr,p->next->w.phone);
1 Z `$ Z( N- D" o
return p;
# Y1 `7 M% G5 p, W9 k: [
}
( G3 [, s$ [8 K. ~' A
p=p->next;
6 i B; t0 u9 }, Y. L
}
! p- K5 C5 ]- Y. C; b9 S9 B( w
printf(".^_^.查询结束!.^_^.\n");
( o( w7 |4 `, l" H3 A" h# G
return NULL;
! [: ~8 M: G. w+ I% Y
} /*按职工号删除职工信息*/
" q0 z; p; n& Y% {# r* m
int del(PLINK p,int id)
/ |1 p* g( q4 p5 K) d
{
. M4 B+ m9 N% A2 V2 d% Y1 c
message();
: y1 W5 k. C4 @2 L. f' ~
printf("按职工号删除职工信息\n");
7 ~1 Q* ~5 ^! F' y$ s7 y
while(NULL!=p->next)
6 ~7 n( @8 C( x
{
" K. _: C/ U( t9 I" S
if(p->next->w.id==id)
+ C% e: ^# H- n4 H* P# l
{
5 K& ^/ ]1 M2 \) e8 O; {) P
PLINK q=p->next;
( [2 c+ ^7 B! g
p->next=p->next->next;
7 C' M! h- S7 p3 M
free(q);
3 O8 n; R' i1 q' w, q
printf(".^_^.删除成功!.^_^.\n");
5 c) o2 t$ C* ?# i, t
return 1;
( G* L. {( Z. m3 p0 ^7 l* l
}
. j' n: z$ h- ?3 q+ ^: g0 }& v. u
p=p->next;
8 z) J! i3 ^3 u+ [9 d9 T9 A6 o6 r& s
}
8 N1 Z% k0 p6 i; x7 r. i0 e
printf("没有你输入的职工号!\n");
$ p' w( x! _7 Q3 n* w
return 7;
$ R4 Z' v5 j( M6 q* e; ^
} /*程序结束释放内存*/
9 B6 _ a8 c" r
void release(PLINK p)
' o' i7 P0 d7 r# k, v: Z
{
8 T; ^) E' C1 G9 s
PLINK q;
5 b% W! J0 q- Q+ ?: T( r4 T
while(NULL!=p->next)
: ?" Q B1 @8 Z* k1 N
{
% W& s: M& L9 D e& C; R% C+ S+ [
q=p;
2 K. m6 w7 y( q* [
p=p->next;
; a2 F# U5 e# X( K
free(q);
4 ?7 _' o6 C' I$ d' t9 W
}
8 G: n* ^4 K7 p5 o/ ]8 h
free(p);
" F1 y' |+ }6 y* e) l
} /*查询调用*/
8 h& g5 O9 ?/ R! F- c; z
void search()
3 [2 f1 P: b- d: ]
{
) k7 @2 z7 o- r" v+ {, P( v
int id;
D8 K( {. \' k( c/ a0 n8 @+ g
char name[20];
$ Z+ l( p7 e$ p; A
char str[20];
% o( u3 L" C" n1 U; Z
PLINK pworker;
* @* q. P( c5 ?; a3 K' i1 p! J
int l;
& E9 k- `; {7 d0 j* D% `
printf("\t\t\t\t*姓名查找按:1*\n");
1 S- f+ n1 o/ S
printf("\t\t\t\t*学历查找按:2*\n");
# r- O9 G- G2 H- \+ Z
printf("\t\t\t\t*职工号查按:3*\n");
8 k. W/ F6 R* j/ j7 I
scanf("%d",&l);
8 g0 L6 P2 {& s# J$ M1 s6 v
if(l>0&&l<4)
1 k1 H. }9 {# s z' P$ ~
{switch(l)
7 z! ^& L: @( f
{
6 Y- U3 w9 y. v3 b2 \) J
case 1:printf("请输入要查询的职工姓名:");
( M6 E# b0 o3 F8 f1 T+ U
scanf("%s",name);
+ T% c: I+ y' w* ?# t4 g
findname(pworker,name);
. u+ R# V! U1 l' L$ V1 w8 g. u
break;
" y& Q+ u2 w6 M/ }
case 2:printf("请输入要查询的职工学历: ");
4 ^; u6 y, ^, A* P) G
scanf("%s", str);
" Z0 [# H; l& y: K- i5 i
find_sr(pworker, str);
" }, @+ F4 R( K1 M4 R: G, z
break;
6 L3 O, j+ @9 V
case 3:printf("请输入要查询的职工号:");
3 f) v% E P9 g2 x3 g1 ]
scanf("%d",&id);
2 z6 k/ T# g$ g5 _3 H5 J+ z* u, a
findid(pworker,id);
8 v0 Z1 F. ?, Z% V
break;
- y a8 o/ T& {
}
, A* U# [! @5 v: l# C
printf("\n\n选择完毕!!!");
$ t" Y$ [; T1 V( y+ y& v' L
}
6 J( E* i4 J+ ^3 K1 }( |& j
else printf("\t\t\t\t输入有误!!!");
$ K. F+ P1 t* S3 m: D1 S) w
} /*修改职工信息*/
% p2 Q& v; i# S. s1 ^
int modify(PLINK p)
' z$ f& e" C: t' B* M
{ int id;
/ M6 z) ?' g4 f" _1 R4 E
PLINK q;
" x: A, V3 F" g/ G" X' m2 b
PLINK h = NULL;
" }% }8 `+ O" V) N
printf("请输入职工号(数字):");
7 R8 w) B! e9 `2 F9 ~" v1 r( v
scanf("%d",&id);
+ a1 O8 K. I+ A
h=p->next;
; X% y) }0 [: ]: K; S9 [
while(h)
$ e1 I. L# W, t& Z% u! @
{
* F( N% b8 k3 |5 Z
if(h->w.id==id)
, c- a* d. @2 M& T1 r2 [) k6 ]7 i2 e
{
( |$ l0 |+ @- k% s
break;
7 v) c* r+ b) b6 G3 k
}
5 A9 G5 {; {- ?9 L. O
h=h->next;
3 y+ v/ _4 [. {5 G' Z, v
}
/ {0 s' [7 v6 K- p# S) w+ v
if (h == NULL)
6 e6 V+ j6 F6 w' Z' l9 [! h
{
" a9 i7 Y: Y( h# l% i$ ^: s8 R
printf("找不到此职工,请重试\n");
: |- q/ L( i v3 b8 W- L: F/ W# v$ B4 W/ B
return 7;
+ a' q# k0 Z( L8 N0 ^; f; X2 Y: L
}
- r# t ]' o$ b' p u5 }' ^
printf("请输入职工姓名(文字):");
# d2 w4 X6 C& ?& d6 H$ M& K. `
scanf("%s",&h->w.name);
* O g0 x; \ J2 B
printf("请输入职工性别(文字):");
' f. ] W) h2 b1 N
scanf("%s",&h->w.sex);
* x& w9 l+ C" ?1 t
printf("请输入职工年龄(数字):");
( W7 {( r" f9 v( L8 z# Z( @
scanf("%d",&h->w.age);
, [$ N. c) S& b+ u
printf("请输入职工学历(文字):");
7 _' Z; ?6 D" h4 t) x0 ^( e
scanf("%s",&h->w.edu);
1 \: e* O" p/ e6 }) i, z
printf("请输入职工工资(数字):");
5 _ |, t) O# c! ~; v3 t5 |
scanf("%d",&h->w.wages);
( y) ?$ L) c1 ?1 _ c9 `/ s
printf("请输入职工住址(文字):");
! J9 v6 b$ n# u4 ~$ A% R' p
scanf("%s",&h->w.adr);
* a& o" t$ |1 |: Y: w
printf("请输入职工电话(文字):");
* i) v! E4 z" x2 k" A
scanf("%s",&h->w.phone);
- v t( x5 F' o( @
q->next=p->next;
1 [" V) S3 T {, e- {3 T" g
p->next=q;
, i8 E' E( o+ N" t0 R
printf(".^_^.修改成功!.^_^.\n");
; Q0 ?3 h2 C; N, u
return 7;
4 P5 ]' {1 ?, H/ |
} int main()
7 n9 T2 N% v+ J$ k
{
* i6 D4 S) k- e3 {) h' U$ t
8 d, a) g* q5 w8 B- |# g; k1 N' l7 h
int cmd=0;
' B H" E$ w9 Q0 y* f+ d
int id;
% Y* z. P# ^& Y! E
char name[20];
$ j7 W- F5 ^; ^9 y1 q3 {
char str[20];
/ V% A7 s9 a' t' x `
PLINK pworker;
7 [) r( c1 d, _% m4 m
if(!(pworker=create()))
3 Q& W4 l) Q" u7 l- t7 H
{
9 j* |' L) G; l
exit(0);
+ m( `3 w( s8 l4 L
}
0 i: |! Q i$ `# y6 v6 f8 m
while(cmd!=7)
3 `6 r$ f% I, g2 t
{
3 }$ L' h" }/ L: V: g, i2 v
switch(cmd)
6 s/ {! i* y7 ~ O9 i& J
{
0 T) M2 M' w) b0 @5 O! N
case 0: message(); break;
2 Q! n; e: \/ E( }
case 1: add(pworker); break;
' G* [$ q! W& f Z' Y
case 2: show(pworker); break;
0 I, p a e4 `( x
case 3: search(); break;
! |. E; d5 v+ q9 U3 X% B& p; k
case 4: printf("请输入要删除的职工号:");
1 z4 V" G9 H: H) e' \
scanf("%d",&id);
1 ^" |' C; e7 Q) m
del(pworker,id);
/ P( u5 S Y8 L) g$ g
break;
( v8 W: {/ ]$ A5 R% _' w. Q
case 5: modify(pworker); break;
7 G. P, o1 D1 P2 d
case 6: message(); break;
V, ~9 v$ B% n3 @/ a% M0 t+ P
}
3 c5 e1 J2 L9 Z, g
printf("请输入操作命令数字:\n");
: ~$ q+ |9 K* O* u: o
scanf("%d",&cmd);
. c" y% D8 s# G/ P
}
; p1 N- T$ I7 [. H; Y! ]
printf("谢谢使用!\n");
3 W% j( g6 l |- x! ]& W
release(pworker);
: p1 b' T, `% p; n& S9 Z; X- B2 m+ c
return 0;
3 d1 v" \; F/ m7 `, `/ O. b( b. Z
}
, C4 M7 ?8 V: V: b5 |4 a
! x1 U5 D& k) u) Z r0 B
& H! T9 o+ i6 m) ]; ?
这是职工信息表 能运行出来不过查询功能不行能帮忙看一下是什么原因吗。。再此谢谢了!
/ P0 ]' E7 g Y
& a+ V- c- P, Z2 m
5bde8c5494eef01f15b25a35e1fe9925bd317d69.jpg
(118.36 KB, 下载次数: 141)
2013-7-23 15:39 上传
点击文件名下载附件
欢迎光临 数学建模社区-数学中国 (http://www.madio.net/)
Powered by Discuz! X2.5