C语言课程设计学生成绩管理系统分析方案Word文件下载.docx

上传人:b****1 文档编号:397480 上传时间:2023-04-28 格式:DOCX 页数:15 大小:121.48KB
下载 相关 举报
C语言课程设计学生成绩管理系统分析方案Word文件下载.docx_第1页
第1页 / 共15页
C语言课程设计学生成绩管理系统分析方案Word文件下载.docx_第2页
第2页 / 共15页
C语言课程设计学生成绩管理系统分析方案Word文件下载.docx_第3页
第3页 / 共15页
C语言课程设计学生成绩管理系统分析方案Word文件下载.docx_第4页
第4页 / 共15页
C语言课程设计学生成绩管理系统分析方案Word文件下载.docx_第5页
第5页 / 共15页
C语言课程设计学生成绩管理系统分析方案Word文件下载.docx_第6页
第6页 / 共15页
C语言课程设计学生成绩管理系统分析方案Word文件下载.docx_第7页
第7页 / 共15页
C语言课程设计学生成绩管理系统分析方案Word文件下载.docx_第8页
第8页 / 共15页
C语言课程设计学生成绩管理系统分析方案Word文件下载.docx_第9页
第9页 / 共15页
C语言课程设计学生成绩管理系统分析方案Word文件下载.docx_第10页
第10页 / 共15页
C语言课程设计学生成绩管理系统分析方案Word文件下载.docx_第11页
第11页 / 共15页
C语言课程设计学生成绩管理系统分析方案Word文件下载.docx_第12页
第12页 / 共15页
C语言课程设计学生成绩管理系统分析方案Word文件下载.docx_第13页
第13页 / 共15页
C语言课程设计学生成绩管理系统分析方案Word文件下载.docx_第14页
第14页 / 共15页
C语言课程设计学生成绩管理系统分析方案Word文件下载.docx_第15页
第15页 / 共15页
亲,该文档总共15页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

C语言课程设计学生成绩管理系统分析方案Word文件下载.docx

《C语言课程设计学生成绩管理系统分析方案Word文件下载.docx》由会员分享,可在线阅读,更多相关《C语言课程设计学生成绩管理系统分析方案Word文件下载.docx(15页珍藏版)》请在冰点文库上搜索。

C语言课程设计学生成绩管理系统分析方案Word文件下载.docx

可通过函数output()来实现,

3、排序模块:

可通过sort()来实现,通过比较总分的大小来排序;

4、插入模块:

可通过函数insert()来实现,其中通过学号的大小来比较,并且以此来排序;

5、删除模块:

可通过函数delete()来实现,其中通过输入学号来选择要删除的学生信息;

5、退出系统:

可通过一个函数exit()来实现,输入“0”即退出此程序。

三、程序流程图

四、程序清单

源程序:

#include<

stdlib.h>

stdio.h>

string.h>

#defineMAXN35

#defineMAX_NAME128

typedefstructstudent/*定义学生信息*/

{

intno。

/*定义学号*/

charname[MAX_NAME]。

/*定义姓名*/

charfield[MAX_NAME]。

/*定义专业*/

doublesubject1。

/*定义五个科目*/

doublesubject2。

doublesubject3。

doublesubject4。

doublesubject5。

doublemark_ave。

/*定义平均分*/

doublemark_tot。

/*定义总分*/

}STUDENT。

/*以下为输入信息程序*/

voidinput(STUDENT*data,int*len)

putchar('

\n'

)。

printf("

%s\n"

"

Pleaseenteranewrecord,ifneedtoexitthecurrentmenupleaseinput-1."

%s"

Form:

\nno"

Namefieldsubject1subject2subject3subject4subject5\n"

scanf("

%d"

&

no)。

while(no!

=-1)

{

data[*len].no=no。

scanf("

%s%s%lf%lf%lf%lf%lf"

data[*len].name,data[*len].field,&

data[*len].subject1,&

data[*len].subject2,&

data[*len].subject3,&

data[*len].subject4,&

data[*len].subject5)。

data[*len].mark_ave=(data[*len].subject1+data[*len].subject2+data[*len].subject3+data[*len].subject4+data[*len].subject5)/5.0。

data[*len].mark_tot=data[*len].subject1+data[*len].subject2+data[*len].subject3+data[*len].subject4+data[*len].subject5。

(*len)++。

/*指针加一*/

/*输入*/

}

}

/*以下为输出信息程序*/

voidoutput(STUDENT*data,intlen)

inti。

system("

cls"

/*定义系统菜单*/

%5s"

no"

/*输出菜单*/

%7s"

name"

field"

%10s"

subject1"

subject2"

subject3"

subject4"

subject5"

%12s"

mark_ave"

mark_tot"

for(i=0。

i<

80。

i++)

putchar('

='

for(i=0。

i<

len。

printf("

%5d"

data[i].no)。

%8s"

data[i].name)。

printf("

data[i].field)。

%8.1lf"

data[i].subject1)。

data[i].subject2)。

%10.1lf"

data[i].subject3)。

data[i].subject4)。

data[i].subject5)。

%12.1lf"

data[i].mark_ave)。

data[i].mark_tot)。

}

PressEntertocontinue."

getchar()。

}

/*以下为排序程序*/

voidsort(STUDENT*data,intlen)

inti,j,k。

STUDENTtemp。

for(i=0。

len-1。

i++)

for(k=i,j=i+1。

j<

len。

j++)

if(data[k].mark_tot<

data[j].mark_tot)

k=j。

if(k!

=i)

{

temp=data[i]。

data[i]=data[k]。

data[k]=temp。

}

/*以下为添加程序*/

voidinsert(STUDENT*data,int*len)

intno,pos。

doublesubject1,subject2,subject3,subject4,subject5,mark_ave,mark_tot。

lab:

Enterthenewrecord,pleaseinputfromthecurrentmenu-1."

Form:

\nno"

if(no==-1)return。

data[*len].no=no。

name,field,&

subject1,&

subject2,&

subject3,&

subject4,&

subject5)。

mark_ave=(subject1+subject2+subject3+subject4+subject5)/5.0。

mark_tot=subject1+subject2+subject3+subject4+subject5。

pos=0。

while((data[pos].mark_tot<

mark_tot)&

&

(pos<

*len))

pos++。

for(i=*len-1。

i>

=pos。

i--)

data[i+1]=data[i]。

data[pos].no=no。

strcpy(data[pos].name,name)。

strcpy(data[pos].field,field)。

data[pos].subject1=subject1。

data[pos].subject2=subject2。

data[pos].subject3=subject3。

data[pos].subject4=subject4。

data[pos].subject5=subject5。

data[pos].mark_ave=mark_ave。

data[pos].mark_tot=mark_tot。

(*len)++。

gotolab。

/*以下为删除程序*/

voiddelete_item(STUDENT*data,int*len)

intno,i,pos。

pos=0。

Thestudentsneedtodeletetheinputofstudentid,pleaseinputfromthecurrentmenu-1."

if(no==-1)

return。

while((data[pos].no!

=no)&

pos=pos+1。

if(pos>

=*len)

Didnotfindthestudentsneedtodelete"

gotolab。

else

for(i=pos+1。

i<

*len。

data[i-1]=data[i]。

*len=*len-1。

if(*len==0)

{

printf("

Norecords,pleasepressEntertoreturn."

getchar()。

return。

}

/*以下为显示信息程序*/

voidpaint()

\n%49s\n"

ScoreManageSystem\n"

1Inputdata2Outputdata\n"

3sort4Insert\n"

5delete0Quit\n"

=79。

i++)

Enternumfrom1to5:

"

/*以下为主程序*/

voidmain()

STUDENTdata[MAXN]。

intlen=0。

chara。

paint()。

%c"

a)。

while(a!

='

0'

switch(a)

case'

1'

:

input(data,&

len)。

break。

2'

output(data,len)。

3'

sort(data,len)。

4'

insert(data,&

5'

delete_item(data,&

default:

if(a!

)printf("

InputError!

if(a!

)paint()。

五、测试数据

运行源程序,结果如下:

六、问题小结

在设计过程中,遇到的问题有:

1、如何排序,在排序方法的选择上出现问题,最终在查阅课本、相互比较之下得到了解决;

2、所学的函数实现不了系统要求的功能,通过查阅书籍、询问同学得到了解决,如使用了system("

)来定义系统菜单等。

七、收获和体会

通过此次课程设计,巩固了对for循环、switch结构、函数调用、指针等已学过的重要知识点的掌握;

了解并学习了system("

),goto语句,掌握了新知识;

提高了分析解决问题的能力。

八、参考资料:

1)谭浩强,C程序设计教程,清华大学出版社,2007年

2)赵永哲,李雄飞,戴秀英编著,《C语言程序设计》,科学出版社,2003年

3)夏宽理,赵子正编著,《C语言程序设计》,中国铁道出版社,2006年

物理与电子信息学院课程设计评定意见

指导教师评语

主要内容包括:

设计报告内容的完整性和完成情况、报告格式的规范性、通过课程设计取得的收获等。

成绩:

签名:

年 月 日

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

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

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

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