結(jié)構(gòu)化程序設(shè)計(jì)(C)項(xiàng)目實(shí)踐報(bào)告課程信息管理系統(tǒng)王炳炎_第1頁
結(jié)構(gòu)化程序設(shè)計(jì)(C)項(xiàng)目實(shí)踐報(bào)告課程信息管理系統(tǒng)王炳炎_第2頁
結(jié)構(gòu)化程序設(shè)計(jì)(C)項(xiàng)目實(shí)踐報(bào)告課程信息管理系統(tǒng)王炳炎_第3頁
結(jié)構(gòu)化程序設(shè)計(jì)(C)項(xiàng)目實(shí)踐報(bào)告課程信息管理系統(tǒng)王炳炎_第4頁
已閱讀5頁,還剩28頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、哈爾濱理工大學(xué)軟件學(xué)院結(jié)構(gòu)化程序設(shè)計(jì)(C )項(xiàng)目實(shí)踐報(bào)告題目 :課程管理系統(tǒng)班級(jí) :軟件 15-3 班專業(yè) :軟件工程姓名 :王炳炎學(xué)號(hào) : 1514010316指導(dǎo)教師:王春英日期:2015年 12月 4日目 錄一、需求分析2二、系統(tǒng)設(shè)計(jì)3(一)系統(tǒng)中的數(shù)據(jù)定義3(二)系統(tǒng)的概要設(shè)計(jì)3(三)系統(tǒng)的詳細(xì)設(shè)計(jì)4(四)系統(tǒng)的核心算法15三、系統(tǒng)編碼及運(yùn)行16(一)系統(tǒng)開發(fā)涉及的軟件16(二)系統(tǒng)運(yùn)行界面及結(jié)果16四、系統(tǒng)測試20五、總結(jié)20附錄(源代碼)21一、需求分析根據(jù)題目要求,設(shè)計(jì)課程信息管理系統(tǒng)。主要功能:一, 查看功能:查看已保存的課程信息。二, 增加功能:錄入新的課程信息。三, 刪除功

2、能:選中某課程,對(duì)該課程數(shù)據(jù)進(jìn)行刪除。四, 查找功能:按課程名,專業(yè)查找相關(guān)課程信息。五,修改功能:選中某課程,對(duì)該課程數(shù)據(jù)進(jìn)行修改。課程管理系統(tǒng)查看功能增加功能刪除功能查找功能修改功能退出按課程號(hào)按課程名查找查找程序功能圖二、系統(tǒng)設(shè)計(jì)(一)系統(tǒng)中的數(shù)據(jù)定義信息結(jié)構(gòu)體課程號(hào)課程名所屬專性質(zhì)學(xué)時(shí)學(xué)分業(yè)根據(jù)題目要求,需要建立課程信息管理系統(tǒng)結(jié)構(gòu)體,結(jié)構(gòu)體包括課程號(hào),課程名,所屬專業(yè),性質(zhì),學(xué)時(shí),學(xué)分。其中存在狀態(tài)設(shè)定為整形變量,字符串變量。(二)系統(tǒng)的概要設(shè)計(jì)界面菜單新增課程查看課程刪除課查找課修改課程程程struct course ne(struct course str,int n)1.新增課

3、程void look(struct course str,int n)2.查看課程void del(struct course str,int n)3.刪除課程void ke(struct course str,int n)4.查找課程void fix(struct course str,int n)5.修改課程(三)系統(tǒng)的詳細(xì)設(shè)1. 增加課程模塊課程信息書是是否有 0條輸出“沒有任何課程信息”輸入課程號(hào)是是否有已該課程號(hào)否輸入課程信息輸出“添加成功”返回主菜單/*-新增課程 -*/struct course ne(struct course str,int n)int i, b;struct

4、 course c1;if(n!=1)dob=0;printf("請(qǐng)輸入新增的課程號(hào) :");scanf("%d",&c1.NO);for(i=1;i<n;i+)if(stri.NO=c1.NO)printf("此課程號(hào)已被使用 n 請(qǐng)重新輸入: ");b=1;while(b);elseprintf("沒有任何課程信息 n");printf("請(qǐng)輸入新增的課程號(hào) :");scanf("%d",&c1.NO);printf("請(qǐng)輸入新增的課程名

5、:");scanf("%s",&);printf("請(qǐng)輸入新增的所屬專業(yè):");scanf("%s",&fession);printf("請(qǐng)輸入新增的性質(zhì) :");scanf("%s",&c1.nature);printf("請(qǐng)輸入新增的學(xué)時(shí) :");scanf("%d",&c1.time);printf("請(qǐng)輸入新增的學(xué)分 :");scanf("%d&quo

6、t;,&c1.score);printf("新增成功 nn");system("pause");return c1;輸出課程管理共有n 條信息2. 查看課程模塊輸出一條課程信息課程信息是否全部輸出否是返回主菜單/*-查看課程 -*/void look(struct course str,int n)int i;printf("課程管理共有 %d條信息 nn",n);for(i=1;i<=n;i+)printf("課程號(hào): %d 課程名: %s 所屬專業(yè): %s 性質(zhì): %s 學(xué)時(shí) :%d 學(xué)分 :%dn&quo

7、t;,stri.NO,,fession,stri.nature,stri.time,stri.score);system("pause");return;3. 刪除課程模塊課程信息是否為 0否輸出所有課程信息選擇刪除課刪除該課程刪除成功返回主菜單/*-刪除課程 -*/void del(struct course str,int n)struct course a;int k, i;system("cls");if(n=0)是輸出“當(dāng)前沒有任何課程信息”printf("當(dāng)前沒有任何課程信息nn");sy

8、stem("pause");return;for(i=1;i<=n;i+)printf("%d: 課程號(hào): %d 課程名:%s 所屬專業(yè): %s 性質(zhì):%s 學(xué)時(shí) :%d 學(xué)分 :%dn",i,stri.NO,,fession,stri.nature,str i.time,stri.score);while(1)printf("(如果輸入 0 則返回主菜單 )n請(qǐng)輸入要?jiǎng)h除的課程序號(hào):");scanf("%d",&k);if(k=0)system("paus

9、e");return 0;elseif(k<0 | k>n)printf("沒有該課程 n");continue;elsefor(i=k;i<=n;i+)stri=stri+1;printf("刪除成功 ");system("pause");return 0;4. 查找模塊是課程信息是否為 0輸出“當(dāng)前沒有任何課程信息”否查找方式輸入專業(yè)輸入課程名輸出相關(guān)專業(yè)信息輸出相關(guān)課程名信息返回主菜單/*-查找課程 -*/void ke(struct course str,int n)if(n=0)printf(&q

10、uot;沒有課程信息 n");system("pause");return;int i, m=1;char name20;system("cls");printf("請(qǐng)輸入課程名: ");scanf("%s",name);for(i=1;i<=n;i+)if(strcmp(name,)=0)printf("%d:課程號(hào): %d 課程名: %s 所屬專業(yè): %s 性質(zhì):%s 學(xué)時(shí):%d學(xué)分 :%dn",i,stri.NO,,fes

11、sion,stri.nature,str i.time,stri.score);m=0;if(m)printf("沒有相關(guān)課程信息 n");system("pause");void zhuan(struct course str,int n)int i, m=1;char name20;system("cls");printf("請(qǐng)輸入專業(yè)名: ");scanf("%s",name);for(i=1;i<=n;i+)if(strcmp(name,fession)=0)pri

12、ntf("%d:課程號(hào): %d 課程名: %s 所屬專業(yè): %s 性質(zhì):%s 學(xué)時(shí):%d學(xué)分 :%dn",i,stri.NO,,fession,stri.nature,str i.time,stri.score);m=0;if(m)printf(" 沒有相關(guān)課程信息 n"); system("pause");void fin(struct course str,int n)if(n=0)printf("沒有任何課程信息 n");system("pause");r

13、eturn;int i;printf("【 1】按課程名查找 n");printf("【 2】按專業(yè)查找 n");printf("【 0】返回主菜單 n");printf("請(qǐng)根據(jù)序號(hào)選擇操作類型n");scanf("%d",&i);switch(i)case 1: ke(str,n);break;case 2: zhuan(str, n);break;case 0: system("pause");return;default :printf("輸入錯(cuò)誤

14、n 請(qǐng)重新輸入 ");5. 修改模塊輸出所有課程信息選擇修改課程選擇修改項(xiàng)目輸入修改內(nèi)容返回主菜單/*-修改課程 -*/void fix(struct course str,int n)int i, k,b,c;for(i=1;i<=n;i+)printf("%d: 課程號(hào): %d 課程名:%s 所屬專業(yè): %s 性質(zhì):%s 學(xué)時(shí) :%d 學(xué)分 :%dn",i,stri.NO,,fession,stri.nature,str i.time,stri.score);while(1)printf("(如果輸入 0 則返

15、回主菜單 )n請(qǐng)輸入要修改的課程序號(hào):");scanf("%d",&k);if(k=0)system("pause");return 0;elseif(k<0 | k>n)printf("沒有該課程 n");continue;elsesystem("cls");printf("課程號(hào): %d 課程名: %s 所屬專業(yè): %s 性質(zhì): %s 學(xué)時(shí) :%d 學(xué)分 :%dn",strk.NO,,fession,strk.nature,st

16、rk.time,strk.score);printf("【 1】修改課程號(hào)n");printf("【 2】修改課程名n");printf("【 3】修改專業(yè)n");printf("【 4】修改性質(zhì)n");printf("【 5】修改學(xué)時(shí)n");printf("【 6】修改學(xué)分n");printf("【 0】放棄修改");printf("請(qǐng)根據(jù)序號(hào)選擇操作類型n");scanf("%d",&i);switch(

17、i)case 1: if(n!=1)dob=0;printf("輸入修改課程號(hào) :");scanf("%d",&c);for(i=1;i<=n;i+)if(stri.NO=c)printf("此課程號(hào)已被使用n請(qǐng)重新輸入:");b=1;while(b);elsescanf("%d",&c);strk.NO=c;printf("修改成功 ");學(xué)printf("時(shí)課程號(hào):%d 課程名:%s 所屬專業(yè): %s 性質(zhì):%s:%d學(xué)分 :%dn",strk.NO

18、,,fession,strk.nature,strk .time,strk.score);break;case 2: printf("輸入修改課程名 n");scanf("%s",&);printf("修改成功 ");printf("課程號(hào):%d 課程名:%s 所屬專業(yè): %s 性質(zhì):%s學(xué)時(shí):%d學(xué)分 :%dn",strk.NO,,fession,strk.nature,strk .time,strk.score);br

19、eak;case 3: printf("輸入修改專業(yè) n");scanf("%s",&fession);printf("修改成功 ");printf("課程號(hào):%d 課程名:%s 所屬專業(yè): %s 性質(zhì):%s學(xué)時(shí):%d學(xué)分 :%dn",strk.NO,,fession,strk.nature,strk .time,strk.score);break;case 4: printf("輸入修改性質(zhì) n");scanf("%s&quo

20、t;,&strk.nature);printf("修改成功 ");printf("課程號(hào):%d 課程名:%s 所屬專業(yè): %s 性質(zhì):%s學(xué)時(shí):%d學(xué)分 :%dn",strk.NO,,fession,strk.nature,strk .time,strk.score);break;case 5: printf("輸入修改學(xué)時(shí) n");scanf("%s",&strk.time);printf("修改成功 ");printf("課程號(hào):%

21、d 課程名:%s 所屬專業(yè): %s 性質(zhì):%s學(xué)時(shí):%d學(xué)分 :%dn",strk.NO,,fession,strk.nature,strk .time,strk.score);break;case 6: printf("輸入修改學(xué)分 n");scanf("%s",&strk.score);printf("修改成功 ");printf("課程號(hào):%d 課程名:%s 所屬專業(yè): %s 性質(zhì):%s學(xué)時(shí):%d學(xué)分 :%dn",strk.NO,,strk

22、.profession,strk.nature,strk .time,strk.score);break;case 0: system("pause"); return 0;break;default :printf("輸入錯(cuò)誤 "); system( "pause " );break;system("pause");return 0;6. 主函數(shù)模塊顯示主菜單Swich (i )新 增查 看刪 除查 找修 改退 出課 程課 程課 程課 程課 程語句模塊模塊模塊模塊模塊void main()struct cours

23、e str100;int i, n=0, k, l;while(1)system("cls");printf("-課程信息管理系統(tǒng) -n");printf("【1】新增課程 n");printf("【2】查看課程 n");printf("【3】刪除課程 n");printf("【4】查找課程 n");printf("【5】修改課程 n");printf("【0】退出 n");printf("請(qǐng)根據(jù)序號(hào)選擇操作類型n"

24、);scanf("%d",&i);switch(i)case 1: n+;strn=ne(str,n);break;case 2: look(str,n);break;case 3: if(n=0)printf("沒有可以刪除課程 ");system("pause");break;del(str,n);n-;break;case 4: fin(str,n);break;case 5: fix(str,n);break;case 0: break;default :printf("輸入錯(cuò)誤 "); syste

25、m( "pause " );break;if(i=0)break;printf("程序結(jié)束 n");三、系統(tǒng)編碼及運(yùn)行(一)系統(tǒng)開發(fā)涉及的軟件開發(fā)軟件: Codeblocks 編寫軟件:微軟英文輸入法(二)系統(tǒng)運(yùn)行界面及結(jié)果菜單界面新增界面查看界面刪除界面查找界面修改界面退出界面四、系統(tǒng)測試(三號(hào),宋體,粗體)信息。解決方法將查找模塊分成三個(gè)函數(shù)五、總結(jié)集記錄,查詢,修改等功能于一身的課程信息管理系統(tǒng)。這個(gè)程序大致實(shí)現(xiàn)了題目的要求, 但是這套程序仍然存在著很多的問題與不足。比如 ,條理清晰程序注釋也不是很完善,對(duì)信息處理功能還有些不足之附錄(源代碼)#i

26、nclude <stdio.h>#include <stdlib.h>#include <string.h>/* 定義結(jié)構(gòu)體用于儲(chǔ)存課程信息 */struct courseint NO;char name20;char profession20;char nature20;int time;int score;/*-查看課程 -*/void look(struct course str,int n)int i;printf("課程管理共有 %d條信息 nn",n);for(i=1;i<=n;i+)printf("課程號(hào):

27、%d 課程名: %s 所屬專業(yè): %s 性質(zhì): %s 學(xué)時(shí) :%d 學(xué)分 :%dn",stri.NO,,fession,stri.nature,stri .time,stri.score);system("pause");return;/*-新增課程 -*/struct course ne(struct course str,int n)int i, b;struct course c1;if(n!=1)dob=0;printf("請(qǐng)輸入新增的課程號(hào) :");scanf("%d",&

28、c1.NO);for(i=1;i<n;i+)if(stri.NO=c1.NO)printf("此課程號(hào)已被使用 n 請(qǐng)重新輸入: ");b=1;while(b);elseprintf("沒有任何課程信息 n");printf("請(qǐng)輸入新增的課程號(hào) :");scanf("%d",&c1.NO);printf("請(qǐng)輸入新增的課程名 :");scanf("%s",&);printf("請(qǐng)輸入新增的所屬專業(yè):");scanf(&

29、quot;%s",&fession);printf("請(qǐng)輸入新增的性質(zhì) :");scanf("%s",&c1.nature);printf("請(qǐng)輸入新增的學(xué)時(shí) :");scanf("%d",&c1.time);printf("請(qǐng)輸入新增的學(xué)分 :");scanf("%d",&c1.score);printf("新增成功 nn");system("pause");return c1;/

30、*-刪除課程 -*/void del(struct course str,int n)struct course a;int k, i;system("cls");if(n=0)printf("當(dāng)前沒有任何課程信息nn");system("pause");return;for(i=1;i<=n;i+)printf("%d: 課程號(hào): %d 課程名:%s 所屬專業(yè): %s 性質(zhì):%s 學(xué)時(shí) :%d 學(xué)分 :%dn",i,stri.NO,,fession,stri.nature,

31、str i.time,stri.score);while(1)printf("( 如果輸入 0 則返回主菜單 )n 請(qǐng)輸入要?jiǎng)h除的課程序號(hào): "); scanf("%d",&k);if(k=0)system("pause");return 0;elseif(k<0 | k>n)printf("沒有該課程n");continue;elsefor(i=k;i<=n;i+)stri=stri+1;printf("刪除成功 ");system("pause"

32、);return 0;/*-查找課程 -*/void ke(struct course str,int n)int i, m=1;char name20;system("cls");printf("請(qǐng)輸入查找課程名: ");scanf("%s",name);for(i=1;i<=n;i+)if(strcmp(name,)=0)printf("%d:課程號(hào): %d 課程名: %s 所屬專業(yè): %s 性質(zhì):%s 學(xué)時(shí):%d學(xué)分 :%dn",i,stri.NO,,

33、fession,stri.nature,str i.time,stri.score);m=0;if(m)printf("沒有相關(guān)課程信息 n");system("pause");void zhuan(struct course str,int n)int i, m=1;char name20;system("cls");printf("請(qǐng)輸入查找專業(yè)名: ");scanf("%s",name);for(i=1;i<=n;i+)if(strcmp(name,fession)=

34、0)printf("%d:課程號(hào): %d 課程名: %s 所屬專業(yè): %s 性質(zhì):%s 學(xué)時(shí):%d學(xué)分 :%dn",i,stri.NO,,fession,stri.nature,str i.time,stri.score);m=0;if(m)printf("沒有相關(guān)課程信息 n");system("pause");void fin(struct course str,int n)if(n=0)printf("沒有任何課程信息 n");system("pause"

35、);return;int i;printf("printf("printf("【 1】按課程名查找 n");【 2】按專業(yè)查找 n");【 0】返回主菜單 n");printf("請(qǐng)根據(jù)序號(hào)選擇操作類型n");scanf("%d",&i);switch(i)case 1: ke(str,n);break;case 2: zhuan(str, n);break;case 0: system("pause");return;default :printf("輸入

36、錯(cuò)誤 n 請(qǐng)重新輸入 ");/*-修改課程 -*/void fix(struct course str,int n)if(n=0)printf("當(dāng)前沒有任何課程信息nn");system("pause");return;int i, k,b,c;for(i=1;i<=n;i+)printf("%d: 課程號(hào): %d 課程名:%s 所屬專業(yè): %s 性質(zhì):%s 學(xué)時(shí) :%d 學(xué)分 :%dn",i,stri.NO,,fession,stri.nature,str i.time,stri.

37、score);while(1)printf("( 如果輸入 0 則返回主菜單 )n 請(qǐng)輸入要修改的課程序號(hào): "); scanf("%d",&k);if(k=0)system("pause"); return 0;elseif(k<0 | k>n)printf("沒有該課程n");continue;elsesystem("cls");printf("課程號(hào): %d 課程名: %s 所屬專業(yè): %s 性質(zhì): %s 學(xué)時(shí) :%d 學(xué)分 :%dn",strk.N

38、O,,fession,strk.nature,strk .time,strk.score);printf("【 1】修改課程號(hào) n");printf("【 2】修改課程名 n");printf("【 3】修改專業(yè)n");printf("【 4】修改性質(zhì)n");printf("【 5】修改學(xué)時(shí)n");printf("【 6】修改學(xué)分n");printf("【 0】放棄修改");printf("請(qǐng)根據(jù)序號(hào)選擇操作類型

39、n");scanf("%d",&i);switch(i)case 1: if(n!=1)dob=0;printf("輸入修改課程號(hào):");scanf("%d",&c);for(i=1;i<=n;i+)if(stri.NO=c)printf("此課程號(hào)已被使用n請(qǐng)重新輸入:");b=1;學(xué)while(b);elsescanf("%d",&c);strk.NO=c;printf("printf("時(shí)修改成功 ");課程號(hào):%d 課

40、程名:%s 所屬專業(yè): %s 性質(zhì):%s:%d學(xué)分 :%dn",strk.NO,,fession,strk.nature,strk .time,strk.score);break;case 2: printf("輸入修改課程名 n");scanf("%s",&);printf("修改成功 ");printf("課程號(hào):%d 課程名:%s 所屬專業(yè): %s 性質(zhì):%s學(xué)時(shí):%d學(xué)分 :%dn",strk.NO,,f

41、ession,strk.nature,strk .time,strk.score);break;case 3: printf("輸入修改專業(yè) n");scanf("%s",&fession);printf("修改成功 ");printf("課程號(hào):%d 課程名:%s 所屬專業(yè): %s 性質(zhì):%s學(xué)時(shí):%d學(xué)分 :%dn",strk.NO,,fession,strk.nature,strk.time,strk.score);break;case 4: printf("輸入修改性質(zhì) n");scanf("%s",&strk.nature);printf("修改成功 ");printf("課程號(hào):%d 課程名:%s 所屬專業(yè): %s 性質(zhì):%s學(xué)時(shí):%d學(xué)分 :%dn",strk.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)論