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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

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

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

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

4、Visual C+ 6.0 應用程序調試4 源程序代碼清單#include<stdio.h>#include<stdlib.h>#include<string.h>typedef structchar tihao10;/題號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");/ 包括保存,讀取和復制printf("ttt 0.退出管理系統(tǒng) n");printf("tttn");printf("ttt = n");printf("ntt請您選擇 (0-5):");c=g

6、etchar();while(c<'0'|c>'5');return(c-'0');void tihaosort(Data dat,int n)/題號排序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)/保存函數int i;FILE *fp;/* 指向文件的指針*/if(fp=fopen("txl.txt","wb")=NULL)/* 打開文件,并判斷打開是否正常*/printf("t不能打開文件n");/* 沒打開 */exit(1);/* 退出 */fprintf(fp,"%d",n);/* 將記錄數寫入文件*/.精品文檔fprintf(fp,"rn");for(i=0;i<n;i+)fprintf(fp,"%-8s%-6s",dati

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

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

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

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

12、i 個位置 */strcpy(dati.timu,temp.timu);n+;/* 記錄數加1*/return n;int Shuru(Data dat,int n)/輸入函數int i=0;char ch;while(ch!='n'&&ch!='N')/用來判斷是否繼續(xù)輸入system("cls");printf("t題號 :");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);/其實輸入除了N 和 n 的任意鍵均能實現繼續(xù)添加的功能.精品文檔void List(Data dat,int n)/顯示函數int i;printf("=共%d條記錄=n",n);printf("n");/* 格式 */printf("題號題目 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)/刪除函數char s20;/* 要刪除記錄的題號*/int i=0,j;printf("t請輸入想刪除記錄中的題號:");scanf("%s",s);while(strcmp(dati.tihao,s)!=0&&i<n) i+;/* 查找要刪除的記錄題號*/if(i=n)printf(&

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

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

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

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

19、;/* 退出 */printf("tt輸入目標文件名(例如c:outfile.txt): ");scanf("%s",outfile);if(fc=fopen(outfile,"wb")=NULL)/* 打開目標文件*/printf("tt不能打開文件n");/* 顯示不能打開文件信息*/exit(1);/* 退出 */fscanf(fp,"%d",&n);/* 讀出文件記錄數*/fprintf(fc,"%d",n);/* 寫入目標文件數*/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);/* 關閉源文件 */fclose(fc);/* 關閉目標文件*/printf("tt您已成功復制文件!n");/*主函數*/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.按題號排序信息n");printf("ttt 0.返回上一級菜單n");printf("tttn"

22、);printf("ttt = n");printf("ntt請選擇: ");scanf("%d",&k);switch(k)case 1:/顯示信息system("cls");List(da,n);break;case 2:/ 題號排序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請選擇: ");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);/插入函數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.題庫信息的復制 n");printf("ttt 0.返回 n");printf("tttn");printf("ttt = n");printf("ntt請選擇: ");scanf("%d",&x);switch(x)case 1:n=LoadText(da);printf("tt您已經成功的將題目導入到題庫!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();/* 保存數據 */printf("t");system("pause");break;case 0:;break;case 0:printf("nttt感謝您的使用,再見!n&

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

溫馨提示

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

最新文檔

評論

0/150

提交評論