2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩12頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、<p>  課 程 設 計 報 告</p><p>  課程設計名稱:C語言課程設計</p><p>  課程設計題目: 郵件地址提取程序</p><p>  院(系):計算機學院</p><p>  專 業(yè): 計算機科學與技術</p><p><b>  第1章 概要設計</b>

2、;</p><p>  1.1題目的內(nèi)容與要求</p><p>  內(nèi)容:設計一個簡單的程序,可以把指定TXT文件中的電子郵件地址提取出來,并保存到文件里。</p><p><b>  要求:</b></p><p>  1)讀入一個TXT文件,把其中的電子郵件地址提取出來,并保存到指定的文件中;</p>

3、<p>  2)符合2411497608@qq.com格式的字符串就是電子郵件地址,其中@和.是必不可少的,且@在.左邊,兩者之間必須得有字母或數(shù)字;</p><p>  3)保存郵件地址的文件格式,首行為TXT文件名,隨后每一行開始為郵件地址在TXT文件中的行號,然后是郵件地址。</p><p><b>  1.2總體結構</b></p>&

4、lt;p>  如圖1.1功能模塊圖所示,本程序主要分為4個模塊。提取文件模塊,驗證地址模塊,提取地址模塊,保存地址模塊。提取文件模塊:提取指定文件里的內(nèi)容,將其放入數(shù)組中。驗證地址模塊:驗證該字符串是否符合郵件地址的格式。提取地址模塊:將符合郵件地址的字符串保存到數(shù)組里。保存地址模塊:將數(shù)組里的郵件地址寫入到文件中。</p><p>  圖1.1 功能模塊圖</p><p><

5、b>  第2章 詳細設計</b></p><p>  2.1 提取文件模塊</p><p>  提取文件模塊采用while語句,逐個讀取文件里的字符,將其放入數(shù)組里保存起來。</p><p>  2.2 驗證地址模塊</p><p>  驗證含有@的字符串是否符合郵件地址的格式,若符合則將其保存起來,否則繼續(xù)查找。<

6、/p><p><b>  2.3提取地址模塊</b></p><p>  將符合郵件地址的字符串提取到數(shù)組里。</p><p><b>  第3章 調(diào)試分析</b></p><p>  問題1:程序運行,發(fā)現(xiàn)只能找到第一個郵件地址,而不能接著找下去。</p><p>  解決方

7、案:運用continue語句,使循環(huán)接著做下去。</p><p>  問題2:如何記錄郵件地址所在行數(shù)?</p><p>  解決方案:利用一個變量m,記錄源文件的換行符的個數(shù)即可。</p><p>  問題3:當向新文件里寫數(shù)據(jù)時,發(fā)現(xiàn)只能寫進部分。</p><p>  解決方案:原來新文件在一開始就以寫的方式被打開,只要將if((fp2=

8、fopen("b.txt","w"))==NULL)</p><p><b>  {</b></p><p>  printf("can not open the file\n");</p><p>  exit(0);</p><p><b&g

9、t;  }</b></p><p>  寫到程序的下方即可。</p><p>  第4章 使用說明 </p><p><b>  運行操作及結果:</b></p><p>  指定讀取要文件a.txt里的內(nèi)容。(見圖4.1)</p><p><b>  圖4.1</b

10、></p><p>  運行程序后ch2數(shù)組里存的內(nèi)容。(見圖4.2)</p><p><b>  圖4.2</b></p><p>  運行程序后文件b.txt內(nèi)存進去的內(nèi)容。(見圖4.3)</p><p><b>  圖4.3</b></p><p><b&g

11、t;  參考文獻</b></p><p>  [1] 張長海.C語言程設計[M].北京:高等教育出版社,2006</p><p>  [2] 譚浩強.C程序設計(第三版)[M].北京:清華大學出版社,2005(2007重?。?lt;/p><p>  [3] 王敬華,林萍,張清國.C語言程序設計教程(第二版)[M].北京:清華大學出版社,2009</p&

12、gt;<p>  [4] 冼鏡光.C語言名題精選百則[M].北京:機械工業(yè)出版社,2005</p><p>  [5] 李春葆,金晶,黃楠,喻丹丹.C語言程序設計輔導[M]. 北京:清華大學出版社,2007.4</p><p>  附 錄(程序清單)</p><p>  #include <stdio.h></p><

13、;p>  #include <stdlib.h></p><p>  #include <string.h></p><p>  #include <memory.h></p><p>  #define N 500</p><p>  int A[N],B[N],C[N],D[N];</p&g

14、t;<p>  void main()</p><p><b>  {</b></p><p>  FILE *fp1,*fp2;</p><p>  int i=0,j=0,l=0,k=0,a,b,c,n,p=0,m=0,flag=0;</p><p>  char ch1[N],ch2[N],ch;

15、 </p><p>  if((fp1=fopen("a.txt","r"))==NULL)</p><p><b>  {</b></p><p>  printf("can not open the file\n");</p><p><b>

16、  exit(0);</b></p><p><b>  }</b></p><p><b>  i=0;</b></p><p>  while(!feof(fp1))</p><p><b>  {</b></p><p>  ch=fg

17、etc(fp1);</p><p>  ch1[i]=ch;</p><p><b>  i++;</b></p><p><b>  }</b></p><p><b>  n=i-1;</b></p><p>  ch1[i]='#

18、9;;</p><p>  for(i=0,j=0;ch1[i]!='#';i++)</p><p><b>  {</b></p><p>  if(ch1[i]=='@')</p><p><b>  {</b></p><p> 

19、 A[j]=i+1;//@的位置</p><p><b>  j++;</b></p><p><b>  continue;</b></p><p><b>  }</b></p><p><b>  }</b></p><p>

20、<b>  a=j;k=0;</b></p><p>  for(j=0;j<a;j++)</p><p><b>  {</b></p><p><b>  flag=0;</b></p><p>  i=A[j];</p><p>  

21、while (ch1[i]!=' ')</p><p><b>  {</b></p><p>  if(ch1[i]=='.')</p><p>  flag++;</p><p>  if(flag>1) </

22、p><p><b>  break;</b></p><p><b>  i++;</b></p><p><b>  }</b></p><p>  if(flag==1) </p><p>  for(i=A[j];ch1[i]!=

23、' ';i++) </p><p><b>  {</b></p><p>  if(ch1[i]=='.')</p><p><b>  {</b></p><p>  B[k]=i;//點的位置</p><p><b>  k++

24、;</b></p><p><b>  break;</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  else</b></p><p><

25、;b>  continue;</b></p><p><b>  }</b></p><p>  b=k;j=0;</p><p>  if(ch1[0]!=' ')</p><p><b>  {</b></p><p><

26、b>  j++;</b></p><p><b>  C[0]=0;</b></p><p><b>  }</b></p><p>  for(k=0;k<b;k++)</p><p>  for (i=B[k]-2;i>0;i--) </p>

27、<p><b>  {</b></p><p>  if (ch1[i]==' '||ch1[i]=='\n')//前方空格的位置</p><p><b>  {</b></p><p><b>  C[j]=i+1;</b></p&

28、gt;<p>  j++;</p><p><b>  break;</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  c=j;</b></p>

29、;<p>  for(j=0;j<c;j++)</p><p><b>  {</b></p><p>  for (i=B[j];ch1[i]!=' '&&ch1[i]!='\n';i++) </p><p><b>  {</b></p

30、><p>  if (ch1[i]=='c'&&ch1[i+1]=='o'&&ch1[i+2]=='m') </p><p><b>  {</b></p><p>  D[j]=i+4;//后方空格的位置</p><p&

31、gt;<b>  break;</b></p><p><b>  }</b></p><p><b>  else</b></p><p>  if (ch1[i]=='c'&&ch1[i+1]=='n')</p><p>&l

32、t;b>  {</b></p><p>  D[j]=i+3;</p><p><b>  break;</b></p><p><b>  }</b></p><p><b>  }</b></p><p>

33、<b>  }</b></p><p>  if((fp2=fopen("b.txt","w"))==NULL)</p><p><b>  {</b></p><p>  printf("can not open the file\n");</p>

34、<p>  exit(0);</p><p><b>  }</b></p><p>  fputc('a',fp2);</p><p>  fputc('\n',fp2);</p><p><b>  l=0;</b></p>&

35、lt;p>  for(k=0;k<b;k++)</p><p><b>  {</b></p><p>  for(j=0;j<D[k]-1;j++)</p><p>  if(ch1[j]=='\n')</p><p><b>  {</b><

36、/p><p><b>  m++;</b></p><p><b>  break;</b></p><p><b>  }</b></p><p>  fprintf(fp2,"%d",m+1);</p><p>  fputc(

37、9; ',fp2);</p><p>  for(i=C[k];i<D[k]-1;i++)</p><p><b>  {</b></p><p>  ch2[l]=ch1[i];</p><p>  fputc(ch2[l],fp2);

38、</p><p>  printf("%c",ch2[l]);</p><p><b>  l++;</b></p><p><b>  }</b></p><p>  fputc('\n',fp2);</p><p><b>

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論