c语言学生信息管理系统课程设计.docx

上传人:b****5 文档编号:7813167 上传时间:2023-01-26 格式:DOCX 页数:12 大小:237.42KB
下载 相关 举报
c语言学生信息管理系统课程设计.docx_第1页
第1页 / 共12页
c语言学生信息管理系统课程设计.docx_第2页
第2页 / 共12页
c语言学生信息管理系统课程设计.docx_第3页
第3页 / 共12页
c语言学生信息管理系统课程设计.docx_第4页
第4页 / 共12页
c语言学生信息管理系统课程设计.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

c语言学生信息管理系统课程设计.docx

《c语言学生信息管理系统课程设计.docx》由会员分享,可在线阅读,更多相关《c语言学生信息管理系统课程设计.docx(12页珍藏版)》请在冰豆网上搜索。

c语言学生信息管理系统课程设计.docx

c语言学生信息管理系统课程设计

 

学生课程设计报告

 

课程设计题目:

学生信息管理系统

 

一、课程设计内容

通过一个系统窗口,选择要执行的功能:

(1)成绩的录入,依次输入学生的个数,学号,姓名三门成绩;

(2)成绩的查询(学号或姓名);

(3)成绩统计(平均成绩);

(4)成绩按平均分排名;

(5)任意键退出

二、技术路线

利用C语言编写程序,构造结构体,构造及调用函数实现这些功能。

三、设计与实现

/***************************头文件*********************************/

#include〈stdio。

h〉

#include

h>

#include〈stdlib。

h>

/***************************常量***********************************/

#defineMENU_NUM7

#defineN3

#defineMAX100//记录的最大数量

/****************************结构体********************************/

structstudent

charno[10];/*学号由10个字符组成*/

charname[15];/*学生姓名*/

floatscore[N];/*各门课成绩*/

floatsum;/*总分*/

floataverage;/*平均分*/

};

 

/********************************全局变量*************************/

intcount;//记录学生总人数

structstudentstud[MAX];//记录学生信息

/********************************函数声明*************************/

voidinput();//输入学生信息

voidoutput();//输出学生信息

voidPrintMenu();//显示菜单

voidcomputer();//计算学生成绩

voidfind();//根据学号或姓名查询成绩

voidsort();//成绩排名

intcmp(constvoid*a,constvoid*b);//排序规则

 

/***********************************主函数************************/

voidmain()

intchoose;

count=0;

while

(1)

PrintMenu();

scanf("%d",&choose);

switch(choose)

case1:

input();//输入成绩

break;

case2:

find();//查询成绩

break;

case3:

computer();//统计成绩

break;

case4:

//sort();//按成绩排序,按名次输出成绩

qsort(stud,count,sizeof(structstudent),cmp);//调用库函数中的排序方法

output();

break;

case5:

exit(0);

}

printf(”\n\n");

}

/*********************************排序规则***********************/

intcmp(constvoid*a,constvoid*b)

{

structstudent*aa=(structstudent*)a;

structstudent*bb=(structstudent*)b;

if(aa—〉sum!

=bb-〉sum)

{

returnaa—〉sumsum?

1:

—1;

else

{

if(aa—>score[0]!

=bb—〉score[0])

returnaa->score[0]score[0]?

1:

-1;

returnaa->score[2]

1:

-1;

return0;

 

/*****************************************************************

*函数名:

PrintMenu

*

*描述:

显示操作菜单

*入口参数:

*

*出口参数:

******************************************************************/

voidPrintMenu()

{

printf("———-—-———-—------——-————----——-—-----—\n”);

printf("|学生成绩管理系统|\n”);

printf("|1。

.成绩录入|\n");

printf(”|2.。

.。

成绩查询(学号或姓名)|\n”);

printf(”|3.。

..成绩统计(平均成绩)|\n");

printf("|4.。

.成绩排名|\n”);

printf("|5...。

任意键退出|\n”);

printf(”-—---—-———-———-———-————----—-————---——”);

printf(”\n”);

printf(”\n”);

printf(”请输入您要进行的操作:

");

}

 

/*****************************************************************

*函数名:

input

*描述:

输入学生信息

*

*入口参数:

*

*出口参数:

******************************************************************/

voidinput()

{

intn,i;

floattemp;

printf("请输入要录入的学生的人数:

”);

scanf(”%d",&n);

for(i=0;i

printf("输入第%d个学生信息\n",i+1);

printf("学号:

");

scanf(”%s",stud[count+i]。

no);

printf(”姓名:

");

scanf("%s”,stud[count+i]。

name);

printf("成绩1:

");

scanf(”%f”,&stud[count+i].score[0]);

printf("成绩2:

”);

scanf(”%f”,&stud[count+i].score[1]);

printf(”成绩3:

”);

scanf(”%f”,&stud[count+i].score[2]);

}

count+=n;

 

/*****************************************************************

*函数名:

find

*

*描述:

根据学号或姓名查询成绩

*

*入口参数:

*出口参数:

******************************************************************/

voidfind()

inti;

charch[15];

printf("请输入学号或姓名:

");

scanf(”%s”,ch);

printf("--—-———-—---—-————--—-—--—-—-—-—-———--———--——-------———-\n”);

printf(”|学号|姓名|成绩1|成绩2|成绩3|总分|平均分|\n”);

for(i=0;i

if(!

strcmp(ch,stud[i]。

no)||!

strcmp(ch,stud[i]。

name))

i]。

score[2],stud[i].sum,stud[i].average);

printf("--—---—--———-————---————-—-——-----——-—-——---———-——-———--\n");

return;

printf(”没有找到该学生的信息!

\n");

printf(”—-—-—------——-——--—---—---————-—----—--———--—--———---———\n”);

/*****************************************************************

*函数名:

computer

*

*描述:

计算学生总成绩和平均成绩

*

*入口参数:

*

*出口参数:

******************************************************************/

voidcomputer()

{

inti;

for(i=0;i

{

stud[i]。

sum=stud[i].score[0]+stud[i].score[1]+stud[i].score[2];

stud[i].average=(stud[i]。

score[0]+stud[i]。

score[1]+stud[i]。

score[2])/N;

}

output();

/*****************************************************************

*函数名:

output

*

*描述:

输出学生所有信息

*入口参数:

*

*出口参数:

******************************************************************/

voidoutput()

{

inti;

printf(”——-——-——-—-—-———---————---————---——-————--—-—-—-————————\n”);

printf("|学号|姓名|成绩1|成绩2|成绩3|总分|平均分|\n”);

stud[i].no,stud[i].name,stud[i].score[0],stud[i]。

score[1],stud[i]。

score[2],stud[i].sum,stud[i].average);

printf(”--———————-—---—--———---—--——————-—--——-————————-———--—-—\n”);

}

/*****************************************************************

*函数名:

sort

*描述:

排序

*入口参数:

*出口参数:

******************************************************************/

voidsort()

for(i=0;i

stud[i]。

sum=stud[i].score[0]+stud[i].score[1]+stud[i]。

score[2];

stud[i]。

average=(stud[i].score[0]+stud[i].score[1]+stud[i].score[2])/3;

k=i;

for(j=i+1;j〈count;j++)

{

if(stud[k]。

sum

sum)

{

k=j;

if(k!

=i)

temp=stud[i];

stud[i]=stud[k];

stud[k]=temp;

}

printf("学生成绩排名\n");

printf(”按名次\n");

output();

}

四、测试结果

(1)

(2)

(3)

(4)

(5)

五、感想和体会

通过这次课程设计,前期的查找资料和学习探索,后期的设计与测试,终于完成了这次设计,我们队的每个人表现得很积极,充分体会到了团队合作力量的强大。

这一周的设计,不仅让我们对专业知识有了更深的了解,还提高了我们实践能力和钻研努力的品质。

总之,这次的成果将会激励着我们探索出更多新的东西,为以后的路上积累了经验。

 

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

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1