版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p> 計算機程序設(shè)計(C語言)</p><p><b> 課程設(shè)計報告</b></p><p> 題目:學生信息管理系統(tǒng)</p><p> 學院: 計算機科學與工程學院</p><p> 專業(yè): 電子信息工程</p><p><b> 一、選題背景:</b
2、></p><p> 該程序?qū)崿F(xiàn)一個綜合的數(shù)據(jù)管理系統(tǒng),用戶可以已建立數(shù)據(jù)文檔,并對文檔中的數(shù)據(jù)進行操作輸入數(shù)據(jù)信息、查看數(shù)據(jù)信息以及刪除數(shù)據(jù)信息。輸入、查看和刪除的操作都是通過對鏈表的操作完成的??梢詫Π嗉墝W生的信息進行方便、有效的管理。</p><p> 二、設(shè)計思想:采用模塊化編程</p><p> ?。ㄒ唬┛傮w框架圖: </p>&l
3、t;p> 學生管理系統(tǒng):1、錄入學生信息 </p><p><b> 2、修改學生信息 </b></p><p><b> 3、查詢學生信息 </b></p><p><b> 4、瀏覽學生信息 </b></p><p><b> 5、增加學生信息 &
4、lt;/b></p><p><b> 6、推出信息系統(tǒng) </b></p><p> ?。ǘ┧悸罚耗K一:頭文件,變量定義,函數(shù)的聲明 </p><p> 對系統(tǒng)所使用的變量進行定義,對函數(shù)進行聲明 </p><p> 模塊二:學生信息系統(tǒng)使用幫助 </p><p> 聲明函數(shù)vo
5、id help(),對整個系統(tǒng)進行使用說明 </p><p> 模塊三:錄入學生信息 </p><p> 聲明函數(shù)void readfile(),說明一個文件指針FILE *fp 打開文件"student.txt" </p><p> 模塊四:學生信息的查找 </p><p> 聲明void seek()為查找函數(shù)
6、,通過switch(item)設(shè)定用學號查找,用姓名查找兩個分支 </p><p> 模塊五:學生信息的修改 </p><p> 聲明void modify()為學生信息修改函數(shù),通過switch(item)設(shè)定所要 </p><p><b> 修改的項目 </b></p><p> 模塊六:學生信息按學號排序
7、 </p><p> 聲明void sort()將錄入學生系按升序排列,用的是“冒泡排序法”實現(xiàn)排序 </p><p> 模塊七:增加學生信息 </p><p> 聲明void insert()插入學生信息,先通過判斷學生是否存在,若否則繼續(xù)輸入,若是跳出,重新循環(huán) </p><p> 模塊八:刪除學生信息 </p>&
8、lt;p> 聲明void del()實現(xiàn)學生信息刪除,通過學號對比確定要刪除的信息,然后用后一個替換掉。 </p><p> 模塊九:顯示學生信息 </p><p> 通過display()函數(shù)輸出學生信息 </p><p><b> 模塊十:保存信息 </b></p><p> 通過fp=fopen(&
9、quot;student.txt","w");寫入信息 </p><p> 模塊十一:界面菜單 </p><p> 通過switch(num)調(diào)用,以上各函數(shù),實現(xiàn)功能</p><p> 三.主要解決問題的方法及技術(shù)關(guān)鍵</p><p> 用FREE 函數(shù)完成對內(nèi)存空間的釋放。</p>&l
10、t;p> If—else—if , Do—while 用來控制程序的循環(huán)。</p><p> 用鏈表的知識完成數(shù)據(jù)的 輸入 刪除 查看 。</p><p> 4. 數(shù)據(jù)域、指針域(結(jié)點的知識)</p><p><b> 四.程序流程圖</b></p><p><b> 五、程序清單:
11、</b></p><p> #include<stdio.h> /*I/O函數(shù)*/#include<stdlib.h> /*其它說明*/#include<string.h> /*字符串函數(shù)*/#define BUFLEN 100 /* 緩沖區(qū)最大字符數(shù) */#define LEN 15 /* 學號和姓名最大字符數(shù),實際請更改 */#defin
12、e N 100 /* 最大學生人數(shù),實際請更改*/struct record /*結(jié)構(gòu)體*/{char code[LEN+1]; /* 學號 */char name[LEN+1]; /* 姓名 */int age; /* 年齡 */char sex[3]; /* 性別 */char time[LEN+1]; /* 出生年月 */char add[30]; /* 家庭地址 */char tel[LEN+1]; /* 電話
13、號碼 */char mail[30]; /* 電子郵件地址 */}stu[N];int k=1,n,m; /* 定義全局變量 */ </p><p> void readfile();/* 函數(shù)聲明 */void seek();void modify();void insert();void del();void display();void save();void menu(); <
14、/p><p> int main(){ while(k)menu();system("pause");return 0;} </p><p> void help(){ printf("\n0.歡迎使用系統(tǒng)幫助!\n");printf("\n1.進入系統(tǒng)后,先刷新學生信息,再查詢;\n&qu
15、ot;);printf("\n2.按照菜單提示鍵入數(shù)字代號;\n");printf("\n3.增加學生信息后,切記保存按7;\n");printf("\n4.謝謝您的使用!\n");} </p><p> void readfile()/* 建立信息 */{char *p="student.txt";FILE *fp;
16、int i=0;if ((fp=fopen("student.txt","r"))==NULL){ printf("Open file %s error! Strike any key to exit!",p);system("pause");exit(0);}while(fscanf(fp,"%s %s%d%
17、s %s %s %s %s",stu[i].code,stu[i].name,&stu[i].age,stu[i].sex,stu[i].time,stu[i].add,stu[i].tel,stu[i].mail)==8){i++;i=i;}fclose(fp);n=i;printf("錄入完畢!\n");} </p><p> void seek()
18、/*查找*/{int i,item,flag;char s1[21]; /* 以姓名和學號最長長度+1為準 */printf("------------------\n");printf("-----1.按學號查詢-----\n");printf("-----2.按姓名查詢-----\n");printf("-----3.退出本菜單-----\n&quo
19、t;);printf("------------------\n");while(1){printf("請選擇子菜單編號:");scanf("%d",&item);flag=0;switch(item){case 1:printf("請輸入要查詢的學生的學號:\n");scanf("%s",s1);for(
20、i=0;i<n;i++)if(strcmp(stu[i].code,s1)==0){flag=1;printf("學生學號 學生姓名 年齡 性別 出生年月 地址 電話 E-mail\n");print
21、f("-----------------</p><p> void modify() /*修改信息*/{int i,item,num;char sex1[3],s1[LEN+1],s2[LEN+1]; /* 以姓名和學號最長長度+1為準 */printf("請輸入要要修改的學生的學號:\n");scanf("%s",s1);for(i=0;i<
22、;n;i++)if(strcmp(stu[i].code,s1)==0) /*比較字符串是否相等*/num=i;printf("------------------\n");printf("1.修改姓名\n");printf("2.修改年齡\n");printf("3.修改性別\n");printf("4.修改出生年月\n"
23、);printf("5.修改地址\n");printf("6.修改電話號碼\n");printf("7.修改E-mail地址\n");printf("8.退出本菜單\n");printf("------------------\n");while(1){printf("請選擇子菜單編號:");scan
24、f("%d",&item);switch</p><p> void sort()/*按學號排序*/{int i,j,*p,*q,s; char temp[10];for(i=0;i<n-1;i++){for(j=n-1;j>i;j--)if(strcmp(stu[j-1].code,stu[j].code)>0){strc
25、py(temp,stu[j-1].code);strcpy(stu[j-1].code,stu[j].code);strcpy(stu[j].code,temp);strcpy(temp,stu[j-1].name);strcpy(stu[j-1].name,stu[j].name);strcpy(stu[j].name,temp);strcpy(temp,stu[j-1].sex);strcpy(stu[j-1].sex
26、,stu[j].sex);strcpy(stu[j].sex,temp);strcpy(temp,stu[j-1].time);strcpy(stu[j-1].time,stu[j].time);strcpy(stu[j].time,temp);strcpy(te</p><p> void insert() /*插入函數(shù)*/{ int i=n,j,flag;printf("
27、請輸入待增加的學生數(shù):\n");scanf("%d",&m);do{ flag=1;while(flag){flag=0;printf("請輸入第 %d 個學生的學號:\n",i+1);scanf("%s",stu[i].code);for(j=0;j<i;j++)if(strcmp(stu[i].code,stu[j].
28、code)==0){printf("已有該學號,請檢查后重新錄入!\n");flag=1;break; /*如有重復立即退出該層循環(huán),提高判斷速度*/}}printf("請輸入第 %d 個學生的姓名:\n",i+1);scanf("%s",stu[i].name);printf("請輸入第 %d 個學生的年齡:\n",i+1);scanf
29、("%d",&stu[i].age);printf("請輸入第 %d 個學生的性別:\n",i+1);scanf("%s",stu[i].sex);printf("請輸入第 %d 個學生的</p><p> void del(){int i,j,flag=0;char s1[LEN+1];printf("請輸入
30、要刪除學生的學號:\n");scanf("%s",s1);for(i=0;i<n;i++)if(strcmp(stu[i].code,s1)==0){ flag=1;for(j=i;j<n-1;j++)stu[j]=stu[j+1];}if(flag==0)printf("該學號不存在!\n");if(flag==1){printf(&qu
31、ot;刪除成功,顯示結(jié)果請選擇菜單6\n");n--;}} </p><p> void display(){ int i;printf("所有學生的信息為:\n");printf("學生學號 學生姓名 年齡 性別 出生年月 地址
32、 電話 E-mail\n");printf("--------------------------------------------------------------------\n");for(i=0;i<n;i++){ printf("%6s %7s %5d %5s %9s %8s %10s %14s\n&
33、quot;,stu[i].code,stu[i].name,stu[i].age,stu[i].sex,stu[i].time,stu[i].add,stu[i].tel,stu[i].mail);}} </p><p> void save(){int i;FILE *fp;fp=fopen("student.txt","w"); /*寫入*/for(i
34、=0;i<n;i++){fprintf(fp,"%s %s %d %s %s %s %s %s\n",stu[i].code,stu[i].name,stu[i].age,stu[i].sex,stu[i].time,stu[i].add,stu[i].tel,stu[i].mail);}fclose(fp);} </p><p> void menu()/* 界面 */
35、{int num;printf(" \n\n 電子信息工程110406班學生信息管理系統(tǒng) \n\n");printf(" *****************
36、0; \n\n");printf(" * 制作人:黃偉強 指導老師:
37、韓旭明* \n \n");printf(" *******
38、********** \n\n"); </p><p>
39、 printf("*********************系統(tǒng)功能菜單************************ \n");printf("友情提醒:查詢前請先刷新系統(tǒng)! \n");printf(" -----------
40、----------- ---------------------- \n");printf(" ------------------------------------------------------------------ \n");printf(&qu
41、ot; * 0.系統(tǒng)幫助及說明 * * 1.刷新學生信息 * \n");printf(" ---------------------------------------------------------
42、----------- \n"); printf(" * 2.查詢學生信息 * * 3.修改學生信息 * \n");printf(" &
43、#160; -------------------</p><p> case 0:help();break;case 1:readfile();break;case 2:seek();break;case 3:modify();break;case 4:insert();break;case 5:del();break;case 6:display();break;case 7:sa
44、ve();break;case 8:k=0;break;default:printf("請在0-8之間選擇\n");}}</p><p> 六.總結(jié)、設(shè)計結(jié)果說明</p><p><b> 設(shè)計結(jié)果說明: </b></p><p> 1.優(yōu)點 :程序較為簡單,對書本上所學知識的應(yīng)用也較為全面。運用了指 <
45、;/p><p> 針、鏈表、函數(shù)定義等,運行時占據(jù)的內(nèi)存小,管理方便。</p><p> 2.缺點:界面不是很美觀,操作略微有些繁瑣</p><p> 總結(jié):在程序編寫中,我認識編寫一個系統(tǒng)不僅僅要有良好的用戶界面,良好的 </p><p> 程序編寫風格也是相當重要的。只有良好的種程序編寫風格,程序代碼的 </p>&l
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- java面向?qū)ο蟪绦蛟O(shè)計課程設(shè)計--學生信息管理系統(tǒng)程序設(shè)計
- 高級程序設(shè)計課程設(shè)計報告—學生信息管理系統(tǒng)
- c++程序設(shè)計課程設(shè)計---學生信息管理系統(tǒng)
- 《程序設(shè)計語言》課程設(shè)計-學生信息管理系統(tǒng)
- c語言程序設(shè)計課程設(shè)計報告----學生信息管理系統(tǒng)
- 計算機系學生信息管理系統(tǒng)課程設(shè)計報告.doc
- c語言程序設(shè)計課程設(shè)計--學生宿舍信息管理系統(tǒng)
- 《面向?qū)ο蟪绦蛟O(shè)計與java》課程設(shè)計--學生信息管理系統(tǒng)
- 《面向?qū)ο蟪绦蛟O(shè)計與java》課程設(shè)計 學生信息管理系統(tǒng)
- 計算機程序設(shè)計基礎(chǔ)課程設(shè)計報告
- 學生成績管理系統(tǒng)-c語言計算機程序設(shè)計基礎(chǔ)課程設(shè)計報告
- 計算機網(wǎng)絡(luò)課程設(shè)計---網(wǎng)絡(luò)信息管理系統(tǒng)設(shè)計
- java程序設(shè)計課程設(shè)計員工信息管理系統(tǒng)設(shè)計
- 計算機學院管理信息課程設(shè)計---學生學籍管理系統(tǒng)
- 計算機組成原理課程設(shè)計(微程序設(shè)計)
- 計算機應(yīng)用基礎(chǔ)課程設(shè)計--時鐘程序設(shè)計
- c語言程序設(shè)計課程設(shè)計報告--職工信息管理系統(tǒng)
- 計算機圖形學課程設(shè)計——掃雷游戲程序設(shè)計
- 計算機組成原理課程設(shè)計報告-微程序設(shè)計
- 圖書信息管理系統(tǒng)-《c語言程序設(shè)計》課程設(shè)計報告
評論
0/150
提交評論