成绩管理系统课程设计报告文档格式.docx

上传人:b****1 文档编号:244610 上传时间:2023-04-28 格式:DOCX 页数:25 大小:19.60KB
下载 相关 举报
成绩管理系统课程设计报告文档格式.docx_第1页
第1页 / 共25页
成绩管理系统课程设计报告文档格式.docx_第2页
第2页 / 共25页
成绩管理系统课程设计报告文档格式.docx_第3页
第3页 / 共25页
成绩管理系统课程设计报告文档格式.docx_第4页
第4页 / 共25页
成绩管理系统课程设计报告文档格式.docx_第5页
第5页 / 共25页
成绩管理系统课程设计报告文档格式.docx_第6页
第6页 / 共25页
成绩管理系统课程设计报告文档格式.docx_第7页
第7页 / 共25页
成绩管理系统课程设计报告文档格式.docx_第8页
第8页 / 共25页
成绩管理系统课程设计报告文档格式.docx_第9页
第9页 / 共25页
成绩管理系统课程设计报告文档格式.docx_第10页
第10页 / 共25页
成绩管理系统课程设计报告文档格式.docx_第11页
第11页 / 共25页
成绩管理系统课程设计报告文档格式.docx_第12页
第12页 / 共25页
成绩管理系统课程设计报告文档格式.docx_第13页
第13页 / 共25页
成绩管理系统课程设计报告文档格式.docx_第14页
第14页 / 共25页
成绩管理系统课程设计报告文档格式.docx_第15页
第15页 / 共25页
成绩管理系统课程设计报告文档格式.docx_第16页
第16页 / 共25页
成绩管理系统课程设计报告文档格式.docx_第17页
第17页 / 共25页
成绩管理系统课程设计报告文档格式.docx_第18页
第18页 / 共25页
成绩管理系统课程设计报告文档格式.docx_第19页
第19页 / 共25页
成绩管理系统课程设计报告文档格式.docx_第20页
第20页 / 共25页
亲,该文档总共25页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

成绩管理系统课程设计报告文档格式.docx

《成绩管理系统课程设计报告文档格式.docx》由会员分享,可在线阅读,更多相关《成绩管理系统课程设计报告文档格式.docx(25页珍藏版)》请在冰点文库上搜索。

成绩管理系统课程设计报告文档格式.docx

◆程序划分:

bad(),bad1(),divide(),good(),good1(),load(),main(),open(),save(),sort1(),sort2(),sort3()各个函数;

◆各个函数功能:

主函数负责程序开始界面,用户可选择读入或成绩单;

Bad函数负责不及格学生的查找,还有其输出,存入磁盘;

Bad1函数负责单科不及格学生的查找,还有其输出,存入磁盘;

good函数负责优秀学生的查找,还有其输出,存入磁盘;

good1函数负责优秀学生的查找,还有其输出,存入磁盘;

divide函数负责学生成绩的分段,还有其输出,存入磁盘;

sort1函数负责按学号排序即原始成绩单的排序,还有其输出;

sort2函数负责按姓名排序,选用选择法排序,还有其输出,存入磁盘;

sort3函数负责按成绩排序,选用冒泡法排序,还有其输出,存入磁盘;

open函数负责打开文件,读入成绩单,进入系统,同时完成读入若干班级成绩单的功能;

load函数负责各个功能的选择,贯穿整个程序;

save函数负责存储各类成绩单到磁盘;

◆各函数调用关系:

load函数贯穿程序前后,是各个调用函数的桥梁,其调用sort1(),sort2(),sort3(),bad(),bad1(),divide(),good(),good1(),open(),其又被各个函数调用;

save函数被sort1(),sort2(),sort3()调用;

主函数还调用open函数,还有其自身的调用;

◆设计思想:

总体思路:

综合运用各个函数的调用关系,程序简单明了,给同伴分配任务,获取各个函数的编写思路,最终将程序串联起来,成为完整程序;

最终调试通过,于第3次上机完成原始程序,后经多次改良,诸如文件名自定义、链表的组织、界面的优化等一系列工作,形成最终的程序。

各模块设计思想:

综合运用各个函数的调用关系,避免繁琐拖沓的设计;

界面设计:

为求界面美观,运用了输出函数,形成简洁的界面;

同时舍弃了画面图形的设计,以求简明;

特色设计:

程序相对简单,不是繁琐拖沓的作风,各函数分配合理;

用户自定义文件名等一系列功能,更人性化;

其中优秀和不及格成绩单以链表组织,并以链表输出;

完成了读入若干班级成绩单的功能,并增添单科成绩的查询;

界面简明,用户选择颇多;

创建文件嵌入其中,可自行处理自己编写的文件;

运用不同存取文件方式,灵活多变,如二进制文件......;

以结构体形式保存数据,更加简练;

 

#include<

malloc.h>

string.h>

stdio.h>

stdlib.h>

voidload();

#defineSIZE30/*宏定义*/

#definelevel90

#definebadlevel60

structstudent_type/*创建结构体*/

{

charname[20];

intnum;

charsex;

intmath;

intenglish;

intchinese;

intaverage;

}stud[SIZE];

structstudent_typetemp;

voidsave()/*save函数单独独立,多次调用,简洁明了*/

inti;

charfilename[20];

printf("

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"

);

请输入要存储的排序后成绩单的文件名:

"

scanf("

%s"

filename);

/*用户自定义文件名*/

FILE*fp;

if((fp=fopen(filename,"

w"

))==NULL)

{

printf("

cannotopenfile\n"

exit(0);

}

for(i=0;

i<

SIZE;

i++)

fprintf(fp,"

%-12s学号:

%d性别:

%c数学:

%-3d英语:

%-3d语文:

%-3d平均分:

%-3dn"

stud[i].name,stud[i].num,stud[i].sex,stud[i].math,stud[i].english,stud[i].chinese,stud[i].average);

fclose(fp);

/*数据存入磁盘*/

数据已储存入%s\n"

}

voidsort1()

%-3d\n"

save();

load();

}

voidsort2()

charb[20];

intp,q,k;

for(p=0;

p<

SIZE-1;

p++)

{

k=p;

for(q=p+1;

q<

q++)

{

if(strcmp(stud[k].name,stud[q].name)>

0)/*选择法按姓名排序*/

{

temp=stud[k];

stud[k]=stud[q];

stud[q]=temp;

}

}

按姓名排序如下:

\n"

for(k=0;

k<

k++)

stud[k].name,stud[k].num,stud[k].sex,stud[k].math,stud[k].english,stud[k].chinese,stud[k].average);

voidsort3()

inti,k,a,r;

boolflag;

flag=true;

请你选择:

1升序2降序\n"

/*用户可选择的成绩单组织方式*/

%d"

&

a);

switch(a)

case1:

while(flag)/*冒泡法排序*/

{

flag=false;

for(i=0;

if(stud[i].average>

stud[i+1].average)

temp=stud[i];

stud[i]=stud[i+1];

stud[i+1]=temp;

flag=true;

};

printf("

按平均成绩升序如下:

break;

case2:

while(flag)/*冒泡排序*/

if(stud[i].average<

{

temp=stud[i];

}

按平均成绩降序如下:

break;

for(k=0;

printf("

%-3d\n"

save();

load();

voiddivide()

请输入要存储的分段后成绩单的文件名:

inti,k;

for(i=100;

i>

0;

i-=10)

%d~%d的学生如下:

i-10,i);

/*输出循环设计,简洁*/

if(stud[k].average<

=i&

&

stud[k].average>

i-10)

stud[k].name,stud[k].num,stud[k].sex,stud[k].math,stud[k].english,stud

[k].chinese,stud[k].average);

voidgood()

structlink/*链表形式组织优秀成绩单*/

charname[20];

structlink*next;

}*top=NULL;

structlink*p,*y;

intk;

请输入要存储的优秀成绩单的文件名:

优秀学生:

if(stud[k].average>

=level)

p=(structlink*)malloc(sizeof(structlink));

strcpy(p->

name,stud[k].name);

p->

num=stud[k].num;

sex=stud[k].sex;

math=stud[k].math;

english=stud[k].english;

chinese=stud[k].chinese;

average=stud[k].average;

p->

next=top;

top=p;

y=top;

while(y!

=NULL)

y->

name,y->

num,y->

sex,y->

math,y->

english,y->

chinese,y->

average);

y=y->

next;

}/*以链表形式组织输出*/

voidbad()

请输入要存储的不及格成绩单的文件名:

不及格学生:

if(stud[k].average<

badlevel)

{

printf

("

voidgood1()/*用户可以查询单科优秀的成绩单*/

inta,b,k;

请输入要存储的单科优秀成绩单的文件名:

/*用户自定义文件名*/

请你选择所要查询的科目:

1数学2英语3语文\n"

数学优秀学生:

if(stud[k].math>

%-3d平

均分:

fprintf(fp,"

%-

3d平均分:

英语优秀学生:

if(stud[k].english>

fprintf(fp,"

case3:

语文优秀学生:

if(stud[k].chinese>

fclose(fp);

voidbad1()/*用户可以查询单科不及格的成绩单*/

请输入要存储的单科不及格成绩单的文件名:

FIL

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2