1、<p><b> C語言課程設(shè)計報告</b></p><p> 學校:江蘇大學京江學院</p><p><b> 班級:通信工程二班</b></p><p><b> 姓名:封多多</b></p><p> 學號:4111109035</p>
2、<p> 2012年6月18日</p><p><b> 目的</b></p><p> 熟悉C語言相關(guān)概念和語法的使用</p><p> 學習Visual C或Microsoft Visual Studio 語言程序開發(fā)環(huán)境的運用</p><p> 分析課程設(shè)計中出現(xiàn)的問題和相應(yīng)解決的方法</
3、p><p><b> 編寫課程設(shè)計報告</b></p><p><b> 2.要求的內(nèi)容</b></p><p> 使用支持C或C++語言的Visual C 或Microsoft Visual Studio 的開發(fā)軟件制作圖書信息管理應(yīng)用系統(tǒng),實現(xiàn)圖書信息的路入、刪除和修改的功能。</p><p>
4、;<b> 具體要求如下:</b></p><p> 一個圖書信息包括書號、書名、出版社、作者、價格和數(shù)量這些信息,其中書號為圖書的關(guān)鍵字。</p><p> 圖書管理界面(主界面)包括增加圖書、修改圖書、刪除圖書和退出四項。其中增加圖書、修改圖書、刪除圖書的操作均以圖書的書號為條件,操作完成前和完成后均輸出全部的圖書信息。</p><p&g
5、t; 該圖書信息管理應(yīng)用必須建立一個鏈表,每個節(jié)點包括每個圖書信息,上述操作均在鏈表上進行。</p><p> 3、開發(fā)及運行的軟件</p><p> Visual C++ </p><p><b> 設(shè)計步驟</b></p><p><b> 圖書信息:</b></p>&
6、lt;p> 書名 bookname char類型字符串 20字節(jié)</p><p> 作者名 author char類型字符串 20字節(jié)</p><p> 出版單位 publisher char類型字符串 20字節(jié)</p><p> 出版數(shù)量 num long類型 8字節(jié)</
7、p><p> 價格 price float類型 4字節(jié)</p><p> 書號 classfly char字符串 10字節(jié)</p><p> 圖書信息結(jié)構(gòu)體 book_list 指針類型</p><p><b> 界面設(shè)計</b></p&
8、gt;<p> 圖書信息管理系統(tǒng) </p><p> 1 圖書信息錄入 </p><p> 2圖書信息瀏覽 </p><p> 3圖書信息查詢
9、 </p><p> 4圖書信息修改 </p><p> 5圖書信息刪除 </p><p><b> 6退出系統(tǒng) </b></p><
10、;p><b> 請選擇:");</b></p><p><b> 函數(shù)設(shè)計</b></p><p> struct books_list * Create_Books_Doc()</p><p> void InsertDoc(struct books_list * head)</p>
11、<p> void DeleteDoc(struct books_list * head )</p><p> void info_change(struct books_list * head)</p><p> void save(struct books_list * head)</p><p><b> 流程圖</b>
12、;</p><p><b> 代碼實現(xiàn)</b></p><p> 輸入一本或幾本圖書的信息,形成一個鏈表存放在文件中。</p><p><b> /*插入*/</b></p><p> void InsertDoc(struct books_list *head)</p>&l
13、t;p><b> {</b></p><p> /*定義結(jié)構(gòu)體指針變量 s指向開辟的新結(jié)點首地址 p為中間變量*/</p><p> struct books_list *s, *p;</p><p> char flag='Y'; /*定義flag,方便用戶選擇重復(fù)輸入*/</p><p>
14、;<b> p=head;</b></p><p> /*遍歷到尾結(jié)點,p指向尾結(jié)點*/</p><p> while(p->next!= NULL)</p><p><b> {</b></p><p> p=p->next;</p><p><
15、b> } </b></p><p> /*開辟新空間,存入數(shù)據(jù),添加進鏈表*/</p><p> while(flag=='Y'||flag=='y')</p><p><b> {</b></p><p> s=(struct books_list *)m
16、alloc(sizeof(struct books_list));</p><p> printf("\n 請輸入圖書書號:");</p><p> fflush(stdin);</p><p> scanf("%s",s->booknum);</p><p
17、> printf("\n 請輸入圖書書名:");</p><p> fflush(stdin);</p><p> scanf("%s",s->bookname);</p><p> printf("\n 請輸入圖書作者名
18、:");</p><p> fflush(stdin);</p><p> scanf("%s",s->author);</p><p> printf("\n 請輸入圖書出版社:");</p><p> fflush(stdin);<
19、/p><p> scanf("%s",s->publisher);</p><p> printf("\n 請輸入圖書數(shù)量:");</p><p> fflush(stdin);</p><p> scanf("%s",s->nu
20、m);</p><p> printf("\n 請輸入圖書價格:");</p><p> fflush(stdin);</p><p> scanf("%f",&s->price);</p><p> printf("\n"
21、);</p><p> p->next=s; /*將新增加的節(jié)點添加進鏈表*/</p><p> p=s; /*p指向尾節(jié)點,向后移*/</p><p> s->next=NULL;</p><p> printf(" ━━━━ 添加成功!━━━━");</
22、p><p> printf("\n 繼續(xù)添加?(Y/N):");</p><p> fflush(stdin);</p><p> scanf("%c",&flag);</p><p> printf("\n");<
23、;/p><p> if(flag=='N'||flag=='n')break;</p><p> else if(flag=='Y'||flag=='y')</p><p><b> ;}</b></p><p> save(head); /*保存數(shù)據(jù)
24、至文件*/</p><p><b> return;</b></p><p><b> }</b></p><p> 輸入圖書書號,查看圖書是否存在,若不存在“輸出該圖書不存在”,若存在,刪除該圖書。</p><p><b> /*刪除操作*/</b></p>
25、;<p> void DeleteDoc(struct books_list * head)</p><p><b> {</b></p><p> struct books_list *s,*p; /*s為中間變量,p為遍歷時使用的指針*/</p><p> char temp[20];</p>&l
26、t;p> int panduan; /*此變量用于判斷是否找到了書目*/</p><p> panduan=0;</p><p><b> p=s=head;</b></p><p> printf(" [請輸入您要刪除的書號]:");</p><p&
27、gt; scanf("%s",temp);</p><p> /*遍歷到尾結(jié)點*/</p><p> while(p!= NULL)</p><p><b> {</b></p><p> if(strcmp(p->booknum,temp)==0)</p><p&
28、gt;<b> {</b></p><p> panduan++;</p><p><b> break;</b></p><p><b> }</b></p><p> p=p->next;</p><p><b> } &
29、lt;/b></p><p> if(panduan==1)</p><p><b> {</b></p><p> for(;s->next!=p;) /*找到所需刪除卡號結(jié)點的上一個結(jié)點*/</p><p><b> {</b></p><p>
30、 s=s->next;</p><p><b> }</b></p><p> s->next=p->next; /*將后一節(jié)點地址賦值給前一節(jié)點的指針域*/</p><p><b> free(p);</b></p><p> printf("\n
31、 ━━━━ 刪除成功! ━━━━\n");</p><p><b> }</b></p><p> else /*未找到相應(yīng)書目*/</p><p><b> {</b></p><p> printf("
32、 您輸入的書目不存在,請確認后輸入!\n");</p><p><b> }</b></p><p><b> return;</b></p><p><b> }</b></p><p> 輸入要修改的圖書書號,若此圖書不存在,輸出“此圖書不存在”,
33、否則修改除書號以外的圖書信息.</p><p><b> /*修改操作*/</b></p><p> void info_change(struct books_list * head)</p><p><b> {</b></p><p> struct books_list * p;&l
34、t;/p><p> int panduan=0; /*此變量用于判斷是否找到書目*/</p><p> char temp[20];</p><p><b> p=head;</b></p><p> printf("請輸入要修改的書號:");</p><p> scan
35、f("%s",temp);</p><p> while(p->next!= NULL)</p><p><b> {</b></p><p> p=p->next;</p><p> if(strcmp(p->booknum,temp)==0)</p><
36、;p><b> {</b></p><p> printf("\n 請輸入圖書書名:");</p><p> fflush(stdin);</p><p> scanf("%s",p->bookname);</p><p>
37、 printf("\n 請輸入圖書作者名:");</p><p> fflush(stdin);</p><p> scanf("%s",p->author);</p><p> printf("\n 請輸入圖書出版社:&quo
38、t;);</p><p> fflush(stdin);</p><p> scanf("%s",p->publisher);</p><p> printf("\n 請輸入圖書數(shù)量:");</p><p> fflush(stdin);</p&
39、gt;<p> scanf("%s",p->num);</p><p> printf("\n 請輸入圖書價格:");</p><p> fflush(stdin);</p><p> scanf("%f",&p->price)
40、;</p><p> printf("\n");</p><p> panduan=1;</p><p><b> }</b></p><p><b> }</b></p><p> if(panduan==0)</p><p
41、><b> {</b></p><p> printf("\n ━━━━ 沒有圖書記錄! ━━━━\n\n");</p><p><b> }</b></p><p><b> return;</b></p>
42、<p><b> }</b></p><p><b> 運行結(jié)果截圖</b></p><p><b> 輸入圖書信息</b></p><p><b> 修改圖書信息</b></p><p><b> 刪除圖書信息</b
43、></p><p><b> 退出</b></p><p> 分析問題及相應(yīng)解決方案</p><p><b> 變量未定義就使用。</b></p><p> 運行過程中出現(xiàn)中斷,解決方法:程序中的函數(shù)定義出錯。</p><p> 程序子程序忘記在頭文件中聲明,
評論
0/150
提交評論