学生成绩管理系统课程设计.docx

上传人:b****7 文档编号:25645245 上传时间:2023-06-11 格式:DOCX 页数:18 大小:397.79KB
下载 相关 举报
学生成绩管理系统课程设计.docx_第1页
第1页 / 共18页
学生成绩管理系统课程设计.docx_第2页
第2页 / 共18页
学生成绩管理系统课程设计.docx_第3页
第3页 / 共18页
学生成绩管理系统课程设计.docx_第4页
第4页 / 共18页
学生成绩管理系统课程设计.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

学生成绩管理系统课程设计.docx

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

学生成绩管理系统课程设计.docx

学生成绩管理系统课程设计

 

学生成绩管理系统

课程设计报告

 

编写人:

组员:

完成日期:

2011-12-22

辅导教师:

批阅日期:

分数:

 

一、功能描述

此成绩管理系统主要利用指针实现,由如下几个功能模块实现

1.输入模块:

主要完成将学生信息记录存入指针域的工作。

2.查看模块:

浏览已存入的学生信息。

3.排列模块:

主要是将学生信息按学号排序。

4.插入模块:

主要完成插入学生信息的工作。

5.删除模块:

删除部分学生信息。

6.查找模块:

主要完成查找学生信息。

7.输出统计模块:

主要是输出学生的统计信息。

二、功能模块设计

1.主函数执行流程:

通过主函数来调用菜单函数,以此对学生信息进行操作。

voidmain()

{

}

2.输入模块:

对学生信息进行输入。

voidinput()

{

}

3.查看模块:

浏览已存入的学生信息。

voiddisplay()

{

}

4.排列模块:

主要是将学生信息按学号排序。

voidSort_by_num()

{

}

5.插入模块:

主要完成插入学生信息的工作。

intInsert_a_record()

{

…}

6.删除模块:

删除部分学生信息。

intDelete_a_record()

{

...

}

7.查找模块:

主要完成查找学生信息。

voidQuery_a_record()

{...

}

8.输出统计模块:

主要是输出学生的统计信息。

voidQuery_a_record()

{

...

}

三数据结构设计

1.学生信息结构体

typedefstruct

{

charnum[10];

charname[20];

charsex[2];

intgaoshu;

intyingyu;

intwuli;

intjisuanji;

}Student;

Studentstu[80];

intmenu_select()

{

charc;

do{

system("cls");

system("color2b");

printf("\t\t|---------------------------------------|\n\n");

printf("\t\t|青海大学土木工程学院房建

(1)班|\n\n");

printf("\t\t|组长:

华丽|\n\n");

printf("\t\t|组员:

田丹|\n\n");

printf("\t\t|韩印海马英才|\n\n");

printf("\t\t|---------------------------------------|\n\n");

printf("\t\t************学生成绩管理系统*************\n\n");

printf("\t\t*1.输入记录:

2.查看记录:

*\n\n");

printf("\t\t*3.排列顺序:

4.插入记录:

*\n\n");

printf("\t\t*5.删除记录:

6.查找记录:

*\n\n");

printf("\t\t*7.输出统计:

0.退出系统:

*\n\n");

printf("\t\t*****************************************\n\n");

printf("\t\t请做出选择(0-7):

");

c=getchar();

}

while(c<'0'||c>'7');

return(c-'0');

}

 

四函数功能描述

1.输入函数input()

intInput(Studentstud[],intn)

{

inti=0;

charsign,x[10];

while(sign!

='n'&&sign!

='N')

{

printf("\t\t\tstudent'snum:

");

scanf("\t\t\t%s",stud[n+i].num);

printf("\t\t\tstudent'sname:

");

scanf("\t\t\t%s",stud[n+i].name);

printf("\t\t\tstudent'ssex:

");

scanf("\t\t\t%s",stud[n+i].sex);

printf("\t\t\tstudent'sgaoshu:

");

scanf("\t\t\t%d",&stud[n+i].gaoshu);

printf("\t\t\tstudent'syingyu:

");

scanf("\t\t\t%d",&stud[n+i].yingyu);

printf("\t\t\tstudent'swuli:

");

scanf("\t\t\t%d",&stud[n+i].wuli);

printf("\t\t\tstudent'sjisuanji:

");

scanf("\t\t\t%d",&stud[n+i].jisuanji);

gets(x);

printf("\t\t\tanymorerecords?

(Y/N)");

scanf("\t\t\t%c",&sign);

i++;

}

return(n+i);

}}

2.查看函数:

Display()

voidDisplay(Studentstud[],intn)

{

inti;

printf("\t\t----------------------------------------------------------------\n")printf("\t\t学号姓名性别高数英语物理计算机\n");

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

for(i=1;i

printf("\t\t%-10s%-10s%s\t%4d\t%4d\t%4d\t%4d\n",stud[i-1].num,stud[i-1].name,stud[i-1].sex,stud[i-1].gaoshu,stud[i-1].yingyu,stud[i-1].wuli,stud[i-1].jisuanji);

if(i>1&&i%10==0){

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

printf("\t\t");

system("pause");

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

}

}

printf("\t\t\t");

system("pause");

}

3.排列函数:

Sort_by_num“()

voidSort_by_num(Studentstud[],intn)

{

inti,j,*p,*q,s;

chart[10];

for(i=0;i

for(j=0;j

if(strcmp(stud[j].num,stud[j+1].num)>0)

{

strcpy(t,stud[j+1].num);

strcpy(stud[j+1].num,stud[j].num);

strcpy(stud[j].num,t);

strcpy(t,stud[j+1].name);

strcpy(stud[j+1].name,stud[j].name);

strcpy(stud[j].name,t);

strcpy(t,stud[j+1].sex);

strcpy(stud[j+1].sex,stud[j].sex);

strcpy(stud[j].sex,t);

p=&stud[j+1].gaoshu;

q=&stud[j].gaoshu;

s=*p;

*p=*q;

*q=s;

p=&stud[j+1].yingyu;

q=&stud[j].yingyu;

s=*p;

*p=*q;

*q=s;

p=&stud[j+1].wuli;

q=&stud[j].wuli;

s=*p;

*p=*q;

*q=s;

p=&stud[j+1].jisuanji;

q=&stud[j].jisuanji;

s=*p;

*p=*q;

*q=s;

}

}

5.插入函数:

Insert_a_record()

intInsert_a_record(Studentstud[],intn)

{

charx[10];

printf("\t\t\tstudent'snum:

");

scanf("\t\t\t%s",stud[n].num);

printf("\t\t\tstudent'sname:

");

scanf("\t\t\t%s",stud[n].name);

printf("\t\t\tstudent'ssex:

");

gets("\t\t\t%s",stud[n].sex);

printf("\t\t\tstudent'sgaoshu:

");

scanf("\t\t\t%d",&stud[n].gaoshu);

printf("\t\t\tstudent'syingyu:

");

scanf("\t\t\t%d",&stud[n].yingyu);

printf("\t\t\tstudent'swuli:

");

scanf("\t\t\t%d",&stud[n].wuli);

printf("\t\t\tstudent'sjisuanji:

");

scanf("\t\t\t%d",&stud[n].jisuanji);

gets(x);

n++;

Sort_by_num(stud,n);

printf("\t\t\tInsertSuccessed!

\n");

return(n);

}

6删除函数:

Delete_a_record()

intDelete_a_record(Studentstud[],intn)

{

chars[20];

inti=0,j;

printf("\t\t\ttellmehis(her)name:

");

scanf("%s",s);

while(strcmp(stud[i].name,s)!

=0&&i

if(i==n)

{

printf("\t\t\tnotfind!

\n");

return(n);

}

for(j=i;j

{

strcpy(stud[j].num,stud[j+1].num);

strcpy(stud[j].name,stud[j+1].name);

strcpy(stud[j].sex,stud[j+1].sex);

stud[j].gaoshu=stud[j+1].gaoshu;

stud[j].yingyu=stud[j+1].yingyu;

stud[j].wuli=stud[j+1].wuli;

stud[j].jisuanji=stud[j+1].jisuanji;

}

printf("\t\t\tDeleteSuccessed!

\n");

return(n-1);

}

7查找函数:

Query_a_record()

voidQuery_a_record(Studentstud[],intn)

{

chars[20];

inti=0;

printf("\t\t\tinputhis(her)name:

");

scanf("\t\t\t%s",s);

while(strcmp(stud[i].name,s)!

=0&&i

if(i==n)

{

printf("\t\t\tnotfind!

\n");

return;

}

printf("\t\t\this(her)number:

%s\n",stud[i].num);

printf("\t\t\this(her)number:

%s\n",stud[i].sex);

printf("\t\t\this(her)shuxue:

%d\n",stud[i].gaoshu);

printf("\t\t\this(her)yingyu:

%d\n",stud[i].yingyu);

printf("\t\t\this(her)yuwen:

%d\n",stud[i].wuli);

printf("\t\t\this(her)yuwen:

%d\n",stud[i].jisuanji);

}

8输出统计函数Statistic()

voidStatistic(Studentstud[],intn)

{

inti,j=0,k=0;

floataver,sum=0.0;

for(i=0;i

{

sum+=stud[i].gaoshu;

if(stud[j].gaoshu>stud[i].gaoshu)j=i;

if(stud[k].gaoshu

}

aver=1*sum/n;

printf("\t\t\tthereare%drecords.\n",n);

printf("\t\t\tthelowest高数score:

\n");

printf("\t\t\tnumber:

%sname:

%ssex:

%sscore:

%d\n",stud[j].num,stud[j].name,stud[j].sex,stud[j].gaoshu);

printf("\t\t\tthehignest高数score:

\n");

printf("\t\t\tnumber:

%sname:

%ssex:

%sscore:

%d\n",stud[k].num,stud[k].name,stud[k].sex,stud[k].gaoshu);

printf("\t\t\tthe高数averagescoreis%5.2f\n",aver);

}

五程序实现

1.源代码分析

⑴程序预处理

#include

#include

#include

#include

⑵主函数main()

voidmain()

{

}

⑶主菜单界面

printf("\t\t|---------------------------------------|\n\n");

printf("\t\t|青海大学土木工程学院房建

(1)班|\n\n");

printf("\t\t|组长:

华丽|\n\n");

printf("\t\t|组员:

田丹冶成虎|\n\n");

printf("\t\t|韩应海马英才|\n\n");

printf("\t\t|---------------------------------------|\n\n");

printf("\t\t************学生成绩管理系统*************\n\n");

printf("\t\t*1.输入记录:

2.查看记录:

*\n\n");

printf("\t\t*3.排列顺序:

4.插入记录:

*\n\n");

printf("\t\t*5.删除记录:

6.查找记录:

*\n\n");

printf("\t\t*7.输出统计:

0.退出系统:

*\n\n");

printf("\t\t*****************************************\n\n");

printf("\t\t请做出选择(0-7):

");

c=getchar();

}while(c<'0'||c>'7');

return(c-'0');}

二、运行结果

1.主界面

2.浏览界面

(1)输入并查看界面

(2)、插入并查看界面

 

(3)、删除并查看界面

(4)、删除界面

(5)、输出统计界面

(6)、退出程序界面

七设计小结

本次课程设计我们五人同心协力,最终写出了这个程序,现将这个程序的优缺点总结如下。

优点:

能够实现输入,查看,排序,插入,统计,删除等功能。

还有就是改变运行屏幕的一贯黑白色,采用绿背景蓝字的模式,显示清晰、环保、美观的特点。

界面布局整齐、干净,让人一目了然,方便查找。

缺点:

浏览界面对不齐,只能实现简单的一些功能,排序只能按学号进行排序,统计只能按单一科目进行,还有就是录入的信息不是很多,这个程序要录入信息时,必须输入要求输入的条数才会终止,半途不可以终止,比较不好,浏览界面的性别后总会有一个英文字母显示。

经过这次课程设计我们学到了很多,我们组成员之间合作很愉快,同时也体验到了这门课确实很难,在修改的时候有时候没改对,反而多了很多错误,让大家不知道如何是好。

以后需要再接再厉。

八任务分配

华丽:

主要负责编写主函数和菜单函数,

田丹:

主要负责删除及查找函数,

冶成虎:

主要负责输出统计函数,

韩应海:

主要负责输入排列函数,

马英才:

主要负责查看及插入函数。

 

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

当前位置:首页 > 解决方案 > 学习计划

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

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