程序設(shè)計(jì)綜合實(shí)驗(yàn)報(bào)告冊(cè)_第1頁(yè)
程序設(shè)計(jì)綜合實(shí)驗(yàn)報(bào)告冊(cè)_第2頁(yè)
程序設(shè)計(jì)綜合實(shí)驗(yàn)報(bào)告冊(cè)_第3頁(yè)
程序設(shè)計(jì)綜合實(shí)驗(yàn)報(bào)告冊(cè)_第4頁(yè)
程序設(shè)計(jì)綜合實(shí)驗(yàn)報(bào)告冊(cè)_第5頁(yè)
已閱讀5頁(yè),還剩29頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、程序設(shè)計(jì)綜合實(shí)驗(yàn)實(shí)驗(yàn)地點(diǎn) 實(shí)驗(yàn)學(xué)期 學(xué)生班級(jí) 學(xué)生學(xué)號(hào) 學(xué)生姓名任課教師:龔勛 息科學(xué)與技術(shù)學(xué)院20122012 年 4 4 月編寫實(shí)驗(yàn)?zāi)康募皟?nèi)容1 1、根據(jù) ATMATM 的工作流程編寫用戶界面,掌握文本用戶菜單的編 寫方法;2 2、根據(jù) ATMATM 的工作流程編寫業(yè)務(wù)羅杰,掌握搭建一個(gè)完整的應(yīng) 用系統(tǒng)的方法及軟件編程思想。實(shí)驗(yàn)要求1 1、除提示用戶輸入的數(shù)字外,界面上不能響應(yīng)、出現(xiàn)任何其他用 戶輸入;2 2、每個(gè)菜單界面獨(dú)立顯示,不要出現(xiàn)多組菜單重疊顯示的現(xiàn)象;3 3、每個(gè)業(yè)務(wù)邏輯可以多次執(zhí)行,直到用戶選擇退出業(yè)務(wù)。實(shí)驗(yàn)步驟及核心代碼void mai n() int bExit=O;ch

2、ar in;while(!bExit)Mai nMen u();in=getch(); system(cls);switch(in) .語言選擇 void Mai nMen u() .void Lan guageMe nu (i nt t)int cExit=0;實(shí)驗(yàn)ATMATM 機(jī)用戶操作界面、業(yè)務(wù)邏輯II控制語言的選擇char in;while(!cExit)if(t=1)顯示中文功能選擇菜單in=getch(); system(cls); switch(i n)中文功能函數(shù)的選擇else中文的查詢函數(shù)void Query1()prin tf(=n)printf(此賬戶有%.2f元n,su

3、m);對(duì)sum已初始化system( pause);system(cls);中文的存錢函數(shù)void Dep osit1(float *p)同上,只需將中文函數(shù)改為英文函數(shù)float x;prin tf(”= printf(”輸入您要存的數(shù)目:); scan f(%f, &x);*p+=x;system(” pause);system(cls);n);中文的取錢函數(shù)void WithDraw1(float *p)float y;int a=1;prin tf(=printf(”輸入您要取的數(shù)目:while(a)n);”);scan f(%f, &y);if(ysum) printf(n余額不足,

4、按任意鍵后重新輸入n);else *p-=y; a=0;system( pause); system(cls);進(jìn)制轉(zhuǎn)換器實(shí)驗(yàn)?zāi)康募皟?nèi)容寫一個(gè)進(jìn)制轉(zhuǎn)換器,實(shí)現(xiàn)十進(jìn)制、二進(jìn)制、十六進(jìn)制的相互轉(zhuǎn)換實(shí)驗(yàn)要求1 1、轉(zhuǎn)換要求包括整數(shù)和小數(shù);2 2、提供清晰、有好的用戶界面;3 3、各種轉(zhuǎn)換可以反復(fù)多次執(zhí)行,直到用戶選擇”退出“按鈕。實(shí)驗(yàn)步驟及核心代碼void mai n() .void Mainmenu() .二進(jìn)制到十進(jìn)制和十六進(jìn)制void BtoDH()int iExit=0; while(!iExit) system(cls);stri ng s1,s2,s3,s; int i,le n;輸入字

5、符串ss=s1;len=s1.le ngth();for(i=0;ile n;i+)s3=s1.substr(0,1);s1=s1.substr(1,s1.le ngth()-1); if(s3=.) s2=s.substr(0,i);/截取從0到1的字符,包括0不包括1/截取0到i的字符break;if(s2.le ngth()=0)s2=s;s1=;int in=BtoDi nt(s2);把二進(jìn)制數(shù)分離開后,調(diào)用整數(shù)部分float dou=BtoDdecimal(s1);/調(diào)用二進(jìn)制小數(shù)部分dou=in+dou;stri ng ss1,ss2;ss仁BtoHi nt(s2,1);ss2=B

6、toHi nt(s1,0);.輸出十進(jìn)制形式和十六進(jìn)制形式二進(jìn)制整數(shù)到十進(jìn)制整數(shù)int BtoDi nt(stri ng s)int i,ss=0,le n,l;len=s.len gth()-1;l=le n;for(i=0;i=le n;i+)stri ng ch=s.substr(0,1); s=s.substr(1,s.le ngth()-1); if(ch=1)ss+=po w(2,l);l-;elseI-;return ss;二進(jìn)制小數(shù)到十進(jìn)制小數(shù)float BtoDdecimal(stri ng s)float ss=0.0;int i,le n,l;len=s.len gth(

7、)-1;l=-1;for(i=0;i=le n;i+)stri ng ch=s.substr(0,1);s=s.substr(1,s.le ngth()-1);if(ch=1) ss+=pow(2,i); /pow函數(shù)返回值為計(jì)算2的i次方l-;elsel-; return ss;/十六進(jìn)制到二進(jìn)制和十進(jìn)制void HtoBD()int iExit=0,le n,i;stri ng s,s1,s3,s2,ss1,ss2;while(!iExit)system(cls);cout s1;s=s1;len=s1.le ngth(); for(i=0;ile n;i+)s3=s1.substr(0,

8、1);s1=s1.substr(1,s1.le ngth()-1); if(s3=.)s2=s.substr(0,i); break;if(s2.le ngth()=0)s2=s;s1=;ss仁HtoBi nt(s2,1);ss2=HtoBi nt(s1,0);int in=BtoDi nt(ss1);float dou=BtoDdecimal(ss2);H.dou=in+dou;./輸出二進(jìn)制形式和十進(jìn)制形式stri ng HtoB in t(stri ng s,i nt in)stri ng s1;int len;len=s.len gth();stri ng ret=;for(i nt

9、i=0;ile n; i+)s1=s.substr(0,1);s=s.substr(1,s.le ngth()-1);if(i n=1) ret=HtoBbit(s1)+ret;elseret+=HtoBbit(s1);return ret;/十六進(jìn)制字符與二進(jìn)制字符串的互相轉(zhuǎn)換stri ngHtoBbit(stri ng s)二進(jìn)制到十六進(jìn)制stri ng BtoHin t(stri ng s,i nt in) int len=s.le ngth();int t=le n%4;len=(4-t)%4;while(le n-)if(in=1) s=O+s;elses+=O;int num=s.

10、le ngth()/4,i; stri ng ret;for(i=O;i nu m;i+)stri ng temp=s.substr(0,4);s=s.substr(4,s .len gth()-4);ret+=BtoHbit(temp);/BtiHbit函數(shù)使二進(jìn)制字符串與十六進(jìn)制字符互相轉(zhuǎn)換,stri ng ret;if(s=O)ret=OOOO;與上面相似,略寫return ret;/十進(jìn)制到二進(jìn)制和十六進(jìn)制void DtoBH()double num,n2; int iExit=0,le n,n1; stri ng s1,s2,s3,s4; while(!iExit)system(cl

11、s);cout num le n;n仁in t( nu m);n2=num-n1;s1=DtoBdecimal( n2,le n);s2=DtoBi nt( n1);s3=BtoHi nt(s2,1);s4=BtoHi nt(s1,2);/輸出二進(jìn)制形式和十六進(jìn)制形式/十進(jìn)制小數(shù)到二進(jìn)制小數(shù)stri ng DtoBdecimal(double in ,i nt len) stri ng ret;double p=in;while(le n-)P *=2;if(p =1)ret+=1;p-=1.0; elseret+=O;return ret;/十進(jìn)制整數(shù)到二進(jìn)制整數(shù)string DtoBi n

12、t(i nt in)if(in=0)return 0;stri ng ret=;int q=i n, rema in;while(q)remain=q%2;q=q/2;if(remai n)ret=1+ret;elseret=0+ret;return ret;實(shí)驗(yàn)?zāi)康募皟?nèi)容生成一組均勻分布的偽隨機(jī)數(shù),根據(jù)隨機(jī)數(shù)編寫一個(gè)抽獎(jiǎng)程序?qū)嶒?yàn)要求1 1、能夠根據(jù)用戶的輸入,控制隨機(jī)數(shù)生成的數(shù)目隨機(jī)數(shù)用動(dòng)態(tài)數(shù) 組保存;2 2、能夠根據(jù)用過的輸入,控制隨機(jī)數(shù)的范圍:比如能夠生成一組【a,ba,b】范圍內(nèi)的隨機(jī)數(shù);3 3、由用戶輸入抽獎(jiǎng)?wù)呷藬?shù) N;N;4 4、為每一個(gè)人分配一個(gè)代號(hào)(類似于名字)和一個(gè)隨機(jī)號(hào)碼(

13、即抽 獎(jiǎng)票號(hào),加你控制在 1-N1-N 之間)并將其打印出來;5 5、由機(jī)器搖號(hào):生成一個(gè)在 1-N1-N 之間的隨機(jī)數(shù)作為中獎(jiǎng)號(hào)碼,查找 中獎(jiǎng)?wù)?,并公布中?jiǎng)?wù)咝畔ⅲㄗⅲ嚎梢杂卸嗳送瑫r(shí)中獎(jiǎng))6 6、如果沒有對(duì)應(yīng)的中獎(jiǎng)?wù)?,需要將該?hào)碼公布出來,然后重新生成 一個(gè)中獎(jiǎng)號(hào)碼,知道中獎(jiǎng)?wù)叽嬖跒橹埂?shí)驗(yàn)步驟及核心代碼#in clude#in clude#includeusing n ames pace std;static un sig ned holdra nd=1L;void Lottery(i nt n);void mysra nd(un sig ned seed);int myran d(voi

14、d);in t llottery(i nt nu m);int n;struct PEOP LEchar *n ame;int nu mber;mem100;void mai n()coutn;cout=:coutI nformati on of all:e ndl;Lottery( n);void Lottery(i nt n)int i,N,k;int num;coutN;mysra nd( un sig ned)time(NULL);for(i=0;i n; i+)k=myra nd(); k=k%(N-1)+1;memi. nu mber=k;for(i=0;i n;i+)coute

15、ndli+1: p i,his nu mber is 16 )& 0 x7ff);in t llottery(i nt num)int i,j=0;coute ndlThe in valid lottery nu mber is: num e ndl;for(i=0;i n; i+)e ndl;if(memi. nu mber=num)coutThe in valid is: p i,his nu mber ismemi. nu mbere ndl;j+;if(j=0)return 0;elsereturn 1;實(shí)驗(yàn)四:插入排序、快速排序?qū)嶒?yàn)?zāi)康募皟?nèi)容1 1、生成一組隨機(jī)整數(shù),對(duì)該組數(shù)據(jù)進(jìn)行排

16、序,采用插入排序法;2 2、生成一組隨機(jī)整數(shù),對(duì)該組數(shù)據(jù)盡心排序,采用快速排序法。實(shí)驗(yàn)要求4 4、根據(jù)用戶要求,可以實(shí)現(xiàn)增序、降序兩種排序。實(shí)驗(yàn)步驟及核心代碼1、插入排序int main() /用戶定義數(shù)組長(zhǎng)度lenlottery(le n);void lottery(i nt le n) int i;char ch;mysrand(unsigned)time(NULL);/time函數(shù)返回1970年1月1日00:00:00起距函數(shù)調(diào)用時(shí)相聚的時(shí)間,以秒為單位,在的頭文件中if(ch=1)swa p1(b,le n);else if(ch=2)swap 2(b,le n);for(i=0;il

17、e n; i+)coutbie ndl;void mysra nd(un sig ned seed).int myran d(void) h=h%(10000-100)+100; /控制隨機(jī)數(shù)范圍在【100-10000】之內(nèi),return h;void swa p1(i nt *c,i nt n)int i,j,x,k=1;c0=myra nd();for(j=1;j=0&cix)ci+1=ci;i-;ci+1=x;2、快速排序void mai n()int A100, n,k;break;/升序排序void Quik Up (i nt a,i nt p ,i nt r)if(p =r) re

18、turn;int i=p;int j=r+1;定義/用戶定義數(shù)組長(zhǎng)度int exit=0;char ch;while(!exit) for(i nt i=O;i n;i+)k=myra nd();k=k%(MAX-MIN)+MIN;與產(chǎn)生隨機(jī)數(shù)有關(guān)的函數(shù)略,實(shí)驗(yàn)三有寫/控制隨機(jī)數(shù)的范圍,MIN=1,MAX=100,在開始有Ai=k; mainmenu();ch=getch();system(cls);switch(ch)/mainmenu函數(shù)為主菜單,略寫case1:QuikU p(A,0, n-1);system(cls);break;case 2:QuikDow n(A,0, n-1);p

19、rin t(A, n);case3:exit=1;default:prin tf(error!n);prin t(A, n);system(” pause);system( pause);system(cls); break;int x=a p;while(1)while(i=r&a+i=P&a-jx);if(i=j) break;Swap(&ai,&aj);/Swap函數(shù)為交換*p與*q的值,略寫if(i=j)ap =aj;aj=x;QuikU p( a, p,j-1);QuikU p( a,j+1,r); 實(shí)驗(yàn)五:模塊計(jì)時(shí)器、常用排序算性能測(cè)試實(shí)驗(yàn)?zāi)康募皟?nèi)容設(shè)計(jì)一組計(jì)時(shí)函數(shù),封裝所有計(jì)時(shí)函

20、數(shù),采用測(cè)試性能函數(shù)對(duì)快速函 數(shù)、插入函數(shù)、選擇排序算法進(jìn)行性能測(cè)試。實(shí)驗(yàn)要求1 1、計(jì)時(shí)精確:封裝的高精度的計(jì)時(shí) APIAPI 函數(shù)QueryQuery PeformaPeforma nceCounceCou nter(),nter(),可以達(dá)到微秒級(jí)的精度;BM_ENBM_EN 臥需要對(duì)結(jié)果進(jìn)行計(jì)算,也不需要考慮對(duì)各個(gè)模塊結(jié)果數(shù)據(jù) 的維護(hù);3 3、多組測(cè)試:最多可以同時(shí)實(shí)現(xiàn) 2020 個(gè)模塊的測(cè)試,及可以保存 2020 組數(shù)據(jù);4 4、結(jié)果輸出獨(dú)立:在系統(tǒng)運(yùn)行結(jié)果時(shí),只需要用一個(gè)函數(shù)就可以把2 2、使用簡(jiǎn)單:只用在待測(cè)試的模塊前后加上兩個(gè)宏BMBM STARTSTART 和計(jì)時(shí)結(jié)果保存在一

21、個(gè)文本文件里5 5、對(duì)一組數(shù)據(jù)進(jìn)行排序;6 6、數(shù)組長(zhǎng)度為 10000,10000,數(shù)組應(yīng)隨機(jī)產(chǎn)生;7 7、為了保證測(cè)試數(shù)據(jù)的穩(wěn)定,每種排序算法運(yùn)行 1010 次,計(jì)算總的時(shí)實(shí)驗(yàn)步驟及核心代碼void mai n() int i;int retBENCHMARK_MAX_COUNT;In itBe nchmark();BMTimerStart(l);for(i=0;i10;i+)sort_quick(a,10000); sort_chr(a,10000); sort_choice(a,10000);BMTimerE nd(1);II結(jié)束計(jì)時(shí)WriteData(1,Test1,D:log.txt

22、);II將數(shù)據(jù)填入文件中 void In itBe nchmark()ResetBe nchmarkCo un ters();GetClockFreque nt();void BMTimerStart(i nt iModel)LARGE_INTEGER lit mp;Query Peforma nceCo un ter( & lit mp); gStartsiModel=lit mp .Quad Part;void BMTimerE nd(i nt iModel)/BENCHMARK_MAX_COUNT為模塊總數(shù)開始計(jì)時(shí)快速排序,實(shí)驗(yàn)四有寫,略寫II插入排序,實(shí)驗(yàn)四有寫,略寫II選擇排序,略寫

23、對(duì)數(shù)組gStats,gEnds,gCounter清零II獲得機(jī)器內(nèi)部定時(shí)時(shí)鐘頻率II提高精度,在頭文件windows.h中LARGE_INTEGER lit mp;Query Peforma nceCo unter(&lit mp); gEndsiModel=litm p.Quad Part;void WriteData(i nt TotalCo un t,stri ng sModel,stri ng p ath)1gStartsi=0;保存開始計(jì)時(shí)的計(jì)數(shù)器的值/open the file and move pointer to the end of the file,需要頭文件fstream

24、 ofstream pF ile( path.data(),ios:a pp |ios:out);/1 Headerstri ng title,s2;stri ng sp erator=r nrn= title=Model-+sModel;char tem p1100,tem p2100;sprin tf(tem p1,rnlteratio n Cou nter:5drn,TotalCou nt);title+=te mp1;/2 Timesstri ng s;double gTotal=0;for(i nt i=0;iBENCHMARK_MAX_COUNT;i+)/將結(jié)果寫進(jìn)文件if(gCo

25、 un tersi=0)con ti nue;sprin tf(tem p1,Total %d,i);int len=strle n(temp 1)/8;/* calculate the nu mber of ts+=te mp1;for(;le n 2;le n+)s+=t;sprin tf(tem p2,:%d msr n,(i nt)(gCou ntersi/1000); gTotal+=gCo un tersi;/Calculate the total ticks.s+=te mp2;char temp 100;sprin tf(te mp ,* Total:%d ms *rn,(i

26、nt)gTotal/1000);s+=te mp;/write en tire stri ng at one times2=s perator+title+s;p Files2;p File.close();void GetClockFreque nt()Query Performa nceF reque ncy(&lit mp);dfFreq=(double)lit mp .Quad Part; /dfFreq用于保存時(shí)鐘頻率,為全局變量,已賦初值為void ResetBe nchmarkCo un ters()rn;1gStartsi=0;保存開始計(jì)時(shí)的計(jì)數(shù)器的值 int i;for(i=

27、0;in ext; p0=std;p2=head;if(p 1=NULL) else while(atoi( p0-ID)atoi( p1-ID)&(p 1- next!=NULL)p 2=p1; p1= p1- next; if(atoi(p0-ID)ID) p2-next=p0; p0-next=p1; else p 1-next= p0; p0-next=NULL;retur n( head);II添加學(xué)生信息struct stude nt *Add_stu(struct stude nt *stu)head-n ext=pO;pO-next=NULL;struct stude nt *

28、p1;int n=O,exit=O;p1=(struct stude nt*)malloc(LEN);while(!exit)/輸入學(xué)號(hào)并且判斷學(xué)號(hào)是否是4位,不是4位則退出/輸入學(xué)生的信息stu=i nsert(stu, p1);/查詢學(xué)生信息void Inqu ir_stu(struct stude nt *stu) char nu mber5;struct stude nt *p;cinnu mber;/根據(jù)學(xué)生學(xué)號(hào)來查詢學(xué)生信息p=stu;do if(!(strcmp(p-ID,number)./輸出學(xué)號(hào)匹配的學(xué)生的信息p=p-n ext;while( p!=NULL);/編輯學(xué)生信息

29、structstude nt * Edit_stu(struct stude nt *stu)cinnu mber;p=stu;doif(!(strcm p(p-ID, nu mber)/輸出學(xué)生信息并且提示用戶選擇修改信息char in;in=getch();switch(in) ./轉(zhuǎn)換in,進(jìn)行選擇修改信息p=p-n ext;while( p!=NULL);SYSTEMO;return stu;struct stude nt *p; charnu mber5;刪除學(xué)生信息struct stude nt *Delete_stu(struct stude nt *stu) int sigh=

30、O,exit=O;struct stude nt *p 1,* p2;stri ng nu mber;p 1=stu-n ext;p2=stu;Prin t_stu(stu);while(!exit)/輸入學(xué)生學(xué)號(hào)if(number=0000)/提示所有學(xué)生信息已經(jīng)刪除并且使結(jié)點(diǎn)連接到頭結(jié)點(diǎn)elsecout沒有找到學(xué)號(hào)為number.data()ID ,nu mber.data()=0) else p2=p1; p1=p1-n ext; sigh=1; p2-n ext =p1-n ext; break; if(sigh) else正確!e ndl;/提示學(xué)生信息已刪除并退出文本文件、進(jìn)制文件

31、格式的保存讀取3 3、存盤成功后或者失敗,輸出提示信息4 4、數(shù)據(jù)讀入后能夠修改保存5 5、能夠修改存盤及數(shù)據(jù)讀取函數(shù),添加二進(jìn)制文件實(shí)現(xiàn)數(shù)據(jù)的保 存與讀取的功能實(shí)驗(yàn)步驟及核心代碼system(cls);FILE *fp;cout file name;if(fp=fo pen (file name.data(),wt)=NULL)coutca nnot open the file!n ext;while( p!=NULL)fprin tf(fp,%s %s %.2fn,p-ID, p- name, p-score); p=p- next;fclose(fp);if(!p) cout數(shù)據(jù)已經(jīng)成功

32、保存在:filename中!endl;else cout存盤失敗!e ndl;/*文本文件讀*/void Docume nt_Read()system(cls);FILE *fp;stri ng file name;cout file name;if(fp=fo pen (file name.data(),rt)=NULL) coutca nnot open the file!ID ,newno de-n ame,&(newno de-score); in sert(list, newno de);關(guān)閉文件/*-二進(jìn)制文件保*/void Bin ary_Save() .和系統(tǒng)交互、讀取保存在系

33、統(tǒng)中的區(qū)域信息,比如日期格式、貨幣符號(hào)等,掌握程序休眠、獲取當(dāng)前時(shí)間的方法if(fp=fo pen (file name.data(),wb)=NULL) coutca nnot open the file!n ext;while( p!=NULL)fwrite( p,sizeof(stude nt),1,fp);fclose(fp);cout數(shù)據(jù)已經(jīng)成功保存在:filename中!endl;cout存盤失?。 ext; if仲)else二進(jìn)制文件讀取*void Bin ary_Read()/*cout file name;if(fp=fo pen (file name.data(),rb)

34、=NULL)coutca nnot open the file!e ndl;return; stude nt *newno de;while(1)newno de=(stude nt *)malloc(LEN);fread( newno de,sizeof(stude nt),1,fp);if(feof(fp)free( newno de);break;in sert(list, newno de);.關(guān)閉文件實(shí)驗(yàn)八:系統(tǒng)信息讀取、系統(tǒng)操作命令實(shí)驗(yàn)?zāi)康募皟?nèi)容實(shí)驗(yàn)要求1 1、輸出當(dāng)前區(qū)域設(shè)置中的日期格式;2 2、貨幣符號(hào);3 3、千位分隔符;4 4、小數(shù)分隔符;5 5、日期分隔符;6 6、時(shí)間分

35、隔符;7 7、時(shí)間制式(2424 小時(shí) or12or12 小時(shí));8 8 使用 sleePsleeP 函數(shù),使程序獲取當(dāng)前時(shí)間的方法;9 9、獲取當(dāng)前時(shí)間,格式為:“星期月曰小時(shí):分:秒:年份”;實(shí)驗(yàn)步驟及核心代碼#in clude#in clude#in clude#ifndef _TIME_TDEFINEDtyp edef long time_t;#defi ne _TIME_T_DEFINED#e ndifvoid mai n()time_t curre nt_time;slee p( 5);time(&curre nt_time);prin tf(%s,ctime(&curre nt_

36、time);實(shí)驗(yàn)九:判斷文件屬性、創(chuàng)建文件夾實(shí)驗(yàn)?zāi)康募皟?nèi)容通過系統(tǒng)庫(kù)函數(shù)判斷文件的各種屬性(存在性、只讀性等),學(xué)習(xí)創(chuàng) 建文件夾的方法,通過庫(kù)函數(shù)設(shè)計(jì)一個(gè)密碼程序,如同其他 DOSSDOSS 序 一樣,要求輸入密碼并禁止回顯。實(shí)驗(yàn)要求1 1、用戶輸入任意一個(gè)文件名,(包括路徑,如 d:test.txtd:test.txt ),寫程 序該文件食肉存在;2 2、用戶輸入任意一個(gè)文件名,指出該文件的屬性,例如不存在則創(chuàng) 建它;3 3、把以上 3 3 個(gè)功能集成在一個(gè)程序,提供一個(gè)用戶菜單,供用戶選 擇測(cè)試;4 4、實(shí)現(xiàn)從控制臺(tái)讀入密碼,并禁止回顯;5 5、在程序中預(yù)設(shè)一個(gè)密碼(8 8 個(gè)字符以內(nèi)),

37、將用戶輸入與之進(jìn)行匹 配;6 6、用戶只有 3 3 次機(jī)會(huì),如果用戶輸入不正確,提醒輸入錯(cuò)誤,并提 醒剩下的輸入次數(shù);7 7、如果密碼正確,則刷屏,進(jìn)入用戶歡迎界面;& &如果三次輸入錯(cuò)入,退出程序。實(shí)驗(yàn)步驟及核心代碼1、判斷文件屬性、創(chuàng)建文件夾/*判斷文件是否存在void existe nce()*/system(cls);char docume nt20;coutI nput the n ame of a docume nt:e ndl; sca nf(%s,docume nt);if(access(docume nt,0)=0)coutThe docume nt exists!e ndl

38、;elsecoutThe docume nt does not exist!e ndl; system( pause);判斷文件的屬性*/ void attribute()system(” pause);/*女口果文件夾不存在則創(chuàng)建一個(gè)文件夾*/void Create()system(cls);char docume nt20;coutI nput the n ame of the docume nt:e ndl;sca nf(%s,docume nt);if(access(docume nt,0)=0)coutThe docume nt already exists!e ndl;else c

39、outThe docume nt does not exist. Please waite.e ndl;if(mkdir(docume nt)=0) coutThe docume nt now exist!e ndl; else coutCreat fail!e ndl;system( pause);2、密碼輸入#in clude#in clude#in cludevoid mai n()/*system(cls);char docume nt20;coutI nput the n ame of a docume nt:e ndl;sca nf(%s,docume nt);if(access(

40、docume nt,0)=0)coutExiste nee only e ndl;elseelseelseif(access(docume nt,2)=0)coutWrite p ermissi onen dl; if(access(document,4)=0)coutRead p ermissi onen dl; if(access(docume nt,6)=0)coutRead and write p ermissi onen dl;char pass10=123456;char*p;int t=3;p=get pass(E nter Password:);while(t!=0)if(st

41、rcm p(p,p ass)=0)prin tf(* nWel comen*n);t=0;else if(t=0) return;printf(P assword In correct,%d times left n,-t); p=get pass(E nter Password:);實(shí)驗(yàn) 1010:視窗程序編程基礎(chǔ)、實(shí)驗(yàn)?zāi)康募皟?nèi)容練習(xí) TCTC 提供的屏幕操作函數(shù),并且實(shí)現(xiàn)美觀通用的彈出式對(duì)話框進(jìn)行消息提示。實(shí)驗(yàn)要求1 1、掌握 windowwindow、cirscrcirscr、textbackgroundtextbackground、textcolortextcolor等函數(shù)功能及使用方

42、法,實(shí)現(xiàn)在屏幕中打開一個(gè)小窗口,在窗口中顯示兩行文字,要求將屏幕背景設(shè)置為白色,窗口背景設(shè)置為藍(lán)色,文字顏色為黃色;2 2、為使窗口更加沒換,為其繪制邊框;3 3、實(shí)現(xiàn)一個(gè)對(duì)話框,為體現(xiàn)對(duì)話框的立體感,要求繪制其陰影,將對(duì)話框分為上、下兩部分:上部分為標(biāo)題,下部分為標(biāo)題欄,居中顯示對(duì)話框標(biāo)題;下部分為信息欄,顯示相關(guān)消息,可以有多行。要求寫一個(gè)對(duì)話框函數(shù),根據(jù)用戶的輸入的參數(shù),可以顯示不同的對(duì)話框。實(shí)驗(yàn)步驟及核心代碼#in clude#in clude#in cludestatic un sig ned holdra nd=1L;void Dialog(i nt x0,i nt yO,i nt

43、 iWidth,i nt iRow,char *sTitle,char *in formati on );void mysra nd(un sig ned seed)holdra nd=seed;int myran d(void)return(holdra nd=holdra nd*214013L+2531011L)16)&0 x7ff);void mai n()int buf;long i;char c;char *sTitle=*NOTICE*;char *in formatio n2=This is the first text win dow p rogram,p ress any k

44、ey to begi n your expIoration.;mysra nd( un sig ned)time(NULL);for(i=0;i600;i+)prin tf(%d,myra nd);buf=(char *)malloc(10*40*2);gettext(20,10,70,20,buf);prin tf(Do you want to open the small win dow?scan f(%c,&c);if(c=Y)Dialog(20,10,50,2,sTitle,i nformatio n 2);prin tf(Do you want to close the small

45、wi ndow?scan f(%c,&c); gotoxy(60,30); if(c=Y) puttext(20,10,70,20,buf);void Dialog(i nt xO,i nt yO,i nt iWidth,i nt iRow,char *sTitle,char *in formati on) int i,j,t=O;wi ndow(20,10,70,20);textbackgrou nd(BLACK);clrscr();textcolor(WHITE);cprin tf(r n%s,sTitle);for(i=2;i50;i+)gotoxy(i,3);p utch(205);Y/N);Y/N);cprin tf(r n %s%sn,i nformatio n0,i nformatio n1);for(i=2;i50;i+)gotoxy(i,1);p utch(205);gotoxy(i,11);p utch(205);for(j=2;j11;j+)gotoxy(1,j);p utch(186);gotoxy(50,j);p utch(186);gotoxy(1,1);p utch(201);gotoxy(50,

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論