學生管理系統(tǒng) C語言課程設計

上傳人:仙*** 文檔編號:157749636 上傳時間:2022-09-30 格式:DOC 頁數(shù):25 大?。?38KB
收藏 版權申訴 舉報 下載
學生管理系統(tǒng) C語言課程設計_第1頁
第1頁 / 共25頁
學生管理系統(tǒng) C語言課程設計_第2頁
第2頁 / 共25頁
學生管理系統(tǒng) C語言課程設計_第3頁
第3頁 / 共25頁

下載文檔到電腦,查找使用更方便

10 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《學生管理系統(tǒng) C語言課程設計》由會員分享,可在線閱讀,更多相關《學生管理系統(tǒng) C語言課程設計(25頁珍藏版)》請在裝配圖網(wǎng)上搜索。

1、 課程設計說明書 NO.25學生成績管理系統(tǒng)1.程設計的目的通過本程序可以訓練學生程序設計的基本技能,讓學生掌握C程序各種函數(shù)的應用。同時也大大增加了學生的學習興趣,提高了學生的編程能力。進一步掌握和利用C語言進行程設計的能力;進一步理解和運用結構化程設計的思想和方法;初步掌握開發(fā)一個小型實用系統(tǒng)的基本方法;學會調(diào)試一個較長程序的基本方法;掌握書寫課程設計開發(fā)文檔的能力.2設計方案論證2.1設計思路(1)輸入學生初始信息模塊:其中包括學生的姓名、學號和性別以及學生的語文、數(shù)學、英語和計算機等相關信息;可用函數(shù)cin(stu *p1)來實現(xiàn)此操作。當正確輸入存在的學生學號,系統(tǒng)進行判斷時,提示存

2、在此學生。(2)查詢模塊:可用stu *lookdata(stu *p1) 來實現(xiàn)。找到就輸出此學生全部信息包括學生的語文、數(shù)學、英語和計算機等的成績。當正確輸入查找信息時,系統(tǒng)卻不能夠得到所要查找的學生信息以及學生的語文、數(shù)學、英語和計算機的成績。(3)插入模塊:可用insert( )函數(shù)來實現(xiàn)。其中通過學號的大小來比較的,并且以此來排序。當我們輸入插入信息時,系統(tǒng)卻提示插入不進數(shù)據(jù)。(4) 學生的信息以及成績:通過學生的姓名來查看學生的語文、數(shù)學、英語和計算機等相關成績,同時也可以分別通過caverage() 、maverage() 、eaverage() 和comaverage() 來輸

3、出語文、數(shù)學、英語和計算機等成績的平均分數(shù)、最高和最低分數(shù)。(5)退出系統(tǒng):學生成績管理系統(tǒng)可用一個函數(shù)exit()來實現(xiàn),首先將信息保存到文件中,釋放動態(tài)創(chuàng)建的內(nèi)存空間,再退出此程序。退退出系統(tǒng)信信息及成績插插入模塊查查詢模塊初初始信息模塊3程序源代碼 #include #include #include #include #include#include#include#include#define PRINT1 textcolor(12); cprintf(r 請按任意鍵返回主菜單nr);textcolor(10); getch();clrscr(); break;int shoudsa

4、ve=0;struct student /* 學生信息結構體定義*/char num10,name20,sex4;int score1,score2,score3,totle,ave;typedef struct nodestruct student data;struct node *next;Node,*L;void print1() cprintf(r=);void print2() cprintf(nr 1.輸入學生信息 在這里你可以按照提示輸入學生的學號,姓名,性別及各科成績.n); cprintf(nr 2.注銷學生信息 在這里你可以按照學號或姓名將某一名學生的信息從本系統(tǒng)中刪除.

5、n); cprintf(nr 3.查詢學生信息 在這里你可以按照學號或姓名查詢某一名學生的信息.n); cprintf(nr 4.修改學生信息 在這里你可以按照提示修改某一名學生的學號,姓名,性別及各科成績.); cprintf(nr 5.學生信息排序 在這里你可以看到所有學生的成績成績.n); cprintf(nr 6.學生信息統(tǒng)計 在這里本系統(tǒng)將為你顯示所有科目的最高分及最低分所得學生.n); cprintf(nr 7.顯示學生信息 在這里你可以看到系統(tǒng)中所有學生的信息.n); cprintf(nr 8.保存學生信息 在這里你可以將學生你信息保存到內(nèi)存中.n); cprintf(nr 9.

6、幫助信息 在這里你可以獲得幫助信息.n); cprintf(nr 0.退出系統(tǒng) 在這里選擇是否保存后,你可以安全的退出本系統(tǒng).nnr );void menu() cprintf(nrxc9xcdxcdxcdxcdxcdxcdxcdxcdxcdxcdxcdxcdxcdxcdxcdxcdxcdxcdxcdxcdxcdxcdxcdxcdxcdxcdxcdxcdxcdxcdxcdxcdxcdxcdxcdxcdxcbxcdxcdxcdxcdxcdxcdxcdxcdxcdxcdxcdxcdxcdxcdxcdxcdxcdxcdxcdxcdxcdxcdxcdxcdxcdxcdxcdxcdxcdxcdxcdxc

7、dxcdxcdxcdxcdxcdxcdxcdxcdxcdxbb); cprintf(rxba 學生信息導入 xba 學生信息處理 xba); cprintf(rxba_xba_xba); cprintf(rxba 1-輸入學生信息 xba 6-學生信息統(tǒng)計 xba); cprintf(rxba 2-注銷學生信息 xba 7-顯示學生信息 xba); cprintf(rxba 3-查詢學生信息 xba 8-保存學生信息 xba); cprintf(rxba 4-修改學生信息 xba 9-幫助信息 xba); cprintf(rxba 5-學生信息排序 xba 0-退出系統(tǒng) xba); cprin

8、tf(rxc8xcdxcdxcdxcdxcdxcdxcdxcdxcdxcdxcdxcdxcdxcdxcdxcdxcdxcdxcdxcdxcdxcdxcdxcdxcdxcdxcdxcdxcdxcdxcdxcdxcdxcdxcdxcdxcaxcdxcdxcdxcdxcdxcdxcdxcdxcdxcdxcdxcdxcdxcdxcdxcdxcdxcdxcdxcdxcdxcdxcdxcdxcdxcdxcdxcdxcdxcdxcdxcdxcdxcdxcdxcdxcdxcdxcdxcdxcdxbc);void wrong() cprintf(nr輸入錯誤!請驗證后重新輸入.n);void notfind()

9、cprintf(nr該學生信息不存在!請驗證后重新輸入.n);void printc() /* 此函數(shù)用于輸出中文格式 */cprintf(r 學號 姓名 性別 英語成績 數(shù)學成績 C語言成績 總分 平均分n );void printe(Node *p) /* 此函數(shù)用于輸出英文格式 */cprintf( %-8s%-10s%5s%12d%13d%13d%8d%9dnr,p-data.num,p-data.name,p-data.sex,p-data.score3,p-data.score2,p-data.score1,p-data.totle,p-data.ave);Node* Locate

10、(L l,char findinfo,char nameornum) /* 該函數(shù)用于定位連表中符合要求的接點,并返回該指針 */Node *r;if(strcmp(nameornum,num)=0) /* 按學號查詢 */r=l-next;while(r!=NULL)if(strcmp(r-data.num,findinfo)=0)return r;r=r-next;else if(strcmp(nameornum,name)=0) /* 按姓名查詢 */r=l-next;while(r!=NULL)if(strcmp(r-data.name,findinfo)=0)return r;r=r

11、-next;return 0;void input(L l) /* 增加學生 */ Node *p,*r,*s; char num10; r=l; s=l-next;while(r-next!=NULL) r=r-next; /* 將指針置于最末尾 */while(1) cprintf(r如果輸入完畢,請按任意鍵返回主菜單n); cprintf(r如果你還想輸入,請按y(yes)繼續(xù)nr); scanf(%s,num); if(strcmp(num,y)=0) cprintf(請你輸入學號:); scanf(%s,num); else break;while(s) if(strcmp(s-da

12、ta.num,num)=0) printf(t學號為%s的學生已經(jīng)存在,若要修改請你選擇4 修改!n,num);print1();printc(); printe(s); print1();printf(n); getch();return; s=s-next; p=(Node *)malloc(sizeof(Node);strcpy(p-data.num,num);cprintf(r請你輸入姓名:);scanf(%s,p-data.name);getchar();cprintf(r請你輸入性別(M OR F):);scanf(%s,p-data.sex);getchar();cprintf(

13、r請你輸入c語言成績(0-100):);scanf(%d,&p-data.score1);getchar();cprintf(r請你輸入數(shù)學成績(0-100):);scanf(%d,&p-data.score2);getchar();cprintf(r請你輸入英語成績(0-100):);scanf(%d,&p-data.score3);getchar();p-data.totle=p-data.score3+p-data.score1+p-data.score2;p-data.ave=p-data.totle / 3; /* 信息輸入已經(jīng)完成 */p-next=NULL;r-next=p;r=

14、p;shoudsave=1;void query(L l) /* 查詢學生信息 */int select;char findinfo20;Node *p;if(!l-next)cprintf(n 沒有信息可以查詢!n);return;cprintf(n1=按學號查找nr2=按姓名查找nr);scanf(%d,&select);if(select=1) /* 學號 */cprintf(r請你輸入要查找的學號:);scanf(%s,findinfo);p=Locate(l,findinfo,num);if(p)cprintf( 查找結果nr);print1();printc();printe(p)

15、;print1();elsenotfind();else if(select=2) /* 姓名 */cprintf(r請你輸入要查找的姓名:);scanf(%s,findinfo);p=Locate(l,findinfo,name);if(p)cprintf( 查找結果nr);print1();printc();printe(p);print1();elsenotfind();elsewrong();void Delete(L l) /* 刪除學生信息 */int select;Node *p,*r;char findinfo20;if(!l-next)cprintf(n 沒有信息可以刪除!n

16、);return;cprintf(n1=按學號刪除nr2=按姓名刪除nr);scanf(%d,&select);if(select=1)cprintf(r請你輸入要刪除的學號:);scanf(%s,findinfo);p=Locate(l,findinfo,num);if(p)r=l;while(r-next!=p)r=r-next;r-next=p-next;free(p);cprintf(nr該學生已經(jīng)成功刪除!n);shoudsave=1;elsenotfind();else if(select=2)cprintf(r請你輸入要刪除的姓名:);scanf(%s,findinfo);p=L

17、ocate(l,findinfo,name);if(p)r=l;while(r-next!=p)r=r-next;r-next=p-next;free(p);cprintf(nr該學生已經(jīng)成功刪除!n);shoudsave=1;elsenotfind();else wrong();void modify(L l) /*修改學生信息*/Node *p;char findinfo20;if(!l-next)cprintf(nr沒有信息可以修改!n);return;cprintf(r請你輸入要修改的學生學號:);scanf(%s,findinfo);p=Locate(l,findinfo,num);

18、if(p)cprintf(r請你輸入新學號(原來是%s):,p-data.num);scanf(%s,p-data.num);cprintf(r請你輸入新姓名(原來是%s):,p-data.name);scanf(%s,p-data.name);getchar();cprintf(r請你輸入新性別(原來是%s):,p-data.sex);scanf(%s,p-data.sex);cprintf(r請你輸入新的c語言成績(原來是%d分):,p-data.score1);scanf(%d,&p-data.score1);getchar();cprintf(r請你輸入新的數(shù)學成績(原來是%d分):,

19、p-data.score2);scanf(%d,&p-data.score2);getchar();cprintf(r請你輸入新的英語成績(原來是%d分):,p-data.score3);scanf(%d,&p-data.score3);p-data.totle=p-data.score3+p-data.score1+p-data.score2;p-data.ave=p-data.totle/3;cprintf(nr信息修改成功!n);shoudsave=1;elsenotfind();void display(L l) /*顯示全部學生信息*/int count=0;Node *p;p=l-

20、next;if(!p)cprintf(nr 沒有信息可以顯示!n);return;cprintf( 顯示結果 );print1();printc();while(p) if(count%5=0) getch();printe(p);p=p-next;count+;print1();cprintf(n);void Statistic(L l) /*統(tǒng)計學生信息*/ Node *pm_max,*pe_max,*pc_max,*pt_max,*pa_max; /* 用于指向分數(shù)最高的接點 */Node *pm_min,*pe_min,*pc_min,*pt_min,*pa_min;Node *r=l

21、-next;if(!r)cprintf(nr 沒有信息可以統(tǒng)計!n);return ;pm_max=pe_max=pc_max=pt_max=pa_max=pm_min=pe_min=pc_min=pt_min=pa_min=r;while(r!=NULL) if(r-data.score1=pc_max-data.score1)pc_max=r;if(r-data.score1data.score1)pc_min=r;if(r-data.score2=pm_max-data.score2)pm_max=r;if(r-data.score2data.score2)pm_min=r;if(r-d

22、ata.score3=pe_max-data.score3)pe_max=r;if(r-data.score3data.score3)pe_min=r;if(r-data.totle=pt_max-data.totle)pt_max=r;if(r-data.totledata.totle)pt_min=r;if(r-data.ave=pa_max-data.ave)pa_max=r;if(r-data.avedata.ave)pa_min=r;r=r-next;cprintf(=統(tǒng)計結果=n);cprintf(r總分最高者: %-16s %d分n,pt_max-data.name,pt_max

23、-data.totle);cprintf(r平均分最高者: %-16s %d分n,pa_max-data.name,pa_max-data.ave);cprintf(r英語最高者: %-16s %d分n,pe_max-data.name,pe_max-data.score3);cprintf(r數(shù)學最高者: %-16s %d分n,pm_max-data.name,pm_max-data.score2);cprintf(rc語言最高者: %-16s %d分nr,pc_max-data.name,pc_max-data.score1);cprintf(r總分最低者: %-16s %d分n,pt_m

24、in-data.name,pt_min-data.totle);cprintf(r平均分最低者: %-16s %d分n,pa_min-data.name,pa_min-data.ave);cprintf(r英語最低者: %-16s %d分n,pe_min-data.name,pe_min-data.score3);cprintf(r數(shù)學最低者: %-16s %d分n,pm_min-data.name,pm_min-data.score2);cprintf(rc語言最低者: %-16s %d分nr,pc_min-data.name,pc_min-data.score1);print1(); vo

25、id Sort(L l)L ll;Node *p,*rr,*s; ll=(L)malloc(sizeof(Node); /* 用于做新的連表 */ll-next=NULL; if(l-next=NULL)cprintf(nr 沒有信息可以排序!n);return ; p=l-next; while(p)s=(Node*)malloc(sizeof(Node); /* 新建接點用于保存信息 */s-data=p-data;s-next=NULL;rr=ll;while(rr-next!=NULL & rr-next-data.totle=p-data.totle) rr=rr-next;if(r

26、r-next=NULL)rr-next=s;else s-next=rr-next;rr-next=s; p=p-next; free(l);l-next=ll-next;cprintf(nr 排序已經(jīng)完成!n);void Save(L l) /* */FILE* fp; Node *p;int flag=1,count=0; fp=fopen(c:student,wb); if(fp=NULL)cprintf(nr 重新打開文件時發(fā)生錯誤!n);exit(1);p=l-next;while(p)if(fwrite(p,sizeof(Node),1,fp)=1)p=p-next;count+;

27、elseflag=0;break;if(flag)cprintf(nr 文件保存成功.(有%d條信息已經(jīng)保存.)nr,count);shoudsave=0;fclose(fp);void main() /* */L l; /* 鏈表 */FILE *fp; /* 文件指針 */int count=0 ,i,menu_select; /*菜單選擇 */char ch ,creat;Node *p,*r;time_t it;clrscr(); textmode(C80);window(1,1,80,25);textbackground(1); clrscr();textcolor(10);cpri

28、ntf(r 學生成績管理系統(tǒng) );cprintf(r -天津工業(yè)大學電科063班 ) ;cprintf(r 設計人員:趙利軍,閔祖濤,張延,張參貴,付廣蓮,劉月 );l=(Node*)malloc(sizeof(Node);l-next=NULL;r=l;fp=fopen(c:student,rb);if(fp=NULL)cprintf(nr 該文件還未存在,是否需要創(chuàng)建?(y/n,Y/N)nr);scanf(%c,&creat);if(creat=y|creat=Y)fp=fopen(c:student,wb);elseexit(0);gotoxy(9,11); textcolor(12);

29、cprintf(nr 文件已經(jīng)打開,系統(tǒng)正在導入信息);for(i=0;inext=NULL;r-next=p;r=p; /* 將該接點掛入連中 */count+;fclose(fp); /* 關閉文件 */gotoxy(1,3);cprintf(nr信息導入完畢,系統(tǒng)共導入%d條信息 ,count);sleep(1);while(1) menu();textcolor(12);cprintf(r現(xiàn)在時間: ); it=time(NULL);cprintf(ctime(&it);cprintf(r左邊數(shù)字對應功能選擇,請按0-9選擇操作:nr);textcolor(10) ;scanf(%d,

30、&menu_select);if(menu_select=0)if(shoudsave=1) getchar(); textcolor(128+12);cprintf(nr 信息已經(jīng)改動,是否將改動保存到文件中(y/n Y/N)?nr);scanf(%c,&ch);if(ch=y|ch=Y)Save(l);cprintf(nr 你已經(jīng)成功退出學生成績信息系統(tǒng),歡迎下次繼續(xù)使用!n);break;switch(menu_select)case 1: clrscr(); input(l); clrscr(); break; /* 輸入學生 */ case 2: clrscr(); Delete(l

31、); PRINT1 /* 刪除學生 */ case 3: clrscr(); query(l); PRINT1 /* 查詢學生 */ case 4: clrscr(); modify(l); PRINT1 /* 修改學生 */ case 5: clrscr(); Sort(l); PRINT1 case 6: clrscr(); Statistic(l); PRINT1 case 7: clrscr(); display(l); PRINT1 case 8: clrscr(); Save(l); PRINT1 /* 保存學生 */ case 9: clrscr(); cprintf( =幫助信

32、息=n); print2(); PRINT1 ; default: wrong(); getchar(); break;4設計結果與分析1. 設計結果說明,配合截圖運行結果如圖所示。輸入學生信息。2.設計體會通過這次課程設計讓我更加了解Windows Xp系統(tǒng)進一步熟悉Turbo C2.0程序編譯環(huán)境。能夠進行小程序的設計和較長程序的調(diào)試,C語言強大的編譯系統(tǒng)可以讓我們完成各種程序的編譯。它包含了多種函數(shù),可以在主函數(shù)下進行多種函數(shù)的嵌套和調(diào)用。能夠運用C語言進行程序設計,為我們的生活帶來很多的方便和娛樂。 5參考文獻1 譚浩強,C程序設計m(第三版),清華大學出版社2 常玉龍等,Turbo C 2.0實用大全m,北京航空航天大學出版社3 陳朔鷹 陳英,C語言趣味程序百例精解m,北京理工大學出版社4 浦濱,C游戲編程從入門到精通m,北京希望電子出版社5張曜 郭立山 吳天,C函數(shù)實用手冊m, 冶金工業(yè)出版社沈 陽 大 學

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

相關資源

更多
正為您匹配相似的精品文檔
關于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!