第一篇:用c語言編寫一個(gè)成績管理系統(tǒng)
程序說明:有N個(gè)學(xué)生,每個(gè)學(xué)生的數(shù)據(jù)包含學(xué)號(hào)(不重復(fù))、姓名、三門課的成績及平均成績,試設(shè)計(jì)一學(xué)生成績管理系統(tǒng),使之能提供以下功能:(1)主菜單 學(xué)生成績管理系統(tǒng)
1、成績錄入
2、成績查詢
3、成績統(tǒng)計(jì)
4、退出(2)各菜單項(xiàng)功能 ① 成績錄入:輸入學(xué)生的學(xué)號(hào)、姓名及三門課的成績; ② 成績查詢:(至少一種查詢方式)。v 按學(xué)號(hào)查詢學(xué)生記錄。v 查詢不及格學(xué)生的記錄。③成績統(tǒng)計(jì): v 計(jì)算學(xué)生的平均分; v 根據(jù)學(xué)生的平均分高低,對(duì)學(xué)生的數(shù)據(jù)進(jìn)行排序后輸出; v 對(duì)學(xué)生單科成績排序,輸出學(xué)生姓名與該科成績; ④退出系統(tǒng):退出整個(gè)系統(tǒng)(即主菜單)。(3)結(jié)構(gòu)體數(shù)組: #define N 30 struct student {int num;/* 定義學(xué)號(hào)*/
char name[20];/* 定義姓名*/
float score[3];/* 定義存貯三門課成績的數(shù)組*/
float average;/* 定義平均成績*/
};struct student stu[N];/* 定義結(jié)構(gòu)體數(shù)組,存貯多個(gè)學(xué)生的記錄*/
.#include
#include
#include
struct student
{ int num;char name[20];
float score[4];
float average;
}
stu[10000];
long t,max;
bool unpass[1000];
FILE *fstu=fopen(“stud.dat”,“at+”);
int init()
{
int no,i;
float s[4],ave;
char nam[20];
while(!feof(fstu))
{
fscanf(fstu,“%d”,&no);
fscanf(fstu,“%s”,nam);
fscanf(fstu,“%f%f%f%f”,&s[1],&s[2],&s[3],&ave);
if(no>max)
max=no;
stu[no].num=no;
strcpy(stu[no].name,nam);
unpass[no]=false;f
or(i=1;i<=3;i++)
{
stu[no].score[i]=s[i];
if(s[i]<60)
unpass[no]=true;
}
stu[no].average=ave;
}
}
int stuinsert()
{
int no,i;
float s[3],sum;
char nam[20],cha;
loop:printf(“請(qǐng)輸入學(xué)生的學(xué)號(hào)、姓名及三門課的成績 n”);
scanf(“%d”,&no);scanf(“%s”,nam);
scanf(“%f%f%f/n”,&s[1],&s[2],&s[3]);
if(no>max)
max=no;
stu[no].num=no;
sum=0.0;
strcpy(stu[no].name,nam);
unpass[no]=false;
for(i=1;i<=3;i++)
{
stu[no].score[i]=s[i];
sum=sum+s[i];
if(s[i]<60)
unpass[no]=true;
}
stu[no].average=sum/3.0;
fprintf(fstu,“n”);
fprintf(fstu,“%d %s %f %f %f %fn”,stu[no].num,stu[no].name,stu[no].score[1],stu[no].score[2],stu[no].score[3],stu[no].average);
}
int find(int x)
{
long i,no;
switch(x)
{
case 1:printf(“請(qǐng)輸入學(xué)號(hào):”);
scanf(“%d”,&no);
printf(“%d %s %f %f %f %fn”,stu[no].num,stu[no].name,stu[no].score[1], stu[no].score[2],stu[no].score[3],stu[no].average);
break;
case 2:for(i=1;i<=max;i++)if(unpass[i])printf(“%d %s %f %f %f %fn”,stu[i].num,stu[i].name,stu[i].score[1],stu[i].score[2],stu[i].score[3],stu[i].average);
break;
}
}
int sort(int x)
{
extern int headprint(int x);
student so[1000];
int i,j,k,n;
switch(x)
{
case 1:for(i=1;i<=max;i++)if(stu[i].num==i)printf(“%d %s %fn”,i,stu[i].name,stu[i].average);
break;
case 2:n=0;
for(i=1;i<=max;i++)
{
j=1;if(stu[i].num==i)
while((so[j].average>stu[i].average)&&(j<=n))
j++;n++;
for(k=n;k>=j;k--)so[k]=so[k-1];so[j]=stu[i];
}
for(i=1;i<=n;i++)
printf(“%d %s %f %f %f %fn”,so[i].num,so[i].name,so[i].score[1],so[i].score[2],so[i].score[3],so[i].average);break;case 3:headprint(4);
}
}
int othersort(int x)
{
extern int headprint(int x);
student so[1000];
int i,j,k,n,q;q=0;
switch(x)
{
case 1:if(q==0)q=1;
case 2:if(q==0)q=2;
case 3:if(q==0)q=3;
n=0;
for(i=1;i<=max;i++)
{
j=1;
if(stu[i].num==i)
while((so[j].score[q]>stu[i].score[q])&&(j<=n))
j++;
n++;
for(k=n;k>=j;k--)
so[k]=so[k-1];
so[j]=stu[i];
}
for(i=1;i<=n;i++)
printf(“%d %s %fn”,so[i].num,so[i].name,so[i].score[q]);
break;
}
}
int select(int x)
{
extern int headprint(int x);
int p;
switch(x)
{
case 1:scanf(“%d”,&p);
switch(p)
{
case 1:stuinsert();
break;
case 2:headprint(2);
break;
case 3:headprint(3);
break;
case 4:t=0;
break;
}
break;
case 2:scanf(“%d”,&p);
find(p);
break;
case 3:scanf(“%d”,&p);
sort(p);
break;
case 4:scanf(“%d”,&p);
othersort(p);
break;
}
}
int headprint(int x)
{
switch(x)
{ case 1:printf(“學(xué)生成績管理系統(tǒng)n”);
printf(“
1、成績錄入n”);printf(“
2、成績查詢n”);
printf(“
3、成績統(tǒng)計(jì)n”);
printf(“
4、退出n”);
select(x);
break;
case 2:printf(“
1、按學(xué)號(hào)查詢學(xué)生記錄n”);
printf(“
2、查詢不及格學(xué)生的記錄n”);
select(x);
break;
case 3:printf(“
1、計(jì)算學(xué)生的平均分n”);
printf(“
2、根據(jù)學(xué)生的平均分高低,對(duì)學(xué)生的數(shù)據(jù)進(jìn)行排序后輸出n”);
5printf(“
3、對(duì)學(xué)生單科成績排序,輸出學(xué)生姓名與該科成績n”);select(x);
break;
case 4:printf(“
1、第一科n”);printf(“
2、第二科n”);printf(“
3、第三科n”);select(x);break;;
}
}
int main()
{ max=0;t=1;
init();
loop:headprint(1);
if(t!=0)
goto loop;
}
第二篇:學(xué)生成績管理系統(tǒng)畢業(yè)論文C語言
111111111學(xué)院
畢 業(yè) 論 文
題 目
學(xué)生成績管理系統(tǒng)
姓 名 1 1 1 所在系別 計(jì) 算 機(jī) 系 專業(yè)班級(jí) 計(jì)算機(jī)應(yīng)用技術(shù)計(jì)算機(jī)111班
學(xué) 號(hào) 1111111111 指導(dǎo)教師 1 1 1 日 期
2012 年 4 月 15 日
臨汾職業(yè)技術(shù)學(xué)院 09屆計(jì)算機(jī)應(yīng)用技術(shù)專業(yè)畢業(yè)論文
目 錄
摘 要 ???????????????????????????????????????1
臨汾職業(yè)技術(shù)學(xué)院 09屆計(jì)算機(jī)應(yīng)用技術(shù)專業(yè)畢業(yè)論文
學(xué)生成績管理系統(tǒng)
計(jì)算機(jī)111班 1111 指導(dǎo)老師 111
摘 要:學(xué)生成績管理系統(tǒng)是為了實(shí)現(xiàn)學(xué)校對(duì)學(xué)生成績管理的系統(tǒng)化、規(guī)范化和自動(dòng)化,從而提高學(xué)校管理效率而設(shè)計(jì)的。它完全取代了原來一直用人工管理的工作方式,避免了由于管理人員的工作疏忽以及管理質(zhì)量問題所造成的各種錯(cuò)誤,為及時(shí)、準(zhǔn)確、高效的完成學(xué)生成績管理提供了強(qiáng)有力的工具和管理手段。學(xué)生成績管理系統(tǒng)是一個(gè)中小型數(shù)據(jù)庫管理系統(tǒng),它界面美觀、操作簡單、安全性高,基本滿足了學(xué)生成績管理的要求。
本系統(tǒng)是在以ACCESS2003作為后臺(tái)數(shù)據(jù)庫來開發(fā)的。學(xué)生成績管理系統(tǒng)在運(yùn)行階段,效果好,數(shù)據(jù)準(zhǔn)確性高,提高了工作效率,同時(shí)也實(shí)現(xiàn)了學(xué)生成績管理計(jì)算機(jī)化。關(guān)鍵字: 成績 管理系統(tǒng) 數(shù)據(jù)庫
Abstract:The system of “The Managment of Student's Mark” has been designed mainly for acheiving such goal of letting the students' marks to be well-managed and modelized automaticly in order to higher the school's managing speed.it has already replaced the original artificial method completely thus the avoiding of wrongs that could be caused by carelessness and the lack of managing skill.due to the more accurate results within a shorter time, the system is obviously providing a stronger managing mean.“The Managment of Student's Mark” is a middle-sized system of data Management, which is both simple-controlling and safe.this technique is the nowadays best system towards the management of student's marks since it is now being mostly satisfied.The system's opening relies on ACCESS2003 as a backup of the data management.this technology not only shortened the managing time but also, it hightlights the high-quality by providing more accurate datas.on top of it, it has also put the computerized “The Managment of Student's Mark” into practice.Key word: Mark
Administrative System
The Database
臨汾職業(yè)技術(shù)學(xué)院 09屆計(jì)算機(jī)應(yīng)用技術(shù)專業(yè)畢業(yè)論文
學(xué)校對(duì)系統(tǒng)的開發(fā)大力支持。因此經(jīng)濟(jì)上是可行的。
本系統(tǒng)可以馬上開始實(shí)施,并盡可能做到提前完成。從人力資源優(yōu)化角度來說,可以充分利用學(xué)校已有人力資源。從開發(fā)成本角度來說,將支出成本降到最底。所以在三個(gè)可選擇的方案中推薦此方案為最佳方案。
臨汾職業(yè)技術(shù)學(xué)院 09屆計(jì)算機(jī)應(yīng)用技術(shù)專業(yè)畢業(yè)論文
2.4 系統(tǒng)功能模塊設(shè)計(jì)
該系統(tǒng)的目標(biāo)是提高學(xué)生成績管理的效率,通過本系統(tǒng)可以對(duì)學(xué)生個(gè)人信息、課程和任課教師信息、選課信息進(jìn)行管理和維護(hù)。該系統(tǒng)分為教師權(quán)限和學(xué)生權(quán)限,主要功能包括: 1.用戶管理 2.基于數(shù)據(jù)管理
3.學(xué)生對(duì)個(gè)人數(shù)據(jù)的查詢及管理 具體模塊功能如下圖2-1,圖2-2:
圖2-1
臨汾職業(yè)技術(shù)學(xué)院 09屆計(jì)算機(jī)應(yīng)用技術(shù)專業(yè)畢業(yè)論文
圖2-2
臨汾職業(yè)技術(shù)學(xué)院 09屆計(jì)算機(jī)應(yīng)用技術(shù)專業(yè)畢業(yè)論文
3:課程表中的課程號(hào)與學(xué)生成績表中的課程號(hào)對(duì)應(yīng),課程表中的課程號(hào)依附于學(xué)生成績表中的課程號(hào)。
4:課程號(hào)于老師是一對(duì)一的關(guān)系,課程名對(duì)成績是一對(duì)一的關(guān)系。
學(xué)號(hào)于課程號(hào)同樣是一對(duì)多的關(guān)系,課程號(hào)對(duì)成績是一對(duì)多的關(guān)系,一個(gè)學(xué)號(hào)和一個(gè)課程號(hào)對(duì)于成績是一一對(duì)應(yīng)的關(guān)系。E-R圖如下圖3-1
圖3-1
3.3 數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計(jì)
學(xué)生成績信息系統(tǒng)中的關(guān)系模式如下:
學(xué)生基本信息(學(xué)號(hào),姓名 ,性別),主鍵是學(xué)號(hào)。學(xué)生成績表(學(xué)號(hào),課程號(hào),成績),主鍵是學(xué)號(hào)+課程號(hào)。課程表(課程號(hào),課程名,教師姓名)。主鍵是課程號(hào)。
臨汾職業(yè)技術(shù)學(xué)院 09屆計(jì)算機(jī)應(yīng)用技術(shù)專業(yè)畢業(yè)論文
臨汾職業(yè)技術(shù)學(xué)院 09屆計(jì)算機(jī)應(yīng)用技術(shù)專業(yè)畢業(yè)論文
圖4-3
圖4-4
4.2 成績信息模塊的設(shè)計(jì)
這一模塊的主要功能是用于實(shí)現(xiàn)對(duì)學(xué)生各科成績的錄入,修改與查詢。學(xué)生成績錄入,修改界面圖4-5:
臨汾職業(yè)技術(shù)學(xué)院 09屆計(jì)算機(jī)應(yīng)用技術(shù)專業(yè)畢業(yè)論文
圖4-5
學(xué)生成績查詢界面圖4-6:
臨汾職業(yè)技術(shù)學(xué)院 09屆計(jì)算機(jī)應(yīng)用技術(shù)專業(yè)畢業(yè)論文
圖4-6
4.3 添加信息模塊的設(shè)計(jì)
這一模塊的主要功能是對(duì)教師,學(xué)生信息的錄入,修改與查詢。圖4-7,圖4-8,圖4-9:
圖4-7
臨汾職業(yè)技術(shù)學(xué)院 09屆計(jì)算機(jī)應(yīng)用技術(shù)專業(yè)畢業(yè)論文
圖4-8
圖4-9:
臨汾職業(yè)技術(shù)學(xué)院 09屆計(jì)算機(jī)應(yīng)用技術(shù)專業(yè)畢業(yè)論文
4.4 查詢統(tǒng)計(jì)模塊的設(shè)計(jì)
這一模塊的主要功能是對(duì)學(xué)生選課及教師授課信息的查詢。圖4-10,圖4-11,圖4-12:
圖4-10:
臨汾職業(yè)技術(shù)學(xué)院 09屆計(jì)算機(jī)應(yīng)用技術(shù)專業(yè)畢業(yè)論文
圖4-11
圖4-12
4.5 開發(fā)中的難點(diǎn)和解決技巧
1.一個(gè)全面的Access應(yīng)用至少會(huì)涉及到以下三種基本Access 對(duì)象類型:(1)表用于存儲(chǔ)你或其他人向數(shù)據(jù)庫中添加的數(shù)據(jù)。
(2)窗體用于顯示和輸入數(shù)據(jù),控制其他窗體的打開和關(guān)閉以及打印報(bào)表。
臨汾職業(yè)技術(shù)學(xué)院 09屆計(jì)算機(jī)應(yīng)用技術(shù)專業(yè)畢業(yè)論文
(3)報(bào)表打印表中的細(xì)節(jié)信息、總結(jié)信息或者將兩者都進(jìn)行打印。2.Access模塊:包含VBA子過程和函數(shù)(公共,任何窗體或報(bào)表均可訪問)要想成為一個(gè)完善的關(guān)系型數(shù)據(jù)庫管理系統(tǒng)(RDBMS),一個(gè)應(yīng)用必須具備以下四個(gè)基本功能,其中每個(gè)功能都有其自己的表現(xiàn)形式(或者視圖):(1)數(shù)據(jù)組織(表的創(chuàng)建和操作)
(2)表鏈接和數(shù)據(jù)提取(查詢,臨時(shí)表等)(3)數(shù)據(jù)輸入和編輯(窗體實(shí)現(xiàn))(4)數(shù)據(jù)表示(報(bào)表)
3.數(shù)據(jù)庫實(shí)用工具(一些需要在不打開數(shù)據(jù)庫的情況下執(zhí)行)
(1)壓縮和修復(fù)(最好壓縮和修復(fù)為新數(shù)據(jù)庫,防止數(shù)據(jù)庫不小心損壞不能恢復(fù))(2)添加切換面板窗體(沒有將創(chuàng)建新)
(3)創(chuàng)建.mde文件(編譯過的VBA代碼,源文件不可用,用戶將不能再修改其中的設(shè)計(jì)對(duì)象)4.設(shè)計(jì)表需要注意的事項(xiàng)
(1)字段名稱:不能重復(fù),最長64字符,可中間包含(空格,“?!睕]“!”和“[]”
(2)數(shù)據(jù)類型,說明,主鍵,字段大小,格式(不影響值本身,只是顯示方式),Precision(Decimal類型特有,指定總共用多少數(shù)位表示一個(gè)數(shù)值,默認(rèn)18位),Scale(Decimal特有,決定小數(shù)位數(shù)),小數(shù)位數(shù),輸入掩碼,標(biāo)題,默認(rèn)值,有效性規(guī)則,有效性文本,必填字段,允許0長度,索引,新值(自動(dòng)編號(hào)類型特有)5.字段類型需要注意的事項(xiàng)
(1)文本:默認(rèn),最大255個(gè)字符(指定長度后,如果輸入數(shù)據(jù)超出,將自動(dòng)截去多余)(2)備注:最大65535個(gè)字符(不能作為關(guān)鍵字段)(3)數(shù)字型:根據(jù)字段大小屬性設(shè)置一個(gè)合適的類型
(4)自動(dòng)編號(hào):(長整型),產(chǎn)生方法取決于新值屬性(最大20億左右)
(5)Yes/No:邏輯(布爾)字段(True:-1,False:0),可被索引,但不能作為關(guān)鍵字段(6)貨幣:currency,固定格式(小數(shù)4位)
6.設(shè)置“主鍵”:唯一性,可創(chuàng)建多字段的主鍵和相應(yīng)的索引
臨汾職業(yè)技術(shù)學(xué)院 09屆計(jì)算機(jī)應(yīng)用技術(shù)專業(yè)畢業(yè)論文
求,能夠完成學(xué)生信息的存儲(chǔ)和成績的查詢以及各類相關(guān)報(bào)表的打印。并提供部分系統(tǒng)測試功能,使用戶方便進(jìn)行數(shù)據(jù)備份和恢復(fù)、數(shù)據(jù)刪除。對(duì)于數(shù)據(jù)的一致性的問題也通過程序進(jìn)行了有效的解決。
但是由于畢業(yè)設(shè)計(jì)時(shí)間較短和本人水平所限,所以該系統(tǒng)還有許多不盡如人意的地方,希望使用者能給予指正,這些都有待進(jìn)一步改善。
致謝
在此更要感謝我的導(dǎo)師和專業(yè)老師,是你們的細(xì)心指導(dǎo)和關(guān)懷,使我能夠順利的完成畢業(yè)論文。在我的學(xué)業(yè)和論文的研究工作中無不傾注著老師們辛勤的汗水和心血。老師的嚴(yán)謹(jǐn)治學(xué)態(tài)度、淵博的知識(shí)、無私的奉獻(xiàn)精神使我深受啟迪。從尊敬的導(dǎo)師身上,我不僅學(xué)到了扎實(shí)、寬廣的專業(yè)知識(shí),也學(xué)到了做人的道理。在此我要向我的導(dǎo)師致以最衷心的感謝和深深的敬意。
參考文獻(xiàn)
[1]白以恩.計(jì)算機(jī)網(wǎng)絡(luò)基礎(chǔ)及應(yīng)用.哈爾濱:工業(yè)大學(xué)出版社,2000 [2]包錦陽.大專生畢業(yè)論文(設(shè)計(jì))寫作指導(dǎo).浙江大學(xué)出版社,2004 [3] 李俊德.ACCESS2003入門與實(shí)例演練.中國青年出版社,2005 [4]張澤虹.數(shù)據(jù)庫原理及應(yīng)用:Access2003.電子工業(yè)出版社,2005 [5]彭湘凱,曾光輝.數(shù)據(jù)庫原理與應(yīng)用.機(jī)械工業(yè)出版社,2007 [6]樓土明.信息系統(tǒng)應(yīng)用與開發(fā).浙江攝影出版社,2009 [7]張作華.管理制度——人事與組織機(jī)構(gòu)管理制度.伊犁人民出版社,2000 [8]毛國君.高級(jí)數(shù)據(jù)庫原理與技術(shù).人民郵電出版社,2004 [9]上海市教育委員會(huì).信息系統(tǒng)與數(shù)據(jù)庫技術(shù)學(xué)習(xí)指導(dǎo)及習(xí)題解析.機(jī)械工業(yè)出版社,2009 [10]何寧,黃文斌,熊建強(qiáng).數(shù)據(jù)庫技術(shù)應(yīng)用教程.機(jī)械工業(yè)出版社,2007 [11]吳京慧,劉愛紅,廖國瓊.數(shù)據(jù)庫系統(tǒng)原理與設(shè)計(jì)實(shí)驗(yàn)教程.清華大學(xué)出版社,2009 [12]劉曉強(qiáng).信息系統(tǒng)與數(shù)據(jù)庫技術(shù).機(jī)械工業(yè)出版社,2008 [13]丁寶康,陳堅(jiān).數(shù)據(jù)庫系統(tǒng)工程師考試全程指導(dǎo).清華大學(xué)出版社,2006 [14]張平.數(shù)據(jù)庫應(yīng)用基礎(chǔ)Access2003.人民郵電出版社,2007
臨汾職業(yè)技術(shù)學(xué)院 09屆計(jì)算機(jī)應(yīng)用技術(shù)專業(yè)畢業(yè)論文
[15]魏茂林.數(shù)據(jù)庫應(yīng)用技術(shù).電子工業(yè)出版社,2009 [16]黃河,樂磊.微軟解疑專家(5)——Access數(shù)據(jù)庫.北京大學(xué)出版社,2001 [17]神龍工作室.新編Access2003數(shù)據(jù)庫管理入門與提高.人民郵電出版社,2007 [18]啟明工作室.ACCESS 數(shù)據(jù)庫應(yīng)用實(shí)例完全解析.人民郵電出版社,2007 [19]高英,張曉冬.ACCESS數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)與實(shí)例.人民郵電出版社,2008 [20]王宇虹.專家門診--ACCESS開發(fā)答疑200問1CD.人民郵電出版社,2009
第三篇:c語言實(shí)驗(yàn)報(bào)告三 學(xué)生成績管理系統(tǒng)
1.實(shí)驗(yàn)內(nèi)容
實(shí)現(xiàn)一個(gè)學(xué)生成績處理程序,先輸入多名學(xué)生的學(xué)號(hào)和成績,然后進(jìn)入菜單,可以選擇打印,添加,修改,刪除或查詢成績(學(xué)號(hào)查詢和成績段查詢)。
2.實(shí)驗(yàn)步驟 2.1 程序1 2.1.1 程序功能
這是一個(gè)學(xué)生成績處理程序,通過用戶輸入多名學(xué)生的學(xué)號(hào)和成績,然后進(jìn)入菜單,可以選擇打印,添加,修改,刪除或查詢成績(學(xué)號(hào)查詢和成績段查詢)。2.1.2 設(shè)計(jì)思路
將一個(gè)大程序分塊化處理,各個(gè)部分先用普通方法實(shí)現(xiàn),在能運(yùn)行的條件下改用插入排序和折半查找實(shí)現(xiàn)。先實(shí)現(xiàn)輸入成績和菜單,再一項(xiàng)一項(xiàng)實(shí)現(xiàn)菜單中的功能。
2.1.3 流程圖或其他描述(不要求可以不寫)
2.1.4 程序代碼(要有注釋)
//實(shí)現(xiàn)一個(gè)學(xué)生成績處理程序,可以選擇打印、添加、修改、刪除或查詢成績(學(xué)號(hào)和成績段查詢)
#include
typedef struct student { long num;int score;}STU;
STU stu[N];int n=0;int KEY=0;int k;
void Input();void Output();void Add();void Direct();void Delete();void Search();void Sch();void Save();void Read();
void main(){
switch(chos){ case 1: Input();break;system(“cls”);printf(“n”);printf(“學(xué)生成績管理系統(tǒng)nn”);printf(“1.錄入n2.顯示n3.添加n4.修改n”);printf(“5.刪除n6.查找n7.查詢n8.退出n”);printf(“n請(qǐng)選擇: ”);scanf(“%d”, &chos);int chos;case 2:
} Output();break;case 3: Add();break;case 4: KEY = 1;Search();break;case 5: Delete();break;case 6: Search();break;case 7: Sch();break;case 8: exit(0);break;default:
} printf(“錯(cuò)誤!請(qǐng)按要求輸入!”);Sleep(2000);main();void Input(){
} int i=-1;system(“cls”);printf(“當(dāng)輸入學(xué)號(hào)為負(fù)時(shí)返回!n”);do{
i++;printf(“n”);printf(“請(qǐng)輸入第%2d個(gè)學(xué)生的學(xué)號(hào): ”, i+1);scanf(“%ld”, &stu[i].num);if(stu[i].num < 0)break;printf(“請(qǐng)輸入第%2d個(gè)學(xué)生的成績: ”, i+1);scanf(“%d”, &stu[i].score);n++;}while(i
} Read();printf(“nn任意鍵返回!”);getchar();getchar();main();void Add(){
for(i=0;i } if(stu[N-1].num < stu[i].num){ for(j=n;j>i;j--){ } stu[i].num = stu[N-1].num;stu[i].score = stu[N-1].score;break;stu[j].num = stu[j-1].num;stu[j].score = stu[j-1].score;}else{ } stu[n].num = stu[N-1].num;stu[n].score = stu[N-1].score;break;}n++;printf(“修改后的”);Save();void Direct(){ } void Delete(){ system(“cls”);printf(“請(qǐng)輸入要?jiǎng)h除信息的學(xué)生學(xué)號(hào): ”);scanf(“%ld”, &del);getchar();printf(“確認(rèn)刪除?(Y/N)”);int i, del;char key;printf(“請(qǐng)輸入修改后的成績: ”);scanf(“%d”, &stu[k].score);printf(“修改后的成績?yōu)?n”);printf(“t%8ldt%dn”, stu[k].num, stu[k].score);printf(“nn”);printf(“修改后的”);Save(); } scanf(“%c”, &key);if(key=='y' || key=='Y'){ } printf(“修改后的”);Save();for(i=0;i } if(del == stu[i].num){ } stu[i] = stu[i+1];n-= 1;void Search(){ int i;char key = 'y'; } long search;system(“cls”);if(KEY==1)printf(“n請(qǐng)輸入要修改成績學(xué)生的學(xué)號(hào): ”);else printf(“n請(qǐng)輸入要查詢成績學(xué)生的學(xué)號(hào): ”);scanf(“%ld”, &search);for(i=0;i } if(KEY == 1)Direct();KEY = 0;if(search == stu[i].num){ } printf(“學(xué)生信息為:n”);printf(“t%ldt%dn”, stu[i].num, stu[i].score);k = i;void Sch(){ } void Save(){ printf(“任意鍵返回!”);getchar();getchar();main();for(i=0;i } if(stu[i].score>=a && stu[i].score<=b)printf(“t%ldt%dn”, stu[i].num, stu[i].score);system(“cls”);printf(“請(qǐng)輸入您要查詢的成績段(A B): ”);scanf(“%d %d”, &a, &b);printf(“符合條件的學(xué)生有:n”);int i, a ,b; } FILE *fp;if((fp=fopen(“score.bin”, “wb”))== NULL){ } fwrite(stu, sizeof(STU), n, fp);fclose(fp);printf(“Failed to save the data!n”);exit(0);printf(“學(xué)生成績已儲(chǔ)存在”score.bin“中!n”);printf(“nn任意鍵返回!”);getchar();getchar();main();void Read(){ FILE *fp;int i, total; } printf(“學(xué)生信息:n”);if((fp=fopen(“score.bin”, “rb”))== NULL){ } printf(“Failed to read the data!n”);exit(0);for(i=0;!feof(fp);i++){ } fclose(fp);fread(&stu[i], sizeof(STU), 1, fp);total = i-1;for(i=0;i 3.實(shí)驗(yàn)體會(huì) 3.1 調(diào)試中出現(xiàn)的問題及解決過程 在程序中運(yùn)用數(shù)組時(shí)還是不夠熟練,調(diào)試時(shí)總出現(xiàn)指代不明或無法顯示所要內(nèi)容的情況,在認(rèn)真看老師課上例子后找出錯(cuò)誤所在,修改后運(yùn)行成功。 3.2 心得體會(huì) 3.3 實(shí)驗(yàn)改進(jìn)建議 在查詢某個(gè)學(xué)生成績,可實(shí)現(xiàn)查詢第n-m名學(xué)生成績,查詢分?jǐn)?shù)在n-m之間的學(xué)生成績,查詢平均成績;學(xué)生成績修改(增加、刪除、修改)等。 課程設(shè)計(jì)題目:簡單的學(xué)生成績管理的程序 要求: 一、由鍵盤輸入原始數(shù)據(jù)。原始數(shù)據(jù)內(nèi)容如下: 學(xué)號(hào)姓名C程序設(shè)計(jì)高等數(shù)學(xué)英語線性代數(shù) 1王..80808080 2張..90909090 注:要求至少有20個(gè)學(xué)生的原始數(shù)據(jù) 二、實(shí)現(xiàn)以下功能。 程序要求主函數(shù)是一個(gè)功能選擇菜單,其它各功能用函數(shù)實(shí)現(xiàn)。功能要求如下: 1、原始數(shù)據(jù)的輸入 2、計(jì)算每位同學(xué)的平均分 3、計(jì)算每門課程的平均分 4、計(jì)算各分?jǐn)?shù)段(90-100、80-89、60-79、60以下)的人數(shù) 5、對(duì)這些同學(xué)的成績按平均分排序,給出名次。 6、對(duì)原始數(shù)據(jù)可以進(jìn)行增、刪、改的編輯操作。 7、按學(xué)號(hào)查詢學(xué)生。找到則顯示該生信息,否則提示未找到。 8、原始數(shù)據(jù)可以保存為文件,也可以從文件載入。 注:程序統(tǒng)計(jì)輸出結(jié)果如下: 學(xué)號(hào)姓名C程序設(shè)計(jì)高等數(shù)學(xué)英語線性代數(shù)平均分名次 1王..80808080802 2張..90909090901 … 各科平均分8585858585 C程序設(shè)計(jì)高等數(shù)學(xué)英語線性代數(shù)平均分 90-10011111 80-8911111 60-6900000 60以下00000 C語言課程設(shè)計(jì)——學(xué)生成績管理系統(tǒng) 個(gè)人心得體會(huì) (徐州工程學(xué)院 14計(jì)嵌1班 07組 張凱) 這一周以來的課程設(shè)計(jì),不僅讓我明白了C語言的確是一門很有用的,但是又是不容易的一門課程。起初剛開始做課程設(shè)計(jì)時(shí),以為這個(gè)課程設(shè)計(jì)不會(huì)有多難,只不過是把多個(gè)函數(shù)組合起來就好了,但是,經(jīng)過這一星期的編程,發(fā)現(xiàn)要完完整整把程序按照要求編出來是一件很不容易的事情。然而在這一周以來的學(xué)習(xí)中,也對(duì)C語言這門課程有了更加的了解和學(xué)習(xí)。 在整個(gè)編程的過程中,可以說遇到了很多難題,但是讓我印象最深刻的是在編寫從某文件中讀取學(xué)生信息這個(gè)程序時(shí)所遇到的困難。起初,程序時(shí)編寫出來了,在組建時(shí)也沒有錯(cuò)誤,但是就是實(shí)現(xiàn)不了這個(gè)功能,接著就是整整一天的苦戰(zhàn);終于,能夠讀取文件中的信息了,可是,新問題又來了,在顯示讀取的信息時(shí)出現(xiàn)了亂序。另外在編寫加密代碼的時(shí)候竟然忘記了將其放在主函數(shù)中運(yùn)行鬧了笑話,在指導(dǎo)老師的幫助下最后解決了這個(gè)問題。 每天看到一行行代碼著實(shí)有時(shí)讓人頭大。然而在這個(gè)程序完整地編寫下來,我覺得編寫程序需要很大的耐心,一個(gè)稍微大點(diǎn)的程序就有個(gè)幾百甚至上千行,沒有耐心是很難做得成功的。當(dāng)然細(xì)心也很需要,在編程的過程中有很多錯(cuò)誤都是自己的粗心造成的,有時(shí)甚至自己多次檢查都看不出來,這樣一來,會(huì)造成時(shí)間的大量浪費(fèi)。 這次的課程設(shè)計(jì)也是一次很好的對(duì)自我的檢查。它讓我知道了自己在C語言的學(xué)習(xí)上還不夠認(rèn)真刻苦,很多知識(shí)點(diǎn)還是沒有很好的掌握,甚至有些知識(shí)點(diǎn)很生疏,這也許就是我在編寫從某文件中讀取學(xué)生信息這一函數(shù)時(shí)老碰壁的原因所在!從這一點(diǎn)上來看,發(fā)現(xiàn)我對(duì)待學(xué)習(xí)的態(tài)度還不夠端正,有待加強(qiáng)。 不管怎么說,經(jīng)過這一次課程設(shè)計(jì),在C語言方面的收獲最大,讓我讀代碼的能力大大提升了不少,也鞏固了很多知識(shí)。同時(shí)也受到了指導(dǎo)老師劉云、鄒文輝的細(xì)心指導(dǎo),非常感謝!第四篇:C語言課程設(shè)計(jì)任務(wù)書(學(xué)生成績管理系統(tǒng))
第五篇:C語言課程設(shè)計(jì)學(xué)生成績管理系統(tǒng)個(gè)人總結(jié)