日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

单词小助手——结构化程序设计

發布時間:2024/5/8 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 单词小助手——结构化程序设计 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.實驗目的

a.明確結構化程序設計的基本結構。

b.通過對問題的分析,設計合理的結構化程序解決問題;

2.題目描述

例2為單詞小助手,要求完成以下任務:

a.改寫程序為良好程序風格(文檔注釋,函數注釋,語句注釋)。

b.將單詞測試中的功能完善,可針對做錯的單詞重復記憶。

c.查詢單詞的功能添加英文詞查詢,中文查詢的功能完善(考慮如何顯示同樣中文意義,不同的英文單詞)

提高要求:

可將程序中的不足(如數據驗證,排名功能)等根據自己的能力與理解完成。

3.算法設計

采用結構化程序設計的方法對程序進行完善,下面為結構化程序設計的方法和原則:

  • 采用自頂向下,逐步求精的程序設計方法
  • 使用三種基本控制結構構造程序
  • 原則:

    自頂向下、逐步細化、模塊化設計

    4.結構圖

    ?

    5.調試及測試??

    5.1調試界面

    5.2數據測試

    5.2.1對數據庫內的單詞進行修改

    5.2.2向數據庫增加單詞????????

    ?

    ?

    ?

    ?

    5.2.3在維護功能菜單下輸入編號超出

    5.2.4單詞預覽

    ?

    5.2.5單詞背誦(中英雙語)

    5.2.6查詢成績

    5.2.7data文檔內容

    6.部分代碼

    //從文件中讀取單詞的信息
    void ?writefile()
    {
    ? ?FILE *fp;
    ? ?int i=0;
    ? ?fp=fopen("data.txt","w");
    ? ?if(!fp)
    ? ?{
    ? ? ? ?printf("\n打開文件data.txt失敗!");

    ? ?}
    ? ?for(i=0;i<num;i++)
    ? ?{
    ? ? ? ?fprintf(fp,"\n%s %s ",s[i].en,s[i].ch);
    ? ?}
    ? ?printf("\n");
    ? ?fclose(fp);
    }
    void sort()/*按字典排序*/
    {
    ? ? int i,j;
    ? ? char temp[MAX_CHAR];
    ? ? for(i=0;i<num-1;i++)
    ? ? {
    ? ? ? ? for(j=num-1;j>i;j--)
    ? ? ? ? ? ? if(strcmp(s[j-1].en,s[j].en)>0)
    ? ? ? ? ? ? {
    ? ? ? ? ? ? ? ? strcpy(temp,s[j-1].en);
    ? ? ? ? ? ? ? ? strcpy(s[j-1].en,s[j].en);
    ? ? ? ? ? ? ? ? strcpy(s[j].en,temp);
    ? ? ? ? ? ? ? ? strcpy(temp,s[j-1].ch);
    ? ? ? ? ? ? ? ? strcpy(s[j-1].ch,s[j].ch);
    ? ? ? ? ? ? ? ? strcpy(s[j].ch,temp);

    ? ? ? ? ? ? }
    ? ? }
    }?
    //添加單詞信息
    void add()
    {
    ? ? int i=num,j,flag=1;
    ? ?while(flag)
    ? ? {
    ? ? ? ? flag=0;
    ? ? ? ? printf("\n請輸入單詞的英文形式:");
    ? ? ? ? scanf("%s",s[i].en);
    ? ? ? ? for(j=0;j<i;j++)
    ? ? ? ? ? ? if(strcmp(s[i].en,s[j].en)==0)
    ? ? ? ? ? ? {
    ? ? ? ? ? ? ? ? printf("已有該單詞,請檢查后重新錄入!\n");
    ? ? ? ? ? ? ? ? flag=1;
    ? ? ? ? ? ? ? ? break; /*如有重復立即退出該層循環,提高判斷速度*/
    ? ? ? ? ? ? }

    ? ?}
    ? ?printf("\n請輸入單詞的中文形式:");
    ? ?scanf("%s",s[i].ch);
    ? ?num++;
    ? ?printf("\n您輸入的信息為: 英文: %s 中文: %s ?",s[i].en,s[i].ch);
    ? ? sort();
    }
    //刪除單詞信息
    void del()
    {
    ? ? int i=0,j=0;
    ? ? char ?en[MAX_CHAR]; ? //英文形式
    ? ? printf("\n請輸入你要刪除的單詞英文形式:"); ? ?
    ? ? scanf("%s",en);
    ? ? for(i=0;i<num;i++)//先找到該英文形式對應的序號
    ? ? ? ? if(strcmp(s[i].en,en)==0)
    ? ? ? ? {
    ? ? ? ? ? ? for(j=i;j<num-1;j++)
    ? ? ? ? ? ? ? ? ?s[j]=s[j+1];
    ? ? ? ? ? ? num--; //數量減少 1
    ? ? ? ? ? ? return;
    ? ? ? ? }
    ? ? ?printf("\n沒有這個單詞!");

    }
    //修改單詞信息
    void modify()
    {
    ? ? int i=0,choose=0,flag=1;//chooses代表選項標識,flag代表是否找到單詞
    ? ? char ?en[MAX_CHAR]; ? //英文形式
    ? ? while(flag||choose)
    ? ? {
    ? ? ? ? printf("\n請輸入你要修改的單詞英文形式:"); ? ?
    ? ? ? ? scanf("%s",en);
    ? ? ? ? for(i=0;i<num;i++)//先找到該英文形式對應的序號
    ? ? ? ? ? ? if(strcmp(s[i].en,en)==0)
    ? ? ? ? ? ? {
    ? ? ? ? ? ? ? ? printf("\n請輸入單詞正確的英文形式:");
    ? ? ? ? ? ? ? ? scanf("%s",s[i].en);

    ? ? ? ? ? ? ? ? printf("\n請輸入此單詞正確的的中文形式:");
    ? ? ? ? ? ? ? ? scanf("%s",s[i].ch);

    ? ? ? ? ? ? ? ? printf("\n繼續修改請選1,返回上一級請選0:");
    ? ? ? ? ? ? ? ? scanf("%d",&choose);
    ? ? ? ? ? ? ? ? if(choose==0) return; ??
    ? ? ? ? ? ? }
    ? ? ? ? ? ?flag=0;

    ? ? }
    ? if(!flag) ?printf("\n沒有這個單詞!");
    }

    ?

    總結

    以上是生活随笔為你收集整理的单词小助手——结构化程序设计的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。