阳光飞狐

【阳光飞狐__与财富同行】

 找回密码
 手机注册

手机动态码快速登录

手机号快速注册登录

查看: 1860|回复: 1
打印 上一主题 下一主题

有会编程序的朋友吗?麻烦请进

[复制链接]
跳转到指定楼层
1#
发表于 2009-11-21 10:19:13 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
有会编程序的朋友吗?麻烦请进3 b: X7 E7 W) ^  @# r
这是写好的一个源程序吧,能把它变成可运行的软件吗?万分感谢!!!: H$ u' A2 u) ~; Q

  S. H+ w1 Q' C4 E2 Q英语单词测试小软件2009-08-04 22:39        今天突发奇想写了这么一个小软件,主要功能就是测试英语单词,事先将本章节的单词记录到任意一个文件中,以便随时进行英语单词侧测试,给出汉意写出英语答案,输入0为推出测试,完后给予评分,一下就是源代码,主要训练的就是文本函数的操作,相对而言没有什么复杂的算法,都是一些很容易理解的函数,就不做介绍,如果使用的cmd无法输入汉字开始->运行->reg add HKCU\console /v LoadConIme /t REG_DWORD /d 1 /f就可以了#define MAXWORD 100
; S8 d' C, u. b% k#include<stdio.h>( D. M7 D6 T' _/ ~; i8 G
#include<stdlib.h>
. u8 H1 j1 ]0 K, p# B#include<time.h>: g* v/ s% c  x' [$ _
#include<string.h>6 X8 G1 `! d' K% Y
typedef struct
; x8 ]$ }* {2 G0 G7 e' v& _% z{
1 W- f2 a, D/ [" Zchar chinese[30];
  _7 l$ _5 n( x- n+ H  Jchar english[20];
& j/ b9 ]! y2 h3 O}word;//一个单词- [8 w# c8 c, l( g% h. N# h; {" v
typedef struct" s7 U: C- S. \! O0 U
{
0 h- D1 x- W) K% @0 C0 Bword danci[MAXWORD];- V) V5 w4 t# C* ]- u* _" V0 s1 e
int line;
0 b5 |8 u; j$ U5 g: D0 f}group;//单词表3 m/ r7 c/ A7 `2 ~6 Y% G. s2 m
void openwordlist();//打开已经存在的单词表
) I( J0 m8 _* Evoid foundwordlist();//创建新的单词表
4 c' |4 P1 c  F0 C: K! a0 pvoid amendword(char *);//修改单词6 b2 Y# N5 I* g2 O/ D9 b$ B+ |
void deleteword(char *);//删除单词
! ^3 D4 P3 ]* z+ Uvoid appendword(char *);//添加单词
* ]9 M+ H' B$ Z6 R$ z( Nvoid examination(char *);//对选中单词表单词进行测试# Y6 b. \0 u) z0 t/ z9 z
void putwordlist(char *);//将单词表输出
# p" e: E' r1 m2 b& H, eFILE *fp;
8 e' u3 {# t2 Jmain()# y6 k" S8 E9 Y3 N1 y* o
{( \2 e0 ^5 W9 p* E! ^
char ch;* y& h+ \, q# g8 Z! g
srand((unsigned)time(NULL));% [/ g& I" H! m; s# R, v
printf("是否打开已存在的单词表?(y/n)\n");
# s+ {; D& H3 h2 G1 h9 `" `% zfflush(stdin);1 L' R$ }, O- O
ch=getchar();
# [9 M; C% S* R( {if(ch=='y'||ch=='Y')
4 h3 l( l$ i# N   openwordlist();
, H& Q- T3 D2 ?else if(ch=='n'||ch=='N')
' N. C5 T/ b8 H$ j9 Z" ?{. Z5 j/ f' C3 G
   printf("是否要构建新的单词表(y/n)?\n");9 h& k) c: x: P5 O) a4 y! u4 _5 F- G
   fflush(stdin);
% X; m$ P8 B: B& A5 Q  V" k8 f; ~   ch=getchar();1 c+ U' z) n. t
   if(ch=='n'||ch=='N')
; y7 c* @) o0 E& S: L/ Z   {0 N3 Z, M+ \' z6 ?# Z0 W
    printf("退出程序\n");
* D  c  o2 n6 }4 n; x    exit(1);
8 C3 [' J% B0 P4 Y3 N' \- i. g   }
7 U; ^: L$ t( ~( `6 e# \0 b   else if(ch=='Y'||ch=='y')
8 Q- D. B- }. O. p2 E5 p$ U7 B    foundwordlist();
# m* t# o% c* h5 n   else9 o4 o% y- G1 U* t5 @' G: Q8 J" w
   {
& p6 r, ~( B" \* A5 ~    printf("输入错误程序退出");
8 G$ \2 |7 F) X    exit(1);
8 o" ]2 ]0 Y- i- }( i   }! M+ Y: _* y3 z4 w! O
}
0 `/ ^$ [! X" w9 y# I2 melse% A6 f# f+ t+ G$ i0 _) p
   printf("输入出错退出程序\n");
' Q  u2 w, b3 Z+ V  Kexit(1);
0 |  F8 ~5 e4 a, X9 r2 J2 m}) @' H% n6 a0 i; r2 ?
void openwordlist()//打开已经存在的单词表
% i( i0 Q% [, `{1 Z0 D9 i7 N3 u0 i
char wordlistname[20],ch;
1 r0 B6 E; c% u4 o' Q; p7 f9 p6 \printf("请输入要打开的单词表的位置\n");
+ h: D" i4 V; H5 K9 X2 ?fflush(stdin);! p$ |4 A/ E7 B& U
scanf("%s",wordlistname);
6 J7 t8 h7 a; h6 u2 C7 osystem("cls");
5 `6 g* l' E5 Q9 k" T4 iwhile(1)
2 X. ?: }" M# K5 U% R{
8 O5 X9 Q1 H9 C! c2 q6 G$ x3 o   printf("请选择要进行的操作\n1.输出单词表\n2.修改一个单词\n3.删除一个单词\n4.添加一个单词\n5.对此单词表进行考试\n6.退出本程序\n");% |$ K- f6 `# C5 K: T
   fflush(stdin);
1 O4 y. |$ E' R6 m, c, V   ch=getchar();
7 i0 }* {9 M  {8 b& Z' T% R8 z   switch(ch)# @# ^  i& M# G# l) z
   {: r' r' `8 ?2 M7 c0 q
   case '1':system("cls"),putwordlist(wordlistname);break;//输出单词表
" \* j% Z5 U0 t1 g0 z4 p   case '2':system("cls"),amendword(wordlistname);break;//修改一个单词2 C) J2 W& q6 z; }  N6 w
   case '3':system("cls"),deleteword(wordlistname);break;//删除一个单词
, O- N. ^4 a: l8 W   case '4':system("cls"),appendword(wordlistname);break;//添加一个单词
- D- p' I) w9 l; O2 G5 W   case '5':system("cls"),examination(wordlistname);break;//考试
6 D8 U. D% [+ C   case '6':break;
! g1 r$ J. m8 g1 c. u   default :system("cls"),printf("输入错误\n");
  g4 p( I. K; \/ u5 Q6 Q" u2 l   }
' R! t, v$ N, q: q) L. d   if(ch=='6')
% c" [# a4 ?6 i9 ^3 _* t) r    break;
+ ]. o; w' r! L9 r, E9 l}
/ ~. z3 v6 Y% T9 v, F6 @3 ^+ v}9 ?# e' X& h$ s: Z9 g3 a0 F
void foundwordlist()//新建单词表) Q9 X7 R1 k: t  r
{+ D; u" [& A5 U# H
group g;
# a6 Y7 C' f6 O, S8 ~' K' ychar ch[30];
. U) q% u3 ?2 W! v2 K+ B! pprintf("请输入要创建的文件位置及名称\n");+ E# e& }& b& X! j+ d- E
fflush(stdin);& w# c% x0 N9 w( g2 `* l$ n9 Z
scanf("%s",ch);# N. N5 X  `( Z( s- ]
if(!(fp=fopen(ch,"w")))) H) z8 l1 |- L6 O) T& F6 A& P, ?
{
2 d; B2 w) \; |& n  L- s' w4 u   printf("文件创建失败\n");
( M. e, R( ^7 T) c7 m  y3 q   exit(1);
  l7 v2 p8 y6 L- j& {# N4 ]' h0 _}; \5 y: P! F) `) I* M# Y# A
printf("先输入汉意,再输入英语,汉意0表示结束输入\n");1 B! t- [/ a! `, D- ], }# i' S- c9 t
g.line=0;
! T1 t4 d, R* x1 Cwhile(1); C  ^! J- Q4 j
{7 D: f' b* l8 O, A1 P
   printf("请输入第%d个单词的汉意\n",g.line+1);, {% k# O& f# T% \: L
   fflush(stdin);3 m- F) L& q, d' x& s" X  o" Y
   scanf("%s",g.danci->chinese);
# K" v' G% ]3 u* b   if(!strcmp(g.danci->chinese,"0"))( g/ V' P: i& Z) l9 a
    break;& J8 P! Y  z9 {- _
   printf("请输入第%d个单词的英文\n",g.line+1);5 }1 F9 m/ Y8 ?) a2 g
   fflush(stdin);
1 t3 ?5 L/ }& W8 x+ o   scanf("%s",g.danci->english);
0 W3 I& R: M. k: v. w   fprintf(fp,"%-30s%-50s\n",g.danci->chinese,g.danci->english);* K' U- v6 u8 k6 ^8 K
   g.line++;( C& r( s) k# \, b* t
}! ^! O/ s" S, Z
fclose(fp);/ T# o3 p$ b7 X, q8 V
}
  c, s( e1 e* gvoid amendword(char *wordlistname)//修改单词
# X/ F- d& g% d7 p# V  g$ K# Z{. o" m4 G* ~! Q4 g
group g;
; a; E/ k+ t' _$ wchar amend[30];
( X. T/ s* t" {% l+ \+ Q9 ylong offset;
4 X2 j# G0 \' tint i;
% _1 u7 i- ~8 P! @% jif(!(fp=fopen(wordlistname,"r+")))4 |6 g* K- [, x( b8 c! f) r
{
. q2 {, V% @; x   printf("打开文件失败,请检查输入文件路径正确性\n");
9 {& v1 R; G) e$ D3 b6 @4 R   exit(1);
( B' Q# s3 u) e/ m4 A. g$ f8 R+ [! J+ k}9 e8 s- p* W2 a
printf("请输入要修改的单词的汉意\n");
# E# ~! N4 v% x9 z9 j3 sfflush(stdin);5 @0 N$ H5 {* ?7 L( ]. k9 l
scanf("%s",amend);. s9 c6 T9 K4 I( E
i=0;/ X/ g+ v( x$ Q
while(!feof(fp))" o; R5 K) r- Y. ~1 N3 @  G
{
+ D+ w" W& O' q( U7 _   offset=ftell(fp);
4 g7 E7 G" U! w4 M0 M   fscanf(fp,"%s%s\n",g.danci->chinese,g.danci->english);6 o  B+ T* x; O1 f4 {' @
   if(!strcmp(g.danci->chinese,amend))+ O  q9 o; I- B# A2 Y
   {
: X* G; c/ I5 f9 T    i=1;5 \4 x! [( f/ U+ h$ o
    break;" r/ b) U7 z* X* d  Q
   }
" }% C/ P2 f4 [' {1 X7 X6 y  
, D; m$ m/ l1 Q4 R+ J# X}
8 F) U0 m1 e) m# ^if(i)1 n* W4 j; U" N# T/ I. U8 S
{
- E) _' [7 V2 M7 n8 C4 t   printf("已经找到,记录为");
8 P' x( h" u+ R2 p   printf("%s     %s",g.danci->chinese,g.danci->english);
9 T: s: K# L5 U3 J9 c. E   printf("请输入新的汉意及英文\n");
/ P! g) H2 N3 i& w   fflush(stdin);6 T! M8 o8 I) J8 y; ?
   scanf("%s%s",g.danci->chinese,g.danci->english);
8 p" y0 N( u6 {* x! r0 g2 V   fseek(fp,offset,SEEK_SET);* o# p. O7 y! ?- u9 b
   fprintf(fp,"%-30s%-50s\n",g.danci->chinese,g.danci->english);
3 a0 @2 L" B  d( x2 @}
3 u; M& d+ l" o& N) N" q& L/ jelse8 ]% c4 W9 {0 N, I6 p/ e! r
   printf("对不起,单词表中未找到此单词");
9 r9 u$ U1 h: efclose(fp);
- |# x# l2 K5 c, k4 E* d}
, L- T* l1 M$ p0 H- P9 Q+ k+ rvoid deleteword(char *wordlistname)//删除单词
& d* p8 p4 U* k+ o% k- S{
: D, k( {4 b5 Z0 Pgroup g;
. N, L, ?; t2 J7 ?- A0 ]char amend[30];
: C0 n' m6 K4 k/ wlong offset;
: b2 N5 v! ]7 L! @int i;
( A3 _6 i8 Q8 _, e: O$ ]if(!(fp=fopen(wordlistname,"r+")))
( T% A0 q8 [, P( i  J4 |' a{+ }5 _6 X3 t0 p: z/ J
   printf("打开文件失败,请检查输入文件路径正确性\n");: t, |8 T# F9 a9 l7 H
   exit(1);
! c. C3 S9 F( B( E" z}% q; y" `; T9 T4 ~  w( K
printf("请输入要删除的单词的汉意\n");
+ I  C" Z& h# l. Y* \( C0 Ufflush(stdin);* }) u, K9 n5 ?3 Z1 A0 V( ?/ `
scanf("%s",amend);7 n/ Z) N6 B6 l4 v& T
i=0;
- e. _$ Y! Z  z) ?2 e* ^( rwhile(!feof(fp)); x' c# ^% H  Q6 |# f8 S
{
% ?% N, w( q" {1 z) Y9 B   offset=ftell(fp);
2 n$ z5 l# z/ Y5 s3 ^   fscanf(fp,"%s%s\n",g.danci->chinese,g.danci->english);; R1 t# G1 _! y
   if(!strcmp(g.danci->chinese,amend))
3 R$ P, {! ?3 z; d6 W' P   {
5 g& D+ j, ^+ r7 R3 L; R    i=1;
" v" ^2 a$ R: i8 Q1 s    break;; {$ U( V6 s1 N; N
   }
  r( S0 [' E" e3 c2 e! l  ' r$ J/ f, u9 e$ u
}: C! h: m! |5 x
if(i)
0 q( [% F* f/ s# F, M{
; h5 t4 n1 m  j7 k5 `   printf("已经找到,记录为");
1 K/ b  L6 {& O. r7 v& p   printf("%-30s%-50s",g.danci->chinese,g.danci->english);2 F& [* y3 ?  v" p  Y
   fseek(fp,offset,SEEK_SET);
9 Y# y& r% ]7 z5 w   fprintf(fp,"%-30s%-50s\n","","");3 H0 B! O, k0 ^3 B* |9 a8 S: O9 t
}
0 t2 ]1 n4 m( b5 Velse' o% p; [; M' X+ r# g4 a
   printf("对不起,单词表中未找到此单词");. C! U! y5 w, n( G" I& {' w9 I' ]5 s
fclose(fp);
& ?' E5 h, \6 B. N+ Z" a6 o) {}
( q- R: h0 [" d( dvoid appendword(char *wordlistname)//添加单词
: t$ O, B6 ]' C! x: X{
8 [" k& O& S7 f; Agroup g;
" h9 e3 d0 Z2 k0 x- C9 V3 x$ Aif(!(fp=fopen(wordlistname,"a")))& F9 k' e* M! Y6 B4 N
{
$ B% p% t; T: z" D) G( v   printf("打开文件失败,请检查输入文件路径正确性\n");2 ~& X; a& B! Q
   exit(1);
1 B/ Q) [+ c. V5 U0 ]}
0 e9 Y5 ?' v" I* yprintf("请输入要添加的汉意及英文\n");
3 ]+ @2 ?8 q, E$ X/ offlush(stdin);9 s8 u+ H/ K, A/ Y
scanf("%s%s",g.danci->chinese,g.danci->english);4 h+ t. g8 Q" w
fprintf(fp,"%-30s%-50s\n",g.danci->chinese,g.danci->english);
/ l8 I; V0 @; n2 Vfclose(fp);
+ f: N9 p; h" y. j0 c% i) l}; w3 d# y' `! |$ z" V( `* m' n
void examination(char *wordlistname)//对选中单词表单词进行测试0 e  y) v! K1 ?$ D
{; e0 }" O# y" G! E5 B* o( R/ B% g
group g;& _! F2 b" K, I' ]6 [0 F
int i,j,k,l;
9 n! c: Z, ^. y: ochar resule[30];, L% P; P( M, K
i=0;
+ Z- m1 K: b$ a0 M" S$ x, sif(!(fp=fopen(wordlistname,"r"))); m4 p6 l3 |( P; ^; _
{. ~9 u& {: @( d# s
   printf("打开文件失败,请检查输入文件路径正确性\n");6 e  A5 s" [3 O; B/ n( i
   exit(1);
* `6 k- M9 {5 A; I- z}
; e, P4 q. g7 ?5 bwhile(!feof(fp))
/ n! X. }* F7 `6 |5 `# R   fscanf(fp,"%s%s\n",g.danci[i].chinese,g.danci[i++].english);" w2 x8 i. L* R& T9 t
g.line=i;
  ^9 d1 [- t) mj=0;//计算成绩的% H! u7 d' }8 j$ d2 q' p
k=0;! G" R% i# u/ P" e4 c4 ~& k1 F! P7 q
printf("答案处输入'0'为退出考试\n");$ ]9 V: Z$ H9 o1 d: M/ x2 R
while(1)
8 Q7 V3 q( H/ a6 C{
% G4 z/ [/ o9 O5 F& Z2 H9 d   j++;
  i$ B9 g! B, L5 `0 _- V: l: R   i=rand()%g.line;/ V0 W* G: h! [. y4 f& \
   printf("%s",g.danci[i].chinese);
  g0 w2 Z! V" U  J   fflush(stdin);3 y8 P( B( f6 D/ b& F
   scanf("%s",resule);  d" F2 A9 O6 C
   if(!strcmp(resule,g.danci[i].english))0 J! o" \& t3 j
    k++;
& A0 z/ [5 e  n. L   else if(!strcmp(resule,"0"))* c8 I  I: U1 t5 M
   {& O2 D3 T+ p3 M9 @8 E$ d3 S, G
    j--;
0 Z% f. I1 v0 ?: a    break;; l2 x( V! E; T; `3 ^1 x- y
   }
7 T& L. n$ K( `5 w. q   else
8 o6 Q+ j+ n: c* a0 a    printf("抱歉输入错误正确答案是%s\n",g.danci[i].english);, C2 a  a# }8 L$ K, @% r# c
}  L/ P7 B  I, y' _- G" e
l=k*100/j;
: o: e' ]9 y. a3 Z8 ~1 o: Rprintf("一共测试了%d个单词,答对%d个,正确率为%d%c\n",j,k,l,37);: m1 e) d- l* S
if(l<60)
7 W3 Q8 t$ V0 H; G- w7 p7 u   printf("本课程单词掌握程度较差,请加强训练\n");* k: U3 m% C, p; a( \1 x
else if(l>60&&l<=99)
: f" @5 i7 l  m2 g   printf("本科单词大部分已经掌握,但还是有少许错误,请改正\n");
4 C" G$ K4 B6 r9 K( d/ Celse
+ E4 \/ `8 ?' a  _   printf("您太棒了!满分\n");
0 ^* Q9 l+ I1 yprintf("按任意键继续...\n");+ q, b- g* Y$ i8 [5 y9 Z- {
getchar();+ f0 [, ]9 y# k+ M7 k2 X5 Q" D, `
}
6 o7 s" `8 d; B, O: Uvoid putwordlist(char *wordlistname)//将单词表输出
& H, h, q4 `% j+ x6 f* S! F- ^{
$ T: A# `/ K% ~1 m+ ggroup g;
' f9 A3 @( r) ^5 Rif(!(fp=fopen(wordlistname,"r")))
2 |. w: U; ]0 \) V9 t& ]{
/ a! d( A! ]8 T& {2 q! B5 H- ~   printf("打开文件失败,请检查输入文件路径正确性\n");& Y; |& t4 ]2 ^
   exit(1);
! w, m$ D0 h% M& V, e5 [8 `}
2 x; y6 d+ [& J9 S/ f/ Ufscanf(fp,"%s%s\n",g.danci->chinese,g.danci->english);8 M7 [6 h/ O2 x3 Z# S3 o5 y% J
while(!feof(fp))1 ?- m2 n5 i5 v! i( z' q; B
{
4 t; x- C* ]3 }  ~' m, c+ o+ b   printf("%s %s       ",g.danci->chinese,g.danci->english);* q% ]2 s6 \+ T3 C7 h5 d% l
   fscanf(fp,"%s%s\n",g.danci->chinese,g.danci->english);
0 ~6 i- }; ~( J0 W}, ~% _' E  o/ M) Y& k( K/ N
printf("\n\n\n按任意键退出...\n");
* \/ Y3 l, _9 _5 r0 ]2 cfflush(stdin);
2 |  A- S. r2 Sgetchar();
. \0 w  w1 K1 N7 Xfclose(fp);
# e0 M& r% L3 E' t}% x- g7 I2 T3 r9 m; g) O; Q
: P+ C8 M+ v( S  k: n
[[i] 本帖最后由 logoslogos 于 2009-11-21 10:22 编辑 [/i]]
2#
发表于 2009-11-21 13:47:36 | 只看该作者
好像是TC,到平台上编译一下试试
您需要登录后才可以回帖 登录 | 手机注册 手机动态码快速登录

本版积分规则

QQ|小黑屋|手机版|Archiver|【阳光飞狐】 ( 网站ICP编号:京ICP备06013475号-7 )

GMT+8, 2026-5-31 21:59 , Processed in 0.142787 second(s), 19 queries .

Powered by Discuz! X3.2 Licensed

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表