课程设计报告-学生成绩管理系统.doc

上传人:b****2 文档编号:1646465 上传时间:2022-10-23 格式:DOC 页数:15 大小:74KB
下载 相关 举报
课程设计报告-学生成绩管理系统.doc_第1页
第1页 / 共15页
课程设计报告-学生成绩管理系统.doc_第2页
第2页 / 共15页
课程设计报告-学生成绩管理系统.doc_第3页
第3页 / 共15页
课程设计报告-学生成绩管理系统.doc_第4页
第4页 / 共15页
课程设计报告-学生成绩管理系统.doc_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

课程设计报告-学生成绩管理系统.doc

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

课程设计报告-学生成绩管理系统.doc

东莞理工学院课程设计

课程设计

课程程序设计基础

题目

院系名称计算机学院

班级

学生姓名学号

组员

指导教师

时间2012-5-25

1问题要求及任务描述

1.1题目要求

学生成绩管理

问题描述:

设学生信息包括:

学号、姓名、学期、每门课程的成绩(每学期的课程门数是不一样的),对学生的成绩信息进行管理。

实现要求:

实现:

学生信息的录入;修改;删除和查询,按学期、学号、成绩不及格等查询。

⑴输入学生的成绩信息,包含学号、姓名、性别等基本信息和各课成绩

⑵显示全部学生各科成绩信息;

⑶对各科成绩统计分析(总分、平均分、最高分、最低分、及格率等);

⑷统计各科各分数段人数;

⑸按学号或姓名查找并显示某个学生的各科成绩;

⑹按课程成绩或总分由高到低排序显示;

⑺更新某个学生的基本信息或课程成绩;

⑻设计一个菜单,具有上述规定的操作要求、退出系统等最基本的功能。

1.

2解决问题的主要思路和方法

2.1关键问题

关键问题描述

2.2拟采用解决问题的方法

在此陈述解决问题的思路,准备使用的算法和数据结构等等

2.3主要算法和处理流程图

关键的数据流程图

3程序实现

3.2主要源代码及说明

#include

#include

#include

intsave=0;

structstudent/*构建结构体*/

{

charnum[12];

charname[20];

charsex[4];

intCYuYan;

intMath;

intEnglish;

intsum;

intave;

};

typedefstructnode

{

structstudentdata;

structnode*next;

}Node,*Link;

voidMenu()/*界面主菜单*/

{

printf("********************************************************************************");

printf("\t1输入学生资料\t\t\t\t\t2删除学生资料\n");

printf("\t3查询学生成绩\t\t\t\t\t4修改学生成绩\n");

printf("\t5显示学生资料\t\t\t\t\t6统计学生资料\n");

printf("\t7排序学生成绩\t\t\t\t\t8保存学生成绩\n");

printf("\t9退出系统\n");

printf("********************************************************************************");

}

voidPrint()

{

printf("--------------------------------------------------------------------------------");

}

voidWrong()/*错误警告*/

{

printf("\n警告:

输入错误!

!

!

\n");

}

voidNofind()

{

printf("\n警告:

没有找到该学生!

!

!

\n");

}

voidPrint1()

{

printf("学号\t姓名性别C语言成绩英语成绩数学成绩总分平均分\n");

}

voidPrint2(Node*p)/*打印学生成绩*/

{

printf("%-9s%s\t%3s\t%d\t%d\t%d\t%d\t%d\n",p->data.num,p->data.name,p->data.sex,p->data.CYuYan,p->data.Math,p->data.English,p->data.sum,p->data.ave);

}

Node*Locate(Linkh,charfindmess[],charnameornum[])/*定位链表中符合要求的接点*/

{

Node*r;

if(strcmp(nameornum,"num")==0)/*按学号查询*/

{

r=h->next;

while(r!

=NULL)

{

if(strcmp(r->data.num,findmess)==0)

returnr;

r=r->next;

}

}

elseif(strcmp(nameornum,"name")==0)/*按姓名查询*/

{

r=h->next;

while(r!

=NULL)

{

if(strcmp(r->data.name,findmess)==0)

returnr;

r=r->next;

}

}

return0;

}

voidAdd(Linkh)/*功能1:

输入学生资料*/

{

Node*p,*r,*s;

charnum[12];

r=h;

s=h->next;

while(r->next!

=NULL)

r=r->next;

while

(1)

{

printf("请输入学号(按'0'返回上菜单):

");

scanf("%s",num);

if(strcmp(num,"0")==0)

break;

p=(Node*)malloc(sizeof(Node));/*申请一个结构体内存*/

strcpy(p->data.num,num);

printf("请输入姓名:

");

scanf("%s",p->data.name);

getchar();

printf("请输入性别:

");

scanf("%s",p->data.sex);

getchar();

printf("请你输入c语言成绩:

");

scanf("%d",&p->data.CYuYan);

getchar();

printf("请输入数学成绩:

");

scanf("%d",&p->data.Math);

getchar();

printf("请输入英语成绩:

");

scanf("%d",&p->data.English);

getchar();

p->data.sum=p->data.English+p->data.CYuYan+p->data.Math;

p->data.ave=p->data.sum/3;

p->next=NULL;

r->next=p;

r=p;

save=1;

}

}

voidDel(Linkh)/*功能2:

删除学生资料*/

{

Node*p,*r;

charfindmess[20];

printf("请输入要删除的学号:

");

scanf("%s",findmess);

p=Locate(h,findmess,"num");

if(p)

{

r=h;

while(r->next!

=p)

r=r->next;

r->next=p->next;

free(p);/*释放内存空间*/

printf("\n提示:

该学生已经成功删除!

\n");

save=1;

}

else

Nofind();

}

voidCha(Linkh)/*功能3:

查询学生资料*/

{

intsel;

charfindmess[20];

Node*p;

printf("\n1按学号查找\n2按姓名查找\n");

scanf("%d",&sel);

if(sel==1)/*按学号查找*/

{

printf("请输入要查找的学号:

");

scanf("%s",findmess);

p=Locate(h,findmess,"num");

if(p)

{

printf("\t\t\t\t查找结果\n");

Print();

Print1();

Print2(p);

Print();

}

else

Nofind();

}

elseif(sel==2)/*按姓名查找*/

{

printf("请输入要查找的姓名:

");

scanf("%s",findmess);

p=Locate(h,findmess,"name");

if(p)

{

printf("\t\t\t\t查找结果\n");

Print();

Print1();

Print2(p);

Print();

}

else

Nofind();

}

else

Wrong();

}

voidChange(Linkh)/*功能4:

修改学生资料*/

{

Node*p;

charfindmess[20];

if(!

h->next)

{

printf("\n提示:

没有资料可以修改!

\n");

return;

}

printf("请输入要修改的学生学号:

");

scanf("%s",findmess);

p=Locate(h,findmess,"num");

if(p)

{

printf("请输入新学号(原来是%s):

",p->data.num);

scanf("%s",p->data.num);

printf("请输入新姓名(原来是%s):

",p->data.name);

scanf("%s",p->data.name);

getchar();

printf("请输入新性别(原来是%s):

",p->data.sex);

scanf(

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

当前位置:首页 > 外语学习 > 其它语言学习

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

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