版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、1需求分析1.1研究背景教育信息化必將涉及許多具體的技術(shù)和機(jī)器在教育中的應(yīng)用,它使得一些人往往以技術(shù)論,機(jī)器論的觀點(diǎn)來認(rèn)識(shí)教育信息化的目的,認(rèn)為教育信息化就是以機(jī)器代替教師講課,代替教育寫板書 ,就是以電子教材代替印刷教材,就是實(shí)現(xiàn)網(wǎng)上學(xué)習(xí),并以代替性、省力性、順利性、效率性作為評(píng)價(jià)教育信息化的尺度。而成績(jī)管理系統(tǒng)將大大的提高老師的管理效率,使得老師可以針對(duì)學(xué)生的具體情況進(jìn)行深入教育,培養(yǎng)跨世紀(jì)的創(chuàng)新人才,是實(shí)現(xiàn)教育的現(xiàn)代化。教育信息化應(yīng)以新的教育思想、教育觀念指導(dǎo)信息技術(shù)在教育的各個(gè)部門、各個(gè)領(lǐng)域廣泛應(yīng)用,應(yīng)根據(jù)創(chuàng)新人才培養(yǎng)的要求,利用信息技術(shù),探索新的教育模式,促進(jìn)教育現(xiàn)代化。只有在這樣的
2、基礎(chǔ)上指導(dǎo)信息技術(shù)的教育應(yīng)用,才是我們所需要的教育信息化。也就相應(yīng)產(chǎn)生了對(duì)學(xué)生成績(jī)的高效管理。1.2課題研究的目的及意義 現(xiàn)在我國(guó)各院高校的學(xué)生成績(jī)管理水平普遍不高,有的還停留在紙質(zhì)基礎(chǔ)上,這種管理手段已不能適應(yīng)時(shí)代的發(fā)展,因?yàn)樗速M(fèi)了許多的人力和物力。在當(dāng)今信息時(shí)代這種傳統(tǒng)的管理方法必然會(huì)被計(jì)算機(jī)為基礎(chǔ)的信息管理系統(tǒng)所代替。成績(jī)管理系統(tǒng)提供了強(qiáng)大的管理功能,方便管理員對(duì)考試成績(jī)等信息的添加、修改、刪除、查詢、分類等操作。本系統(tǒng)將提高管理人員的工作效率和工作質(zhì)量。如今,計(jì)算機(jī)網(wǎng)絡(luò)帶動(dòng)了全球信息化得進(jìn)程。在高校中,信息化帶來的傳統(tǒng)教學(xué)、科研模式的變化,需要新的管理機(jī)制:以信息技術(shù)為手段的校務(wù)管理
3、,也需要新的機(jī)制,即需要一個(gè)數(shù)字化的校園(Digital Campus)。數(shù)字校園的建設(shè)也是高校信息化的重要組成部分。成績(jī)管理是學(xué)校管理中的異常重要的一個(gè)環(huán)節(jié),作為學(xué)校,除了育人,就是與育知,學(xué)生成績(jī)管理的計(jì)算機(jī)化是整個(gè)學(xué)校教務(wù)管理中的重要一部分,能否實(shí)現(xiàn)這一步關(guān)系到學(xué)校辦學(xué)整體效率的高低,在于它的重要性,學(xué)生成績(jī)管理系統(tǒng)的開發(fā)與應(yīng)用就逐漸提入議程,并占著重要的分量。運(yùn)用成績(jī)管理系統(tǒng)可以減輕學(xué)院教學(xué)人員的工作量,加快查詢速度,加強(qiáng)管理,以及國(guó)家各部門關(guān)于信息化的步伐,是各項(xiàng)管理更加規(guī)范化。同時(shí)也可以是學(xué)生能夠盡快知道自己的考試成績(jī),投入新的課程的學(xué)習(xí)或復(fù)習(xí)。并且也可為高校教育在未來市場(chǎng)的競(jìng)爭(zhēng)力
4、的提高打下堅(jiān)實(shí)的基礎(chǔ)。1.3課題要求1.以線性鏈表存儲(chǔ)包括學(xué)號(hào)、姓名、c語言成績(jī)的學(xué)生信息。2.在程序執(zhí)行過程中,根據(jù)輸出的提示信息,通過鍵盤輸入程序中的運(yùn)算命令;相應(yīng)的輸入數(shù)據(jù)和運(yùn)算結(jié)果顯示在其后。3.程序執(zhí)行命令包括:<1>.輸入學(xué)生信息<2>.顯示全部信息<3>.查詢學(xué)生信息<4>.刪除學(xué)生信息<5>.插入學(xué)生信息<6>.修改學(xué)生信息<7>.顯示分類信息<0>.退出系統(tǒng)2概要設(shè)計(jì)2.1 抽象數(shù)據(jù)類型定義為實(shí)現(xiàn)上述程序功能,以線性鏈表為存儲(chǔ)結(jié)構(gòu),為此,進(jìn)行抽象數(shù)據(jù)類型定義:ADT Student
5、 數(shù)據(jù)對(duì)象:D=e1,e2,e3|e1,e2,e3student(儲(chǔ)存學(xué)生信息的結(jié)構(gòu)體)數(shù)據(jù)關(guān)系:R=<e1,e2,e3>基本操作P:creatList(&L)操作結(jié)果:構(gòu)造一個(gè)空的線性鏈表。 getelem(L,e ,&p);初始條件:線性鏈表L已存在。操作結(jié)果:在L中查找含有e元素的p節(jié)點(diǎn)是否存在,若存在則返回OK,否則返回ERROR。input(&L);初始條件:線性鏈表L已存在。操作結(jié)果:向鏈表尾插入新節(jié)點(diǎn)信息。 all(&L);初始條件:線性鏈表L已存在。操作結(jié)果:顯示線性鏈表L的所有節(jié)點(diǎn)信息。 list(&L);初始條件:線性鏈表
6、L已存在。操作結(jié)果:查詢是否存在給定信息的節(jié)點(diǎn),若存在則返回OK,否則返回ERROR。 dele(&L);初始條件:線性鏈表L已存在。操作結(jié)果:刪除給定信息的節(jié)點(diǎn),若成功則返回OK,否則返回ERROR。 append(&L);初始條件:線性鏈表L已存在。操作結(jié)果:在給定的信息節(jié)點(diǎn)后插入所輸入的信息節(jié)點(diǎn),若成功則返回OK,否則返回ERROR。 modify(&L);初始條件:線性鏈表L已存在。操作結(jié)果:查詢所輸入的信息結(jié)點(diǎn),并修改其信息。classify(&L);初始條件:線性鏈表L已存在。操作結(jié)果:按照給定的條件將所有結(jié)點(diǎn)信息分類,并輸出各類別信息。 ADT S
7、tudent2.2 程序流程圖開始 NO輸入口令 主菜單 NO 選擇的序號(hào)是否符合要求 Yes修改學(xué)生信息退出系統(tǒng)顯示分類信息插入學(xué)生信息刪除學(xué)生信息查詢學(xué)生信息顯示全部信息輸入學(xué)生信息3詳細(xì)設(shè)計(jì)3.1 存儲(chǔ)結(jié)構(gòu)及方式本系統(tǒng)得學(xué)生信息采用結(jié)構(gòu)體student定義,并用單鏈表存儲(chǔ): typedef struct studentchar num13;/學(xué)號(hào)char name15;/姓名int score;/c語言成績(jī)student;typedef struct node student data;/數(shù)據(jù)域 struct node *next;/指針域stunode,*pstunode;3.2 主要
8、的功能函數(shù)1,輸入學(xué)生信息:調(diào)用函數(shù)Status input(pstunode &head),首先判斷輸入的合法性,后將該條信息添加到鏈表尾部,用于選擇是否繼續(xù)輸入,否則返回主菜單。其代碼如: Status input(pstunode &head)/輸入學(xué)生信息 system("cls"); char m;while(m='y'|m='Y');return OK; 2,顯示全部學(xué)生信息:調(diào)用函數(shù)Status all(pstunode &head),其代碼如: Status all(pstunode &head
9、)/顯示全部信息 system("cls"); pstunode p; system("pause"); return OK; 3,查詢學(xué)生信息:調(diào)用函數(shù)Status list(pstunode &head),提示輸入要查詢的學(xué)生學(xué)號(hào),并判斷其合法性,后將信息輸出,并退出返回主菜單。代碼如: Status list(pstunode &head)/查詢學(xué)生信息 system("cls"); char num313; system("pause"); return OK;4,刪除學(xué)生信息:調(diào)用函數(shù)St
10、atus dele(pstunode &head),提示輸入要?jiǎng)h除的學(xué)生學(xué)號(hào),判斷其是否存在,若存在則將其從鏈表中刪除,提示刪除成功后退出并返回主菜單。代碼如: Status dele(pstunode &head)/刪除學(xué)生信息system("cls");char num113;system("pause");return OK;5,插入學(xué)生信息:調(diào)用函數(shù)Status append(pstunode &head),提示輸入學(xué)生學(xué)號(hào),判斷其合法性,然后輸入要插入的學(xué)生信息,并將其插入該節(jié)點(diǎn)之后,退出并返回主菜單。代碼如: Stat
11、us append(pstunode &head)/插入學(xué)生信息system("cls");system("pause");return OK;6,修改學(xué)生信息:調(diào)用函數(shù)Status modify(pstunode &head),提示輸入要修改的學(xué)生學(xué)號(hào),驗(yàn)證合法性后進(jìn)行修改,修改成功退出并返回主菜單。其代碼如: Status modify(pstunode &head)/修改學(xué)生信息system("cls"); system("pause");return OK;7,顯示分類信息:調(diào)用函數(shù)
12、Status classify(pstunode &head),按照60分以下、6079分、8089分、90分以上進(jìn)行學(xué)生信息分類,并顯示。其代碼如: Status classify(pstunode &head)/顯示分類信息 system("cls"); system("pause"); return OK;8,查找學(xué)生信息:調(diào)用函數(shù)Status getelem(pstunode head,char number11,pstunode &p)。其代碼如: Status getelem(pstunode head,char nu
13、mber11,pstunode &p)/查找學(xué)生信息p=head->next;return OK;9,保存學(xué)生信息:調(diào)用函數(shù)Status save(pstunode &head),將輸入的全部信息保存在c盤下的sort文件中。其代碼如: Status save(pstunode &head)/保存學(xué)生信息ofstream out; out.open("c:sort.txt"); for(pstunode p=head->next;p;p=p->next) out<<p->data.num<<"
14、t"<<p-><<"t"<<p->data.score<<endl; out.close(); return OK;10,讀文件:調(diào)用函數(shù)Status start(pstunode &head),在c盤下查找sort文件,并將數(shù)據(jù)讀入。其代碼如: Status start(pstunode &head)/讀文件 pstunode p,q; system("pause"); return OK;4 調(diào)試分析經(jīng)過一周的代碼編寫與調(diào)試,我終于將各個(gè)模塊整合了
15、起來,在這個(gè)過程中,我遇到了很多問題,如數(shù)據(jù)未定義,括號(hào)不匹配,漏掉分號(hào)等簡(jiǎn)單語法錯(cuò)誤,同時(shí)也有如循環(huán)條件判斷錯(cuò)誤導(dǎo)致死循環(huán),指針使用前未賦值導(dǎo)致系統(tǒng)報(bào)錯(cuò),邏輯錯(cuò)誤而無法產(chǎn)生正確結(jié)果等較復(fù)雜情況。但經(jīng)過自己的不斷查閱資料,不斷重新編寫終于解決了這些問題。同時(shí)考慮到程序的健壯性要求,我增加了該系統(tǒng)對(duì)不合法數(shù)據(jù)的識(shí)別功能,并能夠及時(shí)反饋給用戶。每一件事,過程才是最美好的,我寫完一個(gè)功能模塊,進(jìn)行不斷調(diào)試,當(dāng)看到期待的結(jié)果展現(xiàn)在面前時(shí),由衷的喜悅溢于言表;特別當(dāng)所有功能模塊整合到一塊后,經(jīng)過調(diào)試能被主函數(shù)成功調(diào)用時(shí),那感覺太妙了??偟膩碚f,本次課程設(shè)計(jì),令人受益匪淺。對(duì)數(shù)據(jù)結(jié)構(gòu)這門課程學(xué)習(xí)了很多理論
16、知識(shí),但是理論與實(shí)踐的距離很大,開始時(shí)對(duì)結(jié)構(gòu)體,對(duì)鏈表的體會(huì)只是在意識(shí)層面,而通過這次課程設(shè)計(jì),真真正正的運(yùn)用它們來儲(chǔ)存學(xué)生信息時(shí),我才認(rèn)識(shí)到它們都是很好的工具,仿佛也有了可觸的感覺。同時(shí),我也深深體會(huì)到自己的C語言知識(shí)還是那么淺薄,而這次也讓自己動(dòng)手能力和獨(dú)立思考能力有了很大的提高。5 用戶手冊(cè)1. 本程序的運(yùn)行環(huán)境為WINDOWS操作系統(tǒng),運(yùn)行軟件為Microsoft Visual C+;2. 開始運(yùn)行程序,輸入登錄密碼“ting”,開始進(jìn)入主菜單。3. 若用戶首次登陸,則應(yīng)首先進(jìn)行學(xué)生信息錄入,否則即可按照主菜單的選項(xiàng)選擇所要執(zhí)行功能,須進(jìn)行合法的數(shù)據(jù)輸入。4. 當(dāng)輸入1,則進(jìn)行學(xué)生信息
17、輸入操作,按要求輸入學(xué)號(hào)(小于12位整數(shù)),姓名(小于15的字符串),每次均用回車鍵結(jié)束輸入。5. 當(dāng)輸入2,則顯示已錄入全部學(xué)生信息。6. 當(dāng)輸入3,則進(jìn)行學(xué)生信息查詢操作,用戶需要輸入所要查詢學(xué)生的學(xué)號(hào)或姓名,若該學(xué)生信息存在,則系統(tǒng)會(huì)顯示該學(xué)生的全部信息。7. 當(dāng)輸入4,則進(jìn)行刪除學(xué)生信息操作,用戶需要輸入所要?jiǎng)h除的學(xué)生學(xué)號(hào),若該學(xué)號(hào)存在,系統(tǒng)會(huì)將其刪除。8. 當(dāng)輸入5,則進(jìn)行插入學(xué)生信息操作,該操作是在已經(jīng)錄入的一位學(xué)生后插入新學(xué)生信息。用戶需要首先輸入該已錄入的學(xué)生學(xué)號(hào),后輸入新學(xué)生信息。9. 當(dāng)輸入6,則進(jìn)行修改學(xué)生信息操作,用戶需要輸入需要修改的學(xué)生學(xué)號(hào)或姓名,若該學(xué)生信息存在,
18、則會(huì)提示繼續(xù)輸入修改信息,否則退出返回主菜單。10. 當(dāng)輸入7,則按照c語言成績(jī)將學(xué)生信息以60分以下、6079分、8089分、90分以上等級(jí)別進(jìn)行分類并顯示。11. 當(dāng)輸入0,則退出系統(tǒng),并保存最終的所有學(xué)生信息,程序運(yùn)行完畢。6 測(cè)試數(shù)據(jù)及結(jié)果1,使用密碼,首次進(jìn)入學(xué)生記錄簿信息管理系統(tǒng):2,進(jìn)入系統(tǒng)界面,對(duì)不合法輸入做出判斷:3,選擇1,輸入學(xué)生信息,并對(duì)不合法輸入作出判斷:4,顯示全部信息:5,查詢學(xué)生信息:6,刪除學(xué)生信息,并對(duì)不合法輸入作出判斷,后顯示結(jié)果:7,插入學(xué)生信息,后顯示結(jié)果:8,修改學(xué)生信息,對(duì)不合法輸入做出判斷,后顯示結(jié)果:9,顯示分類信息:10,退出系統(tǒng)并保存信息,
19、所輸入信息將保存在C盤下的sort文件下。 參考文獻(xiàn)1 嚴(yán)蔚敏,吳偉民編著. 數(shù)據(jù)結(jié)構(gòu)(C語言版). 北京:清華大學(xué)出版社,1997.042 孟愛國(guó),左利芳,謝中科等編著.C語言程序設(shè)計(jì).上海:復(fù)旦大學(xué)出版社,2010.23 馬春江, 李慧勇, 孟繁軍編著. 新編數(shù)據(jù)結(jié)構(gòu)教程.北京: 中國(guó)電力出版社,20064 孫淑霞,肖陽春,魏琴等.C/C+程序設(shè)計(jì)教程(第2版)。北京:電子工業(yè)出版社,2007.035 譚浩強(qiáng)。C+程序設(shè)計(jì)。北京:清華大學(xué)出版社,2004,066 朱戰(zhàn)立編著.數(shù)據(jù)結(jié)構(gòu)使用C+語言.西安:西安電子科技大學(xué)出版社,2001.27 繆淮扣,顧訓(xùn)穰,沈俊編著.數(shù)據(jù)結(jié)構(gòu):C+實(shí)現(xiàn).北
20、京:科學(xué)出版社,2002附錄 源代碼程序#include <fstream.h>#include "iostream.h"#include "string.h"#include <conio.h>#include "iomanip.h"#include "stdlib.h"#define ERROR 0#define OK 1#define N 2typedef int Status;typedef struct studentchar num13;/學(xué)號(hào)char name15;/姓名int
21、 score;/c語言成績(jī)student;typedef struct node student data;/數(shù)據(jù)域 struct node *next;/指針域stunode,*pstunode;Status getelem(pstunode head,char number11,pstunode &p);/查找學(xué)生信息Status input(pstunode &head);/輸入學(xué)生信息Status all(pstunode &head);/顯示全部信息Status list(pstunode &head);/查詢學(xué)生信息Status dele(pstun
22、ode &head);/刪除學(xué)生信息Status append(pstunode &head);/插入學(xué)生信息Status modify(pstunode &head);/修改學(xué)生信息Status classify(pstunode &head);/顯示分類信息void password()/使用密碼進(jìn)入 char str17; system("cls"); cout<<endl<<endl<<endl; cout<<setw(30)<<"請(qǐng)輸入口令:" cin&
23、gt;>str1; cout<<endl<<endl<<endl; if (strcmp(str1,"ting")!=0) cout<<setw(40)<<"口令不正確!請(qǐng)重新輸入!n" system("pause"); password(); return;char menu()/主菜單 system("cls");int n=1;char select;cout<<endl<<endl<<endl;cout&l
24、t;<setw(19)<<""<<"*主菜單*"<<endl<<endl;cout<<setw(26)<<""<<n+<<".輸入學(xué)生信息"<<endl<<endl;cout<<setw(26)<<""<<n+<<".顯示全部信息"<<endl<<endl;cout<<
25、setw(26)<<""<<n+<<".查詢學(xué)生信息"<<endl<<endl; cout<<setw(26)<<""<<n+<<".刪除學(xué)生信息"<<endl<<endl; cout<<setw(26)<<""<<n+<<".插入學(xué)生信息"<<endl<<endl; cou
26、t<<setw(26)<<""<<n+<<".修改學(xué)生信息"<<endl<<endl;cout<<setw(26)<<""<<n+<<".顯示分類信息"<<endl<<endl;cout<<setw(26)<<""<<"0.退出系統(tǒng)"<<endl<<endl<<e
27、ndl;cout<<setw(22)<<""<<"請(qǐng)選擇:"cin>>select;if(select>='0'&&select<='7'); elsecout<<endl<<setw(26)<<"非法數(shù)據(jù)!請(qǐng)重新輸入!"system("pause");select=menu();return select; char Exit()/退出系統(tǒng) system("cl
28、s");char s;cout<<setw(36)<<"確定退出系統(tǒng)請(qǐng)輸入"Y"或"y" "<<endl;cin>>s;return s; void creatList(pstunode &head)/建立帶表頭空鏈表 head=(pstunode)malloc(sizeof(stunode); if(!head) exit(0); head->next=NULL; Status input(pstunode &head)/輸入學(xué)生信息 system(&q
29、uot;cls"); char m; char s50; int i,k; pstunode p,q,frist,last; for(q=head;q->next;q=q->next);last=q;dofrist=( pstunode)malloc(sizeof(stunode);if(!frist) return ERROR;cout<<setw(25)<<"請(qǐng)輸入學(xué)生學(xué)號(hào): "do/學(xué)號(hào)過長(zhǎng)或?yàn)榉钦麛?shù)時(shí)則重新輸入 k=1;cin>>s; if(strlen(s)<=12) strcpy(frist->
30、;data.num,s); else k=0;cout<<"您輸入的學(xué)號(hào)過長(zhǎng)(小于12位),請(qǐng)重新輸入:"/學(xué)號(hào)過長(zhǎng)則重新輸入 for(i=0;si!=0;i+) if(si>='0'&&si<='9') continue; else k=0;cout<<"您輸入的學(xué)號(hào)為非整數(shù),請(qǐng)重新輸入: "break; while(k=0); for(p=head->next;p;p=p->next) if(strcmp(frist->data.num,p->
31、data.num)=0)/如果學(xué)號(hào)輸入重復(fù)則退出 free(frist); cout<<"該學(xué)號(hào)已存在!"<<endl; system("pause"); return ERROR; cout<<setw(25)<<"請(qǐng)輸入學(xué)生姓名: " do/姓名過長(zhǎng)則重新輸入 k=1;cin>>s; if(strlen(s)<=15) strcpy(frist->,s); else k=0;cout<<"您輸入的姓名過長(zhǎng)(小于15位),
32、請(qǐng)重新輸入:" while(k=0); cout<<setw(25)<<"請(qǐng)輸入該學(xué)生c語言成績(jī): " cin>>frist->data.score; frist->next=NULL; last->next=frist; last=frist; cout<<endl<<endl; cout<<"繼續(xù)輸入請(qǐng)按"y"或"Y",否則按任意鍵結(jié)束輸入:"<<endl; m=getch(); cout<&l
33、t;m<<endl;while(m='y'|m='Y');return OK; Status all(pstunode &head)/顯示全部信息 system("cls"); pstunode p; p=head->next; if(!head->next) cout<<"該系統(tǒng)學(xué)生信息為空!"<<endl;system("pause"); return ERROR; else while(p) cout<<"學(xué)號(hào):&quo
34、t;<<setiosflags(ios:left)<<setw(13)<<p->data.num<<"姓名:"<<setw(15)<<p-><<"該學(xué)生的c語言成績(jī)?yōu)椋?quot;<<p->data.score<<endl; p=p->next; cout<<endl<<endl; system("pause"); return OK; Status all2(pstuno
35、de &head)/顯示全部信息,為classify()所特殊調(diào)用 pstunode p; p=head->next; if(!head->next) cout<<"該類學(xué)生信息為空!"<<endl<<endl<<endl; return ERROR; else while(p)cout<<"學(xué)號(hào):"<<setiosflags(ios:left)<<setw(13)<<p->data.num<<"姓名:"
36、;<<setw(15)<<p-><<"該學(xué)生的c語言成績(jī)?yōu)椋?quot;<<p->data.score<<endl; p=p->next; cout<<endl;cout<<endl<<endl; return OK; Status list(pstunode &head)/查詢學(xué)生信息 system("cls"); char num313; pstunode p; if(!head->next) cout<<
37、;"該系統(tǒng)學(xué)生信息為空!"<<endl;system("pause"); return ERROR; cout<<"請(qǐng)輸入您想查詢的學(xué)生學(xué)號(hào)或者姓名:"<<endl; cin>>num3; if(!getelem(head,num3,p) return ERROR;/查找,若不成功則退出 cout<<"該學(xué)生學(xué)號(hào)是:"<<p->data.num<<endl; cout<<"該學(xué)生姓名是:"<
38、;<p-><<endl; cout<<"該學(xué)生c語言成績(jī)?yōu)椋?quot;<<p->data.score<<endl; cout<<endl; system("pause"); return OK; Status dele(pstunode &head)/刪除學(xué)生信息system("cls");char num113;pstunode p1,p2;/p1為要?jiǎng)h除的節(jié)點(diǎn),p2為其前一個(gè)節(jié)點(diǎn) if(!head->next) cout<&
39、lt;"該系統(tǒng)學(xué)生信息為空!"<<endl;system("pause"); return ERROR;cout<<"請(qǐng)輸入要?jiǎng)h除的學(xué)生學(xué)號(hào)"<<endl;cin>>num1;p1=head->next;while(strcmp(p1->data.num,num1)!=0&&p1->next!=NULL)p2=p1;p1=p1->next ;if(strcmp(p1->data.num,num1)=0)if(p1=head->next)
40、head->next=p1->next;else p2->next=p1->next;free(p1);cout<<"學(xué)號(hào)為"<<num1<<"的學(xué)生的信息已刪除!"<<endl;else cout<<"學(xué)號(hào)"<<num1<<"不存在!"<<endl;system("pause");return ERROR;system("pause");return OK
41、; Status append(pstunode &head)/插入學(xué)生信息system("cls");char num13;char s50;int i,k; if(!head->next) cout<<"該系統(tǒng)學(xué)生信息為空!"<<endl;system("pause"); return ERROR;pstunode p1,p2,p3;/p1為指向要插入的前驅(qū)節(jié)點(diǎn),p2指向要插入的新節(jié)點(diǎn),p3用于循環(huán)cout<<"請(qǐng)輸入你要在該學(xué)生后插入新學(xué)生信息,則其學(xué)號(hào)為:"
42、<<endl;cin>>num;cout<<endl; if(!getelem(head,num,p1) return ERROR;/查找,若不成功則退出p2=(pstunode)malloc(sizeof(stunode);cout<<"請(qǐng)輸入您想插入的學(xué)生學(xué)號(hào),姓名,c+成績(jī):"<<endl;do/學(xué)號(hào)過長(zhǎng)或?yàn)榉钦麛?shù)時(shí)則重新輸入 k=1;cin>>s; if(strlen(s)<=12) strcpy(p2->data.num,s); else k=0;cout<<"
43、;您輸入的學(xué)號(hào)過長(zhǎng)(小于12位),請(qǐng)重新輸入:"/學(xué)號(hào)過長(zhǎng)則重新輸入 for(i=0;si!=0;i+) if(si>='0'&&si<='9') continue; else k=0;cout<<"您輸入的學(xué)號(hào)為非整數(shù),請(qǐng)重新輸入: "break; while(k=0); for(p3=head->next;p3;p3=p3->next)/如果學(xué)號(hào)輸入重復(fù)則退出 if(strcmp(p2->data.num,p3->data.num)=0) cout<<&
44、quot;該學(xué)號(hào)已存在!"<<endl; system("pause"); return ERROR; cout<<setw(25)<<"請(qǐng)輸入學(xué)生姓名: "do/姓名過長(zhǎng)則重新輸入 k=1;cin>>s; if(strlen(s)<=15) strcpy(s,p2->); else k=0;cout<<"您輸入的姓名過長(zhǎng)(小于15位),請(qǐng)重新輸入:"while(k=0); cout<<setw(25)<<&qu
45、ot;請(qǐng)輸入該學(xué)生c語言成績(jī): "cin>>p2->data.score;p2->next=p1->next;p1->next=p2;system("pause");return OK; Status modify(pstunode &head)/修改學(xué)生信息system("cls");pstunode p;char num13;char s50;int i,k; if(!head->next) cout<<"該系統(tǒng)學(xué)生信息為空!"<<endl;sys
46、tem("pause"); return ERROR;cout<<"請(qǐng)輸入要修改的學(xué)生的學(xué)號(hào)或姓名: "cin>>num;if(!getelem(head,num,p) return ERROR; /查找,若不成功則退出 cout<<"請(qǐng)輸入該學(xué)生的學(xué)號(hào): " do/學(xué)號(hào)過長(zhǎng)或?yàn)榉钦麛?shù)時(shí)則重新輸入 k=1;cin>>s; if(strlen(s)<=12) strcpy(s,p->data.num); else k=0;cout<<"您輸入的學(xué)號(hào)過長(zhǎng)(小
47、于12位),請(qǐng)重新輸入: "/學(xué)號(hào)過長(zhǎng)則重新輸入 for(i=0;si!=0;i+) if(si>='0'&&si<='9') continue; else k=0;cout<<"您輸入的學(xué)號(hào)為非整數(shù),請(qǐng)重新輸入: "break; while(k=0); cout<<"請(qǐng)輸入學(xué)生姓名: "do/姓名過長(zhǎng)則重新輸入 k=1;cin>>s; if(strlen(s)<=15) strcpy(p->,s); else k=0;
48、cout<<"您輸入的姓名過長(zhǎng)(小于15位),請(qǐng)重新輸入:"while(k=0);cout<<"請(qǐng)輸入學(xué)生c語言成績(jī): "cin>>p->data.score; system("pause");return OK; Status classify(pstunode &head)/顯示分類信息 system("cls"); pstunode p,q1,q2,q3,q4,s; pstunode L1,L2,L3,L4; creatList(L1); creatList(
49、L2); creatList(L3); creatList(L4); q1=L1; q2=L2; q3=L3; q4=L4; if(!head->next) cout<<"該系統(tǒng)學(xué)生信息為空!"<<endl;system("pause"); return ERROR; for(s=head->next;s;s=s->next) p=( pstunode)malloc(sizeof(stunode); if(!p) return ERROR; if(s->data.score<60) strcpy(p-
50、>,s->);strcpy(p->data.num,s->data.num);p->data.score=s->data.score;/復(fù)制數(shù)據(jù) p->next=NULL;q1->next=p;q1=p; else if(s->data.score>=60&&s->data.score<80) strcpy(p->,s->);strcpy(p->data.num,s->data.num);p->data.s
51、core=s->data.score;/復(fù)制數(shù)據(jù) p->next=NULL;q2->next=p;q2=p; else if(s->data.score>=80&&s->data.score<90) strcpy(p->,s->);strcpy(p->data.num,s->data.num);p->data.score=s->data.score;/復(fù)制數(shù)據(jù)p->next=NULL;q3->next=p;q3=p; else if(s->data
52、.score>=90) strcpy(p->,s->);strcpy(p->data.num,s->data.num);p->data.score=s->data.score;/復(fù)制數(shù)據(jù) p->next=NULL;q4->next=p;q4=p; cout<<"(1)60分以下者學(xué)生信息:"<<endl<<endl; all2(L1); cout<<"(2)6079分學(xué)生信息:"<<endl<<endl; all2(L2); cout<<"(3)8089分學(xué)生信息:"<<endl<
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度車輛抵押借款合同(含違約責(zé)任)4篇
- 2025年環(huán)保產(chǎn)業(yè)授權(quán)簽訂合同委托書范本3篇
- 2025年度綠化工程后期維護(hù)與管理合同4篇
- 2025版體育賽事贊助與合作協(xié)議4篇
- 2025版停車場(chǎng)安全監(jiān)控與服務(wù)保障合同2篇
- 二零二五版電子商務(wù)平臺(tái)智能客服系統(tǒng)采購(gòu)合同3篇
- 鄭州電力高等??茖W(xué)校《電視編輯藝術(shù)》2023-2024學(xué)年第一學(xué)期期末試卷
- 2025年度餐飲企業(yè)員工培訓(xùn)及服務(wù)合同6篇
- 2025版醫(yī)療設(shè)備運(yùn)維托管正規(guī)范合同3篇
- 個(gè)人網(wǎng)絡(luò)店鋪?zhàn)赓U合同(2024版)6篇
- 電纜擠塑操作手冊(cè)
- 浙江寧波鄞州區(qū)市級(jí)名校2025屆中考生物全真模擬試卷含解析
- IATF16949基礎(chǔ)知識(shí)培訓(xùn)教材
- 【MOOC】大學(xué)生創(chuàng)新創(chuàng)業(yè)知能訓(xùn)練與指導(dǎo)-西北農(nóng)林科技大學(xué) 中國(guó)大學(xué)慕課MOOC答案
- 勞務(wù)派遣公司員工考核方案
- 基礎(chǔ)生態(tài)學(xué)-7種內(nèi)種間關(guān)系
- 2024年光伏農(nóng)田出租合同范本
- 《阻燃材料與技術(shù)》課件 第3講 阻燃基本理論
- 2024-2030年中國(guó)黃鱔市市場(chǎng)供需現(xiàn)狀與營(yíng)銷渠道分析報(bào)告
- 招標(biāo)監(jiān)督報(bào)告
- 項(xiàng)目立項(xiàng)申請(qǐng)書
評(píng)論
0/150
提交評(píng)論