順序表的學(xué)生成績(jī)管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)_第1頁(yè)
順序表的學(xué)生成績(jī)管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)_第2頁(yè)
順序表的學(xué)生成績(jī)管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)_第3頁(yè)
順序表的學(xué)生成績(jī)管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)_第4頁(yè)
順序表的學(xué)生成績(jī)管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)_第5頁(yè)
已閱讀5頁(yè),還剩24頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

長(zhǎng)春建筑學(xué)院《數(shù)據(jù)結(jié)構(gòu)》課程設(shè)計(jì)(論文)順序表的學(xué)生成績(jī)管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)Ordertableofstudentachievementmanagementsystemdesignandimplementation年級(jí):學(xué)號(hào):姓名:專(zhuān)業(yè)指導(dǎo)老師:二零一三年十二月-1-緒論引言:

為了提高高校學(xué)生信息的管理效率,方便對(duì)學(xué)生信息進(jìn)行管理、學(xué)校里面的學(xué)生和管理員方便去管理和查詢(xún)學(xué)生信息,如再要進(jìn)行查詢(xún),就得在眾多的學(xué)生信息中查找自己的成績(jī)信息,面對(duì)學(xué)院大量的學(xué)生信息,怎么可以即時(shí)而方便的管理,學(xué)生只要登錄本系統(tǒng)就可以查找到自己的成績(jī)信息,而管理員也方便去管理每學(xué)期的學(xué)生的成績(jī)信息。建立一個(gè)學(xué)生信息管理系統(tǒng),使學(xué)生信息管理工作規(guī)范化,系統(tǒng)化,程序化,避免學(xué)生管理的隨意性,提高信息處理的速度和準(zhǔn)確性,能夠及時(shí)、準(zhǔn)確、有效的查詢(xún)和修改學(xué)生信息是必須而且十分迫切的工作。。1.1需求分析學(xué)生管理系統(tǒng)功能的信息量大,數(shù)據(jù)安全性和保密性要求最高。本功能實(shí)現(xiàn)對(duì)專(zhuān)業(yè)信息、學(xué)生信息、教師信息情況信息的管理和統(tǒng)計(jì)、課程信息和成績(jī)信息查看及維護(hù)。系統(tǒng)管理員可以瀏覽、查詢(xún)、學(xué)生的基本信息,能添加、刪除和修改學(xué)生信息,這部分功能應(yīng)該由系統(tǒng)管理員執(zhí)行,但是,刪除某條專(zhuān)業(yè)基本信息記錄時(shí),應(yīng)實(shí)現(xiàn)對(duì)該專(zhuān)業(yè)的相關(guān)信息也級(jí)聯(lián)刪除。并且還應(yīng)具有查詢(xún),并打印輸出的功能1.2實(shí)驗(yàn)?zāi)康恼莆枕樞虮淼慕?。掌握順序表的基本操作。掌握順序查找的基本算?.3實(shí)驗(yàn)內(nèi)容利用順序表實(shí)現(xiàn)學(xué)生成績(jī)管理系統(tǒng),具體功能:輸入、輸出、插入、除、查找、修改、退出,并能在屏幕上輸出操作前后的結(jié)果。第2章系統(tǒng)總體設(shè)計(jì)2.1基本要求1.硬件:微機(jī)和打印機(jī)一臺(tái)各2.軟件:VisualC++windows72.2算法設(shè)計(jì)思想分析程序的功能要求,劃分程序功能模塊畫(huà)出系統(tǒng)流程代碼的編寫(xiě),定義數(shù)據(jù)結(jié)構(gòu)和各個(gè)功能子函數(shù)程序的功能調(diào)試2.3設(shè)計(jì)要求寫(xiě)出系統(tǒng)需求分析,并建模。編程實(shí)現(xiàn),界面友好。輸出操作前后的結(jié)果。提供測(cè)試報(bào)告第三章系統(tǒng)詳細(xì)設(shè)計(jì)3.1創(chuàng)建空順序表并初始化voidcreatList(sqlist*L){inti=0,n;Elemtype*newbase;L->elem=(Elemtype*)malloc(List_INIT_SPACE*(sizeof(Elemtype)));if(!L->elem) exit(OVERFLOW);L->length=0;L->listsize=List_INIT_SPACE;printf("有幾位同學(xué):\n");scanf("%d",&n);for(i=0;i<n;i++){if(L->length==L->listsize) {newbase=(Elemtype*)realloc(L->elem,(List_INIT_SPACE+List_INC_SPACE)*sizeof(Elemtype)); if(newbase) {L->elem=newbase; L->listsize+=List_INC_SPACE;}else exit(OVERFLOW);}printf("請(qǐng)輸入第%d名同學(xué)的信息:\n",i+1);printf("學(xué)號(hào)(15)\n");scanf("%16s",L->elem[L->length].number);printf("姓名(15)\n");scanf("%16s",L->elem[L->length].name);printf("性別(男:M女:F)\n");scanf("%16s",L->elem[L->length].sex); printf("成績(jī)\n");scanf("%10d",&L->elem[L->length].score); L->length++;}printf("%d名學(xué)生信息如下:\n",L->length);printf("學(xué)號(hào)(15)姓名(15)性別(男:M女:F)成績(jī)\n");for(i=0;i<L->length;i++)printf("%-16s%-16s%-16s%-10d\n",L->elem[i].number,L->elem[i].name,L->elem[i].sex,L->elem[i].score);}3.2向順序表中插入元素voidinsertlist(sqlist*L){inti,j,k;charsign='y';Elemtype*newbase;Elemtypenewelem; while(sign!='n'){if(L->length==L->listsize) {newbase=(Elemtype*)realloc(L->elem,(List_INIT_SPACE+List_INC_SPACE)*sizeof(Elemtype)); if(newbase) {L->elem=newbase; L->listsize+=List_INC_SPACE;} elseexit(OVERFLOW);}printf("請(qǐng)輸入要插入的同學(xué)的信息:\n");printf("學(xué)號(hào)(15)\n"); scanf("%16s",newelem.number); printf("姓名(15)\n"); scanf("%16s",);printf("性別(男:M女:F)\n"); scanf("%16s",newelem.sex); printf("成績(jī)\n");scanf("%10d",&newelem.score); printf("要插入到第幾個(gè)位置:");scanf("%d",&i); while(i<1||i>L->length+1) {printf("不能插入到第%d個(gè)位置!\n只能插入第1到第%d個(gè)位置上!\n請(qǐng)重新輸入要插入的位置:",L->length+1); scanf("%d",&i);}L->length++; for(j=L->length-1;j>i-2;j--) {for(k=0;k<16;k++) {L->elem[j].name[k]=L->elem[j-1].name[k]; L->elem[j].number[k]=L->elem[j-1].number[k];L->elem[j].sex[k]=L->elem[j-1].sex[k];} L->elem[j].score=L->elem[j-1].score;} j++; for(k=0;k<16;k++) {L->elem[j].name[k]=[k]; L->elem[j].number[k]=newelem.number[k]; L->elem[j].sex[k]=newelem.sex[k];}L->elem[j].score=newelem.score; printf("是否還要輸入?(YorN)");getchar(); scanf("%c",&sign); if(sign=='n'||sign=='N') sign='n';}printf("%d名學(xué)生信息如下:\n",L->length); printf("學(xué)號(hào)(15)姓名(15)性別(男:M女:F)成績(jī)\n"); for(i=0;i<L->length;i++)printf("%-16s%-16s%-16s%-10d\n",L->elem[i].number,L->elem[i].name,L->elem[i].sex,L->elem[i].score);}3.3查找學(xué)生信息intfindlist(sqlist*L){intj;chari[16];printf("1.按學(xué)號(hào)查找\n2.按姓名查找\n請(qǐng)選擇:");scanf("%d",&j);if(j==1){printf("請(qǐng)輸入學(xué)號(hào):"); scanf("%s",i); if(!strcmp(i,L->elem[j].number))//i==L->elem[j].number用數(shù)組函數(shù) returnj+1; return0;}else{printf("請(qǐng)輸入姓名:"); scanf("%s",i); for(j=0;j<L->length;j++)if(!strcmp(i,L->elem[j].name))//用數(shù)組函數(shù) returnj+1; return0;}}3.4刪除學(xué)生信息intdelnode(sqlist*L){intj;chari[10]; printf("1.按學(xué)號(hào)刪除\n2.按姓名刪除\n請(qǐng)選擇:"); scanf("%d",&j); if(j==1) {printf("請(qǐng)輸入學(xué)號(hào):"); scanf("%s",i); for(j=0;j<L->length;j++) if(!strcmp(i,L->elem[j].number))//i==L->elem[j].number用數(shù)組函數(shù) {for(;j<L->length;j++) L->elem[j]=L->elem[j+1]; L->length--; return1;} return0;} else {printf("請(qǐng)輸入姓名:"); scanf("%s",i); for(j=0;j<L->length;j++) if(!strcmp(i,L->elem[j].name))//用數(shù)組函數(shù) {for(;j<L->length;j++)L->elem[j]=L->elem[j+1];//L->elem[j]以后的向前挪 L->length--; return1;} return0;}}3.5輸出學(xué)生信息voidprintlist(sqlist*L){inti; printf("%d名學(xué)生信息如下:\n",L->length); printf("學(xué)號(hào)(15)姓名(15)性別(男:M女:F)成績(jī)\n"); for(i=0;i<L->length;i++)printf("%-16s%-16s%-16s%-10d\n",L->elem[i].number,L->elem[i].name,L->elem[i].sex,L->elem[i].score);}3.6修改學(xué)生信息voidreviselist(sqlist*L){inti,x,a=0;charname[16];charsex[16];charnumber[16];intscore; printf("請(qǐng)選擇你要改的同學(xué)的姓名"); scanf("%16s",name); printf("請(qǐng)選擇你要改的同學(xué)的信息\n"); printf("1.修改學(xué)生的姓名\n"); printf("2.修改學(xué)生的學(xué)號(hào)\n"); printf("3.修改學(xué)生的性別\n"); printf("4.修改學(xué)生的成績(jī)\n"); scanf("%d",&x); switch(x) {case1: for(i=0;i<L->length;i++) {if(strcmp(name,L->elem[i].name)==0) {printf("請(qǐng)輸入新名字"); scanf("%16s",name); strcpy(L->elem[i].name,name); a=1;}}if(a==0) printf("對(duì)不起你要改的名字不存在\n");break; case2: for(i=0;i<L->length;i++) {if(strcmp(name,L->elem[i].name)==0) {printf("請(qǐng)輸入新學(xué)號(hào)"); scanf("%16s",number); strcpy(L->elem[i].number,number); a=1;}}if(a==0) printf("對(duì)不起你要改的名字不存在\n");break; case3:for(i=0;i<L->length;i++) {if(strcmp(name,L->elem[i].name)==0) {printf("請(qǐng)輸入新性別"); scanf("%16s",sex); strcpy(L->elem[i].sex,sex); a=1;}} if(a==0) printf("對(duì)不起你要改的名字不存在\n");break;case4: for(i=0;i<L->length;i++) {if(strcmp(name,L->elem[i].name)==0) {printf("請(qǐng)輸入新成績(jī)"); scanf("%d",score); L->elem[i].score=score; a=1;}} if(a==0) printf("對(duì)不起你要改的名字不存在\n");break;}3.7退出學(xué)生信息管理系統(tǒng)voidtuichu(sqlist*L){if(!L->elem) free(L->elem); printf("\n\n再見(jiàn),歡迎下次使用"); exit(-2);}第四章總體設(shè)計(jì)4.1設(shè)計(jì)概述根據(jù)需求把整個(gè)系統(tǒng)分化成不同的模塊,每個(gè)模塊完成一個(gè)特定的子功能。把這些模塊結(jié)合起來(lái)組成一個(gè)整體。逐一實(shí)現(xiàn)各個(gè)功能。4.2系統(tǒng)總流程圖及功能模塊劃分經(jīng)過(guò)對(duì)系統(tǒng)的需求分析,學(xué)生信息管理系統(tǒng)主要?jiǎng)澐譃槿齻€(gè)部分:學(xué)生信息查詢(xún),學(xué)生信息管理,學(xué)生成績(jī)錄入三個(gè)功能模塊。如圖4.2系統(tǒng)的總體結(jié)構(gòu)。主函數(shù)開(kāi)始根據(jù)printf函數(shù)輸出的提示信息選擇相關(guān)操作主函數(shù)開(kāi)始根據(jù)printf函數(shù)輸出的提示信息選擇相關(guān)操作根據(jù)while語(yǔ)句選擇0~6相應(yīng)的數(shù)字Switch語(yǔ)句實(shí)現(xiàn)的具體操作5.輸出學(xué)生信息4.刪除學(xué)生信息6.修改學(xué)生信息0.退出學(xué)生信息系統(tǒng)3.查找學(xué)生信息2添加學(xué)生信息1.創(chuàng)建學(xué)生信息并初始化根據(jù)相關(guān)調(diào)用函數(shù)輸出相應(yīng)學(xué)生信息程序結(jié)束圖4.2系統(tǒng)的總體結(jié)構(gòu)4.2.1學(xué)生信息查詢(xún)模塊學(xué)生信息查詢(xún):學(xué)生可以根據(jù)學(xué)號(hào)、姓名、專(zhuān)業(yè)進(jìn)行查詢(xún)。如圖3.2.2學(xué)生信息查詢(xún)模塊結(jié)構(gòu)。

學(xué)生信息管理系統(tǒng)學(xué)生信息查詢(xún)學(xué)生信息管理系統(tǒng)學(xué)生信息查詢(xún)學(xué)生信息管理學(xué)生信息錄用圖4.2.1學(xué)生信息管理模塊結(jié)構(gòu)4.2.2學(xué)生信息查詢(xún)模塊學(xué)生信息查詢(xún):學(xué)生可以根據(jù)學(xué)號(hào)、姓名、專(zhuān)業(yè)進(jìn)行查詢(xún)。如圖4.2.2學(xué)生信息查詢(xún)學(xué)生信息查詢(xún)學(xué)號(hào)查詢(xún)姓名查詢(xún)圖4.2.2

學(xué)生信息管理模塊結(jié)構(gòu)第5章系統(tǒng)測(cè)試第五章系統(tǒng)測(cè)試1.在調(diào)試過(guò)程中出現(xiàn)了很多次的程序錯(cuò)誤,警告和不能運(yùn)行。在很多次的調(diào)試和重新改寫(xiě)之后,才可以用。

2.Visual

C++確實(shí)是一門(mén)需要極其細(xì)心和耐心的課程,尤其在程序設(shè)計(jì)的過(guò)程中不可有一絲的馬虎大意,否則將會(huì)花很大力氣去改正。3.調(diào)試過(guò)程中最常見(jiàn)的便是代碼輸入錯(cuò)誤,如字母大小寫(xiě)、順序顛倒、符號(hào)的半/全角使用等一些問(wèn)題,都是在調(diào)試過(guò)程中逐一改正的。5.1實(shí)驗(yàn)結(jié)果1.初始化2.輸入3插入4查找5刪除6修改7退出實(shí)驗(yàn)總結(jié)在程序設(shè)計(jì)方面,逐漸感覺(jué)到模塊化設(shè)計(jì)的重要性。在程序設(shè)計(jì)時(shí),應(yīng)該分析出功能塊,然后對(duì)其細(xì)節(jié)中的共性和特性作分析。在算法上使得其結(jié)果精簡(jiǎn)、完整,達(dá)到模塊化,在編程時(shí),思考方式就會(huì)集中在結(jié)構(gòu)的邏輯上而非細(xì)節(jié)的問(wèn)題上。這樣可以使得程序更加嚴(yán)密可靠。而這樣的技能是要在每次的程序設(shè)計(jì)及編程中慢慢積累的。這次的設(shè)計(jì),讓我大大地感覺(jué)到,對(duì)于程序設(shè)計(jì)中,對(duì)語(yǔ)言再熟悉也比不過(guò)在設(shè)計(jì)中算法和結(jié)構(gòu)分析的真知灼見(jiàn)。當(dāng)然,成功的程序設(shè)計(jì)是要建立在熟悉語(yǔ)言的基礎(chǔ)之上的。平時(shí)語(yǔ)言的基本功要扎實(shí)。而每一次程序設(shè)計(jì)的經(jīng)營(yíng)能大大地增加對(duì)語(yǔ)言的熟悉和感知。程序設(shè)計(jì)的技能來(lái)自多方面,每一次的親自實(shí)踐、思考揣摩、刨根問(wèn)底就會(huì)讓自己更加清楚所欠缺的是什么。所以,現(xiàn)在覺(jué)得在設(shè)計(jì)實(shí)踐中作為參考的書(shū)冊(cè)閱讀和研究遠(yuǎn)遠(yuǎn)比過(guò)單純的閱讀,因?yàn)樗窃谧罹o迫的時(shí)間上填補(bǔ)自己最緊迫的不足。收獲與心得通過(guò)這次程序設(shè)計(jì),增加了我們學(xué)習(xí)軟件的興趣,加強(qiáng)了小組成員之間的協(xié)作能力。這次程序設(shè)計(jì)由老師提供課題,參考范例程序,經(jīng)過(guò)自己的改寫(xiě),實(shí)現(xiàn)程序設(shè)計(jì)要求。一個(gè)模塊一個(gè)模塊去做,在實(shí)際操作過(guò)程中會(huì)有一些錯(cuò)誤,我們要自己動(dòng)手去改,這樣不光能學(xué)到知識(shí)還能有一些體會(huì)。在具體操作中,不光能對(duì)這學(xué)期所學(xué)的知識(shí)得到鞏固,還能發(fā)現(xiàn)自己的不足之處,在以后操作中能更加注意。通過(guò)實(shí)際操作,學(xué)會(huì)C語(yǔ)言程序編程的基本步驟、基本方法,開(kāi)發(fā)了自己的邏輯思維能力,培養(yǎng)了分析問(wèn)題與解決問(wèn)題的能力,提高了實(shí)際操作水平致謝因?yàn)槌醮谓佑|等原因此次設(shè)計(jì)遇到了許多問(wèn)題,我深刻體會(huì)到老師發(fā)揮的重要作用,

數(shù)據(jù)結(jié)構(gòu)程序?qū)ξ覀儊?lái)說(shuō)比較難,在匆忙的學(xué)習(xí)中更是難上加難,似乎覺(jué)得自己僅是個(gè)匆匆過(guò)客,但在老師的幫助下我學(xué)會(huì)了如何調(diào)試,如何查找系統(tǒng)沒(méi)有提示的錯(cuò)誤,最后終于排除萬(wàn)難把程序搞定,體會(huì)到原來(lái)編程也挺有意思的快感.我想沒(méi)有老師的幫助我很難在短期內(nèi)把程序設(shè)計(jì)做的這樣好,在此特地感謝老師的幫助。參考文獻(xiàn)[1]

李麗娟

.

C語(yǔ)言程序設(shè)計(jì)教程(第二版).

北京:人民郵電出版社

2009年

[2]

刁成嘉

.

C語(yǔ)言程序設(shè)計(jì)論文

[D].北京:清華大學(xué)出版社

2004年[3]

楊文軍,楊柳

.

C語(yǔ)言程序設(shè)計(jì)教程[M].

北京:清華大學(xué)出版社

2010年

[4]

周啟海

.

C語(yǔ)言程序設(shè)計(jì)報(bào)告[R].北京:中國(guó)水利工程出版社

2005年

[5]

譚浩強(qiáng)

.

C程序設(shè)計(jì)(第三版)[M].北京:清華大學(xué)出版社

2005年物業(yè)安保培訓(xùn)方案為規(guī)范保安工作,使保安工作系統(tǒng)化/規(guī)范化,最終使保安具備滿足工作需要的知識(shí)和技能,特制定本教學(xué)教材大綱。一、課程設(shè)置及內(nèi)容全部課程分為專(zhuān)業(yè)理論知識(shí)和技能訓(xùn)練兩大科目。其中專(zhuān)業(yè)理論知識(shí)內(nèi)容包括:保安理論知識(shí)、消防業(yè)務(wù)知識(shí)、職業(yè)道德、法律常識(shí)、保安禮儀、救護(hù)知識(shí)。作技能訓(xùn)練內(nèi)容包括:崗位操作指引、勤務(wù)技能、消防技能、軍事技能。二.培訓(xùn)的及要求培訓(xùn)目的1)保安人員培訓(xùn)應(yīng)以保安理論知識(shí)、消防知識(shí)、法律常識(shí)教學(xué)為主,在教學(xué)過(guò)程中,應(yīng)要求學(xué)員全面熟知保安理論知識(shí)及消防專(zhuān)業(yè)知識(shí),在工作中的操作與運(yùn)用,并基本掌握現(xiàn)場(chǎng)保護(hù)及處理知識(shí)2)職業(yè)道德課程的教學(xué)應(yīng)根據(jù)不同的崗位元而予以不同的內(nèi)容,使保安在各自不同的工作崗位上都能養(yǎng)成具有本職業(yè)特點(diǎn)的良好職業(yè)道德和行為規(guī)范)法律常識(shí)教學(xué)是理論課的主要內(nèi)容之一,要求所有保安都應(yīng)熟知國(guó)家有關(guān)法律、法規(guī),成為懂法、知法、守法的公民,運(yùn)用法律這一有力武器與違法犯罪分子作斗爭(zhēng)。工作入口門(mén)衛(wèi)守護(hù),定點(diǎn)守衛(wèi)及區(qū)域巡邏為主要內(nèi)容,在日常管理和發(fā)生突發(fā)事件時(shí)能夠運(yùn)用所學(xué)的技能保護(hù)公司財(cái)產(chǎn)以及自身安全。2、培訓(xùn)要求1)保安理論培訓(xùn)通過(guò)培訓(xùn)使保安熟知保安工作性質(zhì)、地位、任務(wù)、及工作職責(zé)權(quán)限,同時(shí)全面掌握保安專(zhuān)業(yè)知識(shí)以及在具體工作中應(yīng)注意的事項(xiàng)及一般情況處置的原則和方法。2)消防知識(shí)及消防器材的使用通過(guò)培訓(xùn)使保安熟知掌握消防工作的方針任務(wù)和意義,熟知各種防火的措施和消防器材設(shè)施的操作及使用方法,做到防患于未燃,保護(hù)公司財(cái)產(chǎn)和員工生命財(cái)產(chǎn)的安全。3)法律常識(shí)及職業(yè)道德教育

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論