数学建模社区-数学中国

标题: 【转载】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* dchar 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& Iint 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/ itypedef struct link2 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, lPLINK 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, B4 = 红色 C = 淡红色
* E2 f, W' Q, Y! e5 = 紫色 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 jsystem("cls");
0 M  `$ F' ~; i' Pprintf("\t\t************************************************\n\n");
- H& o' J5 f9 ]7 L1 \! N$ Kprintf("\t\t>>>>>>>>>>>>>>欢迎进入职工管理系统<<<<<<<<<<<<<<\n\n");
& f' `- Z8 \: B6 Y) @5 vprintf("\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 Pprintf("\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 gprintf("\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" {' Aprintf("\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 wif(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) {, Zif(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' pprintf("职工姓名:%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 Mprintf("职工工资:%d\n",curr->w.wages);
+ s; o# O3 a  o+ A& zprintf("职工住址:%s\n",curr->w.adr);
% p- k& f1 C9 sprintf("职工电话:%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: xprintf("职工性别:%s\n",curr->w.sex);
$ B! [/ E' Y! M: L- P4 \9 G0 Cprintf("职工年龄:%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 Lprintf("职工工资:%d\n",curr->w.wages);
* M2 I0 A- N" n8 Tprintf("职工住址:%s\n",curr->w.adr);
6 c5 K' m: u. fprintf("职工电话:%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; mPLINK 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& Efree(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 Cscanf("%s",&q->w.sex);
0 P+ G, ^/ S% T$ b% Pprintf("请输入职工年龄(数字):");; P# Z! M0 K$ b& e
scanf("%d",&q->w.age);
: Y# J% m  m, q+ Eprintf("请输入职工学历(文字):");% 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 Lq->next=p->next;
6 e' ~, z" O0 p+ wp->next=q;* h3 k" N# {8 c: d
printf(".^_^.录入成功!.^_^.\n");
/ b& m# |1 W: d( [4 ireturn 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, Mprintf("职工号\n姓名\n性别\n年龄\n学历\n工资\n住址\n电话\n");
/ J0 f5 T. \7 W% Fwhile(NULL!=p->next)
: l0 s2 B# u8 \( C{
. c8 W: j1 ?+ g; pif(0==strcmp(p->next->w.name,name))4 d: s3 H/ t% L! @8 X1 Z: `1 L
{
" t8 b2 p: B/ W4 G7 ^; fprintf("%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% Bp->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. ~' Ap=p->next;6 i  B; t0 u9 }, Y. L
}
! p- K5 C5 ]- Y. C; b9 S9 B( wprintf(".^_^.查询结束!.^_^.\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; {) PPLINK q=p->next;
( [2 c+ ^7 B! gp->next=p->next->next;
7 C' M! h- S7 p3 Mfree(q);3 O8 n; R' i1 q' w, q
printf(".^_^.删除成功!.^_^.\n");
5 c) o2 t$ C* ?# i, treturn 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 eprintf("没有你输入的职工号!\n");
$ p' w( x! _7 Q3 n* wreturn 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 sPLINK q;
5 b% W! J0 q- Q+ ?: T( r4 Twhile(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( Kfree(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( vint 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! Jint 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- \+ Zprintf("\t\t\t\t*职工号查按:3*\n");
8 k. W/ F6 R* j/ j7 Iscanf("%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. ubreak;" 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, zbreak;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, afindid(pworker,id);8 v0 Z1 F. ?, Z% V
break;
- y  a8 o/ T& {}
, A* U# [! @5 v: l# Cprintf("\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 EPLINK 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( vscanf("%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 Rprintf("找不到此职工,请重试\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 Nscanf("%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+ uprintf("请输入职工学历(文字):");
7 _' Z; ?6 D" h4 t) x0 ^( escanf("%s",&h->w.edu);
1 \: e* O" p/ e6 }) i, zprintf("请输入职工工资(数字):");
5 _  |, t) O# c! ~; v3 t5 |scanf("%d",&h->w.wages);
( y) ?$ L) c1 ?1 _  c9 `/ sprintf("请输入职工住址(文字):");
! J9 v6 b$ n# u4 ~$ A% R' pscanf("%s",&h->w.adr);
* a& o" t$ |1 |: Y: wprintf("请输入职工电话(文字):");
* i) v! E4 z" x2 k" Ascanf("%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$ t8 d, a) g* q5 w8 B- |# g; k1 N' l7 h
int cmd=0;
' B  H" E$ w9 Q0 y* f+ dint id;
% Y* z. P# ^& Y! Echar name[20];$ j7 W- F5 ^; ^9 y1 q3 {
char str[20];/ V% A7 s9 a' t' x  `
PLINK pworker;
7 [) r( c1 d, _% m4 mif(!(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 mwhile(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! Ncase 0: message(); break;
2 Q! n; e: \/ E( }case 1: add(pworker); break;
' G* [$ q! W& f  Z' Ycase 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) mdel(pworker,id);/ P( u5 S  Y8 L) g$ g
break;
( v8 W: {/ ]$ A5 R% _' w. Qcase 5: modify(pworker); break;
7 G. P, o1 D1 P2 dcase 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)

5bde8c5494eef01f15b25a35e1fe9925bd317d69.jpg






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