数学建模社区-数学中国

标题: 【转载】C++源代码--学生&教工管理系统 求大神帮忙改错~! [打印本页]

作者: wangzheng3056    时间: 2013-7-23 15:39
标题: 【转载】C++源代码--学生&教工管理系统 求大神帮忙改错~!
#include <stdlib.h>7 m" j% Z- L/ v! q/ K& ?
#include <stdio.h>
5 F5 d4 A" q( O  J; Y#include <malloc.h>" L' p% S! e! u$ B5 K; @8 p
#include <string.h> % ?0 R( F/ B* B9 E% ?
typedef struct worker
5 o' K" ~% U, q  f( ?3 I{6 _4 J6 R6 K) v
int id;& ^7 o4 a" ]9 s; K
char name[20];6 z& |" ^  n  U0 a
char sex[3];
3 i+ I' W" i2 s2 m! c4 yint age;$ e2 n0 U( s, u
char edu[50];4 m6 x% Q- [, g
int wages;
/ c; l4 [  r% K/ C" v; q, `char adr[255];
7 r: Y2 C( E& \4 }' nchar phone[13];
4 T) N9 o2 z# |3 U: j' o, w}WORKER, *PWORKER;/ Z$ G2 _! j. n
//typedef struct WORKER *PWORKER;+ _$ l. H- h# o$ @3 P
typedef struct link- R& m* H% G4 S/ w$ G
{+ e. L$ X5 |- r: [9 K' u
WORKER w;. K( k' s/ ^4 p" ]* m+ D. ]$ X
struct link *next;
; L, [$ h4 K4 @% X; @}LINK, *PLINK;
- \2 J/ S9 x1 c* l, b//typedef struct LINK *PLINK; /*创建职工信息链表*/6 x3 x' r& T' c) R- ?) }( i: _6 p
PLINK create()
! F/ g! d9 h, t{
$ I3 S" L* W7 }1 K3 v* \: PPLINK p=(PLINK)malloc(sizeof(LINK));0 H% e! t+ Y6 ^" A$ |: Z
if(NULL!=p)  m- s  M5 c+ F; F
{
) x* @/ N- X8 ip->next=NULL;
3 e/ j& o) n9 oreturn p;
+ t$ }7 [8 f$ _# I6 u( W}
5 H& }5 ]1 K3 Y8 w# }/ ~printf("内存不足!\n");0 ]( |* n. q% I' N
return NULL;; B+ I% N9 d; I4 W4 E  {# V! B
} /*显示程序界面文字*/( v! \$ ]6 [$ y( |. [
void message()/ l+ g: |& Z$ \! o- K
{ system("color 0f");/*设置当前窗口的背景色和前景色*/8 \* _. y0 @6 s
/* 0 = 黑色 8 = 灰色/ z% V$ U/ F- B; r3 J* ?- T
1 = 蓝色 9 = 淡蓝色
: [8 e/ \8 V: W% P% r# ~/ K9 K. r0 p2 = 绿色 A = 淡绿色" E( v0 |7 ~( \. k9 u
3 = 浅绿色 B = 淡浅绿色
- E/ m. E* L! e( L$ t9 f0 ]4 = 红色 C = 淡红色/ A% b% [! S& n+ L/ F* R" [- E
5 = 紫色 D = 淡紫色
" l2 P, ~& `& L, z$ J+ f6 = 黄色 E = 淡黄色) b& c" _  O6 d3 h9 I5 {* q
7 = 白色 F = 亮白色*/
. ~1 }8 e- V. k9 n/ e8 h: {system("cls");
6 P- v5 Y: E$ H. H) T5 |# Q! hprintf("\t\t************************************************\n\n");1 o+ b, r$ ?# p. G' t
printf("\t\t>>>>>>>>>>>>>>欢迎进入职工管理系统<<<<<<<<<<<<<<\n\n");
$ |/ E: M1 e* P* x5 j) A1 Zprintf("\t\t************************************************\n\n");& X6 h: b3 O5 q4 r
printf("\t\t ************** Choose Function *************\n\n");: O6 m4 Z+ @7 K. O8 \! S* p
printf("\t\t ************ 帮助 请输入:0************\n\n");, P' \1 [2 y* n7 c$ a
printf("\t\t ************录入职工信息 请输入:1************\n\n");$ ^) E, q: Z8 {0 l& Q
printf("\t\t ************浏览职工信息 请输入:2************\n\n");5 R  u6 L/ b0 n
printf("\t\t ************查询职工信息 请输入:3************\n\n");
' ]; j1 q+ E8 n3 yprintf("\t\t ************删除职工信息 请输入:4************\n\n");/ Y: I) W. b3 {: s* w. z' J
printf("\t\t ************修改职工信息 请输入:5************\n\n");
0 ^5 z" X, k5 V/ ^9 ?printf("\t\t ************ 清屏 请输入:6************\n\n");/ X" e3 w1 i: h
printf("\t\t ************ 退出 请输入:7************\n\n");" v+ [6 e) B, G# @7 z' G- _' @
printf("\t\t************************************************\n\n");
6 w! H( P3 I1 M/ a. Lprintf("\t\t************************************************\n\n");
. p+ g: ^, @; d+ o} void find_sr(PLINK plink, char* str)  _' E; s6 h2 W" o# c8 J
{+ R3 f) z2 T% c3 x* y
for(PLINK curr = plink->next; curr != NULL; curr = curr->next)) `0 v5 G2 O, ?' }+ z) m4 Z7 Z, P
{: E- X: K5 e  I' {$ J3 e  I
if(strcmp(curr->w.edu, str) == 0)
8 A' m$ U& Q1 d. [: K6 `{
. C% C4 P4 W: Hprintf("职工工号:%d\n",curr->w.id);% u, [+ f$ z* N8 k, n+ Y" F
printf("职工姓名:%s\n",curr->w.name);
* |3 i/ K3 E" V2 w& b( `printf("职工性别:%s\n",curr->w.sex);" n& ]( p4 W8 A6 V$ |' w3 C
printf("职工年龄:%d\n",curr->w.age);" V8 [2 L# |' U1 }$ p9 |; a
printf("职工学历:%s\n",curr->w.edu);
+ U5 a# e7 r8 e. Rprintf("职工工资:%d\n",curr->w.wages);
! n1 S( x6 p% n0 a; L6 Lprintf("职工住址:%s\n",curr->w.adr);
- C& @* `% `8 i. jprintf("职工电话:%s\n",curr->w.phone); }
1 T3 p" ]* S& S* X! J}
  Z# P+ H8 M- [3 b3 Z9 v  T5 g& x4 n} void findid(PLINK plink, int id)
# g2 V' k: c4 T6 b! P{
! w  y3 A- S6 s$ M8 sfor(PLINK curr = plink->next; curr != NULL; curr = curr->next)! t6 K# `' U+ i- @
{
* x& ?2 p5 @! p' N# n' _if(curr->w.id == id)
' A9 L5 U" {+ ^( g" a{
2 I. ?- O. `3 c( T; Z9 ]: Aprintf("职工工号:%d\n",curr->w.id);+ ~! [6 \' A4 \: O6 v* Q8 d
printf("职工姓名:%s\n",curr->w.name);( j/ m  `3 Q- S9 f
printf("职工性别:%s\n",curr->w.sex);( B& H3 D( N$ g( j$ y. N! ^
printf("职工年龄:%d\n",curr->w.age);
' H8 g" S; Y/ z6 A2 h- }4 ~: ~printf("职工学历:%s\n",curr->w.edu);/ I/ I  Z* V2 b3 W* {2 }( B2 Z2 d
printf("职工工资:%d\n",curr->w.wages);- j) l, Q7 r- `, Q1 s. m- X
printf("职工住址:%s\n",curr->w.adr);2 |% y; i1 [) x6 r) h
printf("职工电话:%s\n",curr->w.phone); }
- a. T" X+ _* _( {1 ~}0 `0 Y% c3 M, j9 |3 P9 ]
} void show(PLINK plink)
0 I3 p! _; h$ Y% }{ for(PLINK curr = plink->next; curr != NULL; curr = curr->next)4 b5 e* ~  v; f& l" s5 G% A
{
& _* l: q2 V8 f- Bprintf("职工工号:%d\n",curr->w.id);
. l% S0 q7 c$ I6 fprintf("职工姓名:%s\n",curr->w.name);
1 O9 W9 k" j% T5 g" W& zprintf("职工性别:%s\n",curr->w.sex);
, `; @4 a0 T! s! D  Q6 z  [printf("职工年龄:%d\n",curr->w.age);( L9 U6 h, l, W( x* l  }2 W
printf("职工学历:%s\n",curr->w.edu);2 ~& d9 C! Q& P7 Y3 i0 Q/ ]/ K
printf("职工工资:%d\n",curr->w.wages);; O! N. ?% }. _+ t
printf("职工住址:%s\n",curr->w.adr);
; V9 X! \. h& ]% {/ Uprintf("职工电话:%s\n",curr->w.phone);
, p) f3 h- z. |# M4 [}7 C5 v2 C3 U6 [+ _
} /*录入职工信息*/( [( X( ~/ m: {4 \+ e5 {% q* _
int add(PLINK p)
% b5 }/ f3 s5 u4 i" a' m{8 K% E. Q+ P& |$ L
PLINK h = NULL;
8 g5 K. u$ F" ePLINK q=(PLINK)malloc(sizeof(LINK));
) s  H4 l$ X; N6 j* e6 i! Eif(NULL==q)
# }5 o4 k0 g6 O8 i. Z5 x# c{, h& C4 H; K' `5 y% e  K" I
printf("录入失败提示:内存不足!\n");0 _( l( Q2 |2 g+ q5 J
return 7;
4 Q" g8 k" J! C  _2 e7 E}
- `  C. ?* h7 Hprintf("请输入职工号(数字):");
& J0 N( s$ ?, r4 L! L9 bscanf("%d",&q->w.id);
. y  l7 c+ [8 w# N$ Yh=p->next;
, z5 E, s8 G  G8 j# y2 Uwhile(h)8 ?/ ]# p& K; j8 j; p1 D7 K9 U
{
5 C# v- }3 ]7 O$ g, D* y8 qif(h->w.id==q->w.id)1 b1 D# Z6 Z6 \3 L3 P  L: s
{# E1 Y4 p& C! {: m7 ^1 U6 x
free(q);+ ?  h) ?8 @# z' A
printf("录入失败提示:此职工号已经存在!\n");* j" E+ ~, N$ F7 f3 u8 S
return 7;3 c: V# u" l" ?" f
}
- i6 k/ t# c) ~$ X2 mh=h->next;) z3 i' D( o* `! P' Q+ V  P8 H
}
. o! f( n+ e! W! qprintf("请输入职工姓名(文字):");7 T5 r: T4 ~3 r
scanf("%s",&q->w.name);1 |1 N3 F6 a: W' u( P
printf("请输入职工性别(文字):");) u6 e% Z/ Q0 C$ c0 g7 Q" N" \. Z
scanf("%s",&q->w.sex);
! c6 h% ?4 Y! z* mprintf("请输入职工年龄(数字):");% ]: f% c6 f& B- z: E3 @
scanf("%d",&q->w.age);
+ r9 K4 D6 B1 lprintf("请输入职工学历(文字):");6 G# J/ g; h  p: m' Z9 o8 ?, N
scanf("%s",&q->w.edu);
  F, ?& j3 i* m/ V, R4 lprintf("请输入职工工资(数字):");; S/ s: U& h. U8 v; r( M$ l
scanf("%d",&q->w.wages);+ a; a2 ]: N: p% h
printf("请输入职工住址(文字):");$ ?" l: N5 ?! o9 E5 r0 S; q9 ?
scanf("%s",&q->w.adr);
: W! C0 v/ q& [5 T1 O2 u. a4 l! m7 y8 F+ Jprintf("请输入职工电话(文字):");" U9 \6 B9 ~2 o. l" g9 c
scanf("%s",&q->w.phone);4 W5 S$ ^* {  c7 o
q->next=p->next;) i1 a4 _* I& `- i7 I1 J$ v# O
p->next=q;
4 K6 c$ C( N! n4 `$ e- ~printf(".^_^.录入成功!.^_^.\n");
! M# x  G4 c8 h9 Breturn 7;3 F8 P% e& G$ F  S* f2 Z; P2 c9 A) b
} /*按姓名查询*/2 c0 _. B; z1 `( M" T" J+ t4 N
PLINK findname(PLINK p,char *name)
4 k, q+ M- M7 e{! p$ q. |& I* q
message();6 Z( ^+ l+ ?, Z8 ]; M+ a
printf("按姓名 查询\n");2 x$ N2 }# `' L- i3 X5 }1 m# |
printf("职工号\n姓名\n性别\n年龄\n学历\n工资\n住址\n电话\n");
; d- A) p9 K2 J0 U  I+ ?while(NULL!=p->next)
; R0 Q6 J4 j, S) H: O" ]: n& m{
4 ?2 w% A. c4 y7 ?. A" pif(0==strcmp(p->next->w.name,name))
' @+ i7 T4 {( f! G( W5 {( G- E& O{
) Y! A6 @/ p9 \. n  z/ sprintf("%d\t%s\t%s\t%d\t%s\t%d\t%s\t%s\n",
5 i' r0 \- Q8 j8 Q- J! Fp->next->w.id,p->next->w.name,p->next->w.sex,p->next->w.adr," Z- H" V- q) f: P
p->next->w.edu,p->next->w.wages,p->next->w.adr,p->next->w.phone);
3 D4 ^# i$ [3 yreturn p;
) l9 F. S7 o0 Y+ l}! i1 h( U7 O( V5 v( T
p=p->next;' ?; d2 ?! F, [
}
9 a$ I1 j5 Z) Dprintf(".^_^.查询结束!.^_^.\n");
% f+ ?* @. ?8 v4 g0 i1 creturn NULL;
0 I9 K, T0 L9 m' S5 e. O, F1 t' M} /*按职工号删除职工信息*/
4 P6 N4 A" O- Qint del(PLINK p,int id)
4 r4 Z' K( S: P7 v6 h. L; E1 s2 N- Z{  j6 o  [: `& q* U' ^" {0 Z
message();) _- W- e2 p3 W* P0 a7 @  V- _
printf("按职工号删除职工信息\n");
; ?# O1 C1 }; d  ~9 Zwhile(NULL!=p->next); W% s4 p1 S% Q$ _7 [! B
{$ z- e  c" }6 [. H. A+ v' ?
if(p->next->w.id==id)
3 Y: s4 B8 ^  f6 A3 I{5 ~; I" W( ^+ J4 F: ~! O# w3 O
PLINK q=p->next;
$ M9 r' b$ t, O- R8 X  Zp->next=p->next->next;# I4 O6 `, U; y9 J# N$ J
free(q);# p, s/ Y2 ]( S( A' h
printf(".^_^.删除成功!.^_^.\n");1 M' n0 Y- w1 T
return 1;
) o1 ^& a/ q) Y1 F}/ x  p1 F! u) J- N* [' e
p=p->next;
4 G9 G5 I/ P3 c}7 `, V- E  |' a" I. A! I: ?5 M
printf("没有你输入的职工号!\n");  M! \% o" g8 e: G; s5 w
return 7;
0 e! i& @' ]8 _3 G# d2 a} /*程序结束释放内存*/
% B7 q' K3 z# _  J& {void release(PLINK p)' C# y4 c" }- F
{7 ]" f( L/ F# p* `, W' B
PLINK q;. D6 ~% c) f; m+ @1 B  r: }
while(NULL!=p->next)$ o. v6 Z" A, H$ Y) a6 M
{$ Q/ ~+ S# T7 x
q=p;& h+ a  R3 M$ E& g$ p* E& ~
p=p->next;+ X6 |* j4 m  C* r3 V* [7 S
free(q);( q- d$ s6 E6 h/ J# g- V9 C* M
}8 M0 c9 j: o1 T6 O; H% U
free(p);1 P" I, M+ N: V" R* z4 L3 ]$ p
} /*查询调用*/
9 H9 i. X3 ~+ G. [: _7 X5 Rvoid search()2 C+ i0 D# A0 e6 O. b4 E6 ]
{) i) U$ z$ V  q7 \: C3 E
int id;
! i$ C5 O8 c% o# u$ C! lchar name[20];/ n1 b1 p( t# h! ]
char str[20];
: ]% I; y: ^8 h5 S) K% @# h! SPLINK pworker;+ A( p* C8 c# Y( Q+ i6 g
int l;
3 b/ J9 Z% q$ u: n2 T* A1 [. |printf("\t\t\t\t*姓名查找按:1*\n");* {) }* V, c: ?" {2 c% I3 X: b! f
printf("\t\t\t\t*学历查找按:2*\n");+ d4 e1 ?/ a  ], `& W, y$ l: E
printf("\t\t\t\t*职工号查按:3*\n");: v; P! C# ~" q7 u9 T* G
scanf("%d",&l);
+ @' R. x- j' W6 y) F1 hif(l>0&&l<4)
( }3 z: o4 s1 Y0 B{switch(l)
4 _3 Q  Q7 g/ z# Z! k{/ r$ ~! R; Y2 j& z! C3 q
case 1:printf("请输入要查询的职工姓名:");/ f- f1 ]  m% l
scanf("%s",name);
1 m  O( x6 a5 |" {findname(pworker,name);
% i6 J" t- y, E6 D( `- Tbreak;
4 E# @( E. t9 r. l& O, Ycase 2:printf("请输入要查询的职工学历: ");
3 l4 D( j1 B& ~scanf("%s", str);( c4 p* t: y8 W1 Q5 Z7 F" [
find_sr(pworker, str);
. _; L- ^- g7 L' Zbreak;
4 k- n: \: L8 b5 B' t2 ?; mcase 3:printf("请输入要查询的职工号:");& i: Z' j9 c* A  S% `% q7 e
scanf("%d",&id);  X: E# g  J4 B1 f3 L
findid(pworker,id);. T1 E( @3 w  ]+ t" t" b5 p! i5 x
break;) \% N4 W2 J, x
}
& [/ z& P! h0 v; gprintf("\n\n选择完毕!!!");
9 Y; O8 G. w8 e% b0 v" E}8 f" k5 L% M( M3 A. s8 O; C
else printf("\t\t\t\t输入有误!!!");
9 q/ X* s" H! L) F: B& H# N} /*修改职工信息*/* L$ w8 p5 |9 W8 `/ d! y  L
int modify(PLINK p)) x& ?/ y% P! @
{ int id;3 f# [! K: N' N" Z6 Q6 A
PLINK q;2 Z. W6 m9 t3 m, _6 H
PLINK h = NULL;
* Z4 p" P4 @0 y' }3 Gprintf("请输入职工号(数字):");
  r% f4 r8 x) R, P" _* ]scanf("%d",&id);7 J. E( f0 h" m5 V: ~/ Q) _, x
h=p->next;
6 y; M8 c# W% S$ Y6 nwhile(h)
2 k/ q: s$ q* ]+ O{
5 e7 {) }: i# X1 C7 d" yif(h->w.id==id)$ Y2 F7 ^) X# _5 N5 Z4 x4 T
{
- b* E$ `5 S" _- B! bbreak;" c# z7 J0 N/ ~# U* f
}
7 \4 j( A) l5 sh=h->next;
0 }1 s& E* e. G) C3 v: }7 K; W$ @}
1 m7 P# A: ^+ j& D  x" p2 b8 l- s: [! Oif (h == NULL)
3 g( e1 a/ L! O. h$ h% D5 c{/ v! @' K- r5 o" ?4 w8 K+ O1 b& Q
printf("找不到此职工,请重试\n");
1 H& k. M& N, o2 Y8 X# T  M# Rreturn 7;- }& ?- u* U' {
}1 w. ~+ F  ]" k5 V7 q, c* x
printf("请输入职工姓名(文字):");. u- X8 y; {5 s! |- q/ T9 H3 W5 R
scanf("%s",&h->w.name);8 L; k* F% O: v# y7 f; i
printf("请输入职工性别(文字):");4 H0 c9 _- }6 n: g
scanf("%s",&h->w.sex);
; [, j) @9 F, H) e6 X8 Rprintf("请输入职工年龄(数字):");
5 k3 k4 I3 w( p) h; u/ O, M1 e8 Escanf("%d",&h->w.age);, W7 x- j  @5 v1 Z
printf("请输入职工学历(文字):");1 v  y# r. R. M! J+ M3 C( Q0 F
scanf("%s",&h->w.edu);! y; o# I/ h, y. \1 X& z
printf("请输入职工工资(数字):");0 q+ L- T7 v  z+ V% Z
scanf("%d",&h->w.wages);2 E- `9 [8 c: y# A
printf("请输入职工住址(文字):");+ ~. o  T& g+ y! W
scanf("%s",&h->w.adr);7 g; n+ @" z" \2 E8 N( G) n+ L$ c
printf("请输入职工电话(文字):");
( ?* u8 S& z5 {# H9 E' J: f* {" s1 c1 Zscanf("%s",&h->w.phone);
% M1 x  y5 v$ r2 J" nq->next=p->next;  g7 E/ c8 m8 ~+ @- @. U- X/ S
p->next=q;. O! P( Q* Z9 v; O( B9 R7 ?
printf(".^_^.修改成功!.^_^.\n");5 p$ N2 v" r% \3 g# b
return 7;( Z9 x- H, n: ]: {* z1 h% v0 _8 c
} int main()
# V  g1 J, V3 m6 y* s{
5 d& }0 ?4 D3 D. p0 b
1 m8 P$ i" a5 o, x8 }) Lint cmd=0;/ F- T8 |' j; v: Z5 L
int id;
7 T6 L5 P& L0 x( }# g8 |7 Gchar name[20];) T' p9 b) U+ `, I/ ]
char str[20];
4 ^& Q9 a' o$ m5 x5 oPLINK pworker;( [/ R% ~% Y" w! J0 W7 n8 _
if(!(pworker=create()))3 q& J6 c1 n% `# K
{4 Y$ g5 e6 H8 a, k" G
exit(0);
4 _$ U$ h: S2 d- f% d0 ]& `# Q; S}9 N: c' C: z9 Z8 c7 f- O
while(cmd!=7)
. y# x" I. ?( R( k6 J. g8 T{
" \0 ?' U2 P4 J' u; `switch(cmd)  z; Z' k9 ~% S8 o
{; l$ p6 E- D' ]2 v0 \) i0 _  v
case 0: message(); break;) t$ w3 {5 U' [+ D+ c# v
case 1: add(pworker); break;
  G8 L- i% V- l3 rcase 2: show(pworker); break;# p/ _$ y0 ]5 r1 I  S
case 3: search(); break;
! h; R7 o2 y) _# |+ _case 4: printf("请输入要删除的职工号:");
% y- p6 a& Y  @. a' p& y6 wscanf("%d",&id);; |0 l1 Q! r) E" _/ T9 i
del(pworker,id);
' t" ?& \! p* I* \0 }break;% [0 }  ~9 a& I/ v8 l
case 5: modify(pworker); break;. p5 g0 C1 ~7 `9 Y5 I
case 6: message(); break;
# h1 p$ _/ b/ L7 U  t  _0 z9 E8 w}
& ^2 w; `  E- U9 [0 h) N; M: Oprintf("请输入操作命令数字:\n");
5 G  [# d! i( hscanf("%d",&cmd);
  y( H# r4 l. b9 N+ g}
+ n/ r2 N( \: a' s3 ~& b% aprintf("谢谢使用!\n");
' x3 h3 a) C" _5 v7 ^' O; a" Urelease(pworker);, g4 H) g* \4 T$ u$ D# k7 A
return 0;2 T5 d4 P# K8 K% u0 k! E
}
* c: i2 O; k5 r
6 j2 n- W4 s% M3 N* s% w: d! t' g- O8 |4 A) W6 r- g
这是职工信息表 能运行出来不过查询功能不行能帮忙看一下是什么原因吗。。再此谢谢了!
" d! m9 c  f" K, H7 v" Z3 m6 K7 |0 Q2 j: |, `1 Z8 Z. u

5bde8c5494eef01f15b25a35e1fe9925bd317d69.jpg (118.36 KB, 下载次数: 163)

5bde8c5494eef01f15b25a35e1fe9925bd317d69.jpg






欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5