freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

c語言課程設(shè)計指導書(已修改)

2025-06-21 10:04 本頁面
 

【正文】 C 語言課程設(shè)計指導書 一、【實驗?zāi)康摹? 培養(yǎng)學生綜合利用 C 語言進行程序設(shè)計的能力,主要是培養(yǎng)學生利用系統(tǒng)提供的標準函數(shù)進行創(chuàng)新設(shè)計。 二、【實驗條件】 在安裝 Windows202 DOS和 TC環(huán)境的微機機房進行。 三、【實驗內(nèi)容】 1. add添加好友信息 2. revice修改好友信息 3. delete刪除一個好友信息 按名字查找一個好友信息 : Function choose and exit 說明:上圖是電子通訊錄的主菜單,利用它,將能夠輕松地錄入一個朋友的電話號 碼,通訊地址和出生日期,而且它還提供了檢索和刪除功能。在后面還將提供按生 日先后排序的功能,這些都有助于該通訊錄的管理。 四、【實驗準備】 指導教師由任課教師或本專業(yè)教師和工程技術(shù)人員擔任。指導教師在課程設(shè)計開始前一個月下發(fā)課程設(shè)計指導書,學生根據(jù)個人情況選定自己的課題。選定題目后查找資料、準備設(shè)計材料。 五、 【 設(shè)計思想 : 】 1. 用順序表設(shè)計電子通訊錄的結(jié)構(gòu) 為了表示較為復雜的數(shù)據(jù)內(nèi) 容,一般用結(jié)構(gòu)這種數(shù)據(jù)類型,第一步就是在結(jié)構(gòu)中定 義所需要的各項信息。一般的通訊錄都包括姓名,性別,出生年月,通訊地址和聯(lián)系電話這幾項,而在這幾項中,出生年月又包括年份,月份和日期三項,通訊地址包括郵編和家庭地址二項,我們把這些聯(lián)系較為緊密的內(nèi)容又用單獨的結(jié)構(gòu)表示,這樣就產(chǎn)生了電子通訊錄的基本結(jié)構(gòu): struct addr /*通訊地址結(jié)構(gòu)定義 */ { char post_num[10]。 /*郵編 */ char addr[40]。 /*家庭地址 */ }。 struct birth /*出生年月結(jié)構(gòu)定義 */ { int year。 /*年份 */ int month。 /*月份 */ int day。 /*日期 */ }。 struct friend /*電子通訊錄結(jié)構(gòu)定義 */ { int number。 /*序號 */ 1 char name[20] /*姓名 */ char sex。 /*性別 */ struct birth birth。 /*出生年月 */ struct addr addr。 /*通信地址 */ char telephone[13]。 /*聯(lián)系電話 */ }。 定義的主結(jié)構(gòu) friend包含了前述的五項內(nèi)容 name,sex,和 telephone分別代表 了姓名,性別和聯(lián)系電話。為了讓結(jié)構(gòu)中的各項組分更加清晰,定義了二個 小結(jié)構(gòu) birth 和 addr分別代表出生年月和通訊地址,因此實際上 friend包含了 8項內(nèi)容。 有了結(jié)構(gòu)定義后,我們可以很輕松地構(gòu)造出電子通訊錄的主體: stryct friend friends[50]。 采用一維數(shù)組 friends[50],正是用到了順序表這種最簡單的數(shù)據(jù)結(jié)構(gòu)來表示 問題。 對于電子通訊錄這樣一張順序表來說,內(nèi)容的錄入是必不可少的操作。由 于采用的是順序存儲結(jié)構(gòu)。這項工作很簡單,只需要在把輸入的信息按順序放 在空的 friends數(shù)組元素中即可。函數(shù) Data_Input完成了信息的錄入工作: void Data_input(int j) { friends[j].number=j。 printf(\n\n\n\tNo %d record,j)。 printf(\n\n\tName:)。 /*讀入姓名 */ scanf(%s,friends[j].name)。 printf(\n\tSex(m/f):)。 /*讀入姓別 */ scanf(%c,amp。friends[j].sex)。 printf(\n\tbirthday:)。 /*讀入出生年月 */ printf(\n\t\tyear:)。 scanf(%d,amp。friends[j].)。 printf(\n\t\tmonth)。 scanf(%d,amp。friends[j].)。 printf(\n\t\tday)。 scanf(%d,amp。friends[j].)。 printf(\n\tPost number:)。 /*讀入郵編 */ scanf(%s,friends[j].)。 printf(\n\tAddress:)。 /*讀入家庭地址 */ scanf(%s,friends[j].)。 printf(\n\ttelephone:)。 /*讀入聯(lián)系電話 */ scanf(%s,friends[j].telephone)。 } 2 錄入完畢后典型的一份信息如下所示 : NO: 1 Name: 張三 Sex: m Birthday(y/m/d): 1980 5 12 Postnum: 100034 Address: Beijing University Tele: (010)62021200 (插入與刪除 ) 在實際使用中 ,數(shù)據(jù)資料輸入后 ,還需要不斷的更新和維護操作 ,最常見的是數(shù) 據(jù)的插入與刪除。作為順序表來說,如何在插入與刪除數(shù)據(jù)資料后仍然能保持 原有數(shù)據(jù)之間的關(guān)系,是需要考慮的關(guān)鍵問題。 電子通訊錄的插入算法如下: printf(\n\tInsert No:)。 /*錄入插入位置 */ scanf(%d,amp。k)。 for(j=i+1。jk。j) /*插入位置后的元素順序后移 */ { strcpy(friends[j].name,friends[j1].name)。 /*交換元素內(nèi)容 */ friends[j].sex=friends[j+1].sex。 friends[j].=friends[j1].。 friends[j].=friends[j1].。 friends[j].=friends[j1].。 strcpy(friends[j].,friends[j1].)。 strcpy(friends[j].,friends[j1].)。 strcpy(friends[j].telephone,friends[j1].telephone)。 } Data_Input(k)。 /*插入位置上填入待插入元素 */ i++。 /*總元素個數(shù)增 1*/ 刪除 算法如下: printf(\n\tDelete No:)。 /*讀入刪 除位置 */ scanf(%d,amp。k)。 for(j=k。ji。j++) /*刪 除位置前的元素順序前移 */ { strcpy(frinds[j].name,frinds[j+1].name)。 friends[j].sex=frinds[j+1].sex。 friends[j].=friends[j+1].。 friends[j].=friends[j+1].。 frinds[j].=friends[j+1].。 strcpy(friends[j].,friends[j+1].)。 strcpy(friends[j].,friends[j+1].)。 strcpy(friends[j].telephone,friends[j+1].telephone)。 } i。 /*元素總數(shù)減 1*/ 3 函數(shù) search的代碼如下: search() { printf(\n\tPlease input name:)。 /*提示輸入要查詢的姓名 */ gets(search_name)。 for(j=1。j=i。j++) { if(strcmp(search_name,friends[j].name)==0) /*比較二個串 */ { Data_Show(j)。 /*查詢成功,打印記錄 ,結(jié)束循環(huán) */ break。 } } if(j1) /*查詢失敗,給出提示信息 */ printf(\n\t No such records)。 } 文件存盤代碼如下 FILE *fp。 void Data_Save() { int j。 fp=fopen(,w)。 /*c以可寫方式打開或創(chuàng)建文件 */ for(j=1。j=i。j++) fwrite(amp。friends[j],sizeof(struct friend),1,fp)。 fclose(fp)。 } 處理有關(guān)的文件操作 ,最容易忽視的就是關(guān)閉文件的操作 ..如果不及時關(guān)閉 ,容易造成 文件內(nèi)容的丟失 ,或者占用大量的內(nèi)存 ,導至程序的執(zhí)行速度下降。 從文件 : void Data_Load() { int j。 long k。 fp=fopen(,r+t)。 /*打開文件 */ if(fp!=NULL) { for(i=1。i50。i++) { if(j=fgetc(fp)==EOF) /*判斷是否到了文件尾 */ return。 k=i1。 fseek(fp,k*sizeof(struct friend),SEEK_SET)。 fread(amp。friends[i],sizeof(struct friend),1,fp)。 /*從文件中讀 一條記錄 */ } } else /*如果文件不存在 */ 4 { fp=fopen(,w)。 i=1。 } } 六、 【總體 設(shè)計 】 在前面五個步聚的基礎(chǔ)上開始進行程序主函數(shù)的設(shè)計。主函數(shù)首先調(diào)用初始化函數(shù) Data_Load從已有文件 ,如果是第一次使用,那么該文件不存在就創(chuàng)建 一個新文件,接下來程序進入一個無限循環(huán),首先用一系列 printf語句打印出各功能的選擇 菜單,并提示按下數(shù)字 鍵調(diào)用相應(yīng)的功能。這里使用了 switch分支結(jié)構(gòu)來處理按鍵消息,這 是一種典型的用法,當選擇了 ‘quit39。39。39。39。 菜單后,程序給出是否存盤的提示。 /*全部源代碼如下 */ include include include include include struct addr /*通訊地址結(jié)構(gòu)定義 */ { char post_num[10]。 /*郵編 */ char addr[40]。 /*家庭地址 */ }。 struct birth /*出生年月結(jié)構(gòu)定義 */ { int year。 /*年份 */ int month。 /*月份 */ int day。 /*日期 */ }。 struct friend1 /*電子通訊錄結(jié)構(gòu)定義 */ { int number。 /*序號 */ char name[20]。 /*姓名 */ char sex。 /*性別 */ struct birth birth。 /*出生年月 */ struct addr addr。 /*通信地址 */ char telephone[13]。 /*聯(lián)系電話 */ }friends[50]。 FILE *fp。 int i。 void Data_Load() { int j。 long k。 5 fp=fopen(,r+t)。 /*打開文件 */ if(fp!=NULL) { for(i=1。i50。i++) { j=fgetc(fp)。 if(j==EOF) /*判斷是否到了文件尾 */ return。 k=i1。 fseek(fp,k*sizeof(struct friend1),SEEK_SET)。 fread(amp。friends[i],sizeof(struct friend1),1,fp)。/*從文件中讀取一條記錄 */ }
點擊復制文檔內(nèi)容
畢業(yè)設(shè)計相關(guān)推薦
文庫吧 www.dybbs8.com
公安備案圖鄂ICP備17016276號-1