C語言程序設(shè)計(jì)_題庫管理系統(tǒng)_第1頁
C語言程序設(shè)計(jì)_題庫管理系統(tǒng)_第2頁
C語言程序設(shè)計(jì)_題庫管理系統(tǒng)_第3頁
C語言程序設(shè)計(jì)_題庫管理系統(tǒng)_第4頁
已閱讀5頁,還剩16頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、精品文檔程序設(shè)計(jì)基礎(chǔ)課程設(shè)計(jì)報(bào)告班級(jí):計(jì)算機(jī)科學(xué)與技術(shù)1103 班姓名:楊廣宇指導(dǎo)教師 :胡宏濤完成日期 :2012 年 9月 6日.精品文檔(題目)1 設(shè)計(jì)題目與要求(簡要介紹課程設(shè)計(jì)題目內(nèi)容與要求。)1 設(shè)計(jì)內(nèi)容要求輸入試題(僅限選擇題和填空題)基本信息,實(shí)現(xiàn)試題瀏覽.,查詢,修改功能,并將數(shù)據(jù)保存至文本文件。2 要求功能完善,界面友好。2算法設(shè)計(jì)與描述(要求有相關(guān)流程圖)2.1 算法設(shè)計(jì)與描述(描述算法設(shè)計(jì)、實(shí)現(xiàn)過程。)1. 提供可操作的主菜單:輸出主菜單,用戶可根據(jù)菜單來選擇操作。根據(jù)客戶輸入的選項(xiàng)來運(yùn)行不同的功能,運(yùn)行不同的函數(shù)。2.。試題信息的錄入函數(shù):按照提示輸入題的題號(hào),題目內(nèi)

2、容,并提示用戶是否繼續(xù)錄入,每輸入一個(gè)記錄,全局變量n 就自增,最后最為函數(shù)的返回值返回。3.保存試題信息函數(shù):將文件的所有數(shù)據(jù)通過fprintf來寫入指定文本文檔,完成后關(guān)閉文件,沒有返回值4. 載入試題信息函數(shù):通過fopen 函數(shù)打開指定文件,通過fscanf 來讀取文件里的數(shù)據(jù),最后返回記錄數(shù),避免了每次打開時(shí)都要輸入數(shù)據(jù)的麻煩。5. 查詢記錄函數(shù):細(xì)分為按題號(hào),題目兩種方式來進(jìn)行查詢記錄,并能對(duì)查詢記錄不存在進(jìn)行提示。遍歷所有結(jié)構(gòu)體找出符合的輸出。6. 修改記錄函數(shù):首先判斷用戶要修改的試題序號(hào)是否存在,進(jìn)行相應(yīng)的系統(tǒng)提示,然后遍歷所有記錄找出符合的,按照提示依次進(jìn)行修改項(xiàng)目,返回記

3、錄值不變(沒增加也沒減少)。7. 刪除記錄函數(shù):首先判斷用戶要?jiǎng)h除的試題序號(hào)是否存在,進(jìn)行相應(yīng)的系統(tǒng)提示,然后遍歷所有記錄找出符合的刪除,冰講后面的所有數(shù)據(jù)向前移動(dòng)一個(gè)位置,記錄數(shù)減一并返回。2.2 主要流程圖(用 N S 圖描述。).精品文檔1,、輸入函數(shù)2、保存函數(shù)3、 載入函數(shù)4、查詢函數(shù).精品文檔5、修改函數(shù)6、刪除函數(shù).精品文檔3 設(shè)計(jì)軟硬件環(huán)境硬件設(shè)備系統(tǒng): Microsoft Windows XPProfessional版本 2002機(jī)型: Inter ? Core ? 2 Duo CPU E8400 3.00GHz2.99GHz, 2.00GB 內(nèi)存軟件設(shè)備Microsoft

4、Visual C+ 6.0 應(yīng)用程序調(diào)試4 源程序代碼清單#include<stdio.h>#include<stdlib.h>#include<string.h>typedef structchar tihao10;/題號(hào)char timu15;/ 題目Data;Data da80;int menu_select()char c;do.精品文檔system("cls");printf("ttt =題庫管理系統(tǒng) = n");printf("tttn");printf("ttt 1.題目的輸

5、入 n");printf("ttt 2.題目的瀏覽 n");printf("ttt 3.題目信息更改 n");/ 包括刪除,插入和更改printf("ttt 4.題目信息查詢 n");printf("ttt 5.題目文件操作 n");/ 包括保存,讀取和復(fù)制printf("ttt 0.退出管理系統(tǒng) n");printf("tttn");printf("ttt = n");printf("ntt請(qǐng)您選擇 (0-5):");c=g

6、etchar();while(c<'0'|c>'5');return(c-'0');void tihaosort(Data dat,int n)/題號(hào)排序int i,j;Data temp;for(i=0;i<n;+i)dai=dati;for(i=0;i<n-1;+i)for(j=i+1;j<n;+j)if(strcmp(dai.tihao,daj.tihao)>0)temp=dai;dai=daj;daj=temp;printf("tt=排序成功 =n");void SaveText(D

7、ata dat,int n)/保存函數(shù)int i;FILE *fp;/* 指向文件的指針*/if(fp=fopen("txl.txt","wb")=NULL)/* 打開文件,并判斷打開是否正常*/printf("t不能打開文件n");/* 沒打開 */exit(1);/* 退出 */fprintf(fp,"%d",n);/* 將記錄數(shù)寫入文件*/.精品文檔fprintf(fp,"rn");for(i=0;i<n;i+)fprintf(fp,"%-8s%-6s",dati

8、.tihao,dati.timu);fprintf(fp,"rn");/* 將換行符號(hào)寫入文件*/fclose(fp);int LoadText(Data dat)/ 載入函數(shù)int i,n;FILE *fp;if(fp=fopen("txl.txt","r")=NULL)printf("不能打開文件n");exit(1);fscanf(fp,"%d",&n);/* 讀入記錄數(shù) */for(i=0;i<n;i+)fscanf(fp,"%s%sn",dati.ti

9、hao,dati.timu);/* 按格式讀入記錄*/fclose(fp);return n;/* 返回記錄數(shù) */int Charu(Data dat,int n)/插入函數(shù)Data temp;/* 新插入記錄信息*/int i=0,j,k;char s20;doprintf("t請(qǐng)插入您的數(shù)據(jù)n");printf("t題號(hào) :");scanf("t%s",temp.tihao);for(k=0;k<n;k+)/ 判斷插入數(shù)據(jù)是否存在if(strcmp(datk.tihao,temp.tihao)=0)printf("

10、;t-該記錄已存在,請(qǐng)重新輸入!-n");system("pause");system("cls");break;.精品文檔while(strcmp(datk.tihao,temp.tihao)=0);printf("t題目 :");scanf("t%s",temp.timu);printf("t請(qǐng)輸入插入位置的題號(hào):");scanf("t%s",s);/* 輸入插入位置的題號(hào)*/while(strcmp(dati.tihao,s)!=0&&i<

11、;n)i+;if(i=n)printf("t-題庫中沒有記錄,請(qǐng)查詢后再操作!-n");return n;for(i=0;strcmp(dati.tihao,s)!=0;i+) ;printf("ntt*插入成功! *n");for(j=n-1;j>=i;j-)/* 從最后一個(gè)結(jié)點(diǎn)開始向后移動(dòng)一條*/strcpy(datj+1.tihao,datj.tihao);/* 當(dāng)前記錄的題號(hào)拷貝到后一條*/strcpy(datj+1.timu,datj.timu);strcpy(dati.tihao,temp.tihao);/* 將新插入記錄的題號(hào)拷貝到第

12、i 個(gè)位置 */strcpy(dati.timu,temp.timu);n+;/* 記錄數(shù)加1*/return n;int Shuru(Data dat,int n)/輸入函數(shù)int i=0;char ch;while(ch!='n'&&ch!='N')/用來判斷是否繼續(xù)輸入system("cls");printf("t題號(hào) :");scanf("t%s",datn+i.tihao);printf("t題目 :");scanf("t%s",datn

13、+i.timu);printf("nt是否繼續(xù)添加?(Y/N)");scanf("t%c",&ch);i+;return(n+i);/其實(shí)輸入除了N 和 n 的任意鍵均能實(shí)現(xiàn)繼續(xù)添加的功能.精品文檔void List(Data dat,int n)/顯示函數(shù)int i;printf("=共%d條記錄=n",n);printf("n");/* 格式 */printf("題號(hào)題目 n");printf("n");for(i=0;i<n;i+)printf("

14、;%2st%3sn",dati.tihao,dati.timu);/* 按格式輸出 */printf("n");system("pause");int Shanchu(Data dat,int n)/刪除函數(shù)char s20;/* 要?jiǎng)h除記錄的題號(hào)*/int i=0,j;printf("t請(qǐng)輸入想刪除記錄中的題號(hào):");scanf("%s",s);while(strcmp(dati.tihao,s)!=0&&i<n) i+;/* 查找要?jiǎng)h除的記錄題號(hào)*/if(i=n)printf(&

15、quot;t題庫中沒有此題!n");return(n);for(j=i;j<n-1;j+)/ 數(shù)據(jù)交換strcpy(datj.timu,datj+1.timu);strcpy(datj.tihao,datj+1.tihao);printf("ttt已經(jīng)成功刪除!n");return(n-1);void Chazhao(Data dat,int n)/查詢函數(shù)int j;.精品文檔printf("tn請(qǐng)選擇查詢方式:n");printf("tn");printf("t 1- 題號(hào) n");printf

16、("t 0- 返回 n");printf("tn");printf("請(qǐng)選擇 :");scanf("%d",&j);if(j=1)char s20;int i=0;printf("t請(qǐng)輸入想查詢的題號(hào):");scanf("t%s",s);while(strcmp(dati.tihao,s)!=0&&i<n) i+;if(i=n)printf("t題庫中沒有此題!n");return;printf("t此題內(nèi)容 n&q

17、uot;);printf("t%5sn",dati.timu); ;void Biangeng(Data dat,int n)/修改函數(shù)char s20;int i=0;printf("t請(qǐng)輸入想修改的試題的題號(hào):");scanf("%s",s);while(strcmp(dati.tihao,s)!=0&&i<n) i+;if(i=n)printf("t題庫中沒有此題!n");return;printf("t題號(hào) :");scanf("t%s",dat

18、i.tihao);printf("t題目 :");scanf("t%s",dati.timu);printf("nt修改成功! ");.精品文檔void CopyText()/ 復(fù)制文件函數(shù)char outfile20;/* 目標(biāo)文件名 */int i,n;Data temp80;FILE *fp,*fc;if(fp=fopen("txl.txt","rb")=NULL)/* 打開記錄文件*/printf("tt不能打開文件n");/* 顯示不能打開文件信息*/exit(1)

19、;/* 退出 */printf("tt輸入目標(biāo)文件名(例如c:outfile.txt): ");scanf("%s",outfile);if(fc=fopen(outfile,"wb")=NULL)/* 打開目標(biāo)文件*/printf("tt不能打開文件n");/* 顯示不能打開文件信息*/exit(1);/* 退出 */fscanf(fp,"%d",&n);/* 讀出文件記錄數(shù)*/fprintf(fc,"%d",n);/* 寫入目標(biāo)文件數(shù)*/fprintf(fc,&q

20、uot;rn");/* 寫入換行符 */for(i=0;i<n;i+)fscanf(fp,"%s%sn",tempi.tihao,tempi.timu);fprintf(fc,"%-8s%-6s",tempi.tihao,tempi.timu);fprintf(fc,"rn");/* 寫入換行符 */fclose(fp);/* 關(guān)閉源文件 */fclose(fc);/* 關(guān)閉目標(biāo)文件*/printf("tt您已成功復(fù)制文件!n");/*主函數(shù)*/void main()int n=0;for(;)sw

21、itch(menu_select()case 1:system("cls");n=Shuru(da,n);break;.精品文檔case 2:system("cls");int k;printf("ttt =題庫信息管理系統(tǒng)= n");printf("tttn");printf("ttt 1.顯示全部題目n");printf("ttt 2.按題號(hào)排序信息n");printf("ttt 0.返回上一級(jí)菜單n");printf("tttn"

22、);printf("ttt = n");printf("ntt請(qǐng)選擇: ");scanf("%d",&k);switch(k)case 1:/顯示信息system("cls");List(da,n);break;case 2:/ 題號(hào)排序tihaosort(da,n);system("pause");break;case 0:; break;case 3:system("cls");int m;printf("ttt =題庫信息管理系統(tǒng)= n");

23、printf("tttn");printf("ttt 1.題庫信息的修改 n");printf("ttt 2.題庫信息的刪除 n");printf("ttt 3.題庫信息的插入 n");printf("ttt 0.返回 n");printf("tttn");.精品文檔printf("ttt = n");printf("ntt請(qǐng)選擇: ");scanf("%d",&m);switch(m)case 1:syst

24、em("cls");Biangeng(da,n);printf("t");system("pause");break;case 2:system("cls");n=Shanchu(da,n);/* 刪除記錄 */printf("t");system("pause");break;case 3:system("cls");n=Charu(da,n);/插入函數(shù)printf("t");system("pause");br

25、eak;case 0:; break;case 4:system("cls");printf("nt*在題庫中查找記錄*n");Chazhao(da,n);printf("t");system("pause");break;case 5:system("cls");.精品文檔int x;printf("ttt =題庫信息管理系統(tǒng)= n");printf("tttn");printf("ttt 1.題庫信息的載入 n");printf(&

26、quot;ttt 2.題庫信息的保存 n");printf("ttt 3.題庫信息的復(fù)制 n");printf("ttt 0.返回 n");printf("tttn");printf("ttt = n");printf("ntt請(qǐng)選擇: ");scanf("%d",&x);switch(x)case 1:n=LoadText(da);printf("tt您已經(jīng)成功的將題目導(dǎo)入到題庫!n");printf("t");sy

27、stem("pause");break;case 2:printf("tt=題庫的保存 =n");SaveText(da,n);printf("ntt保存成功 n");printf("t");system("pause");break;case 3:CopyText();/* 保存數(shù)據(jù) */printf("t");system("pause");break;case 0:;break;case 0:printf("nttt感謝您的使用,再見!n&

28、quot;);exit(0);.精品文檔5 程序運(yùn)行結(jié)果(可截屏程序運(yùn)行界面。)1、主界面顯示2、試題的輸入.精品文檔3、函數(shù)的保存4、試題庫的載入.精品文檔5,、試題的瀏覽與查詢.精品文檔6、函數(shù)的修改與刪除.精品文檔6 設(shè)計(jì)總結(jié)(重點(diǎn)從設(shè)計(jì)方法、實(shí)現(xiàn)技術(shù)、功能等幾方面總結(jié)。).精品文檔通過此次的程序設(shè)計(jì)課學(xué)到了很多,對(duì)C 語言也有了更好的了解,同時(shí)也對(duì)C 程序的操作和調(diào)試也有了進(jìn)一步的掌握。盡管程序中的一部分是從網(wǎng)上復(fù)制過來的,但其中都加入了自己手動(dòng)修改的元素,并且把一些以前不懂的弄懂了,總之經(jīng)過了幾天的奮斗我們都掌握了很多知識(shí),收獲了很多。開學(xué)的第一天, 老師們就讓我們分組進(jìn)行程序設(shè)計(jì),題目發(fā)下來頓時(shí)怵了,只是幾個(gè)人在一起商量了一下把程序的大致框架熟悉了一下,但由于是頭一次搞,根本不知道從哪些地方著手, 原本學(xué)到的只是到真正運(yùn)用的時(shí)候才顯得那么的蒼白,就這樣整整一個(gè)上午的時(shí)間什么進(jìn)展都沒有,我們只是在那里看書,熟悉知識(shí)。下午有網(wǎng)了,我們便取巧百度了一個(gè)程序進(jìn)行調(diào)試,目的是熟悉分析程序的運(yùn)轉(zhuǎn)效果,查詢整理我們所需要的應(yīng)用函數(shù),于是才漸漸摸清了我們要進(jìn)行的方向。首先,我們要進(jìn)行的是主體

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論