C語言課程設(shè)計學(xué)生信息管理系統(tǒng)_第1頁
C語言課程設(shè)計學(xué)生信息管理系統(tǒng)_第2頁
C語言課程設(shè)計學(xué)生信息管理系統(tǒng)_第3頁
C語言課程設(shè)計學(xué)生信息管理系統(tǒng)_第4頁
C語言課程設(shè)計學(xué)生信息管理系統(tǒng)_第5頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、南京工程學(xué)院課程設(shè)計說明書(論文) 題 目 學(xué)生信息管理系統(tǒng) 課 程 名 稱 高級語言程序設(shè)計(C)院(系、部、中心 ) 通信工程學(xué)院 專 業(yè) 電子信息工程 班 級 電信082 學(xué) 生 姓 名 顧加楠 學(xué) 號 208070513 設(shè) 計 地 點 信息樓D204 指 導(dǎo) 教 師 朱 昊 _ 設(shè)計起止時間:2009 年06月 08日至2009年 06月12日 目 錄 一、課程設(shè)計任務(wù)。2二、系統(tǒng)設(shè)計方案.。 2三、數(shù)據(jù)結(jié)構(gòu)描述與定義。2四、程序主要代碼分析. 。2五、測試結(jié)果與分析。. 2六、課程設(shè)計總結(jié)。. 2七、參考文獻(xiàn):。 2 一、課程設(shè)計任務(wù)(一)前言本課程是繼高級語言程序設(shè)計(C)課程之

2、后,訓(xùn)練學(xué)生綜合運用本課程知識,結(jié)合實際系統(tǒng)運用C語言進行系統(tǒng)設(shè)計以及調(diào)試,加深對本課程的理解,提高學(xué)生綜合應(yīng)用知識的能力、分析問題、解決問題的能力和利用C語言進行綜合系統(tǒng)設(shè)計的實踐技能。學(xué)C語言程序設(shè)計已有1學(xué)期了,對C語言的基本概念和常用算法也有了一定的了解,平時雖然也做過一些練習(xí),也看了不少程序從而掌握一定的語法知識和編程經(jīng)驗。但是對于有些功能強大的軟件還是沒有嘗試過能否編得起來。所以決定在所學(xué)知識的基礎(chǔ)上,再加以拓展,利用4個半天時間編個主題明確、具有一定使用價值的中小程序,以提高自身的編程水平與上機調(diào)試技能。(二)課程設(shè)計題目及要求學(xué)生信息管理系統(tǒng)設(shè)計:學(xué)生信息包括:學(xué)號,姓名,年齡

3、,性別,出生年月,地址,電話,E-mail等。試設(shè)計一學(xué)生信息管理系統(tǒng),使之能提供以功能:系統(tǒng)以菜單方式工作學(xué)生信息錄入功能(學(xué)生信息用文件保存)-輸入學(xué)生信息瀏覽功能-輸出查詢、排序功能-算法按學(xué)號查詢、按姓名查詢學(xué)生信息的刪除與修改二、系統(tǒng)設(shè)計方案(一)總體框架圖:學(xué)生管理系統(tǒng):1、錄入學(xué)生信息 2、修改學(xué)生信息 3、查詢學(xué)生信息 4、瀏覽學(xué)生信息 5、增加學(xué)生信息 6、推出信息系統(tǒng)(二)模塊設(shè)計模塊一:頭文件,變量定義,函數(shù)的聲明對系統(tǒng)所使用的變量進行定義,對函數(shù)進行聲明模塊二:學(xué)生信息系統(tǒng)使用幫助聲明函數(shù)void help(),對整個系統(tǒng)進行使用說明模塊三:錄入學(xué)生信息聲明函數(shù)void

4、 readfile(),說明一個文件指針FILE *fp 打開文件"student.txt"模塊四:學(xué)生信息的查找聲明void seek()為查找函數(shù),通過switch(item)設(shè)定用學(xué)號查找,用姓名查找兩個分支模塊五:學(xué)生信息的修改聲明void modify()為學(xué)生信息修改函數(shù),通過switch(item)設(shè)定所要修改的項目模塊六:學(xué)生信息按學(xué)號排序聲明void sort()將錄入學(xué)生系按升序排列,用的是“冒泡排序法”實現(xiàn)排序模塊七:增加學(xué)生信息聲明void insert()插入學(xué)生信息,先通過判斷學(xué)生是否存在,若否則繼續(xù)輸入,若是跳出,重新循環(huán)模塊八:刪除學(xué)生信息聲

5、明void del()實現(xiàn)學(xué)生信息刪除,通過學(xué)號對比確定要刪除的信息,然后用后一個替換掉。模塊九:顯示學(xué)生信息通過display()函數(shù)輸出學(xué)生信息模塊十:保存信息通過fp=fopen("student.txt","w");寫入信息模塊十一:界面菜單通過switch(num)調(diào)用,以上各函數(shù),實現(xiàn)功能三、數(shù)據(jù)結(jié)構(gòu)描述與定義(一)結(jié)構(gòu)體:“結(jié)構(gòu)體名”用作結(jié)構(gòu)體類型的標(biāo)志,它又稱“結(jié)構(gòu)體標(biāo)記”。聲明一個結(jié)構(gòu)體類型的一般形式為:Struct 結(jié)構(gòu)體名成員表列;大括弧內(nèi)是該結(jié)構(gòu)體中的各個成員,由它們組成一個結(jié)構(gòu)體。對各成員都應(yīng)進行類型聲明,即類型名 成員名也可以

6、把“成員表列”稱為“域表”。每一個成員也稱為結(jié)構(gòu)體中的一個域。成員名定名規(guī)與變量名同。 (二)結(jié)構(gòu)體數(shù)組:一個結(jié)構(gòu)體變量中可以存放一組數(shù)據(jù)(如本程序中一個學(xué)生的學(xué)號、姓名、成績等)。因為程序中需存放若干個學(xué)生的信息,這些數(shù)據(jù)需要參加運算,就得運用數(shù)組即結(jié)構(gòu)體數(shù)組。結(jié)構(gòu)體數(shù)組的每個數(shù)組元素都是一個結(jié)構(gòu)體類型的數(shù)據(jù),它們分別包括各個成員(分量)項。 四、程序主要代碼分析#include<stdio.h> /*I/O函數(shù)*/#include<stdlib.h> /*其它說明*/#include<string.h> /*字符串函數(shù)*/#define BUFLEN 1

7、00 /* 緩沖區(qū)最大字符數(shù) */#define LEN 15 /* 學(xué)號和姓名最大字符數(shù),實際請更改 */#define N 100 /* 最大學(xué)生人數(shù),實際請更改*/struct record /*結(jié)構(gòu)體*/char codeLEN+1; /* 學(xué)號 */char nameLEN+1; /* 姓名 */int age; /* 年齡 */char sex3; /* 性別 */char timeLEN+1; /* 出生年月 */char add30; /* 家庭地址 */char telLEN+1; /* 電話號碼 */char mail30; /* 電子郵件地址 */stuN;int k=1

8、,n,m; /* 定義全局變量 */void readfile();/* 函數(shù)聲明 */void seek();void modify();void insert();void del();void display();void save();void menu();int main() while(k)menu();system("pause");return 0;void help() printf("n0.歡迎使用系統(tǒng)幫助!n");printf("n1.進入系統(tǒng)后,先刷新學(xué)生信息,再查詢;n");printf("n2.

9、按照菜單提示鍵入數(shù)字代號;n");printf("n3.增加學(xué)生信息后,切記保存按7;n");printf("n4.謝謝您的使用!n");void readfile()/* 建立信息 */char *p="student.txt"FILE *fp;int i=0;if (fp=fopen("student.txt","r")=NULL) printf("Open error! Strike any key to exit!",p);system("paus

10、e");exit(0);while(fscanf(fp,"%s %s%d%s %s %s %s %s",stui.code,,&stui.age,stui.sex,stui.time,stui.add,stui.tel,stui.mail)=8)i+;i=i;fclose(fp);n=i;printf("錄入完畢!n");void seek() /*查找*/int i,item,flag;char s121; /* 以姓名和學(xué)號最長長度+1為準(zhǔn) */printf("-n");printf("

11、;-1.按學(xué)號查詢-n");printf("-2.按姓名查詢-n");printf("-3.退出本菜單-n");printf("-n");while(1)printf("請選擇子菜單編號:");scanf("%d",&item);flag=0;switch(item)case 1:printf("請輸入要查詢的學(xué)生的學(xué)號:n");scanf("%s",s1);for(i=0;i<n;i+)if(strcmp(stui.code,s1

12、)=0)flag=1;printf("學(xué)生學(xué)號 學(xué)生姓名 年齡 性別 出生年月 地址 電話 E-mailn");printf("-n");printf("%6s %7s %6d %5s %9s %8s %10s %14sn",stui.code,,stui.age,stui.sex,stui.time,stui.add,stui.tel,stui.mail);if(flag=0)printf("該學(xué)號不存在!n"); break;case 2:printf("請輸入要查詢的學(xué)生的姓名:n

13、");scanf("%s",s1);for(i=0;i<n;i+)if(strcmp(,s1)=0)flag=1;printf("學(xué)生學(xué)號 學(xué)生姓名 年齡 性別 出生年月 地址 電話 E-mailn");printf("-n");printf("%6s %7s %6d %5s %9s %8s %10s %14sn",stui.code,,stui.age,stui.sex,stui.time,stui.add,stui.tel,stui.mail);if(flag

14、=0)printf("該姓名不存在!n"); break;case 3:return;default:printf("請在1-3之間選擇n");void modify() /*修改信息*/int i,item,num;char sex13,s1LEN+1,s2LEN+1; /* 以姓名和學(xué)號最長長度+1為準(zhǔn) */printf("請輸入要要修改的學(xué)生的學(xué)號:n");scanf("%s",s1);for(i=0;i<n;i+)if(strcmp(stui.code,s1)=0) /*比較字符串是否相等*/num=

15、i;printf("-n");printf("1.修改姓名n");printf("2.修改年齡n");printf("3.修改性別n");printf("4.修改出生年月n");printf("5.修改地址n");printf("6.修改電話號碼n");printf("7.修改E-mail地址n");printf("8.退出本菜單n");printf("-n");while(1)printf(&q

16、uot;請選擇子菜單編號:");scanf("%d",&item);switch(item)case 1:printf("請輸入新的姓名:n");scanf("%s",s2);strcpy(,s2); break;case 2:printf("請輸入新的年齡:n");scanf("%d",&stunum.age);break;case 3:printf("請輸入新的性別:n");scanf("%s",sex1

17、);strcpy(stunum.sex,sex1); break;case 4:printf("請輸入新的出生年月:n");scanf("%s",s2);strcpy(stunum.time,s2); break;case 5:printf("請輸入新的地址:n");scanf("%s",s2);strcpy(stunum.add,s2); break;case 6:printf("請輸入新的電話號碼:n");scanf("%s",s2);strcpy(stunum.tel,

18、s2); break;case 7:printf("請輸入新的E-mail地址:n");scanf("%s",s2);strcpy(stunum.mail,s2); break;case 8:return;default:printf("請在1-8之間選擇n"); void sort()/*按學(xué)號排序*/int i,j,*p,*q,s; char temp10;for(i=0;i<n-1;i+)for(j=n-1;j>i;j-)if(strcmp(stuj-1.code,stuj.code)>0)strcpy(tem

19、p,stuj-1.code);strcpy(stuj-1.code,stuj.code);strcpy(stuj.code,temp);strcpy(temp,);strcpy(,);strcpy(,temp);strcpy(temp,stuj-1.sex);strcpy(stuj-1.sex,stuj.sex);strcpy(stuj.sex,temp);strcpy(temp,stuj-1.time);strcpy(stuj-1.time,stuj.time);strcpy(stuj.time,temp);st

20、rcpy(temp,stuj-1.add);strcpy(stuj-1.add,stuj.add);strcpy(stuj.add,temp);strcpy(temp,stuj-1.tel);strcpy(stuj-1.tel,stuj.tel);strcpy(stuj.tel,temp);strcpy(temp,stuj-1.mail);strcpy(stuj-1.mail,stuj.mail);strcpy(stuj.mail,temp); p=&stuj-1.age; q=&stuj.age; s=*q; *q=*p; *p=s;void insert() /*插入函數(shù)*

21、/ int i=n,j,flag;printf("請輸入待增加的學(xué)生數(shù):n");scanf("%d",&m);do flag=1;while(flag)flag=0;printf("請輸入第 %d 個學(xué)生的學(xué)號:n",i+1);scanf("%s",stui.code);for(j=0;j<i;j+)if(strcmp(stui.code,stuj.code)=0)printf("已有該學(xué)號,請檢查后重新錄入!n");flag=1;break; /*如有重復(fù)立即退出該層循環(huán),提高判

22、斷速度*/printf("請輸入第 %d 個學(xué)生的姓名:n",i+1);scanf("%s",);printf("請輸入第 %d 個學(xué)生的年齡:n",i+1);scanf("%d",&stui.age);printf("請輸入第 %d 個學(xué)生的性別:n",i+1);scanf("%s",stui.sex);printf("請輸入第 %d 個學(xué)生的出生年月:(格式:年.月)n",i+1);scanf("%s",s

23、tui.time);printf("請輸入第 %d 個學(xué)生的地址:n",i+1);scanf("%s",stui.add);printf("請輸入第 %d 個學(xué)生的電話:n",i+1);scanf("%s",stui.tel);printf("請輸入第 %d 個學(xué)生的E-mail:n",i+1);scanf("%s",stui.mail);if(flag=0) i=i;i+;while(i<n+m);n+=m;printf("錄入完畢!nn");so

24、rt();void del()int i,j,flag=0;char s1LEN+1;printf("請輸入要刪除學(xué)生的學(xué)號:n");scanf("%s",s1);for(i=0;i<n;i+)if(strcmp(stui.code,s1)=0) flag=1;for(j=i;j<n-1;j+)stuj=stuj+1;if(flag=0)printf("該學(xué)號不存在!n");if(flag=1)printf("刪除成功,顯示結(jié)果請選擇菜單6n");n-;void display() int i;prin

25、tf("所有學(xué)生的信息為:n");printf("學(xué)生學(xué)號 學(xué)生姓名 年齡 性別 出生年月 地址 電話 E-mailn");printf("-n");for(i=0;i<n;i+) printf("%6s %7s %5d %5s %9s %8s %10s %14sn",stui.code,,stui.age,stui.sex,stui.time,stui.add,stui.tel,stui.mail);void save()int i;FILE *fp;fp=fopen("student.txt","w"); /*寫入*/for(i=0;i<n;i+)fprintf(fp,"%s %s %d %s %s %s %s %sn",stui.code,,stui.age,stui.sex,stui.time,stui.add,stui.tel,stui.mail);fclose(fp);void menu()/* 界面 */int num;printf(" nn 電信082學(xué)生信息管理系統(tǒng) nn");printf(" * nn");printf("

溫馨提示

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

評論

0/150

提交評論