《程序設(shè)計(jì)語(yǔ)言C》項(xiàng)目設(shè)計(jì)范例1_第1頁(yè)
《程序設(shè)計(jì)語(yǔ)言C》項(xiàng)目設(shè)計(jì)范例1_第2頁(yè)
《程序設(shè)計(jì)語(yǔ)言C》項(xiàng)目設(shè)計(jì)范例1_第3頁(yè)
免費(fèi)預(yù)覽已結(jié)束,剩余17頁(yè)可下載查看

下載本文檔

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

文檔簡(jiǎn)介

學(xué)生成績(jī)管理簡(jiǎn)易系統(tǒng)一.課程設(shè)計(jì)目的解決實(shí)際問(wèn)題的能力。二.設(shè)計(jì)要求本系統(tǒng)用來(lái)管理若干個(gè)學(xué)院(系、若干個(gè)班級(jí)的學(xué)生成績(jī),系統(tǒng)具有如下主要功能:成批成績(jī)輸入,即從一個(gè)固定格式中讀入學(xué)生成績(jī),放入學(xué)生成績(jī)。交互成績(jī)輸入,從屏幕上一個(gè)一個(gè)地錄入學(xué)生成績(jī),放入學(xué)生成績(jī)。查詢(xún)(打?。┠嘲嗉?jí)某門(mén)課的最高分、最低分、平均分及成績(jī)清單(分?jǐn)?shù)由高到低排序等。查詢(xún)(打?。W(xué)生(可按學(xué)號(hào)、按姓名查詢(xún))某學(xué)期的成績(jī)清單(假定每人每學(xué)期最多8。修改和刪除某學(xué)生的某門(mén)課成績(jī)。增加、修改、刪除和查詢(xún)(打?。W(xué)生的基本資料。三.設(shè)計(jì)總體框架程序數(shù)據(jù)處理流圖開(kāi)始開(kāi)始建立學(xué)生鏈輸入鏈表上各結(jié)點(diǎn)的數(shù)據(jù)插入新信息排序并輸出排序后的鏈表各結(jié)點(diǎn)的數(shù)據(jù)查找并輸出查找得到的數(shù)據(jù)根據(jù)學(xué)號(hào)刪除數(shù)據(jù)根據(jù)學(xué)號(hào)查任課教師結(jié)束每一個(gè)功能塊的算法流程圖1、建立鏈表開(kāi)始開(kāi)始輸入學(xué)生信息是輸入學(xué)號(hào)是否為0?否是直接插入頭指針是否指零?否將新建的結(jié)點(diǎn)插入鏈尾結(jié)束2、排序開(kāi)始開(kāi)始動(dòng)態(tài)定義一個(gè)指針數(shù)組是要排序的鏈表是否為空?否給出錯(cuò)誤提示要排序的鏈表是否只有一個(gè)數(shù)據(jù)?是否使動(dòng)態(tài)定義的指針數(shù)組各元素分別指向鏈表的各結(jié)點(diǎn),并將指針數(shù)組連成一個(gè)鏈表根據(jù)指針?biāo)附Y(jié)點(diǎn)學(xué)號(hào)的大小進(jìn)行冒泡排序?qū)⑴判蚝蟮男聰?shù)組連成一個(gè)新有序數(shù)組使頭指針指向排序后的指針數(shù)組的第一個(gè)元素返回頭指針的值結(jié)束3、插入(增加)開(kāi)始開(kāi)始根據(jù)學(xué)號(hào)大小找到要插入的位置確定頭指針的位置,并使插入的結(jié)點(diǎn)的指針域指向后面的結(jié)點(diǎn)返回頭指針結(jié)束3、查找開(kāi)始開(kāi)始是鏈表是否為空?否給出提示逐個(gè)比較各結(jié)點(diǎn)的數(shù)據(jù)是否與所要查找的數(shù)據(jù)相同否找到?是輸出該數(shù)據(jù)結(jié)束開(kāi)始開(kāi)始不能能查找要?jiǎng)h除的數(shù)據(jù)?能否給出提示找到的數(shù)據(jù)是否為頭指針?是使找到的指針的一個(gè)結(jié)點(diǎn)的指針指向找到的指針下一個(gè)結(jié)點(diǎn)上域的將頭指針的下一個(gè)指針賦給頭指針刪除找到的結(jié)點(diǎn)返回頭指針結(jié)束5、刪除6、統(tǒng)計(jì)開(kāi)始開(kāi)始對(duì)鏈表的各個(gè)結(jié)點(diǎn)進(jìn)行考查,符合條件的,讓計(jì)數(shù)器自動(dòng)加1輸出結(jié)果結(jié)束7根據(jù)學(xué)生查找老師,根據(jù)教師代號(hào)查所教學(xué)生開(kāi)始開(kāi)始是鏈表是否為空?否給出提示逐個(gè)比較各結(jié)點(diǎn)的老師是否與所要查找的老師相同否找到?是輸出該老師結(jié)束8.根據(jù)教師代號(hào)查所教學(xué)生開(kāi)始開(kāi)始是鏈表是否為空?否給出提示逐個(gè)比較各結(jié)點(diǎn)的老師是否與所要查找的老師相同否找到?是輸出該學(xué)生結(jié)束五.?dāng)?shù)據(jù)文件格式說(shuō)明學(xué)生基本資料文件structstudent{charnum[15];charname[15];charmajor[15];chargrade[15];charclas[15];charcharsex[5];floatbirthday[10];floatscore[8];node*next;}head;學(xué)生成績(jī)資料文件structscore{charnum[15];floatsubjectmun[10];floatitem[5];floatscore;charteacher[15];}課程代號(hào)對(duì)照表文件structsubjectmun{floatsubjectmun[10];charsubject[10];floatscoreweight;}教師代號(hào)對(duì)照表文件structteachermun{floatteachermun[10];charteachername[10];charquality[10];}6.輸入輸出方法studentinput(studentx){cout<<"請(qǐng)輸入學(xué)生的相關(guān)信息,以學(xué)號(hào)為字符 0結(jié)束(其他項(xiàng)任意,但要入!!):"<<endl;cout<<" 學(xué)"<<" 姓"<<" 系"<<" "<<"班"<<" "<<"老"<<" "<<"性別"<<" "<<"生"<<" "<<"各科成績(jī)"<<" "<<endl;cin>>s1>>s2>>s3>>s4>>s4>>s5>>s6>>s7>>s8>>c1>>c2>>c3;returnx;}studentoutput(studentx){cout<<" "<<x.num<<"姓名"<<<<"系"<<x.major<<"班級(jí)"<<x.clas<<"老師"<<teacher<<"性別"<<x.sex<<"生日"<<x.birthday<<endl;}六.主要數(shù)據(jù)類(lèi)型及其作用(數(shù)據(jù)結(jié)構(gòu))課程代號(hào)對(duì)照表結(jié)據(jù)。七.主要函數(shù)說(shuō)明及其原代碼建立鏈表node*GradeManage::create(void){node*p1,*p2,*head=0;chars1[15],s2[25],s3[15],s4[15],s5[15],s6[5],s7[10],s8[10];floatc1,c2,c3;cout<<"請(qǐng)輸入學(xué)生的相關(guān)信息,以學(xué)號(hào)為字符0結(jié)束(其他項(xiàng)任意,但要輸入cout<<" "<<"學(xué)號(hào)"<<" "<<"姓名"<<" "<<"系"<<" "<<"班級(jí)"<<" "<<"老師"<<" "<<"性別"<<" "<<"生日"<<" "<<"各科成績(jī)"<<""<<endl;cin>>s1>>s2>>s3>>s4>>s4>>s5>>s6>>s7>>s8>>c1>>c2>>c3;while(strcmp(s1,"0")!=0){p1=newnode;strcpy(p1->num,s1);strcpy(p1->name,s2);strcpy(p1->major,s3);strcpy(p1->grade,s4);strcpy(p1->clas,s5);strcpy(p1->teacher,s6);strcpy(p1->sex,s7);p1->score[1]=c1;p1->score[2]=c2;p1->score[3]=c3;if(head==0){head=p1;p2=p1;}else{}size++;

p2->next=p1;p2=p1;cout<<"繼續(xù)輸入"<<endl;cin>>s1>>s2>>c1>>c2>>c3;}cout<<"輸入結(jié)束!"<<endl;for(inti=0;i<80;i++)cout<<'-';p2->next=0;return(head);}2、排序node*GradeManage::sort(node*head){node**p;p=newnode*[size];if(head==0){!"<<endl;return(NULL);}if(head->next==0){}else{

cout<<"只有一個(gè)數(shù)據(jù)!"<<endl;return(head);node*temp;p[0]=head;inti;for(i=1;i<size;i++){p[i]=p[i-1]->next;}p[size-1]->next=NULL;for(i=0;i<size;i++)for(intj=0;j<size-1-i;j++)if(strcmp(p[j]->num,p[j+1]->num)>0){temp=p[j];p[j]=p[j+1];p[j+1]=temp;}}p[size-1]->next=NULL;head=p[0];for(inti=1;i<size;i++){p[i-1]->next=p[i];}p[size-1]->next=0;cout<<"排序后:"<<endl;print(head);delete[]p;return(head);}查找voidGradeManage::search(node*head,char*p){nodeif(head==0){cout<<return;}if(strcmp(head->num,p)==0){p1=head;cout<<" "<<"學(xué)號(hào)"<<" "<<"姓名"<<" "<<"系"<<" "<<"班級(jí)"<<" "<<"老師"<<" "<<"性別"<<" "<<"生日"<<" "<<"各科成績(jī)"<<""<<endl;}else{

cout<<p1->num<<" "<<p1->name<<" "<<p1->major<<" "<<p1->grade<<" "<<p1->clas<<""<<p1->teacher<<""<<p1->sex<<""<<endl;p1=head;p2=head->next;while(p2->next&&strcmp(p2->num,p)!=0){p1=p2;p2=p2->next;}if(strcmp(p2->num,p)==0){cout<<" "<<"學(xué)號(hào)"<<" "<<"姓名"<<" "<<"系"<<" ""<<endl;

<<"班級(jí)"<<" "<<"老師"<<" "<<"性別"<<" "<<"生日"<<" "<<"各科成績(jī)"<<"cout<<p2->num<<" "<<p2->name<<" "<<p2->major<<" "<<p2->grade<<" "<<p2->clas<<""<<p2->teacher<<""<<p2->sex<<""<<endl;}else}

cout<<"鏈上沒(méi)有找到要找的學(xué)生信息!"<<endl;return;}刪除voidGradeManage::DeleteChain(node*head){node*p;while(head){p=head;head=head->next;deletep;}}求平均分node*fun(node*head,float&aver){student*h,*p,*p1;floatsum=0;intn=0;aver=0;h=NULL;p=head;while(p!=null){sum+=p->grade;n++;p=p->next;}aver=sum/n;}4、程序代碼#include<iostream.h>#include<string.h>intsize=0;structnode{charnum[15];charname[15];charmajor[15];chargrade[15];charclas[15];charcharsex[5];floatbirthday[10];floatscore[8];node*next;}head;classGradeManage{public:node*create(void);voidprint(constnode*head);node*sort(node*head);node*insert(node*head,node*p);voidsearch(node*head,char*p);node*Deleteonenode(node*head,char*p);voidDeleteChain(node*head);};node*GradeManage::create(void){node*p1,*p2,*head=0;chars1[15],s2[25],s3[15],s4[15],s5[15],s6[5],s7[10],s8[10];floatc1,c2,c3;cout<<"請(qǐng)輸入學(xué)生的相關(guān)信息,以學(xué)號(hào)為字符0結(jié)束(其他項(xiàng)任意,但要輸入cout<<" "<<"學(xué)號(hào)"<<" "<<"姓名"<<" "<<"系"<<" "<<"班級(jí)"<<" "<<"老師"<<" "<<"性別"<<" "<<"生日"<<" "<<"各科成績(jī)"<<""<<endl;cin>>s1>>s2>>s3>>s4>>s4>>s5>>s6>>s7>>s8>>c1>>c2>>c3;while(strcmp(s1,"0")!=0){p1=newnode;strcpy(p1->num,s1);strcpy(p1->name,s2);strcpy(p1->major,s3);strcpy(p1->grade,s4);strcpy(p1->clas,s5);strcpy(p1->teacher,s6);strcpy(p1->sex,s7);p1->score[1]=c1;p1->score[2]=c2;p1->score[3]=c3;if(head==0){}else{}size++;

head=p1;p2=p1;p2->next=p1;p2=p1;cout<<"繼續(xù)輸入"<<endl;cin>>s1>>s2>>c1>>c2>>c3;}cout<<"輸入結(jié)束!"<<endl;for(inti=0;i<80;i++)cout<<'-';p2->next=0;return(head);}voidGradeManage::print(constnode*head){constnode*p=head;cout<<" "<<"學(xué)號(hào)"<<" "<<"姓名"<<" "<<"系"<<" "<<"班級(jí)"<<" "<<"老師"<<" "<<"性別"<<" "<<"生日"<<" "<<"各科成績(jī)"<<""<<endl;while(p!=0){cout<<p->num<<" "<<p->name<<" "<<p->major<<" "<<p->grade<<" "<<p->clas<<""<<p->teacher<<" "<<p->sex<<"p=p->next;}for(intcout<<'-';cout<<'\n';}node*GradeManage::sort(node*head){node**p;p=newnode*[size];if(head==0){!"<<endl;return(NULL);}if(head->next==0){}else{

cout<<"只有一個(gè)數(shù)據(jù)!"<<endl;return(head);node*temp;p[0]=head;inti;for(i=1;i<size;i++){p[i]=p[i-1]->next;}p[size-1]->next=NULL;for(i=0;i<size;i++)for(intj=0;j<size-1-i;j++)if(strcmp(p[j]->num,p[j+1]->num)>0){temp=p[j];p[j]=p[j+1];p[j+1]=temp;}}p[size-1]->next=NULL;head=p[0];for(inti=1;i<size;i++){p[i-1]->next=p[i];}p[size-1]->next=0;cout<<"排序后:"<<endl;print(head);delete[]p;return(head);}node*GradeManage::insert(node*head,node*p){node*p1,*p2;if(head==0){p->next=0;return(p);}if(strcmp(head->num,p->num)>=0){p->next=head;return(p);}p2=p1=head;while(p2->next&&strcmp(p2->num,p->num)<0){p1=p2;p2=p2->next;}if(strcmp(p2->num,p->num)<0){}else{}

p2->next=p;p->next=0;p->next=p2;p1->next=p;return(head);}voidGradeManage::search(node*head,char*p){nodeif(head==0){cout<<return;}if(strcmp(head->num,p)==0){p1=head;cout<<" "<<"學(xué)號(hào)"<<" "<<"姓名"<<" "<<"系"<<" "<<"班級(jí)"<<" "<<"老師"<<" "<<"性別"<<" "<<"生日"<<" "<<"各科成績(jī)"<<""<<endl;}else{

cout<<p1->num<<" "<<p1->name<<" "<<p1->major<<" "<<p1->grade<<" "<<p1->clas<<""<<p1->teacher<<""<<p1->sex<<""<<endl;p1=head;p2=head->next;while(p2->next&&strcmp(p2->num,p)!=0){p1=p2;p2=p2->next;}if(strcmp(p2->num,p)==0){"<<endl;

cout<<" "<<"學(xué)號(hào)"<<" "<<"姓名"<<" "<<"系"<<" "<<"班級(jí)"<<" "<<"老師"<<" "<<"性別"<<" "<<"生日"<<" "<<"各科成績(jī)"<<"cout<<p2->num<<" "<<p2->name<<" "<<p2->major<<" "<<p2->grade<<" "<<p2->clas<<""<<p2->teacher<<""<<p2->sex<<""<<endl;}else}

cout<<"鏈上沒(méi)有找到要找的學(xué)生信息!"<<endl;return;}node*GradeManage::Deleteonenode(node*head,char*p){node*p1,*p2;if(head==0){cout<<"鏈為空,無(wú)法找到所要?jiǎng)h除的學(xué)生信息!"<<endl;return(0);}if(strcmp(head->num,p)==0){}else{

p1=head;head=head->next;deletep1;cout<<"*********"<<"已成功刪除!"<<"*********"<<endl;p1=head;p2=head->next;while(p2->next&&strcmp(p2->num,p)!=0){p1=p2;p2=p2->next;}if(strcmp(p2->num,p)==0){p1->next=p2->next;deletep2;cout<<"*********"<<"已成功刪除!"<<"*********"<<endl;}else}

cout<<"*********"<<"鏈上沒(méi)有找到要?jiǎng)h除的學(xué)生信息!"<<"*********"<<endl;return(head);}voidGradeManage::DeleteChain(node*head){node*p;while(head){p=head;head=head->next;deletep;}}intmain(){GradeManageclass1;node*head;chars1[15],s2[25],s3[15],s4[15],s

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論