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

正文內(nèi)容

電話薄管理系統(tǒng)課程設(shè)計(jì)-預(yù)覽頁(yè)

 

【正文】 printf(\n 請(qǐng)重新輸入:)。好了,下面開(kāi)始介紹本程序的重頭戲了。 //設(shè)置密碼bool cunru()。 //以輸出一行“*”來(lái)構(gòu)建bool gongneng()。 //格式化文件bool shanchu()。 bool (*pst)()。 break。 break。 break。 break。 break。 break。break。) //去掉換行符,免得會(huì)在存入里面作為第一個(gè)輸入字符 break。\n39。while(getchar() == 39。}在上面的代碼中,你可能也發(fā)現(xiàn)沒(méi)有輸出字符串的函數(shù),也沒(méi)有需要選擇功能的輸入函數(shù),下面給出功能界面輸出的模塊:bool gongneng(){ char a。 printf( 查找\n\n)。 printf( 格式化文件\n\n)。a)。a)。當(dāng)然不這些信息都已經(jīng),存入到了另外開(kāi)辟的文件里,而這個(gè)文件的名為 的里面,位置為當(dāng)前位置。 yuansu one[1], two[1]。 } printf(請(qǐng)輸入中文名字: )。 printf(電話號(hào)碼:)。 printf(性別:)。onebirth[0],amp。 last = ftell(file)。count = count + sizeof(yuansu)。 printf(\n 此信息已存在!\n)。 fengge()。 if(z == 39。139。 } } } fclose(file)。 fclose(file)。) //去掉第 106 行的換行符,免得會(huì)在存入里面作19為第一個(gè)輸入字符break。 if(z == 39。139。 } else { printf(\n 輸入錯(cuò)誤,請(qǐng)從新開(kāi)始!!\n)。 return true。在執(zhí)行模塊的代碼為:while( pd == false) //返回值為 false 為失敗,則任然需要繼續(xù)執(zhí)// 行,而返回 true 則不需要執(zhí)行{pd = (*pst)()。} return true。239。22主函數(shù)代碼為:int main(void){ mima()。 gongneng()。 查找功能對(duì)于查找功能,實(shí)現(xiàn)應(yīng)該很簡(jiǎn)單,只要找到與輸入字符創(chuàng)相對(duì)應(yīng)的就可以了,在著了采用的是名字作為查找標(biāo)記,而本程序的查找是把應(yīng)經(jīng)存在文件里的內(nèi)容按照結(jié)構(gòu)體數(shù)組輸出,在這里本程序在這個(gè)功能模塊里只創(chuàng)建一個(gè)大小為一的結(jié)構(gòu)體數(shù)組,將 文件里的內(nèi)容一個(gè)一個(gè)輸出,輸出一個(gè)就馬上與要查找的字符串(也23就是名字)進(jìn)行比較,看是否相同,若相同則會(huì)輸出,然后執(zhí)行完循環(huán)直至結(jié)束,但是若找不到,則會(huì)顯示找不到聯(lián)系人。24 而此函數(shù)的代碼模塊是:bool chazhao(){ system(cls)。int count = 0, last, n = 0。 \\ 輸入用戶要查找的名字gets(hedui)。fread(one, sizeof(yuansu), 1, file)。printf( 電話:%s\n\n, onepnumber)。25 fengge()。 fengge()。 if(zi == 39。139。}查找這一功能的代碼比較長(zhǎng),可以用流程圖來(lái)幫助理解:26輸入 2,執(zhí)行查找功能打開(kāi)文件輸入要查找的名字當(dāng)前光標(biāo)是否處于文件末尾將文件內(nèi)的第一個(gè)名字與所要查找的名字核對(duì)輸出相關(guān)信息是將光標(biāo)移向下一個(gè)名字處否否名字是否相同?27對(duì)于查找這一功能,比較注意的幾個(gè)部分是:第一:代碼為:fseek(file, 0L, SEEK_END)。fread(one, sizeof(yuansu), 1, file)。第三:代碼為:28if( strcmp(onenamechina,hedui) == 0 || strcmp(onenameenglish,hedui) == 0 ){printf(\n %s,onenamechina)。printf( 性別:%s\n\n, onesex)。}}fclose(file)。若不存在,程序會(huì)顯示出相關(guān)提示信息。) return true。fengge()。因?yàn)楹藢?duì)信息的時(shí)候從文件的開(kāi)頭開(kāi)始核對(duì),所以應(yīng)該知道什么時(shí)候文件內(nèi)的信息就是最后一個(gè)。 修改功能修改功能,大家通過(guò)字面上的意思應(yīng)該就可以知道,修改已存在信息,首先我們肯定需要輸入名字查找,將該信息顯示然后在選擇需要修改的信息,然后在存入文件中。 FILE *file。 if((file = fopen(D:\\,ab+)) == NULL){ puts(打開(kāi)失?。?! )。31fseek(file, 0L, SEEK_END)。fread(amp。printf( 電話:%s\n\n, one[m].pnumber)。//找出要修的,就開(kāi)始修改printf(\n)。 printf( 電話號(hào)碼\n)。 printf(\n 輸入數(shù)字:)。) ) break。 gets(one[m].namechina)。:{ printf(\n 請(qǐng)輸入英文名字:)。339。 case 39。}break。 gets(one[m].sex)。:{ printf(\n 出身年月(中間以逗號(hào)隔開(kāi)):)。(one[m].birth[2]) )。count = count + sizeof(yuansu)。 z = getchar()。 if(z == 39。) break。 fclose(file)。 m = 0。 count = count + sizeof(yuansu)。 printf(\n)。239。) printf(\n)。}直接看這個(gè)函數(shù)塊的代碼,可能很糾結(jié),下面給出這個(gè)功能塊的流程圖來(lái)說(shuō)明下:34輸入要查找的對(duì)象打開(kāi)文件,將信息全部輸出到大數(shù)組里,然后逐一核對(duì)有相同信息嗎?則輸查找失敗,提示是否繼續(xù)查找,還是退出否是 輸出聯(lián)系人的信息,并修改,后放回原位置不動(dòng),然后就將存放信息的數(shù)組放回文件即可存放成功后,最后提示是繼續(xù)修改還是退出通過(guò)這個(gè)流程圖,大家就可以很好理解這個(gè)功能模塊了,下面我們來(lái)具體分析這個(gè)修改模塊的精髓地方。 fclose(file)。簡(jiǎn)單用流程圖來(lái)總結(jié)一下上面的表述:將 文件全寫入one[max]根據(jù)查找到信息進(jìn)行修改,修改后放回原數(shù)組將 的內(nèi)容清空將存放信息的數(shù)組放入文件即可 全部輸出功能 在鍵盤上輸入 4 后可以進(jìn)入全部輸出功能,顯示界面為:37如圖所示,以查詢用戶所要查詢的信息.此函數(shù)的代碼為:bool duchu(){ system(cls)。int count = 0, last。 \\將文件的光標(biāo)移至末尾 last = ftell(file)。 \\分割功能使輸出的信息更加清晰fread(one, sizeof(yuansu), 1, file)。printf( 電話:%s\n\n, onepnumber)。m ++。return true。int count = 0, last。然后在定義一個(gè)文件指針類型,該指針用來(lái)指向存放數(shù)據(jù)的文件。 last = ftell(file)。然后記得在將光標(biāo)移至文件的開(kāi)頭位置,因?yàn)橐獜拈_(kāi)頭將信息一一輸出,這樣才不會(huì)漏掉一個(gè)。count = count + sizeof(yuansu)。printf( : %s\n\n, oneqq)。}這幾行代碼看似復(fù)雜,但其實(shí)就是一個(gè)簡(jiǎn)單的 while 循環(huán)。第四:代碼為:if(m == 0) printf(\n 內(nèi)容為空?。。n)。這個(gè)程序總體來(lái)說(shuō),設(shè)計(jì)的時(shí)候相對(duì)比較的簡(jiǎn)單,在設(shè)計(jì)的時(shí)候主要需要注意將文件的末位置搞出來(lái),用來(lái) while 循環(huán)的條件。在本程序里面,我事先保存了兩個(gè)聯(lián)系人,現(xiàn)在刪除一個(gè)那么在 文件里面應(yīng)該只保存了一個(gè)聯(lián)系人信息,對(duì)吧!用全部輸出功能,也只能輸出一個(gè),下面我們來(lái)看如下的截圖:43由上信息我們可以看出,雖然把信息給刪除了,可是在在 里面還是占據(jù)了內(nèi)存,并以空信息的方式輸出了,倘若是鏈表的話就不會(huì)出現(xiàn)這樣的缺陷了。 yuansu one[max]。 return true。 last = ftell(file)。one[m], sizeof(yuansu), 1, file)。printf( : %s\n\n, one[m].qq)。 ji = m。 if(n == 0) printf(查找失敗,或不存在?。。n)。239。) { while(getchar() == 39。 } } //移動(dòng)數(shù)組的元素進(jìn)行刪除 while(ji m) { one[ji] = one[ji + 1]。 fclose(file)。 m = 0。 count = count + sizeof(yuansu)。 printf(\n)。239。) printf(\n)。所以在此建議大家以后寫這樣的程序時(shí),就把鏈表的知識(shí)引用到里面去吧!其他的相信大家也都看得懂,我也不多啰嗦了。 FILE *file。 z = getchar()。 if(z == 39。 return true。 system(pause)。}第五章 總結(jié)在本程序的設(shè)計(jì)開(kāi)始時(shí)候,由于是第一次寫,所以許多準(zhǔn)備工作都做得不足,到時(shí)再此程序中有許多地方不夠嚴(yán)謹(jǐn),希望可以諒解,現(xiàn)在我總體來(lái)說(shuō)說(shuō)本程序。使用戶更加容易懂設(shè)計(jì)者的用意。所以,避免了對(duì)信息的批量定義。它在所用運(yùn)算符中的優(yōu)先級(jí)最高,因此把“結(jié)構(gòu)”作為一個(gè)整體來(lái)對(duì)待,且整體的數(shù)據(jù)類型與結(jié)構(gòu)體中該成員的數(shù)據(jù)類型相同。還涉及到結(jié)構(gòu)體指針的有關(guān)知識(shí)、指向結(jié)構(gòu)體數(shù)組的指針。 本程序中還有我們自己定義的函數(shù)。 //把文件里的數(shù)據(jù)全部讀出來(lái) bool chazhao()。//執(zhí)行所選擇的功能 bool xiugai()。 這些函數(shù)都是對(duì)文件進(jìn)行處理的函數(shù),在主函數(shù)中進(jìn)行調(diào)用。第三:數(shù)組和指針 數(shù)組是同類型數(shù)據(jù)的有序集合。指針在 C 語(yǔ)言中是最復(fù)雜的知識(shí),數(shù)組和指針混在一起就更比較復(fù)雜了。此程序主要用了 fopen 函數(shù)(將要處理的文件打開(kāi)) 、fclose 函數(shù)(將要處理的文件關(guān)閉) 、fread 函數(shù)(對(duì)文件內(nèi)的數(shù)據(jù)進(jìn)行讀) 、fwrite (對(duì)文件進(jìn)行寫) 、還有 rewind 函數(shù)(將文件的光標(biāo)移至文件開(kāi)頭) 、fseek 函數(shù)(改變文件位置標(biāo)記) 、ftell 函數(shù)(測(cè)定文件位置標(biāo)記的當(dāng)前位置) 。我們可以用如下的代碼來(lái)除掉這個(gè)字符while(getchar() == 39。還有一點(diǎn)要注意的就是,我們需要按程序更加健壯,更加人性化,我們需要在從鍵盤輸入數(shù)字來(lái)選擇的時(shí)候,有時(shí)候一不小心輸錯(cuò)了,那該怎么辦了?這的確是一個(gè)頭疼的問(wèn)題,在這個(gè)程序里就有部分代碼就是放錯(cuò)誤輸入而寫的,比如switch(a) { case 39。 case 39。 case 39。 case 39。 case 39。 case 39。 case 39。 default: printf(輸入有誤!!\n)。 system(pause)
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1