班主任管理系統
❶ 推薦一套適應中學學校使用的OA 及內容管理系統,最好帶班級教學管理功能的。
加強學校德育管理工作 德育是學校實施素質教育的重要組成部分。它貫穿於學校教育教學的全過程和學生日常生活的各個方面,滲透在智育、體育、美育和勞動教育中。對青少年學生健康成長和學校工作起著導向、動力和保證的作用。小學德育是社會主義精神文明建設的奠基工程,是提高全民族思想道德素質的奠基性教育,是培養造就中華人民共和國合格公民的起點。小學德育是基礎教育,它要在德智體諸方面為學生的成長與發展打好基礎,要為學生步入社會打好做人的基礎。同時,《中共中央、國務院關於深化教育改革,全面推進素質教育的決定》指出:"實施素質教育,必須把德育、智育、體育、美育等有機地統一在教育活動的各個環節中。學校教育不僅抓好智育,更要重視德育,還要加強體育、美育、勞動技術教育和社會實踐,使諸方面教育相互滲透、協調發展,促進學生的全面發展和健康成長。因此,學校必須把德育工作擺在重要位置,並認真學習德育工作政策文件,提高認識,樹立教書育人,管理育人,服務育人的思想,為了確保學校德育工作的順利實施,近年來,我們加強了學校德育管理工作的研究,其主要做法是: 一、健全學校德育管理系統。 進行學校德育管理,需要有一健全的組織機構。我們建立了校、處、班三級管理網路,明確德育管理的職責。由校長、德育主任、大隊輔導員和班主任組成德育領導小組,從校長到最基層的班,可形成一種垂直的聯系並溝通教導處、總務處之間的橫向聯系,這就使學校的德育工作從組織系統方面做到了上下左右聯系密切,指揮靈活,步調一致,信息暢通,充分發揮德育管理的效能,從組織上保證學校德育工作的實施。 二、明確責任,調動每位德育工作者的積極性。 發揮德育組織作用必須明確學校各類人員德育工作職責,調動廣大德育工作者的積極性、主動性和創造性,才能使德育工作落實。要調動全校教職工的積極性,首先應調動管理者育人的積極性。學好《小學德育綱要》、《中小學德育工作規程》以及黨和國家的方針政策等,統一認識,一致行動,建立和落實德育工作目標及工作步驟,使他們既明確自己的責任,又有一定的職權范圍和利益。其次應調動教書育人者的積極性。一是調動班主任教師加強班級管理的積極性。因為班級是學校教育教學的基本單位,班主任是班級工作的組織者和指導者,是學校貫徹教育方針、促進學生全面健康成長的骨幹力量,是學校德育工作的骨幹。 為調動他們育人的積極性,學校制定了班主任工作職責、考核細則,以及高於國家標準的班主任津貼,對班主任工作出色的同志在評先、評職、晉級等方面優先,如評職指標受限時,確有夠條件的班主任,實行校內低評高聘的政策,並與工資掛勾,大大調動了班主任的積極性,使我校班主任隊伍穩定。二是調動各科教師教書育人的積極性。學科教師是不容忽視的德育工作者,學校提出要在學科教學中以知識為載體滲透德育。愛國主義教育是德育的主旋律,各科進行愛國主義教育都是同本學科的知識緊密結合在一起的,這就增強了愛國主義教育的說服力和感染力,能給學生深刻的影響,形成強大的內化力量。各學科德育以知識為載體,能實現知識與道德、教學與教育、教書與育人的統一效果。學校制定了科任教師教書育人的職責,以及配合班主任抓好班級工作的具體要求,並對他們的工作在評選巴蜀好教師工作中有所體現,同時也把他們此項工作的好壞納入每期末的工作質量評價中。第三,調動服務者育人的積極性。學校的後勤人員在學校德育工作中有其重要的作用,特別是在營造校園育人環境方面,需要他們有構思、有設計、有計劃地實施。學校制定了有關服務育人的職責和制度,期末評價將成績顯著的同志評為巴蜀好職工,進行獎勵。學校在德育管理中,重視了對各類人員的管理,運用激勵性原則,調動了各方人士的積極性,達成了育人共識,形成了合力,充分發揮了學校各類人員的聰明才智,使學校德育工作取得顯著成效。 三、更新觀念,不斷提高德育工作者的自身素質。 未來社會的發展對基礎教育提出了新的挑戰,面對新世紀的挑戰,面對新世紀對人才素質的要求,我們認為應更新教育觀念。更新觀念重點體現在一個重視、兩個克服上,即學校教育不僅抓好智育,更要重視德育;改進德育工作的方式方法,克服形式主義傾向;更新人才觀念,克服用一個模子培養人才的傾向。必須樹立為受教育者今後的終生學習打好基礎的觀念,樹立為受教育者成為一個合格公民的觀念,按李嵐清同志提出的"六個學會"教育、培養、訓練學生,即教育、培養、訓練學生學會做人、學會求知、學會勞動和創造,學會生活,學會審美,學會健體。 同時還應根據社會主義市場經濟對於人才素質的要求,確立人在經濟社會生產中的主體地位,要求給人的個性和人格以充分的尊重,使人的個性和創造才能獲得充分的發展。德育工作者的著眼點,應放在作為教育主體的學生身上,致力於促進學生個性的全面發展和人格的健全,實現人格個性的社會化。為此,必須確立以學生為主體,以發展健康的個性和健全的人格為著眼點的現代德育觀。 要做好小學德育工作,必須提高學校幹部和教師的素質。學校重視對教師的培訓,通過教育理論學習,舉辦專題講座,加強德育科研等形式,不斷提高德育工作者自身素質。德育工作者是學校精神文明建設的主要傳播者和建設者,要切實履行教書育人的職責。因為,教師思想道德水平的高低對學生的德育工作起著重要作用,教師職業道德的好壞是學校精神文明程度的一個重要標志。因此,必須加強教師職業道德教育,認真落實《中小學教師職業道德規范》的要求,樹立德育工作者的良好形象。 德育科研是德育工作改革和發展的標志,是德育工作科學化的保證,也是提高德育工作者自身素質的有效途徑。我們應針對新形勢下青少年成長的特點,進一步加強以下六個方面的教育和研究,即:愛國主義教育、良好行為習慣教育、艱苦奮斗教育、適應社會生活能力的教育、心理健康教育和國防教育。我校多年來重視德育工作的研究和實踐,參與了市、國家級科研實驗,如"小學生良好行為習慣的培養與評價"、"小學生思想品德評價"及"以紅岩精神為主導的小學生責任感啟蒙教育"等。通過科研實驗培養、鍛煉、提高了幹部、教師隊伍素質,大家思想解放,努力實踐,勇於探索,獲得了豐碩成果。四、加強校園環境建設,充分發揮環境的育人作用。 校園環境建設是學校精神文明建設的窗口,同時又是學校日常德育的載體。優美的環境氛圍,高雅的校園文化,給人以奮進向上的力量,學校應發揮環境育人的作用,創設一個"時時愛教育,處處受感染"的德育環境。我校有健全的教育陣地,如:宣傳欄、黑板報、廣播站、閱覽室、少先隊活動室等,有統一用磁磚燒制的中國地圖和世界地圖,校風、教風、學風以及《小學生日常行為規范》、《小學生守則》等標志,讓每一堵牆壁成為無聲的語言,在潛移默化中,向學生進行愛國主義和良好行為習慣教育。學校長期堅持不懈地開展升旗儀式和系列化的國旗下的講演,豐富多彩的巴蜀藝術團活動和興趣小組活動並形成了學校"藝術節"、"科技節"、"體育節"的大型活動傳統。這些活動都充分體現了學生參與的全體性、教育目的的素質性、教育形式的多樣性,使學生在這樣的教育環境中,陶冶情操,健全人格,促進學生實踐能力和創新精神的發展。 五、樹立整體觀念,加強綜合研究,強調整體效益。 當今社會,只靠學校教育難以完成培養下一代新人的任務,要用大教育觀思想來指導小學德育研究。要樹立整體觀念,加強綜合研究,要著眼在學校教育教學整體改革中,加強德育;著眼德育研究的過程和成果轉化,這才有利於學校全面貫徹黨的教育方針,有利於全面提高學生素質。有利於全面落實德育工作目標。 系統論的核心是"整體性原則"。小學教育是一個有機的整體,學校中諸教育因素要互相配合,發揮自身的個性優勢,形成整體功能,樹立整體觀念。從各育之間的關系看,德育與其它幾育互相促進,相輔相成,構成全面教育的整體。從學生本身來看,他們的各種個性、品質是互相聯系、互相制約的。從學校實施德育的途徑來看,諸途徑各自發揮獨有的教育功能,互相配合,互為補充,形成有機的整體。從大教育觀的高度看,學校教育、家庭教育、社會教育也是一個整體,要協調一致,密切配合,做到學校、家庭、社會"三結合"的一致性教育。 實施證明:在這樣的指導思想下,我們不斷實踐,不斷總結,大大提高了學校整體辦學質量和辦學效益,取得顯著成效。學校先後獲得全國紅旗大隊,四川省校風示範學校,重慶市文明禮儀示範學校,重慶市創造教育實驗學校,全國德育實驗學校等殊譽。在這樣的指導思想下,大大促進了學生全面和諧、生動活潑主動地發展。據不完全統計,學生個人獲得市級獎630人次,省級獎215人次,國家級獎110人次,國際獎83人次。其中,一名學生獲國家標徽設計專利,兩名學生獲得"全國故事大王"稱號,兩名學生在全國首創出版了個人詩畫專集,九名學生獲國家二級運動員稱號,一名學生代表我國少年兒童出席了在日本舉行的第五屆亞太地區兒童福岡大會,一名學生3次舉辦了個人畫展,成為世界書畫家總會永久會員,在北京人民大會堂受到中央領導親自接見。 在這樣的指導思想下,大大加強了學校、家庭、社區的聯系。家長走進了學校,學校走向了社會,並受到家長和社區的好評。他們在給學校的反饋意見中說:通過家長開放日教師的匯報、教育教學活動的展示,使他們深受教育和感動,教師寓教育於教學之中,不僅對學生進行知識傳授,同時也進行思想教育,我們認為這不僅僅是成功,而且是對學生、對家長的教益都菲淺。參加社區活動,街道分管教育的領導,多次在會上表揚學校與街道配合好,學生參加街道活動熱情高,完成任務好,他們誇獎巴蜀小學有良好的校風,學生素質高。今後,我們要進一步結合小學德育工作中的新情況、新問題,結合少年兒童的年齡特點,加強教育理論的學習,不斷提高教師的科研意識,為培養德智體美全面發展的建設者和接班人而不懈努力。
❷ 怎麼用Python做班級管理系統
管理系統的出現對於培訓機構來說是一場變革,他不僅能幫助班主任管理好班級更能實現機構信息化管理,舉個例子,像浪騰的管理軟體可以幫助學校提升教學質量、降低學員流失率、穩住員工忠誠度還能使機構考勤,排課等方面簡單效率化,當然管理軟體可以幫助學校的遠遠不止這些,具體你可以自己再了解一下
❸ c語言--班級管理系統
#include <malloc.h>
#include <stdio.h>
#include <stdlib.h>
#define LEN sizeof(struct scorenode)
#define DEBUG
#include <string.h>
struct scorenode
{int number;/*學號*/
char name[10];/*姓名*/
float yuwen;/*語文成績*/
float yingyu;/*英語成績*/
float shuxue;/*數學成績 */
struct scorenode *next;
};
typedef struct scorenode score;
int n,k;/*n,k為全局變數,本程序中的函數均可以使用它*/
/*==============================================================================================*/
score *creat2311(void)
/*函數creat2311,功能:創建鏈表,此函數帶回一個指向鏈表頭的指針*/
{
score*head;
score *p1,*p2,*p3,*max;
int i,j;
float fen;
char t[10];
n=0;
p1=p2=p3=(score *)malloc(LEN);head=p3; /*開辟一個新單元*/
printf("請輸入學生資料,輸0退出!\n");
repeat1: printf("請輸入學生學號(學號應大於0):");/*輸入學號,學號應大於0*/
scanf("%d",&p1->number);
while(p1->number<0)
{getchar();
printf("輸入錯誤,請重新輸入學生學號:");
scanf("%d",&p1->number);}
/*輸入學號為字元或小於0時,程序報錯,提示重新輸入學號*/
if(p1->number==0)
goto end;/*當輸入的學號為0時,轉到末尾,結束創建鏈表*/
else
{
p3=head;
if(n>0)
{for(i=0;i<n;i++)
{if(p1->number!=p3->number)
p3=p3->next;
else
{printf("學號重復,請重輸!\n");
goto repeat1;
/*當輸入的學號已經存在,程序報錯,返回前面重新輸入*/
}
}
}
}
printf("請輸入學生姓名:");
scanf("%s",&p1->name);/*輸入學生姓名*/
printf("請輸入語文成績(0~100):");/*輸入語文成績,成績應在0-100*/
scanf("%f",&p1->yuwen);
while(p1->yuwen<0||p1->yuwen>100)
{getchar();
printf("輸入錯誤,請重新輸入語文成績");/*輸入錯誤,重新輸入語文成績直到正確為止*/
scanf("%f",&p1->yuwen);}
printf("請輸入英語成績(0~100):");/*輸入英語成績,成績應在0-100*/
scanf("%f",&p1->yingyu);
while(p1->yingyu<0||p1->yingyu>100)
{getchar();
printf("輸入錯誤,請重新輸入英語成績");/*輸入錯誤,重新輸入英語成績直到正確為止*/
scanf("%f",&p1->yingyu);}
printf("請輸入數學成績(0~100):");/*輸入數學成績,成績應在0-100*/
scanf("%f",&p1->shuxue);
while(p1->shuxue<0||p1->shuxue>100)
{getchar();
printf("輸入錯誤,請重新輸入數學成績");
scanf("%f",&p1->shuxue);}/*輸入錯誤,重新輸入數學成績直到正確為止*/
head=NULL;
while(p1->number!=0)
{
n=n+1;
if(n==1)
head=p1;
else
p2->next=p1;
p2=p1;
p1=(score *)malloc(LEN);
printf("請輸入學生資料,輸0退出!\n");
repeat2:printf("請輸入學生學號(學號應大於0):");
scanf("%d",&p1->number);/*輸入學號,學號應大於0*/
while(p1->number<0)
{getchar();
printf("輸入錯誤,請重新輸入學生學號:");
scanf("%d",&p1->number);}
/*輸入學號為字元或小於0時,程序報錯,提示重新輸入學號*/
if(p1->number==0)
goto end;/*當輸入的學號為0時,轉到末尾,結束創建鏈表*/
else
{
p3=head;
if(n>0)
{for(i=0;i<n;i++)
{if(p1->number!=p3->number)
p3=p3->next;
else
{printf("學號重復,請重輸!\n");
goto repeat2;
/*當輸入的學號已經存在,程序報錯,返回前面重新輸入*/
}
}
}
}
printf("請輸入學生姓名:");
scanf("%s",&p1->name);/*輸入學生姓名*/
printf("請輸入語文成績(0~100):");
scanf("%f",&p1->yuwen);/*輸入語文成績,成績應在0-100*/
while(p1->yuwen<0||p1->yuwen>100)
{getchar();
printf("輸入錯誤,請重新輸入語文成績");
scanf("%f",&p1->yuwen);}/*輸入錯誤,重新輸入語文成績直到正確為止*/
printf("請輸入英語成績(0~100):");
scanf("%f",&p1->yingyu);/*輸入英語成績,成績應在0-100*/
while(p1->yingyu<0||p1->yingyu>100)
{getchar();
printf("輸入錯誤,請重新輸入英語成績");
scanf("%f",&p1->yingyu);}/*輸入錯誤,重新輸入英語成績直到正確為止*/
printf("請輸入數學成績(0~100):");
scanf("%f",&p1->shuxue);/*輸入數學成績,成績應在0-100*/
while(p1->shuxue<0||p1->shuxue>100)
{getchar();
printf("輸入錯誤,請重新輸入數學成績");
scanf("%f",&p1->shuxue);}/*輸入錯誤,重新輸入數學成績直到正確為止*/
}
end: p1=head;
p3=p1;
for(i=1;i<n;i++)
{
for(j=i+1;j<=n;j++)
{
max=p1;
p1=p1->next;
if(max->number>p1->number)
{
k=max->number;
max->number=p1->number;
p1->number=k;
/*交換前後結點中的學號值,使得學號大者移到後面的結點中*/
strcpy(t,max->name);
strcpy(max->name,p1->name);
strcpy(p1->name,t);
/*交換前後結點中的姓名,使之與學號相匹配*/
fen=max->yuwen;
max->yuwen=p1->yuwen;
p1->yuwen=fen;
/*交換前後結點中的語文成績,使之與學號相匹配*/
fen=max->yingyu;
max->yingyu=p1->yingyu;
p1->yingyu=fen;
/*交換前後結點中的英語成績,使之與學號相匹配*/
fen=max->shuxue;
max->shuxue=p1->shuxue;
p1->shuxue=fen;
/*交換前後結點中的數學成績,使之與學號相匹配*/
}
}
max=head;p1=head;/*重新使max,p指向鏈表頭*/
}
p2->next=NULL;/*鏈表結尾*/
printf("輸入的學生數為:%d個!\n",n);
return(head);
}
/*==============================================================================================*/
/*==============================================================================================*/
score *load2311(score *head)
/*函數load2311,功能:從文件讀入學生記錄*/
{ score *p1,*p2;
int m=0;
char filepn[10];
FILE *fp;
printf("請輸入文件路徑及文件名:");
scanf("%s",filepn);/*輸入文件路徑及名稱*/
if((fp=fopen(filepn,"r+"))==NULL)
{
printf("不能打開文件!\n");
return 0;
}
fscanf(fp," 考試成績管理系統 \n");
fscanf(fp,"作者:周純鋼 班級: 信息023 學號:11 \n");
fscanf(fp,"-----------------------------------------\n");
fscanf(fp,"|學號\t|姓名\t|語文\t|英語\t|數學\t|\n");
fscanf(fp,"-----------------------------------------\n");/*讀入表格域*/
printf(" 考試成績管理系統 \n");
printf(" 作者:周純鋼 班級: 信息023 學號:11 \n");
printf("-----------------------------------------\n");
printf("|學號\t|姓名\t|語文\t|英語\t|數學\t|\n");
printf("-----------------------------------------\n");/*列印表格域*/
m=m+1;
if(m==1)
{
p1=(score *)malloc(LEN); /*開辟一個新單元*/
fscanf(fp,"%d%s%f%f%f",&p1->number,p1->name,&p1->yuwen,&p1->yingyu,&p1->shuxue);
printf("|%d\t|%s\t|%.1f\t|%.1f\t|%.1f\t|\n",p1->number,p1->name,p1->yuwen,p1->yingyu,p1->shuxue);
/*文件讀入與顯示*/
head=NULL;
do
{
n=n+1;
if(n==1) head=p1;
else p2->next=p1;
p2=p1;
p1=(score *)malloc(LEN); /*開辟一個新單元*/
fscanf(fp,"%d%s%f%f%f\n",&p1->number,p1->name,&p1->yuwen,&p1->yingyu,&p1->shuxue);
printf("|%d\t|%s\t|%.1f\t|%.1f\t|%.1f\t|\n",p1->number,p1->name,p1->yuwen,p1->yingyu,p1->shuxue);
/*文件讀入與顯示*/
}while(!feof(fp));
p2->next=p1;
p1->next=NULL;
n=n+1;
}printf("-----------------------------------------\n");/*表格下線*/
fclose(fp);/*結束讀入,關閉文件*/
return (head);
}
/*==============================================================================================*/
/*==============================================================================================*/
score *add2311(score *head,score *stu)
/*函數add2311,功能:追加學生資料,並且將所有學生資料按學號排序*/
{
score *p0,*p1,*p2,*p3,*max;
int i,j;
float fen;
char t[10];
p3=stu=(score *)malloc(LEN);/*開辟一個新單元*/
printf("\n輸入要增加的學生的資料!");
repeat4: printf("請輸入學生學號(學號應大於0):");
scanf("%d",&stu->number);
/*輸入學號,學號應大於0*/
while(stu->number<0)
{getchar();
printf("輸入錯誤,請重新輸入學生學號:");
scanf("%d",&stu->number);}/*輸入錯誤,重新輸入學號*/
/******************************************************/
if(stu->number==0)
goto end2;/*當輸入的學號為0時,轉到末尾,結束追加*/
else
{
p3=head;
if(n>0)
{for(i=0;i<n;i++)
{if(stu->number!=p3->number)
p3=p3->next;
else
{printf("學號重復,請重輸!\n");
goto repeat4;
/*當輸入的學號已經存在,程序報錯,返回前面重新輸入*/
}
}
}
}
/******************************************************/
printf("輸入學生姓名:");
scanf("%s",stu->name); /*輸入學生姓名*/
printf("請輸入語文成績(0~100):");
scanf("%f",&stu->yuwen); /*輸入語文成績,成績應在0-100*/
while(stu->yuwen<0||stu->yuwen>100)
{getchar();
printf("輸入錯誤,請重新輸入語文成績");
scanf("%f",&stu->yuwen);} /*輸入錯誤,重新輸入語文成績直到正確為止*/
printf("請輸入英語成績(0~100):");
scanf("%f",&stu->yingyu);/*輸入英語成績,成績應在0-100*/
while(stu->yingyu<0||stu->yingyu>100)
{getchar();
printf("輸入錯誤,請重新輸入英語成績");
scanf("%f",&stu->yingyu);}/*輸入錯誤,重新輸入英語成績直到正確為止*/
printf("請輸入數學成績(0~100):");
scanf("%f",&stu->shuxue);/*輸入數學成績,成績應在0-100*/
while(stu->shuxue<0||stu->shuxue>100)
{getchar();
printf("輸入錯誤,請重新輸入數學成績");
scanf("%f",&stu->shuxue);}/*輸入錯誤,重新輸入數學成績直到正確為止*/
p1=head;
p0=stu;
if(head==NULL)
{head=p0;p0->next=NULL;}/*當原來鏈表為空時,從首結點開始存放資料*/
else/*原來鏈表不為空*/
{
if(p1->next==NULL)/*找到原來鏈表的末尾*/
{
p1->next=p0;
p0->next=NULL;/*將它與新開單元相連接*/
}
else
{
while(p1->next!=NULL)/*還沒找到末尾,繼續找*/
{
p2=p1;p1=p1->next;
}
p1->next=p0;
p0->next=NULL;
}
}
n=n+1;
p1=head;
p0=stu;
for(i=1;i<n;i++)
{
for(j=i+1;j<=n;j++)
{
max=p1;
p1=p1->next;
if(max->number>p1->number)
{
k=max->number;
max->number=p1->number;
p1->number=k;
/*交換前後結點中的學號值,使得學號大者移到後面的結點中*/
strcpy(t,max->name);
strcpy(max->name,p1->name);
strcpy(p1->name,t);
/*交換前後結點中的姓名,使之與學號相匹配*/
fen=max->yuwen;
max->yuwen=p1->yuwen;
p1->yuwen=fen;
/*交換前後結點中的語文成績,使之與學號相匹配*/
fen=max->yingyu;
max->yingyu=p1->yingyu;
p1->yingyu=fen;
/*交換前後結點中的英語成績,使之與學號相匹配*/
fen=max->shuxue;
max->shuxue=p1->shuxue;
p1->shuxue=fen;
/*交換前後結點中的數學成績,使之與學號相匹配*/
}
}
max=head;p1=head;/*重新使max,p指向鏈表頭*/
} end2:
printf("現在的學生數為:%d個!\n",n);
return(head);
}
/*==============================================================================================*/
/*==============================================================================================*/
score *search2311(score *head)
/*函數search2311,功能:查詢學生成績*/
{int number;
score *p1,*p2;
printf("輸入要查詢的學生的學號,");
scanf("%d",&number);
while(number!=0)
{
if(head==NULL)
{printf("\n沒有任何學生資料!\n");return(head);}
printf("-----------------------------------------\n");
printf("|學號\t|姓名\t|語文\t|英語\t|數學\t|\n");
printf("-----------------------------------------\n");/*列印表格域*/
p1=head;
while(number!=p1->number&&p1->next!=NULL)
{p2=p1;p1=p1->next;}
if(number==p1->number)
{printf("|%d\t|%s\t|%.1f\t|%.1f\t|%.1f\t|\n",p1->number,p1->name,p1->yuwen,p1->yingyu,p1->shuxue);
printf("-----------------------------------------\n");}/*列印表格域*/
else
printf("%d不存在此學生!\n",number);
printf("輸入要查詢的學生的學號,");
scanf("%d",&number);
}
printf("已經退出了!\n");
return(head);}
/*==============================================================================================*/
/*==============================================================================================*/
score *del2311(score *head)/*函數del2311,功能:刪除學生資料*/
{
score *p1,*p2;
int number;
printf("輸入要刪除的學生的學號(輸入0時退出):");
scanf("%d",&number);
getchar();
while(number!=0)/*輸入學號為0時退出*/
{
if(head==NULL)
{
printf("\n沒有任何學生資料!\n");
return(head);
}
p1=head;
while(number!=p1->number&&p1->next!=NULL)
/*p1指向的不是所要找的首結點,並且後面還有結點*/
{
p2=p1;p1=p1->next;
} /*p1後移一個結點*/
if(number==p1->number)
/*找到了*/
{
if(p1==head)
head=p1->next;
/*若p1指向的是首結點,把地二個結點地址賦予head*/
else
p2->next=p1->next;
/*否則將下一個結點地址 賦給前一結點地址*/
printf("刪除:%d\n",number);n=n-1;
}
else
printf("%d不存在此學生!\n",number);
/*找不到該結點*/
printf("輸入要刪除的學生的學號:");
scanf("%d",&number);
getchar();
}
#ifdef DEBUG
printf("已經退出了!\n");
#endif
printf("現在的學生數為:%d個!\n",n);
return(head);
}
/*==============================================================================================*/
/*==============================================================================================*/
void print2311(score *head)
/*函數print2311,功能:顯示學生成績*/
{
score *p;
if(head==NULL)
{printf("\n沒有任何學生資料!\n");}
else
{printf("%d\n",n);
printf("-----------------------------------------\n");
printf("|學號\t|姓名\t|語文\t|英語\t|數學\t|\n");
printf("-----------------------------------------\n");/*列印表格域*/
p=head;
do
{printf("|%d\t|%s\t|%.1f\t|%.1f\t|%.1f\t|\n",p->number,p->name,p->yuwen,p->yingyu,p->shuxue);
printf("-----------------------------------------\n");/*列印表格域*/
p=p->next;}while (p!=NULL);/*列印完成了*/
}
}
/*==============================================================================================*/
/*==============================================================================================*/
score *statistics2311(score *head)
/*函數statistics2311,功能:統計學生成績*/
{
float sum1=0,sum2=0,sum3=0,ave1=0,ave2=0,ave3=0,max=0,min;
score *p;
int x,y=0,i=0;
p=head;
printf("1個人總分和平均分\t2單科平均分\t3總分最高分\t4總分最低分\n");
scanf("%d",&x);
getchar();
switch(x)
/*用switch語句實現功能選擇*/
{
case 1: if(head==NULL)
{printf("\n沒有任何學生資料!\n");return(head);}/*鏈表為空*/
else
{
printf("---------------------------------------------------------\n");
printf("|學號\t|姓名\t|語文\t|英語\t|數學\t|總分\t|平均分\t|\n");
printf("---------------------------------------------------------\n");/*列印表格域*/
while(p!=NULL)
{
sum1=p->yuwen+p->yingyu+p->shuxue; /*計算個人總分*/
ave1=sum1/3;/*計算個人平均分*/
printf("|%d\t|%s\t|%.1f\t|%.1f\t|%.1f\t|%.1f\t|%.1f\t|\n",p->number,p->name,p->yuwen,p->yingyu,p->shuxue,sum1,ave1);
/*列印結果*/
printf("---------------------------------------------------------\n");/*列印表格域*/
p=p->next;}
}
return(head); break;
case 2: if(head==NULL)
{printf("\n沒有任何學生資料!\n");return(head);}/*鏈表為空*/
while(p!=NULL)
{
sum1=sum1+p->yuwen;
sum2=sum2+p->yingyu;
sum3=sum3+p->shuxue;/*計算總分*/
y=y+1;
ave1=sum1/y;
ave2=sum2/y;
ave3=sum3/y;/*計算平均分*/
p=p->next;/*使p指向下一個結點*/
}
printf("語文平均分是%.1f\n",ave1);
printf("英語平均分是%.1f\n",ave2);
printf("數學平均分是%.1f\n",ave3);/*列印結果*/
return(head); break;
case 3:
if(head==NULL)
{printf("\n沒有任何學生資料!\n");return(head);}/*鏈表為空*/
max=p->yuwen+p->yingyu+p->shuxue;
while(i<n)
{
i=i+1;
sum1=p->yuwen+p->yingyu+p->shuxue; /*計算個人總分*/
if(max<sum1)
max=sum1;
p=p->next;
}
printf("總分最高分:%.1f",max);
printf("\n");
return(head); break;
case 4: if(head==NULL)
{printf("\n沒有任何學生資料!\n");return(head);}/*鏈表為空*/
while(p!=NULL)
{
min=p->yuwen+p->yingyu+p->shuxue;
while(p!=NULL)
{sum2=p->yuwen+p->yingyu+p->shuxue;
if(min>sum2)
min=sum2;
p=p->next;
}
}
printf("總分最低分:%.1f",min);
printf("\n");
return(head); break;
default :printf("輸入錯誤,請重試!\n");
}
return(head);
}
/*==============================================================================================*/
/*==============================================================================================*/
save2311(score *p1)
/*函數save2311,功能:保存學生的資料*/
{
FILE *fp;
char filepn[20];/*用來存放文件保存路徑以及文件名*/
printf("請輸入文件路徑及文件名:");
scanf("%s",filepn);
if((fp=fopen(filepn,"w+"))==NULL)
{
printf("不能打開文件!\n");
return 0;
}
fprintf(fp," 考試成績管理系統 \n");
fprintf(fp," 作者:周純鋼 班級: 信息023 學號:11 \n");
fprintf(fp,"-----------------------------------------\n");
fprintf(fp,"|學號\t|姓名\t|語文\t|英語\t|數學\t|\n");
fprintf(fp,"-----------------------------------------\n");
/*列印表格域*/
while(p1!=NULL)
{
fprintf(fp,"%d\t%s\t%.1f\t%.1f\t%.1f\t\n",p1->number,p1->name,p1->yuwen,p1->yingyu,p1->shuxue);
p1=p1->next;/*下移一個結點*/
}
fclose(fp);
printf("文件已經保存!\n");
return 0;
}
/*==============================================================================================*/
/*==============================================================================================*/
score *taxis2311(score *head)
/*定義排序函數。此函數帶回一個指向鏈表頭的指針*/
{ score *p,*max;
int i,j,x;
float fen;
char t[10];
if(head==NULL)
{printf("\n沒有任何學生資料,請先建立鏈表!\n");return(head);}/*鏈表為空*/
max=p=head;
for(i=0;i<80;i++)
printf("*");
printf("1按學生學號排序\t2按學生姓名排序\t3按語文成績排序\n");
printf("4按英語成績排序\t5按數學成績排序\t\n");
for(i=0;i<80;i++)
printf("*");
printf("請選擇操作:");
scanf("%d",&x);/*選擇操作*/
getchar();
switch(x) /*用switch語句實現功能選擇*/
{case 1 :
for(i=1;i<n;i++)
{
for(j=i+1;j<=n;j++)
{
max=p;
p=p->next;
if(max->number>p->number)
{
k=max->number;
max->number=p->number;
p->number=k;
/*交換前後結點中的學號值,使得學號大者移到後面的結點中*/
strcpy(t,max->name);
strcpy(max->name,p->name);
strcpy(p->name,t);
/*交換前後結點中的姓名,使之與學號相匹配*/
fen=max->yuwen;
max->yuwen=p->yuwen;
p->yuwen=fen;
/*交換前後結點中的語文成績,使之與學號相匹配*/
fen=max->yingyu;
max->yingyu=p->yingyu;
p->yingyu=fen;
/*交換前後結點中的英語成績,使之與學號相匹配*/
fen=max->shuxue;
max->shuxue=p->shuxue;
p->shuxue=fen;
/*交換前後結點中的數學成績,使之與學號相匹配*/
}
}
max=head;p=head;/*重新使max,p指向鏈表頭*/
}
print2311(head);break;/*列印值排序後的鏈表內容*/
case 2 : for(i=1;i<n;i++)
{
for(j=i+1;j<=n;j++)
{
max=p;
p=p->next;
if(strcmp(max->name,p->name)>0)/*strcmp=>字元串比較函數*/
{
strcpy(t,max->name);/*strcpy=>字元串復制函數*/
strcpy(max->name,p->name);
strcpy(p->name,t);
/*交換前後結點中的姓名,使得姓名字元串的值大者移到後面的結點中*/
k=max->number;
max->number=p->number;
p->number=k;
/*交換前後結點中的學號值,使之與姓名相匹配*/ fen=max->yuwen;
max->yuwen=p->yuwen;
p->yuwen=fen;
/*交換前後結點中的語文成績,使之與姓名相匹配*/
fen=max->yingyu;
max->yingyu=p->yingyu;
p->yingyu=fen;
/*交換前後結點中的英語成績,使之與姓名相匹配*/
fen=max->shuxue;
max->shuxue=p->shuxue;
p->shuxue=fen;
/*交換前後結點中的數學成績,使之與姓名相匹配*/
}
}
p=head;
max=head;
}
print2311(head);
break;
case 3 : for(i=1;i<n;i++)
{for(j=i+1;j<=n;j++)
{max=p;
p=p->next;
if(max->yuwen>p->yuwen)
{
fen=max->yuwen;
max->yuwen=p->yuwen;
p->yuwen=fen;
/*交換前後結點中的語文成績,使得語文成績高者移到後面的結點中*/
k=max->number;
max->number=p->number;
p->number=k;
/*交換前後結點中的學號,使之與語文成績相匹配*/
strcpy(t,max->name);
strcpy(max->name,p->name);
strcpy(p->name,t);
/*交換前後結點中的姓名,使之與語文成績相匹配*/
fen=max->yingyu;
max->yingyu=p->yingyu;
p->yingyu=fen;
/*交換前後結點中的英語成績,使之與語文成績相匹配*/
fen=max->shuxue;
max->shuxue=p->shuxue;
p->shuxue=fen;
/*交換前後結點中的數學成績,使之與語文成績相匹配*/
}
}
p=head;
max=head;
}
print2311(head);
break;
case 4 : for(i=1;i<n;i++)
{for(j=i+1;j<=n;j++)
{max=p;
p=p->next;
if(max->yingyu>p->yingy
❹ 設計一個實用的班級管理系統程序.
//****************************************************************************
//**** 說明:密碼所在的文件位於c盤,文件名為1.txt。
//**** 學生基本信息最好保存在C盤,文件名為student.txt。
//****************************************************************************
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <conio.h>
#define N 3
struct student
{
char name[10];
char no[10];
char sex;
int age;
char bnote[100];
};
void print(bool menu)//列印基本信息
{
if (!menu)
{
printf("學生基本信息錄入 ,press 1\n");
}
else
{
printf("學生基本信息顯示 ,press 2\n");
printf("學生基本信息保存 ,press 3\n");
printf("學生基本信息刪除 ,press 4\n");
printf("學生基本信息修改 ,press 5\n");
printf("學生基本信息查詢 ,press 6\n");
}
printf("退出學生信息系統 ,press 7\n");
}
bool Check(char pas[6])//密碼驗證
{
FILE *fp;
char ch;
char a[7]={" "};
int i = 0;
if ((fp=fopen("c:\\1.txt","r"))==NULL)
{
printf("打開文件失敗!\n");
exit(0);
}
ch=fgetc(fp);
while (ch!=EOF&&i<6)
{
a[i] = ch;
ch=fgetc(fp);
i++;
}
a[6] = '\0';
if (!strcmp(pas,a))
{
return true;
}
else
{
printf("密碼錯誤\n");
return false;
}
fclose(fp);
}
void GetInfo(struct student *arr,int n)//學生基本信息錄入
{
for (int i = 0;i<n;i++)
{
printf("輸入學生的基本信息:name no sex age bnote\n");
scanf("%s %s %c %d %s",arr[i].name,arr[i].no,&arr[i].sex,&arr[i].age,arr[i].bnote);
}
}
void Display(struct student* arr,int n)//學生基本信息顯示
{
printf("學生信息: Name NO Sex age Note\n");
for (int i = 0;i<n;i++)
{
printf("%15s%15s%15c%15d%15s\n",arr[i].name,arr[i].no,arr[i].sex,arr[i].age,arr[i].bnote);
}
}
void Save(struct student* arr,int n)//學生基本信息保存,保存在c:\\student.txt
{
FILE * fp;
fp= fopen("c:\\student.txt","w+");
if (fp == NULL)
{
printf("文件不存在!\n");
exit(0);
}
fwrite(arr,sizeof(struct student)*n,n,fp);
fclose(fp);
}
void Modfiy(struct student* arr,int n)//學生基本信息修改
{
char number[10];
bool flag=false;
char pass[6];
printf("請輸入密碼:\n");
scanf("%s",pass);
if (Check(pass))
{
printf("修改學生信息:\n");
printf("請輸入學號:\n");
scanf("%s",number);
for (int i =0;i<n;i++)
{
if (!strcmp(number,arr[i].no))
{
printf("infor: name no sex age note\n");
printf("%12s%12s%12c%12d%12s\n",arr[i].name,arr[i].no,
arr[i].sex,arr[i].age,arr[i].bnote);
printf("please input information:\n");
scanf("%s%s%c%d%s",arr[i].name,arr[i].no,&arr[i].sex,&arr[i].age,arr[i].bnote);
Save(arr,n);
flag = true;
}
}
if (flag == false)
{
printf("該學生不存在!:\n");
}
}
}
void Delete(struct student* arr,int n)//學生基本信息刪除
{
char number[10];
bool flag=false;
printf("Delete information:\n");
printf("please input the no:\n");
scanf("%s",number);
for (int i =0;i<n;i++)
{
if (!strcmp(number,arr[i].no))
{
strcpy(arr[i].name," ");
strcpy(arr[i].no," ");
strcpy(arr[i].bnote," ");
arr[i].sex = ' ';
arr[i].age = 0;
Save(arr,n);
flag = true;
}
}
if (flag == true)
{
printf("該學生不存在!:\n");
}
}
void Search(struct student* arr,int n)//學生基本信息查詢
{
int temp,i;
bool flag=false;
printf("---------------通過學號查詢,press 1-------------\n");
printf("---------------通過姓名查詢,press 2-----------\n");
printf("---------------通過性別查詢,press 3------------\n");
printf("---------------通過年齡查詢,press 4------------\n");
printf("---------------退出,press 5 ------------\n");
scanf("%d",&temp);
switch (temp)
{
case 1://按照學號查詢
{
char num[10];
printf("請輸入學號:\n");
scanf("%s",num);
for ( i =0;i<n;i++)
{
if (!strcmp(num,arr[i].no))
{
printf("%12s%12s%12c%12d%12s\n",arr[i].name,arr[i].no,
arr[i].sex,arr[i].age,arr[i].bnote);
flag = true;
}
}
if (!flag)
{
printf("該學生不存在.\n");
}
}
break;
case 2://按照名字查詢
{
char num[10];
printf("please input name:\n");
scanf("%s",num);
for ( i =0;i<n;i++)
{
if (!strcmp(num,arr[i].name))
{
printf("%12s%12s%12c%12d%12s",arr[i].name,arr[i].no,
arr[i].sex,arr[i].age,arr[i].bnote);
flag = true;
}
}
if (!flag)
{
printf("該學生不存在.\n");
}
}
break;
case 3://按照性別查詢
{
char ch;
printf("請輸入性別:\n");
//scanf("%c",&ch);
ch = getch();
for ( i =0;i<n;i++)
{
if (ch == arr[i].sex)
{
printf("%12s%12s%12c%12d%12s\n",arr[i].name,arr[i].no,
arr[i].sex,arr[i].age,arr[i].bnote);
flag = true;
}
}
if (!flag)
{
printf("t該學生不存在.\n");
}
}
break;
case 4://按照年齡查詢
{
char num_age;
printf("請輸入年齡:\n");
scanf("%d",&num_age);
for ( i =0;i<n;i++)
{
if (num_age == arr[i].age)
{
printf("%12s%12s%12c%12d%12s\n",arr[i].name,arr[i].no,
arr[i].sex,arr[i].age,arr[i].bnote);
flag = true;
}
}
if (!flag)
{
printf("該學生不存在.\n");
}
}
break;
default:
break;
}
}
void main()
{
struct student arr[N];
char ps[6];
bool flag =false;
printf("請輸入密碼:\n");
scanf("%s",ps);
flag = Check(ps);
if (flag)
{
int select;
print(false);
scanf("%d",&select);
while (0<select && select <7 )
{
switch (select)
{
case 1:
GetInfo(arr,N);
print(true);
break;
case 2:
Display(arr,N);
print(true);
break;
case 3:
Save(arr,N);
print(true);
break;
case 4:
Delete(arr,N);
print(true);
break;
case 5:
Modfiy(arr,N);
print(true);
break;
case 6:
Search(arr,N);
print(true);
break;
default:
break;
}
printf("請選擇:\n");
scanf("%d",&select);
}
}
}
//有什麼問題9點的時候問我
❺ 全國中小學學籍管理系統怎樣填寫班級名稱
「班級名稱」在全國中小學學籍管理系統叫做「班號」。班號為自動生成可修改,班號命名規則是入學年份+學段(1代表小學2代表初中3代表高中)+班級順序號。
1、班級編碼規則: 4位入學年份+1位學段編號+2位班級編號。
2、其中小學學段編號為 1,班級編號即哪一個班級,如:一班即01;二班即02;十班即10。
例如:當前年份為2018年,注冊小學一年級新生的學籍,則班級名稱(班號)為2018101表示2018年入學1班,2018102表示2018年入學2班。
(5)班主任管理系統擴展閱讀
學籍管理系統特點
1、功能全面 系統涵蓋了小學、初中、高中學籍管理工作中的學生基礎信息管理、學生異動管理(轉班、轉校、休學、復學、留級、退學)、畢業生信息管理(小學畢業、初中畢業、高中畢業)、獎懲管理等多項管理功能。
2、海量數據輕松處理、學籍系統界面輕快簡潔、易學易用,能對管理中大量的、動態的、錯綜復雜的數據和信息進行及時、准確的分析和處理,最大限度地降低管理人員處理信息的勞動強度。
3、統計查詢多樣化 系統支持多種查詢模式,可根據用戶需求對所有信息進行快速的查詢統計,其結果可輸出為EXCEL、WORD等文件進行編輯列印。
4、數據安全可靠 系統利用歷史數據轉移技術和雙機熱備技術,並且採用數據加密、訪問控制等安全機制以確保學生數據傳輸和存儲的安全,保證系統運行可靠。
5、擴展性強、兼容性好 系統完全由公司自主研發,在產品實施的過程中,可快速的根據項目實施的效果來靈活改進,同時可以方便地與第三方軟體進行數據對接。
6、易於維護 系統採用B/S架構,部署方便快捷,用戶只需通過IE瀏覽器即可使用,較大地減輕了系統維護與升級的成本和工作量。
❻ 班級管理系統可以干什麼
是一個綜合性的學校班級管理系統,它集成了學生成績管理系統、學生宿舍管理系統等多種功能,因而具有較強的實用性和先進性,適用於各院校的班級對於學生更細致的管理.功能分為:成績管理模塊-分類查詢,重修查詢,單科查詢,成績錄入,分數段統計,排名情況;宿舍管理模塊-宿舍登記,宿舍查詢,系統界面友好,操作簡單,比較實用。
❼ 求一個班級管理系統(軟體)
如果是班級管理系統,
可以從成員管理,組織結構管理,公告留言板,班級通信錄角度分析設計與開發。
關鍵字:管理 , 系統 , 軟體 ,
❽ 求班級管理系統(軟體)!!!
現在愛班級就是,而且功能very very strong。除了包含資料庫、表單和查詢功能,表單包括序號,人名,性別···這些功能,還可以用它來進行課堂考勤,查寢,發帶附件的通知,請銷假,定位輔助。電腦是網頁版的,手機可以安裝軟體。挺方便的。
❾ 班級成績管理系統
兄弟你的分太少了點吧 我還是給你 希望你一定要加分哦
#include"stdio.h"
#include"stddef.h"
#include "stdlib.h"
#include"string.h"
#define MAX 10
typedef struct student{ /*定義結構體*/
char name[MAX]; /*姓名*/
int num[MAX]; /* 學號*/
char sex[MAX]; /*性別*/
int chinese; /*語文*/
int mathematic; /* 數學*/
int english; /*英語*/
int computer; /*計算機*/
struct student *next; /*結構體指針*/
}stu;
stu *head; /*頭指針*/
void print() /*顯示或列印函數*/
{
system("cls");
printf("\t\t\t成績管理系統\n"); /*成績管理系統*/
printf("<1>輸入數據\t"); /*輸入數據*/
printf("<2>顯示\t"); /*顯示*/
printf("<3>插入數據\t"); /*插入數據*/
printf("<4>訪問數據\t"); /*訪問數據*/
printf("<5>以前數據\t"); /*以前數據*/
printf("<6>保留數據\t"); /*保留數據*/
printf("<7>更新數據\t"); /*更新數據*/
printf("<8>語文平均成績\t"); /*語文平均成績*/
printf("<9>數學平均成績\t"); /*數學平均成績*/
printf("<10>英語平均成績\t"); /*英語平均成績*/
printf("<11>計算機平均成績\t"); /*計算機平均成績*/
printf("<12>退出\t\n"); /*退出*/
}
void cin(stu *p1) /*輸入相關數據的函數*/
{ printf("姓名:\n");
scanf("%s",&p1->name);
printf("年齡:\n");
scanf("%d",&p1->num);
printf("性別:\n");
scanf("%s",&p1->sex);
printf("語文:\n");
scanf("%d",&p1->chinese);
printf("數學:\n");
scanf("%d",&p1->mathematic);
printf("英語:\n");
scanf("%d",&p1->english);
printf("計算機:\n");
scanf("%d",&p1->computer);
}
stu *cindata() /*其他數據是否繼續輸入的函數*/
{ stu *p1,*p2;
int i=1;
char ch;
p1=(stu *)malloc(sizeof(stu));
head=p1;
while(i)
{
cin(p1);
printf("是否繼續輸入數據?y/n"); /*是否繼續輸入數據*/
ch=getchar();
ch=getchar();
if(ch=='n'||ch=='N')
{ i=0;
p1->next=NULL;
}
else
{ p2=p1;
p1=(stu *)malloc(sizeof(stu));
p2->next=p1;
}
}
return(p1->next);
}
stu *lookdata(stu *p1) /*查看數據的函數*/
{
while(p1!=NULL)
{ printf("年齡:%d\t",p1->num);
printf("姓名:%s\t",p1->name);
printf("性別:%s\t",p1->sex);
printf("\n");
printf("語文:%d\t",p1->chinese);
printf("數學:%d\t",p1->mathematic);
printf("英語:%d\t",p1->english);
printf("計算機:%d\t",p1->computer);
printf("\n");
p1=p1->next;
}
return p1;
}
void insert() /*通過比較學號來插入數據的函數*/
{ stu *p1,*p3,*p2;
char ch;
p1=head;
p3=(stu *)malloc(sizeof(stu));
p3->next=NULL;
if(head==NULL){ head=p3; return;}
cin(p3);
while(p1!=NULL&&(p1->num<p3->num)) /*通過學號的比較來插入*/
{ p2=p1;p1=p1->next;}
if(p2==head) {p3->next=head; head=p3; return;}
p3->next=p1;
p2->next=p3;
}
find(stu *p2) /*通過姓名查找查看數據的函數*/
{ char name[20];
int b=0;
printf("Enter the name of the student you want to find:"); /*通過姓名查看*/
scanf("%s",name);
while(p2!=NULL)
{if(strcmp(name,p2->name)==0)
{
printf("The data you want has be found\n");
printf(" Name:%s\t",p2->name);
printf("Num:%d\t",p2->num);
printf("sex%s\t",p2->sex);
printf("\n");
printf("Chinese:%d\t",p2->chinese);
printf("Math:%d\t",p2->mathematic);
printf("English:%d\t",p2->english);
printf("Computer:%d\t",p2->computer);
printf("\n");
b=1;
}
else if(b==0)
printf("sorry not find data!");
p2=p2->next;
}
if(b==1)
{
print();
printf("Find one\n");}
else
{print();
printf("Not find\n");
}
}
void caverage() /*求各學生語文平均分、最高和最低分成績的函數*/
{ stu *p1;
int i;
float max=0.0,min=200.0;
float sum=0.0,aver=0;
p1=head;
if(p1==NULL)
printf("not data!");
else
{for(i=0;p1!=NULL;i++,p1=p1->next)
sum+=p1->chinese;
aver=sum/i;
p1=head;
for(i=0;p1!=NULL;i++,p1=p1->next)
{if(max<p1->chinese)
max=p1->chinese;
}
p1=head;
for(i=0;p1!=NULL;i++,p1=p1->next)
if(min>p1->chinese)
min=p1->chinese;
}
printf("Chinese Average:%f",aver);
printf("Chinese Max:%f",max);
printf("Chinese Min:%f",min);
}
void maverage() /*求各學生數學平均分、最高和最低分成績的函數*/
{ stu *p1;
int i;
float max=0.0,min=200.0;
float sum=0.0,aver=0;
p1=head;
if(p1==NULL)
printf("not data!");
else
{for(i=0;p1!=NULL;i++,p1=p1->next)
sum+=p1->mathematic;
aver=sum/i;
p1=head;
for(i=0;p1!=NULL;i++,p1=p1->next)
{if(max<p1->mathematic)
max=p1->mathematic;
}
p1=head;
for(i=0;p1!=NULL;i++,p1=p1->next)
if(min>p1->mathematic)
min=p1->mathematic;
}
printf("Mathe Average:%f",aver);
printf("Mathe Max:%f",max);
printf("Mathe Min:%f",min);
}
void eaverage() /*求各學生英語平均分、最高和最低分成績的函數*/
{ stu *p1;
int i;
float max=0.0,min=200.0;
float sum=0.0,aver=0;
p1=head;
if(p1==NULL)
printf("not data!");
else
{for(i=0;p1!=NULL;i++,p1=p1->next)
sum+=p1->english;
aver=sum/i;
p1=head;
for(i=0;p1!=NULL;i++,p1=p1->next)
{if(max<p1->english)
max=p1->english;
}
p1=head;
for(i=0;p1!=NULL;i++,p1=p1->next)
if(min>p1->english)
min=p1->english;
}
printf("English Average:%f",aver);
printf("English Max:%f",max);
printf("English Min:%f",min);
}
void comaverage() /*求各學生計算機平均分、最高和最低分成績的函數*/
{ stu *p1;
int i;
float max=0.0,min=200.0;
float sum=0.0,aver=0;
p1=head;
if(p1==NULL)
printf("not data!");
else
{for(i=0;p1!=NULL;i++,p1=p1->next)
sum+=p1->computer;
aver=sum/i;
p1=head;
for(i=0;p1!=NULL;i++,p1=p1->next)
{if(max<p1->computer)
max=p1->computer;
}
p1=head;
for(i=0;p1!=NULL;i++,p1=p1->next)
if(min>p1->computer)
min=p1->computer;
}
printf("Computer Average:%f",aver);
printf("Computer Max:%f",max);
printf("Computer Min:%f",min);
}
update(stu *p2) /*通過姓名查找來更新數據*/
{
char name[10]; /*p2為指向結構體struct student的指針*/
int b=0;
printf("Enter The Name"); /*輸入姓名*/
scanf("%s",name);
while(p2!=NULL)
{if(strcmp(name,p2->name)==0)
{
printf("Find you data\n");
scanf("Name:%s",p2->name);
scanf("Num:%s",p2->num);
scanf("Sex:%s",p2->sex);
scanf("Chinese:%d",p2->chinese);
scanf("Math:%d",p2->mathematic);
scanf("english:%d",p2->english);
scanf("Computer:%d",p2->computer);
printf("Success!");
b=1;}
else if(b==0)
printf("Sorry not Find data!");
p2=p2->next;}
if(b==0)
{print();
printf("Sorry not Find data!");
}
else
{
print();
printf("Finish!");
}
}
save(stu *p2) /*保留數據函數*/
{
FILE *fp;
char file[10];
printf("Enter file name"); /*輸入文件名*/
scanf("%s",file);
fp=fopen(file,"w");
while(p2!=NULL)
{
fprintf(fp,"%s",p2->name);
fprintf(fp,"%s",p2->num);
fprintf(fp,"%s",p2->sex);
fprintf(fp,"%d",p2->chinese);
fprintf(fp,"%d",p2->mathematic);
fprintf(fp,"%d",p2->english);
fprintf(fp,"%d",p2->computer);
p2=p2->next;
}
fclose(fp);
}
char password[7]="123456"; /*定義初始密碼*/
void main() /*主函數*/
{ int choice;
stu *p2;
char s[8];
int flag=0,i; /*標志項*/
int n=3;
do{ printf("你請輸入密碼:\n");
scanf("%s",s);
if(!strcmp(s,password)) /*進行密碼匹配驗證*/
{ printf("PASS\n\n\n");
flag=1;
break;
}
else{
printf("Error Enter again:\n");
n--;
}
}
while(n>0);
if(!flag)
{printf("you have Enter 3 times!"); /*輸入密碼超過了3次!!*/
exit(0); /*自動退出*/
}
/*密碼驗證成功後進入的界面*/
printf("歡迎來到重慶航天職業技術學院\n");
printf(" 歡迎來到計算機工程系\n");
printf(" 班級:軟體技術\t班號:08051051\n"); /*班級和號碼*/
printf(" 是否進入系統\n"); /*問進入系統與否*/
scanf("%d",&choice);
if(choice=='n'||choice=='N')
exit(1);
print();
while(1)
{
printf("Enter choice:");
scanf("%d",&i);
if(i<1||i>13)
{
printf("再從1-13中進行選擇:\n"); /*再從1-13中進行選擇*/
exit(1);
}
switch(i)
{ case 1:
p2=cindata(); /*其他數據是否繼續輸入的函數*/
break;
case 2:
p2=lookdata(head); /*查看數據的函數*/
break;
case 3:
insert(); /*通過比較學號來插入數據的函數*/
break;
case 4:
find(head); /*通過姓名查找查看數據的函數*/
break;
case 5:
update(head); /*通過姓名查找來更新數據*/
break;
case 6:
save(head); /*保留數據函數*/
break;
case 7:
print(); /*顯示或列印函數*/
break;
case 8:
caverage(); /*求各學生語文平均分、最高和最低分成績的函數*/
break;
case 9:
maverage(); /*求各學生數學平均分、最高和最低分成績的函數*/
break;
case 10:
eaverage(); /*求各學生英語平均分、最高和最低分成績的函數*/
break;
case 11:
comaverage(); /*求各學生計算機平均分、最高和最低分成績的函數*/
break;
case 12:
; /*空操作*/
case 13:
exit(1); /*退出*/
break;
}
scanf("%d",&i);
}
} 密碼是123456