




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、精選優(yōu)質(zhì)文檔-傾情為你奉上 合肥學(xué)院計(jì)算機(jī)科學(xué)與技術(shù)系課程設(shè)計(jì)報(bào)告20122013學(xué)年第二學(xué)期課程面向過程綜合設(shè)計(jì)課程設(shè)計(jì)名稱寵物(小動(dòng)物)店信息管理系統(tǒng) 學(xué)生姓名宋俊 學(xué)號(hào) 專業(yè)班級(jí)軟件工程 指導(dǎo)教師項(xiàng)響琴、華珊珊2013年6月第一章 需求分析1.1描述問題本課程設(shè)計(jì)的任務(wù)和要求是設(shè)計(jì)一個(gè)寵物(小動(dòng)物)店信息管理系統(tǒng),該系統(tǒng)要求對(duì)寵物(小動(dòng)物)店信息進(jìn)行管理和維護(hù)。運(yùn)用信息技術(shù)可以很快的提高寵物店的運(yùn)營效率。方便對(duì)寵物信息的管理。使用菜單實(shí)現(xiàn)檢索、增加、刪除、顯示和存取等功能的正確選擇。1.2具體功能:(1)程序運(yùn)行時(shí)首先要求輸入:寵物的編號(hào)。要錄入的寵物的名字。要錄入的寵物的性別。要錄入寵
2、物的年齡。要錄入寵物的顏色。錄入后該寵物的數(shù)量。這些原始數(shù)據(jù)應(yīng)保存到一個(gè)文件中。(2)然后程序要求可以實(shí)現(xiàn):新寵物的增加。寵物的修改。寵物的瀏覽。寵物的刪除。這些功能。1.3主要知識(shí)點(diǎn):(1)面向過程程序設(shè)計(jì)方法(2)界面制作,switch的應(yīng)用。(3)數(shù)組或鏈表的實(shí)現(xiàn)與應(yīng)用(4)文件的讀寫。第二章、算法設(shè)計(jì) 2.1設(shè)計(jì)思想該程序的流程圖如下:開始主菜單新寵物的增加寵物的修改寵物瀏覽寵物的刪除退出菜單1本程序緊扣題目要求,盡量采用一些簡單的算法和語法來編寫源代碼,在不影響程序功能的前提下,既簡化了程序結(jié)構(gòu),也降低的編寫人員的工作量。本程序主要針對(duì)的用戶是寵物信息管理人員,主要作用是讓店主能快速
3、搜索到他想要的寵物信息。本程序是先有店主手動(dòng)輸入各個(gè)寵物的信息,然后再存儲(chǔ)到文本文件中。然后可以有店主快熟搜索到想要的寵物的信息。2.2 設(shè)計(jì)表示2.2.1 結(jié)構(gòu)體模塊除了頭文件、子函數(shù)的申明等一些必要的部分,在程序的開頭處首先定義了兩個(gè)個(gè)結(jié)構(gòu)體,該結(jié)構(gòu)體是為了更方便的儲(chǔ)存寵物的信息,由第一個(gè)結(jié)構(gòu)體是由三個(gè)方面構(gòu)成的char sex1/性別,char age10;/年齡char color10; /顏色結(jié)構(gòu)體定義為TY,第二個(gè)結(jié)構(gòu)體char num10; char name10; TY A; char sum10;定義為INF。2.2.2 菜單模塊本模塊主要功能是對(duì)菜單的顯示,是用戶打開程序所
4、看到的一些信息。主要顯示了歡迎界面、程序的設(shè)計(jì)者、單位等。特別重要的是,本模塊告訴了用戶下一步該做什么,怎么做,此處從用戶的角度出發(fā),能幫助用戶更好更方便地使用本系統(tǒng)。main();、menu1();、menu();這3個(gè)函數(shù)是整個(gè)寵物店管理系統(tǒng)的全部菜單函數(shù), main()為系統(tǒng)主界面,進(jìn)入時(shí)可選擇進(jìn)入程序和退出程序。menu()為進(jìn)入程序時(shí)顯示的功能菜單menu1();此菜單為進(jìn)入管理系統(tǒng)菜單,在此可以選擇添加、刪除、修改寵物等操作。2.2.3增加寵物信息這個(gè)函數(shù)的作用是為了讓用戶增加寵物信息。我先在這個(gè)函數(shù)中建立一個(gè)“寵物的各種信息”的文件。用戶可以直接把輸入的信息存到文件中。方便后來的
5、對(duì)文件里信息的調(diào)用。2.2.4修改寵物信息(子函數(shù)名Change) 這個(gè)函數(shù)是為了讓用戶修改文件里的寵物信息。先要讀取“寵物的各種信息信息”文本文檔的信息。然后根據(jù)輸入的寵物昵稱找出該寵物信息。2.2.5查詢寵物信息這個(gè)函數(shù)是為了讓用戶更好更快的調(diào)用文本文檔中寵物的信息。先要讀取“寵物信息”文本文檔的信息。然根據(jù)通過兩字符串的比較,找到與輸入姓名相同的姓名的位置2.2.6顯示寵物信息這個(gè)函數(shù)是為了把文本文檔的信息顯示在屏幕上。2.2.7刪除寵物信息這個(gè)函數(shù)通過數(shù)組中該位置之后的數(shù)據(jù)存放位置向前移一位來實(shí)現(xiàn)刪除功能。2.3 功能實(shí)現(xiàn)情況本程序較好地完成了任務(wù)中的各項(xiàng)要求,能實(shí)現(xiàn)寵物信息管理系統(tǒng)的
6、基本功能,并且應(yīng)用到了面向過程程序設(shè)計(jì)方法、界面制作、if、for函數(shù)的應(yīng)用、數(shù)組或鏈表的實(shí)現(xiàn)與應(yīng)用、文件的讀寫等知識(shí)點(diǎn)。在此基礎(chǔ)上,本程序還優(yōu)化了菜單和界面,使用戶看起來更方便舒服,并且程序輸出的結(jié)果也模擬了表格的格式,使結(jié)果看起來更清晰。2.4 算法設(shè)計(jì)本程序主要應(yīng)用了基本的輸入輸出語句、條件語句、循環(huán)語句、選擇語句以及對(duì)文本文件的操作等一系列算法,基本涵蓋了c語言課程中的大部分算法思想。同時(shí),本程序也存在這一些不足之處:,本程序的數(shù)據(jù)需要一個(gè)一個(gè)的輸進(jìn)去。對(duì)于數(shù)據(jù)庫較大的會(huì)帶來不便。第三章、用戶手冊(cè) 3.1 打開方式(1)先打開電腦中的visual C軟件,再通過vc打開目錄中文件名為“
7、寵物(小動(dòng)物)信息管理系統(tǒng).c”的.c文件。(2)找到c文件目錄下的“Debug”文件夾,直接打開文件名為“寵物(小動(dòng)物)信息管理系統(tǒng)”的exe文件。3.2 操作步驟(1)運(yùn)行程序,看到主菜單界面。(2)點(diǎn)擊任意鍵繼續(xù)程序。(3)按照程序提示信息,分別輸入寵物昵稱,寵物性別,寵物種類。寵物年齡。(4)打開c文件目錄下文件名為“寵物信息”的文本文件,獲得錄取結(jié)果(5)退出程序3.3注意事項(xiàng)在輸入完學(xué)生信息時(shí)請(qǐng)務(wù)必先保存后再運(yùn)行程序,否則可能會(huì)使信息無法正確讀取。第四章、調(diào)試及測試 4.1 調(diào)試過程中出現(xiàn)的問題 4.1.1 文件無法打開在編譯調(diào)試階段,總是出現(xiàn)編譯錯(cuò)誤,無法通過編譯調(diào)試,經(jīng)過逐行的
8、查找,最終發(fā)現(xiàn)定義的指向文件的指針,在定義時(shí)沒有加“*”符號(hào),導(dǎo)致了該編譯錯(cuò)誤。4.1.2 選擇錯(cuò)誤在編譯調(diào)試完成后,又出現(xiàn)了問題,即無法對(duì)學(xué)生信息正確篩選,程序無法判斷學(xué)生成績是否合格,全部將其按照合格處理。經(jīng)過分布調(diào)試法的運(yùn)行,發(fā)現(xiàn)了問題所在,是由于在if語句括號(hào)后面不慎加了一個(gè)“;”符號(hào),導(dǎo)致if判斷之后執(zhí)行的是空語句,而全原本應(yīng)該判斷之后再執(zhí)行的語句則被無條件執(zhí)行,從而導(dǎo)致了無法正確篩選學(xué)生的結(jié)果。在發(fā)現(xiàn)該原因之后,刪除此“;”符號(hào),程序即運(yùn)行正確。4.1.3 排版錯(cuò)誤在調(diào)試過程中,除了出現(xiàn)了語法錯(cuò)誤和算法錯(cuò)誤之外,還出現(xiàn)了輸出結(jié)果的排版錯(cuò)誤,即在程序?qū)懭虢Y(jié)果的文本文件中信息混亂,很難
9、辨別信息,這會(huì)給用戶造成很大的不方便。為了解決此問題,在輸出語句中加了一些轉(zhuǎn)義字符“t”和一些分隔線,這樣就能有效的分開不同的數(shù)據(jù)信息,使界面更清晰美觀,極大的方便了用戶查看。4.14 磁盤文件讀寫錯(cuò)誤在運(yùn)用磁盤文件時(shí)遇到了不小的麻煩,不能正確的讀出原有的圖書的信息而造成重新錄入時(shí)復(fù)值出現(xiàn)錯(cuò)誤,造成寫入磁盤文件不能寫入或?qū)懭氤霈F(xiàn)錯(cuò)誤,經(jīng)常出現(xiàn)“燙”,經(jīng)過調(diào)試和分析,源文件的光標(biāo)最后所處的位置可能會(huì)影響磁盤文件的讀寫而出現(xiàn)錯(cuò)誤,4.2 對(duì)設(shè)計(jì)和編碼的回顧此程序在設(shè)計(jì)的過程中考慮到了算法的簡便性,由于此程序?qū)崿F(xiàn)的功能較為簡單,所以在算法設(shè)計(jì)的過程中避開了一些容易出錯(cuò)的語句。所以此程序總體來看算法較
10、為簡單,且語法結(jié)構(gòu)較為單一。4.3 對(duì)時(shí)空效率分析本程序?qū)崿F(xiàn)的功能的較為簡單,且算法并不復(fù)雜,執(zhí)行步驟也不多,程序源代碼只有五百多行,所以運(yùn)行起來幾乎對(duì)計(jì)算機(jī)CPU無任何影響,對(duì)內(nèi)存空間的占用很??;在時(shí)間上,本程序也幾乎是瞬間完成執(zhí)行,沒有明顯的時(shí)間等待。4.4 測試程序4.5經(jīng)驗(yàn)和體會(huì)通過本次課程設(shè)計(jì),我對(duì)c語言的學(xué)習(xí)與應(yīng)用有了更加深刻的體會(huì),也對(duì)一些基本語法結(jié)構(gòu)、算法思想和程序設(shè)計(jì)方法更加的了解。通過這次c語言課程設(shè)計(jì),很大程度上鍛煉了我們寫程序的動(dòng)手能力和自主思考能力。利用所學(xué)知識(shí),開發(fā)小型實(shí)用的應(yīng)用系統(tǒng),掌握運(yùn)用C語言編寫調(diào)試應(yīng)用系統(tǒng)程序,對(duì)于我們獨(dú)立開發(fā)應(yīng)用系統(tǒng)并進(jìn)行數(shù)據(jù)處理的綜合能
11、力是一個(gè)很大的提高。通過這次c語言課程設(shè)計(jì),很大程度上鍛煉了我們寫程序的動(dòng)手能力和自主思考能力。利用所學(xué)知識(shí),開發(fā)小型實(shí)用的應(yīng)用系統(tǒng),掌握運(yùn)用C語言編寫調(diào)試應(yīng)用系統(tǒng)程序,對(duì)于我們獨(dú)立開發(fā)應(yīng)用系統(tǒng)并進(jìn)行數(shù)據(jù)處理的綜合能力是一個(gè)很大的提高。第五章、小結(jié)本程序雖然實(shí)現(xiàn)了任務(wù)書中的基本要求,但還是存在一些需要以后解決的問題。比如用戶不能較方便的直接通過程序?qū)W(xué)生信息進(jìn)行操作,不能處理小數(shù)的分?jǐn)?shù)信息等等。在這次課程設(shè)計(jì)中,我體會(huì)到了,作為程序開發(fā)人員,不能僅僅站在開發(fā)者的角度去考慮問題、解決問題,面對(duì)一些實(shí)際問題時(shí),也要站在用戶的角度去看待問題,畢竟,我們開發(fā)出來的程序主要面對(duì)的就是用戶,所以用戶的需求
12、與想法才是程序開發(fā)者最需要考慮關(guān)心的。第六章、參考文獻(xiàn)1 黃明等編著C語言課程設(shè)計(jì)北京:電子工業(yè)出版社2 郭翠英編著C語言課程設(shè)計(jì)案例精編北京:中國水利水電出版社3 寧正元數(shù)據(jù)結(jié)構(gòu)(c語言) 南京:東南大學(xué)出版社。2000年6月第1版4 嚴(yán)蔚敏等 數(shù)據(jù)結(jié)構(gòu)(c語言版) 北京:清華大學(xué)出版社,1997年4月第1版5 譚浩強(qiáng)編著C程序設(shè)計(jì)題解與上機(jī)指導(dǎo)(第3版) 北京:清華大學(xué)出版社6 譚浩強(qiáng)編著C程序設(shè)計(jì)(第3版) 北京:清華大學(xué)出版社附錄一、源程序清單#include "stdio.h"#include "stdlib.h"#include "
13、string.h" typedef struct type /定義結(jié)構(gòu)體 該種小動(dòng)物的信息 char sex10; /性別char age10; /年齡 char color10; /顏色 TY; typedef struct information /定義結(jié)構(gòu)體 小動(dòng)物的各種信息 char num10; char name10; TY A; char sum10; INF;/ /函數(shù)聲明void menu(); /子函數(shù) 主菜單 void menu1(); /菜單1void Information(); / 子函數(shù) 瀏覽全部寵物void Write(); / 子函數(shù) 新增寵物voi
14、d Change(); / 子函數(shù) 修改寵物void Delete(); / 子函數(shù) 刪除寵物void Exit(); /退出void menu() / 子函數(shù) 主菜單1 int a;char b;M:system("cls"); printf("n");printf("n");printf("n");printf("n"); printf("ttt1.新寵物的增加.n"); printf("n");printf("n"); print
15、f("ttt2.寵物的修改.n"); printf("n");printf("n");printf("ttt3.寵物瀏覽.n");printf("n"); printf("n"); printf("ttt4.寵物的刪除.n"); printf("n"); printf("n"); printf("ttt5.退出.n"); printf("n"); printf("n&
16、quot;);printf("tttt請(qǐng)輸入你的選擇: ");L: scanf("%d",&a);switch (a) case 1: Write(); goto M; break; case 2: Change(); goto M; break; case 3: Information(); printf("返回上一層請(qǐng)輸入y,結(jié)束程序請(qǐng)輸入任意鍵n"); getchar(); scanf("%c",&b); if(b='y'|b="Y") goto M; br
17、eak; case 4: Delete(); goto M; break; case 5: Exit(); break; default: printf("n"); printf("n"); printf("ttt你輸入的序號(hào)不存在,請(qǐng)重新輸入:"); goto L;void menu1() /子函數(shù) 主菜單 system("cls"); printf("n"); printf("n"); printf("n"); printf("n"
18、); printf("tttt*歡迎進(jìn)入寵物店管理系統(tǒng)*n"); printf("n"); printf("n"); printf("n"); printf("tttt*進(jìn)入下一頁面請(qǐng)按Enter鍵*n");printf("n"); printf("n");getchar(); menu();void Exit()system("cls"); printf("n"); printf("n");pr
19、intf("n");printf("n");printf("tttt*再見*");getchar(); void Information() /瀏覽全部寵物 INF CPET100; int i,a; FILE *fp; system("cls"); fp=fopen("寵物的各種信息.txt","r+"); i=0; while(!feof(fp) fscanf(fp,"%s%s%s%s%s%s",CPETi.num,CPET,CPETi.A
20、.sex,CPETi.A.age,CPETi.A.color,CPETi.sum); i+; fclose(fp);printf("編號(hào)t 名稱t性別t年齡t顏色t數(shù)量n"); for(a=0;a<i;a+)printf("n"); printf("%st%st%st%st%st%sn",CPETa.num,CPET,CPETa.A.sex,CPETa.A.age,CPETa.A.color,CPETa.sum); printf("n"); void Write() / 錄入函數(shù)INF CPET1
21、00;FILE *fp;int a,i,n;char b; system("cls"); fp=fopen("寵物的各種信息.txt","r+"); i=0; while(!feof(fp) fscanf(fp,"%s%s%s%s%s%s",CPETi.num,CPET,CPETi.A.sex,CPETi.A.age,CPETi.A.color,CPETi.sum); i+; a=i;L: printf("請(qǐng)輸入你要錄入的寵物的編號(hào)n"); scanf("%s",
22、CPETa.num); printf("n"); printf("請(qǐng)輸入你要錄入的寵物的名字n"); scanf("%s",CPET); printf("n"); printf("請(qǐng)輸入你要錄入的寵物的性別n"); scanf("%s",CPETa.A.sex); printf("n"); printf("請(qǐng)輸入你要錄入的寵物的年齡n"); scanf("%s",CPETa.A.age); printf(
23、"n"); printf("請(qǐng)輸入你要錄入的寵物的顏色n"); scanf("%s",CPETa.A.color);printf("n");printf("請(qǐng)輸入錄入后該種寵物的數(shù)量n");scanf("%s",CPETa.sum); fp=fopen("寵物的各種信息.txt","w+"); for(n=0;n<=a;n+) fprintf(fp,"n%st%st%st%st%st%s",CPETn.num,
24、CPET,CPETn.A.sex,CPETn.A.age,CPETn.A.color,CPETn.sum); fclose(fp); printf("錄入完成,繼續(xù)錄入請(qǐng)輸入y,完成錄入請(qǐng)輸入nn"); getchar(); scanf("%c",&b); if(b='y'|b='Y') a=a+1; system("cls"); goto L;getchar(); if(b='n') printf("信息錄入成功,數(shù)據(jù)初始化正在進(jìn)入上層界面n")
25、; void Change() /修改寵物信息 INF CPET100;FILE *fp;int a,i,b;char c;char n100; system("cls"); fp=fopen("寵物的各種信息.txt","r+"); i=0; while(!feof(fp) fscanf(fp,"%s%s%s%s%s%s",CPETi.num,CPET,CPETi.A.sex,CPETi.A.age,CPETi.A.color,CPETi.sum); i+; a=i;printf("請(qǐng)輸入你
26、要修改的寵物編號(hào)n"); L: getchar(); gets(n); for(i=0;i<a;i+) if(strcmp(n,CPETi.num)=0) b=i; break; if(i=a) printf("你輸入的寵物編號(hào)不存在,請(qǐng)重新輸入n"); goto L; printf("請(qǐng)輸入修改后的寵物的編號(hào)n"); scanf("%s",CPETb.num); printf("n");printf("請(qǐng)輸入修改后的寵物的名稱n"); scanf("%s",
27、CPET); printf("n"); printf("請(qǐng)輸入修改后的寵物的性別n"); scanf("%s",CPETb.A.sex); printf("n"); printf("請(qǐng)輸入修改后的寵物的年齡n"); scanf("%s",CPETb.A.age); printf("n");printf("請(qǐng)輸入修改后的寵物的顏色n");scanf("%s",CPETb.A.color);printf(&q
28、uot;n"); printf("請(qǐng)輸入修改后的該寵物的數(shù)量n"); scanf("%s",CPETb.sum); printf("n"); fclose(fp); fp=fopen("寵物的各種信息.txt","w+"); for(i=0;i<a;i+) fprintf(fp,"n%st%st%st%st%st%s",CPETi.num,CPET,CPETi.A.sex,CPETi.A.age,CPETi.A.color,CPETi.sum);
29、fclose(fp); printf("修改完成n"); printf("繼續(xù)修改請(qǐng)輸入y,完成修改請(qǐng)輸入n.n"); getchar(); scanf("%c",&c); if(c='y'|c='Y') system("cls"); printf("請(qǐng)輸入你要修改的寵物編號(hào)n"); goto L; if(c='n') printf("信息保存成功,數(shù)據(jù)初始化需重新進(jìn)入系統(tǒng)n"); void Delete() /刪除寵物信息INF CPET100;FILE *fp;int a,i,b,flag=0;char c;char n10; system("cls"); fp=fopen("寵物的各種信息.txt","r+"); i=0; while(!feof(fp) fscanf(fp,"%s%s%s%s%s%s",CPETi.num,CPET,CPETi.A.sex,CPETi.A.age,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 墊資合同協(xié)議書范本
- 連鎖藥店戰(zhàn)略合同協(xié)議書
- 買房借款合同協(xié)議書范本
- 以項(xiàng)目促融合,扎實(shí)推進(jìn)融媒體建設(shè)
- 裝卸磚工合同協(xié)議書
- 煤炭承包生產(chǎn)合同協(xié)議書
- 2025年中國雷帕霉素項(xiàng)目創(chuàng)業(yè)計(jì)劃書
- 杯狀病毒治療方案-貓杯狀病毒最佳治療方案
- 2025秋五年級(jí)語文上冊(cè)統(tǒng)編版-【語文園地七】交互課件
- 河道清淤合同協(xié)議書范文
- 課件:第五章 社會(huì)工作項(xiàng)目的監(jiān)測與督導(dǎo)(《社會(huì)工作項(xiàng)目策劃與評(píng)估》課程)
- 行政法與行政訴訟法學(xué) 馬工程課件 第16章
- 食品工廠設(shè)計(jì)概述課件
- 回轉(zhuǎn)窯-工作原理課件
- 課件亞洲與非洲音樂 課件-2022-2023學(xué)年高中音樂人音版(2019) 必修 音樂鑒賞
- 導(dǎo)數(shù)在經(jīng)濟(jì)中的應(yīng)用課件
- 《全球衛(wèi)生》課程教學(xué)大綱(本科)
- GB∕T 33217-2016 沖壓件毛刺高度
- 六一兒童節(jié)主題通用ppt模板
- 基于“鄂爾多斯婚禮”談民族舞蹈及音樂的傳承發(fā)揚(yáng)
- 公司管理制度:格林美管理手冊(cè)
評(píng)論
0/150
提交評(píng)論