|
四川大学网络教育学院 a+ l( B( `; q' M% H O( x
课程设计说明书
6 f+ {4 @2 }8 g# K) x- \本文是范文,仅供参考写作,禁止抄袭本文内容上传提交,违者取消写作资格,成绩不合格!1 O& V( ~! K' G/ f' g
5 V \4 j% j! x) a* c
课程名称 程序设计语言课程设计 : W& g+ w0 M- Q8 n9 U+ `+ i/ k
校外学习中心 * {/ b; ?/ T7 m0 P
专 业
N }5 y! ^3 S# S( h层 次
" r* T8 L; R$ z( o% E! i; Q% p) w年 级 : x, u% l S6 d8 L( A, p
学生姓名
, O$ U- E! Y+ |5 ?$ k- l4 n" _; B5 Y学 号
! S3 n% K& J0 i# D2 N* P/ g/ ?: ] D* ?. w8 c. r' U3 s. L
8 T( Z8 n6 s" I& d/ E9 i
' s) j$ O$ |7 n% z, ?+ S
年 月 日
g( I, P0 @: Z" `2 {4 v {6 ]: `实验设备管理系统设计- g9 ~7 s* K: c) c, z
1、程序功能
! a1 x3 |9 Z4 Q$ s( l) _实验设备信息包括:设备编号,设备种类(如:微机、打印机、扫描仪等等),设备名称,设备价格,设备购入日期,是否报废,报废日期等。本实验设备信息管理系统,能提供以下功能,实验室设备信息用文件存储,提供文件的输入输出操作;要能够完成设备的录入和修改,需要提供设备添加和修改操作;实现对设备进行分类统计,需要提供排序操作;实现对设备的插叙需要提供查找操作,设备的查询可根据设备编号、设备种类、设备名称、设备购入日期、正常设备(未报废的)等多种方式查询;另外还要提供键盘式选择菜单以实现功能选择。8 }; N! @' a6 j5 F9 |, L' z1 i6 _
(1)能够完成对设备的录入和修改。
, }/ Q0 d$ A1 d% ?3 @- M (2)对设备进行分类统计。
9 d/ d! k* B8 a1 u$ d: p (3)设备的查询。6 f* V, A$ A- @; v
2、程序设计
) L. y* Z/ G5 ~$ P% c) e6 ]根据需求分析,可将系统的设计分为四个模块:输入模块,修改模块,统计模块,查询模块;实验室设备信息用文件存储,提供文件的输入输出;建立实验设备信息结构体,结构体成员包括:设备编号,设备种类,设备名称,设备价格,设备购入日期,是否报废,报废日期。
! ^ r8 D5 |" ?8 e* ^4 W% @- s# p (1)主函数设计: `" H' E( M# C2 I7 q- B/ \
主函数提供输入,处理,输出部分的函数调用,其中各功能模块用菜单方式选择,即主函数里显示一系列功能选项,判断后,是否调用个功能模块用了switch()选择功能。- {& U# Q. ]4 r4 f) h. }$ {
(2)各功能模块设计
M" w% t* E: h2 w5 M& P6 ? e 输入模块:定义了文件型指针变量,打开文件输入用户要输入设备的个数,输入设备的各项详细信息,将输入的信息存储到文件的中;用到fopen(文件名,使用文件方式);fclose(文件指针);fprintf(文件指针,格式字符串,输出列表)。; w. T; h7 b$ C: f8 i; F Q# i* K
修改模块:输入要修改的设备编号,是否找到该设备资料,如果找到记录,调用修改函数,对该设备的信息进行修改;如果没有找到,返回主菜单。在寻找的过程中用了字符串的比较strcmp(字符串1,字符串2),如果字符串1=字符串2,则函数值为0。
# S5 d% U% g* @9 n/ Y9 L; X如果字符串1>字符串2,则函数值为一个正整数。9 Q0 e$ h2 @$ d9 k+ \
如果字符串1<字符串2,则函数值为一个负整数。. H! f" Y4 O9 Z% \- K
比较时,只能用if(strcmp(str1,str2)>0)。还用到feof()若到文件末尾,函数值为“真”。& c- A2 n# p$ p# l: z4 l" P$ z. n
统计模块:打开文件,并对文件中的设备信息进行统计计算类型数目,总价格,平均价格;此程序中将char类型转化成double型,用到了pc=atof();fscanf(文件指针,格式字符串,输入列表);同样也用到了字符串的比较strcmp(字符串1,字符串2),feof()。 . [6 m3 f6 J7 J2 P6 r' G/ y
查询模块:询问用户想要选择的搜索方式,分三种类型查询(设备名称,设备型号,设备价格),再用switch()的选择功能,每一种类型有用到了feof()控制循环,字符串的比较strcmp(字符串1,字符串2)," S A+ B2 L3 q8 r5 p
, g2 I/ L# ?/ p9 K" ?3 C# P# [/ l7 X/ Q0 {, \# y }
; G6 m" O2 ~: ]% e
3、功能模块图! ^- U" ]/ U* V* h B F. N
(1) 输入模块* e; _" _2 R6 [' l' x! `
! @, c$ D8 @8 _, n8 J1 v s/ N
; P/ i2 k+ Q5 @, s8 D
/ ]( U" F+ W/ L S) B$ \% N
/ l w& Q0 X4 e7 H4 N* o
6 \! f- \# W! J) l" v+ ^+ q7 F' r& f; M8 m! L8 s# h: Y/ g
2 o- n8 b5 w+ |7 O0 ~- r
(2) 修改模块
o' ?9 q& f0 r4 o0 y' n* N. T# x' e
' A' W+ C6 J3 A9 n% n7 l0 l8 I ; c4 a. `8 y' u/ f2 V
(3)统计模块
& f+ J, X( y: y' y8 g+ m) n5 r; J% W# e2 Z
$ h/ Z0 s% D) G- q
# ~( T" r6 O* }' |6 |! k
3 a b) R; y3 S7 b, ^
4 w4 }+ E5 R- J7 r% q- j
; e; B9 {3 n# \4 E
; {5 R! V3 E& Z8 S1 V+ o7 |0 [/ O$ M' b% q+ n
- i, ?1 f; K% t* p' R h% a8 P, |7 S2 u9 U4 C- X/ F1 Z
4 r- }2 I1 Z5 M$ a6 g
" r# c, R C- n5 n* C/ j, [* b! {, S* _
(4)查询模块
: {8 l4 V2 G, D+ I
& ]5 c, l- v$ _- [3 g3 K) r1 f : I; j3 W$ y! K9 R) g' a
4、数据结构设计
: X" r1 d6 F! R% i! { y此程序中用到了9 U' y1 V: I% h: @
(1)基本类型:1)常量的使用#define N 50,2)整型(int),
5 R, Q0 \) O* D: _% p" T 3)字符型(char),4)浮点型(双精度double)。 0 G7 [0 f3 H+ e
(2)构造类型:1)数组类型 (equipCode[10] ,equipType[20],equipName[20]
! U& e8 s; K& ^; ^( _ equipPrice[10],equipOver[20], equipYesno[10], equipTime[10] ) . b, h f r4 b
2)结构体类型:struct equip4 q; z$ Z& n( R& N
{
5 T, y8 ]5 _; ?; M2 K# p char equipCode[10];
8 C$ N# c8 C/ x! v0 `; P( d" | char equipType[20];
/ s' u; A) {: O, u char equipName[20];
5 S9 u- k$ s5 m) f0 `5 \) K char equipPrice[10];* T0 D5 X: n0 n. s! R
char equipOver[20];
+ y! A9 n0 _" k8 s char equipYesno[10];
' W) e7 ?1 u4 q" ` q( ^1 K* W1 `: Z char equipTime[10];
; K: i2 L2 E; Z' D1 I Z1 L. f }equ[N],temp;6 W- ^" a: w; {$ h z D
(3)指针类型:FILE *fp,文件型指针变量,fp是一个指向FLIE类型结构% z: I9 h) Q: a8 @, r1 Y) l
的指针变量。
7 d7 n; D% \9 A* K9 B: F5、算法设计, n% h a: R" S, B
; u1 j) ^9 K& ^/ B7 k
; O4 z9 E" ~" w) V- U+ D7 Q; ]6 S$ p+ ]2 D
) Y: @$ q' z2 X. p0 p
8 U E' y+ \4 j3 c" P; V7 i! C$ z% {. [& N$ ?% R
* M, k* h( I/ E( o: L
# k4 n n \% m4 J0 i4 ?" ^
7 K0 ^1 c( o- p3 E, V4 i5 ^& S& q, a* W$ s
: c# Y3 ]: E. g4 t! ?/ S
% y3 L+ {0 {/ `! `8 @
* e# W h- H8 E$ I8 ]! c D9 P" X5 J$ h7 ~0 l0 H" o
/ I* h' R, D4 s
! M( ?3 Y1 Y# S, _0 W7 y3 ]) ]
, g' y* `" s; i+ c: t- b9 a5 R0 @& G2 C" \; O+ P/ l( b
$ A" `; x& ^1 y' a
. U. Q$ T. F) y# `; @/ L
: G8 T8 t8 G" v+ L% n4 G+ b0 o+ I1 m3 e; x. L: \8 H' H( v6 Z
/ K5 m; X8 ^' {3 l, F
6 v2 F9 j" \, T( V( \
- W+ C) v, Q, t/ C
0 l4 M. ]' m6 F/ N8 {( X* P+ L2 a1 m5 n' D3 H$ ^
. t6 Q) R" j2 h' W' @
3 x! L* k4 @. T* O. Y b" z! m+ F9 }2 s) ?( O z8 k
$ A3 O3 ?7 k( d: E _8 |! x0 J
% o8 _4 t2 u% X2 P; F# `- ]8 l, ]7 a5 g) W5 j
6 c8 T) Q' b7 A/ V8 s3 J* u7 p. X8 [" B6 W
# t7 o: _. p; a
+ ?8 X) S% F8 V9 L8 _: n
! Y6 Q) B& ]+ r+ b
4 ]6 [5 s# `- f( [! N& P+ @6 t3 L1 z8 J4 m
6 s/ [& G) o3 Q& i% Y
" s" @/ v* Q7 q6 C
O2 Y! S4 V+ w8 ~6 j4 w* @: T
7 f2 a4 [+ Q e, j; N* _7 f
* q2 T1 x" \7 w7 \* ?* `! e# L# H0 J i2 B. w( G
+ K+ O/ G0 i/ |0 ~# [* D
, g% U7 O# a& g4 `% j3 p0 C6 T: ^/ _
7 l% H i. q# ~2 y! B
: ^! x7 [6 `; q7 t6 V
& @& {+ D9 \7 Y, |0 r1 |; M6 ^
( Z. L" K% w$ _6 Z0 q; m* E
3 x+ V4 z0 l, t; k! R7 w9 P& N5 ]% _0 D
6. 程序代码( s$ U7 G+ R# q
#include "stdio.h"2 ~) x# k9 l3 h9 e* w
#include<stdlib.h>
1 o3 n# [# W# m- C/ i% ~#include<string.h>' B7 H! x. l* u3 k% A( p; U
# define N 50
# j4 l/ j r8 w8 l7 X1 T Wstruct equip
% j: P- W5 G. n# @* x4 D2 K{
( n! q( a7 o- U char equipCode[10];
/ Y" K7 O# }: B6 e: Z+ m char equipType[20];
! C" ?. R4 a+ U; f# A; Y- ` char equipName[20];& a( v; e, r) C& ]' H
char equipPrice[10];
- D/ [' s2 M( B& X: P1 u, S char equipOver[20];5 G; t1 E' I" Q) I; e
char equipYesno[10];
, c8 W; Q4 G3 B* I4 Y- x4 E char equipTime[10];
S6 s! H: O0 I% R0 Z' ]}equ[N],temp;
- h2 C; a9 z6 Rint enter() //输入记录 / B: o z* q4 J1 h
{
C: E# a1 n! S- B FILE *fp;
" w* c8 H I! J( u4 F! z int c;
, _5 f7 ^8 r* `9 g" e) q printf("**************************************\n");
! O# @# F; Y1 C& z! P) G) B$ G& T printf("Add new equiment\n");) S6 ]! l0 f9 W9 M8 I4 _ R
printf("**************************************\n");' X7 O4 ^( O/ R8 P
if((fp=fopen("test.txt","a"))==NULL)5 c' x0 I7 y! a
{' j! L" t8 J/ A, q( k; i4 C7 ^
printf("Can not open file!\n");# ^0 k- _9 |, K( x& o. v4 t3 ~
}% O3 m6 M1 b. V6 |0 K. q% G! K5 Y
printf("------------------\n");
! l% U- y Q3 O printf("请输入设备ID号:\n");) ^0 h) E1 y/ e8 U) R+ _2 A/ G! V
scanf("%s",temp.equipCode);! }/ z/ H/ w( K& X
printf("请输入设备类型\n");1 }! q) @1 p+ c1 e
scanf("%s",temp.equipType);
3 Q9 _7 u7 y/ e. i) f: r printf("请输入设备名称\n");
5 u3 t7 a# U! g1 f* v" n scanf("%s",temp.equipName);
6 a+ Z q4 x4 Q/ v- U; h0 b3 G- y printf("请输入设备价格\n");3 C! p* P; e, W0 g* i
scanf("%s",temp.equipPrice);
a+ ]. Q; m; O' U# H0 p" v' Z printf("请输入设备购买日期\n");
/ i: o( C- s1 p0 @ scanf("%s",temp.equipTime);
* |0 P3 x& s m6 o printf("请输入设备报废日期\n");) r3 v- p/ o6 z* k1 h/ v" V
scanf("%s",temp.equipOver);
8 z8 l2 J+ r1 k9 U5 h# X t! z6 R printf("请输入设备是否报废\n");
. I$ N5 r% r" u# G7 E% B4 D scanf("%s",temp.equipYesno);- X* w/ `/ p Z' \* H; o
fprintf(fp,"%s %s %s %s %s %s %s\n",' P* S$ {5 x/ K5 L. k
temp.equipCode,
- |9 o! ?. [) V3 {/ k" }3 n; B6 q temp.equipType,
) } `% Q1 Q1 z7 C# k. `% ~0 b7 \ temp.equipName, B$ G: O+ _5 q5 G% @9 S
temp.equipPrice,
' x. f6 P! E1 k) H temp.equipTime,' p8 M7 G/ {4 n! x( _& G
temp.equipOver,
1 Y" q' [7 \4 d/ N \4 ^ temp.equipYesno);
1 K8 _5 U: Z3 r3 ]* Q7 I fclose(fp);
5 C5 H- F- s# G% U printf("\n-----------------------\n");
! \5 X0 Y8 R Y7 v+ m1 { printf("Return to main menu?\n");1 o$ n' M: p- L$ B! ~6 j' A
printf("1.YES,Addition Successful\n");
4 L& m% q Q3 L3 E6 u printf("2.NO,I want to quit now\n");
2 M0 r" L' r- D scanf("%d",&c);
# v4 u# |! O7 D' M {" ] if(c==1)return(0);
! i6 _! b3 R! }# A9 ]5 |3 ? if(c==2)return(0);! S% W' ]; j: K3 O) X- X6 n
}
7 h4 E0 @- m6 S2 L int modifty() //修改记录
^! y6 C" l8 I& v; r{7 `8 K; a$ n$ l0 I+ i
char code[10];
. P# k3 @6 x8 C int i,j;& Q- L6 X/ V7 _# E7 r$ b$ C1 B
int c;
' j7 }- [. b; V FILE *fp;+ M3 v: G5 t+ ? F. h' Y
printf("*************************************\n");( [ W' @2 S- j4 h: g1 s
printf("Modifty for the equiment\n");
( A7 Y% m, o! l) L9 Q- ` printf("*************************************\n");
4 E& Q0 i! r3 A9 V4 D" U1 m, l' s printf("Please input the equipcode for modiftying\n");, `4 t6 `! T: m* c1 p
scanf("%s",code);
6 y9 w9 }$ t% y; P8 u7 W/ f- C printf("------------------------------------\n");
1 p/ h% l# M+ jif((fp=fopen("test.txt","r"))==NULL)/ o9 F: q$ ]4 N! D/ E# ?0 p
{& U$ W% e( p7 U1 D6 c- _" d f
printf("\nCan not open test!\n");
6 ~5 ]6 @0 j# i) d& J' Y}# {% a; Y/ J! s) u
for(i=0;!feof(fp);i++)
3 b# n" L/ ~! d' K+ `4 P0 M X{
/ y% b2 ^; Y& K# t' |" B/ z fscanf(fp,"%s %s %s %s %s %s %s",
6 Q6 H2 Y' J9 X/ ^$ @ equ[i].equipCode,
8 n: F( I, W; Z$ e equ[i].equipType,
2 N' W2 H# G _7 V equ[i].equipName,
; v+ ], u, U% f0 U) H* ~) b' H equ[i].equipPrice,3 D/ C" M- B8 t
equ[i].equipTime,+ `8 P1 e) U& o% Y. H
equ[i].equipOver,
9 |/ q% @& H% J% l equ[i].equipYesno);
& W, S* z' ]/ ?1 ~ R: }0 [; k if(strcmp(equ[i].equipCode,code)==0)2 t0 \; K( V- z- F! ]" K& z
{
: d& A# }5 }+ O4 n9 P) P: D( p printf("------------------\n");( H0 U+ t8 n1 G0 F
printf("Input new equipCode\n");
8 i" A8 g& _! w. z ? scanf("%s",equ[i].equipCode);
) F5 Y# h7 z$ F; y6 `* k printf("Input new equiptype\n");
2 L1 ~2 q3 J. Z3 e: i( q scanf("%s",equ[i].equipType);
' t- y4 ~2 t1 ? printf("Input new equipname\n");+ m [ o: S. o9 u: w% z& T
scanf("%s",equ[i].equipName);
& ]1 e1 Y6 j9 e. Z9 o: ~# U( X printf("Input equipPrice\n");, b* l6 m; S& I* O4 c. ~; M2 Q' ~" o0 x
scanf("%s",equ[i].equipPrice);
# l3 V% M* ?) q$ H+ R' R/ f; C; J9 ^ printf("Input new euiptime\n");
6 N4 c: _) F! w scanf("%s",equ[i].equipTime);" D, Q* |3 i2 _" \
printf("Input new euipover\n");" Y/ v9 e( _ d2 [/ L- V
scanf("%s",equ[i].equipOver)
4 z/ F4 a: v% C% ^% {; e, d$ ` printf("Input new euipyesno\n");1 l& N/ \& \5 L4 I5 g/ G% R/ K& V. y) o
scanf("%s",equ[i].equipYesno);
) I6 L& y- @( W7 R" z}8 y0 R$ ~7 O) N9 r% ~1 g8 M
}: C6 y8 a+ u% h, m- g
fclose(fp);. E0 X/ E M v
j=i;& H7 p4 `- h; X( I8 |0 \
if((fp=fopen("test.txt","w"))==NULL)
8 w- [9 D9 w! m* T) m b* B{
! k7 k9 Q ~9 d3 d1 ] printf("\nCan not open test!\n");. p' p5 B5 j& Y' P) e' o U3 U6 c
}
# f+ @- W7 i) r: f h2 pfor(i=0;i<j;i++)$ l$ l' u6 M0 K& v2 |# _& d
{
6 P% \$ [ c6 ?# f printf("\nwrite!\n");
+ A* B3 q+ I' r! X, V. l5 l* K fprintf(fp,"%s %s %s %s %s %s %s",
1 i/ D" h$ c# L9 s7 v; O equ[i].equipCode,
# n3 O- Y" L% g3 x equ[i].equipType,' k9 P! o# d$ H
equ[i].equipName,+ g3 z. A# Z$ b1 o r/ n
equ[i].equipPrice,
% x- Y A0 F/ X equ[i].equipTime,
5 s2 F7 M+ h, H" y, j o& l% a; v equ[i].equipOver,) _3 z, \* Q6 o/ Q4 t
equ[i].equipYesno);+ \* f) l) N; [/ d; Y
}
+ M, [. u* G! k( B( ^ F! o2 j6 G fclose(fp);( \ U! U# ?0 D% q
printf("\n-----------------------\n");
. U9 \% K8 d. u; o; l printf("Return to main menu? \n");9 v. o4 z2 h. v! B, c' ?9 {0 P6 h
printf("1.YES Modify Successful\n");) e- u3 v N# ?( d- c, l# `
printf("2.NO, quit now\n");
0 z# i9 R9 j' M' d( Z scanf("%d",&c);, m# {6 s9 ]! d: R& l* {: P7 R
if(c==1)return(0);! A7 M8 }& p* ^- q+ s
if(c==2)return(0);% Y9 U& @' p& b' H/ T
}0 s# Z' `: |5 F
: a8 n. v9 A" h: e8 L
int disp() //统计记录
9 b% ?" A# y: g0 O{: L+ B7 i" z: f8 f* n% l z j/ _
int c;1 H3 V. n1 [7 i& [4 e# g# V- \
double sum=0;% Q+ M9 f4 z+ H& w2 C
int count=0;
+ G+ @7 c6 l! y3 ]: a, y double aver=0;# z7 o, A' s8 U* e- C
char type[20];, A9 P; N8 w8 j; {7 q
int i;. U' a" ~6 b8 C! |/ \& m
FILE *fp;% Y0 V! N. Z: Q
if((fp=fopen("test.txt","r"))==NULL)! V9 |4 n# W/ s J* `
{7 ]+ n z2 w! H$ q
printf("\nWrong\n");0 U. W3 ]$ ~" h, V
}
P) J; r, I4 V7 m7 U printf("please input equipType:\n");
/ g8 \& D- i: x4 Y scanf("%s",type);+ G5 p$ |4 R2 y
for(i=0;!feof(fp);i++)
3 G$ r( A4 k/ `# v/ _6 `{
/ _ w% v- C! c8 D- z6 q V fscanf(fp,"%s %s %s %s %s %s %s",
) [' [1 G: c1 m equ[i].equipCode,
( T" r' k" B* P( t% o; s% q equ[i].equipType,1 I& i# Z. w+ F( I" G. r( h
equ[i].equipName,
4 \! d; H9 B: I7 g! a; T equ[i].equipPrice,2 |; N( s9 M4 y. V
equ[i].equipTime,3 G7 u* T) l$ ~) _
equ[i].equipOver,& ?% J; l8 q: k
equ[i].equipYesno);1 Y& R$ k4 h$ ^* Y4 s$ R4 u
printf("\nOK!\n");9 ^, w0 N7 Y' S( N
printf("%s,%s,%s,%s,%s,%s,%s\n",
' h# @% z7 C6 [1 k" e1 v equ[i].equipCode,
6 h2 r" u( m9 B# i* ` y equ[i].equipType,
" T- i2 s7 |; C7 I equ[i].equipName,
y9 `2 G6 ]7 x equ[i].equipPrice,9 o2 e1 L# {0 ~7 T; s
equ[i].equipTime,# d: \" ?+ @+ m) B. t* ]
equ[i].equipOver,
2 q! L7 P9 }! Y/ N+ i$ o( J equ[i].equipYesno);2 k& g" M* D6 r$ w- ?6 x: c" J2 e, c
if(strcmp(equ[i].equipType,type)==0)/ ^8 ?, |7 O5 q9 h0 w6 n1 ^
{
3 J; m8 n+ V! r! d, L double pc=atof(equ[i].equipPrice); //char 转换为double, c7 e0 O3 A7 l H/ Q0 i
count++;2 X F9 ^1 n$ `; }
sum+=pc;
6 h% D% T3 W. k( q' V, b+ Q. D aver=sum/count;
9 X0 V9 L' A5 v, D' d }, m7 D3 C" o, |- o8 O( j
}
# r# {( t g. @* N% a fclose(fp);% H+ |% i) q. U; B* n. m
printf("----------Statist--Result-----------");
' Q. j, R: D7 v0 O3 ^8 h* x printf("\n\n这种类型的数目:%d",count);
- w5 J* V; U8 ~* u printf("\n\n总的价格 :%lf",sum);
4 v+ W+ P1 E3 e* B! Z. M# | printf("\n\n平均价格 :%lf",aver);; L: {: x# P2 J& F' C |# U
printf("\nexit");
0 e- y4 T: [9 F5 r& k printf("\n-----------------------\n");
7 Q2 i/ J% X. ^6 O+ i5 c6 X printf("Return to main menu?\n");% Z g- G- x$ B5 j/ z- `" ]0 Q% I4 ^
printf("1.YES Disp Successful \n");. S6 p- D% u% v, F! M3 m' q/ o5 }% h3 Z
printf("2.NO,quit now.\n");
% b; V! K! V- y! ^, j1 j5 C scanf("%d",&c);
- L( t0 }/ m h0 Q0 x1 e% F/ o if(c==1) return(0);
7 n. \4 B- o+ B: j$ l if(c==2) return(0);
; V- g' S# ~( b9 m7 C}
% ?% O7 e, r K3 V; _8 P* S# e7 t$ O; u2 i: R
int search() //查询记录
( T# r. w( [- x* ]6 F6 G% c{
1 T- y1 l4 G' }, c& r& W, [ char code[10];
6 T: `7 C4 \6 W# i2 o+ M char name[20];( T- A" Z+ l' {. O/ [% J# e( m
char price[10];
5 L/ U: t S' l5 }! o int sel;" B3 ?6 ]9 y, o- R$ L
int c;
8 ?9 ], j& D0 } FILE *fp;
' q& y Z0 i0 |! y7 ?1 } int i;
& I0 L, g* r& [& }( r fp=fopen("test.txt","r");5 ]6 Q# Z! L. }
if(fp==NULL) exit(0);; z. i' d" G6 B
printf("please choose the way of search:\n\n");
; L" a( g' q% G9 C5 n printf("1.search by equipCode\n\n");; c. D& x% U+ L7 D3 u# A% o
printf("2.search by equipName \n\n");; }& I; l p, O
printf("3.search by equipPrice\n\n");
$ B. q" j: p" \$ p, s, Z/ i printf("0.return\n\n");
( y! _0 v8 Z+ x printf("please input number 0-5:"); v5 R) Z, z! g# m' F! Q+ |) V
scanf("%d",&sel);
$ S! o- _2 x2 A6 X+ S+ M! N1 _ if(sel==0) exit(0);
; v, c. |( @# R; x5 ]$ o switch(sel)
" Q# g3 w6 `) r{' K7 o7 S H) d/ t( ^/ J+ i
case 0:exit(0); break;8 _( H) U7 n2 S" u+ h
case 1:2 y& R, r- p3 y. {4 }
printf("please input equipCode:\n");
0 h; a. ^7 x; H& u/ b | scanf("%s",code);
. m2 {. }0 p/ l7 ~1 ?5 }2 U( e for(i=0;!feof(fp);i++)
, S; u% n) b7 ~" p( k4 U, X {0 U7 `8 h$ t9 W! b. a- T6 |1 A
fscanf(fp,"%s %s %s %s %s %s %s",
) X& n1 y9 ^& Q5 K1 F( o equ[i].equipCode,
/ E9 D3 K2 `% {2 _: l/ {$ w! u equ[i].equipType,9 v1 |& l3 F4 |/ P/ L4 R: r' O
equ[i].equipName,0 _3 X9 ~ o ~6 s. u2 }
equ[i].equipPrice,9 Z" k, ]7 ]! U) l
equ[i].equipTime,/ Y8 E2 p6 H/ K2 ^. w; w) H9 B8 m
equ[i].equipOver,
5 i# D7 D( N% B3 f- { equ[i].equipYesno);
6 \& m4 K7 [% ~& N if(strcmp(equ[i].equipCode,code)==0)5 V0 t- B5 I2 e4 K% C
{
2 J; w! ^# Q% B printf("\nequipCode,equipType,equipName,equipPrice,euipTime,euipOver,euipYesno\n");
' U1 Y: r6 U# ]! G: m1 z8 y printf( "\n%s,%s,%s,%s,%s,%s,%s\n",
4 o* E' _+ x1 X! V3 U/ k7 ^+ I, O equ[i].equipCode,
$ O* I* o( i% b1 W' r @- U equ[i].equipType,* D @& J7 e, o3 M, \ y1 a
equ[i].equipName,. m. ]5 E9 b& z* Z" l+ V. y
equ[i].equipPrice,+ ? Y- X, f! B) ^7 V3 O; \
equ[i].equipTime,
* V2 E$ b0 O7 W4 w: a% O equ[i].equipOver,
+ }- N# ~! f* _. n. i# k equ[i].equipYesno);: y" i' C# k0 z
}: Y/ I2 R+ z' j$ G
}
6 p5 Z* u6 v1 m) ~+ d8 ^2 ^ break;! i4 I' Y$ ^7 ?# ]; G* L7 ~) v
case 2:
: N. g# [( I! ^, B printf("please input equipName:\n");
0 u8 w" }0 P- ` D' D& B scanf("%s",name);
( Z+ a0 q& j' N/ b! L+ a2 C for(i=0;!feof(fp);i++)- c2 u: W' U& V' B
{
5 N; V, S) v+ _: X fscanf(fp,"%s %s %s %s %s %s %s",: j# {# L; c, U+ F
equ[i].equipCode,
' E, F2 k9 Q- g' ]. {* _2 w( B* q) G equ[i].equipType,
; ?% E4 s2 R& q( q* N' E9 R$ L: x& L! m equ[i].equipName,# c; v' B9 }$ {
equ[i].equipPrice,1 R7 P: N: a# h I3 y& x; t
equ[i].equipTime,. `6 H# W1 H' O3 c" Y# t( x, N
equ[i].equipOver,1 E& b9 Z! Q6 p0 c
equ[i].equipYesno);
8 k! n8 ?. J- ^# |6 ?$ ?4 B if(strcmp(equ[i].equipName,code)==0)- F( ~! Z5 S; P' ^/ ~( u
{# q2 u6 [: q0 P8 w
printf("\nequipCode,equipType,equipName,equipPrice,euipTime,euipOver,euipYesno\n");: c5 v* R' S m
printf("\n%s,%s,%s,%s,%s,%s,%s\n",( ^5 w7 r7 H5 F+ M) F; p) O; f5 Q
equ[i].equipCode,
4 M2 N! v5 o1 Z8 z \. d6 f+ i2 E equ[i].equipType,$ ]" F- p" {2 N7 u7 h0 F, _
equ[i].equipName,
/ ?( g+ P" e o8 s+ x equ[i].equipPrice, d# [/ m% i* E9 _/ H
equ[i].equipTime,2 U# p$ h2 k d+ k8 @
equ[i].equipOver,
% o% C, q* W& n9 I5 P4 e3 Q) c equ[i].equipYesno);
% ~/ b- j$ ^- i, ? }6 j* [! e) y6 ^+ V- R
} a, N; I& C; ~% M2 e5 r/ [& H
break;
3 i3 g: e9 G9 ]% T! Z' }% Zcase 3:) _1 x$ z( i8 _/ L; j
printf("please input equipPrice:\n");
7 h1 w9 ~% k! N4 ?9 P0 n scanf("%d",&price);& g4 K1 p T. H3 j3 `1 c; S7 p
for(i=0;!feof(fp);i++); A$ [1 q0 @, ~) {1 ]( b7 i* s- j
{
& L- N6 F1 ^! y8 Z* q# W9 `5 x fscanf(fp,"%s %s %s %s %s %s %s",! W, ^# U! N& R( v: o+ f/ w3 X) r1 K
equ[i].equipCode,$ S: d1 C! }" m4 A# ?( A* L" R& F
equ[i].equipType,+ C3 _0 D! N8 N' Q
equ[i].equipName,# O) r% h0 x" t, R: x& m
equ[i].equipPrice,- q, U: b$ X* t% `3 r
equ[i].equipTime,
4 N) g) k, v0 o ^- p2 H equ[i].equipOver,
, ^6 v5 k; J& M. M& E equ[i].equipYesno);
5 k( C5 j* u u( \8 Y if(strcmp(price,equ[i].equipPrice)==0); b7 |3 Y& l& a9 u3 ^" L
{
1 G! _$ w( |8 {- L printf("\nequipCode,equipType,equipName,equipPrice,euipTime,euipOver,euipYesno\n");* n6 L* ~ s7 s8 u5 z
printf("\n%s,%s,%s,%s,%s,%s,%s\n",# T' v+ f. h7 d9 y% ]! \% k9 G
equ[i].equipCode,0 h" Q$ U3 E$ ~+ S* ~5 p6 a S
equ[i].equipType,
/ \' {1 K% s7 G. D. v equ[i].equipName,
; i" n: h& W: }6 M1 |) y( x equ[i].equipPrice,
( B) d, h- S) ?& e: b equ[i].equipTime,
, V$ O/ n, V3 _/ t7 b6 m equ[i].equipOver,
$ e l# D3 L* ` equ[i].equipYesno);! y8 Q9 d' }6 X6 r+ P
}
- ?& `4 }! _7 D$ {4 m* ~ }
2 R0 ^2 g- C- U( [( B3 {! r8 Bbreak;& P, } E* `" T F
}) p+ W: W$ T, Y1 a1 `% j0 Y
fclose(fp);
5 d! W! E9 w0 s( s printf("\n-----------------------\n");8 b5 g# T4 c {
printf("Return to main menu? \n");
' q" V' R. R2 T H* o t printf("1.YES Search Successful \n");; F, g6 d+ x5 R: S
printf("2.NO, quit now\n");* H1 e4 j4 F7 R5 T# C7 }7 O! L
scanf("%d",&c);
3 B+ U, ~: H8 l0 _. U! n; x2 b if(c==1) return(0);) G T2 z/ l) g4 Q
if(c==2) return(0);
5 L& c1 h) u. I# r2 _8 B}
: ]8 [0 ?4 R b! w- D' lvoid main()
4 O) g8 i H. B3 ~- j2 K& E{ ' s' A; l* I" r; y }4 e
int n;
& X Y! t( a8 G! b! h; p2 } int w;( N0 A6 R. h( o' t( S- A, x
do+ O, y; K. } b8 G3 v7 A" P, ^
{ # V+ D* ^9 [* I* h; k
puts("\t\t*******MENU*******\n\n");( f! ~- V/ q4 x$ x/ u
puts("\t\t 1.Enter new data");8 J# Z7 H4 l; M" c' X
puts("\t\t 2.Modify data");" F/ _& s- d) Z7 v
puts("\t\t 3.Disp ");
+ k/ o) s ?1 V6 `* l8 e! ] puts("\t\t 4.Search");
: }& n% {- K( w# f puts("\t\t 5.Exit");& r, |2 V6 R# ~( f$ ^
puts("\n\n\t\t*****************\n");
4 O3 C) Z8 C7 A3 f printf("Choice your number(1-5):");
9 l( O8 W, u+ n( ^/ A7 \ scanf("%d",&n);
* e* G6 E% N- t0 v+ d1 w if(n<1||n>5)4 B+ ~0 s$ Y; S
{ % L4 Z5 `2 d# `$ A$ y
w=1;
! q; `2 F0 |, [- k; Y! d) h getchar();
7 C2 @ ]% V; G7 K& \4 t}. k! b; Y! a2 j9 s! R% d& A+ T" l- R
else w=0;
0 D) }/ n" }& {+ Y2 z' @: K0 tswitch(n)
2 ]; Y% l W4 N5 M/ C {
6 {# R% _) n3 E6 R4 H0 j case 1:enter();break;
7 ]4 H, r2 H8 z! c case 2:modifty();break;
- K: N7 ]- t2 L( z8 c" N9 [" p8 T case 3:disp();break;
9 O1 U, b+ U6 b2 i* b) Y case 4:search();break;# M, T/ L( n7 P& m6 Y+ \
case 5:exit(0);( h i+ _! v$ O: ~5 @: a* S
}
. Z. M* h1 @; k' K8 T5 V}
( d8 |$ y5 ^9 S5 d4 Y1 d while(w==0);3 P* H* V: S6 {2 V; R5 }2 y
}( j9 v* z8 u, R5 o6 i/ {
- h% d. o, T8 O3 C$ ~0 [
7、程序运行结果
, ]& f2 o" a2 x, S(1) 主函数; J4 L5 S8 T N+ ^' x9 g
# K' P, y z4 ]. F( |(2)输入模块. m$ E5 |( Z# R ~
. ], R# v7 t$ |6 W6 Y, [$ Q+ }0 a! U
& l/ t* P8 y9 m3 d7 |8 a& T
(3)修改模块 x1 W* c3 s+ C" V, j4 g4 {* X+ q
0 q+ P, m% E; c3 O3 x6 _! q
! E l b2 ?$ Z% O5 V% C/ A2 j(4)统计模块
% c1 q% x2 B b( _* @! s' ^* B
j" F/ P1 t& T2 _" g
2 M0 C, t4 \' j% A(5)查询模块
# a% d- L/ e6 a2 l3 k
: K7 `; |- Q7 V" ]1 U编程中遇到的困难及解决方法
' ^& E$ K) X7 F& }# x& ^7 q( W 由于自己时间过长的遗忘及知识的局限性使得在程序的编译中存在一些问题,对每个功能模块的理解,以及主函数的功能,都是在老师的讲解下有了更深的了解。编写主函数根据一些例题的模式以及自己的所要实现的功能来完成;每一个子模块,也是根据例题模块,以及要实现的功能编写,用到了文件,结构体类型,数组,类型的装换等等,文件以及结构体类型,通过查看书本完成的,类型的装换是通过老师和同学的帮忙解决的。在运行过程中,每个模块运行后不能接着下一个模块,也是在老师的帮助下完成的,总体程序还是比较简单的。8 A: r7 @0 M3 v1 ^+ P) c
总结
' |: W- V+ X K" D6 `, i; r 经过这几天的实习使我了解到C语言的重要性,之前接触到的C语言内容都是理论上的,理论知识知道的比较多,但是没怎么用到实际操作当中。这次上机实习给了我一次真正认识C语言的机会,刚开始我一脸的迷茫,不知道从哪里开始动手,觉得C语言是一种很深奥的东西,对于刚开始接触这门课程的我来说非常的不适应。很多东西都是第一次:第一次真正认真的投入C语言当中,第一次用自己在课堂上学习的东西逐步的去解决实际问题,这次是完成实验设备信息的管理。经过这次实习,我知道自己的计算机知识还是相当有限的,在这次的程序编译过程中遇到了很多自己无法解决的问题,可是通过老师的指导,上网查看资料,问高年级的学长学姐等方法,最终问题都基本解决了。
6 A: W5 H* v. y% I) o, w 这次C语言课程设计给我的帮助是很大的。虽然到现在我还掌握得不好。所以在以后的学习生活中我会更加注重这方面的实际操作,提高自己的实际动手操作能力,解决实际问题的能力以及提升自己的计算机水平。 6 x8 }! q I, t. a9 P+ |2 ?9 ~
1 W- L3 a- d* Q- V% q3 }
; ]3 p& d! O& j5 ?) ~* c1 D |
|