学生成绩管理doc.docx

上传人:b****5 文档编号:5937809 上传时间:2023-01-02 格式:DOCX 页数:20 大小:185.90KB
下载 相关 举报
学生成绩管理doc.docx_第1页
第1页 / 共20页
学生成绩管理doc.docx_第2页
第2页 / 共20页
学生成绩管理doc.docx_第3页
第3页 / 共20页
学生成绩管理doc.docx_第4页
第4页 / 共20页
学生成绩管理doc.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

学生成绩管理doc.docx

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

学生成绩管理doc.docx

学生成绩管理doc

西北师范大学xxxx

计算机与电子信息工程系

 

课程设计报告书

课程名称:

C语言程序设计

专业:

计算机科学与技术(网络应用与技术)

课题名称:

学生成绩管理

班级:

学号:

姓名:

指导教师:

 

2014-2015学年第二学期

学生成绩管理

(难易程度:

中)

1.课程设计要求

学习成绩管理系统的主要要求为:

1)能按学期、按班级完成对学生成绩的录入、修改

2)能按班级统计学生的成绩,求学生的总分及平均分

3)能查询学生成绩,不及格科目及学生名单

4)能按班级输出学生的成绩单

2.设计目的及意义

课题的设计旨在训练我们的基本编程能力,使我们熟悉C语言图形模式下的编程。

本程序中涉及结构体、数组、绘图等方面的知识。

通过本程序的训练,使我们能对C语言有一个更深刻的了解。

开发一个学生成绩管理系统,采用计算机对学生成绩进行管理。

3.课题说明

本系统主要用于对学生的成绩进行管理。

通过本系统,可以将各个学生的成绩记录输入到系统中,保存到文件,便于查阅和相关管理。

此外,该系统还能实现对学生成绩记录的显示,查询以及插入或删除学生的成绩记录等功能。

4.功能模块图

5.功能描述

主要功能用来对学生的成绩进行收集和输入。

在学生信息保存在系统中的前提下,成绩录入需要输入学生资料,比如班级,学号,姓名。

在准确输入学生资料后,就可以对该学生的各科成绩进行录入。

该学生各科成绩输入成功后,系统会提示是否继续进行操作,如果想继续输入学生成绩就输入y,不想再输入学生成绩的话就输入n,再输入n之后,系统返回到主菜单。

输入学生资料是得分学期来进行处理,执行一次该模块只能输入一个学期的学生信息。

在此过程中每输入一个学生的信息,通过循环在输入完成时将学生个数返回给n,case1中就是利用n=input(stud,n)这一赋值过程来执行该函数中的输入过程。

输入完成后按任意键即可返回菜单。

6.执行住流程图

 

7.程序运行结果

8.设计过程遇到的问题

在输入了学生成绩之后,若不退出程序继续读取文件,同一个学生的信息会多次输出。

输入的数据长度有要求,不能够输入的太长否则就会输出结果排列不整齐甚至无法输出数据。

输入学生成绩时只能连续输入相同学期的学生。

输入的学生成绩等信息相同时如姓名,程序不提示出错,不能处理。

同时好多地方都不懂,不明白其中的原理,做起来不上手。

9.课题总结

第一次做这种设计面广、综合性强的课程设计刚开始难度还是有点大的,主要是在函数调用方面容易出现混乱,刚开始的时候功能少还容易解决,写到后面再在综合起来就容易出现问题。

尤其是在修改删除函数中要调用文件操作函数,查找函数,然后找到具体删除的可行性办法还是不太容易,最后采用后一项覆盖前一项的方法解决。

10.设计课题感想

这学期我们学习了C++这一编程语言,学的很浅薄,平时都只能编一些比较小的程序。

这次课程设计花了很长时间,学到了不少的知识,开拓了视野。

并且,本设计不像平时编写的程序,运行一下直接推出操作界面。

而是可以像一个计算机上使用的软件一样,可以不用退出系统,继续使用其功能,只需要在主函数中调用一个循环即可。

除此之外,还学习到了课程设计的流程相关的知识。

不过大多属于网上搜的,自己的能力很弱不能做出来。

 

附录代码

#include

#include

#include

#include

#include

#include

#include

usingnamespacestd;

typedefclass

{

public:

intcls;

charnam[10];

charnum[10];

intchinese;

intenglish;

intcomputer;

intmath;

}Student;

Studentstud1[100],stud2[100];

intmenu()

{

chara;

while(a>'7'||a<'0')

{

system("cls");

std:

:

cout<<"欢迎使用学生成绩管理系统";

std:

:

cout<

:

endl;

std:

:

cout<<"**********************学生成绩管理系统************************"<

:

endl;

std:

:

cout<

:

endl;

std:

:

cout<

std:

:

cout<

std:

:

cout<

std:

:

cout<

std:

:

cout<

std:

:

cout<

std:

:

cout<

std:

:

cout<

std:

:

cout<<"请选择(0-7)"<

std:

:

cout<

a=getchar();

}

return(a-'0');

}

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

intInput(Studentstud[],intn)//输入数据(第一学期)。

{

inti=0;

charsign,x[10];

for(;sign!

='n'&&sign!

='N';)

{

std:

:

cout<

";

std:

:

cin>>stud[n+i].nam;

std:

:

cout<

";

std:

:

cin>>stud[n+i].cls;

std:

:

cout<

";

std:

:

cin>>stud[n+i].num;

std:

:

cout<

";

std:

:

cin>>stud[n+i].chinese;

std:

:

cout<

";

std:

:

cin>>stud[n+i].math;

std:

:

cout<

";

std:

:

cin>>stud[n+i].english;

std:

:

cout<

";

std:

:

cin>>stud[n+i].computer;

gets(x);

std:

:

cout<

std:

:

cout<<"还有要输入的信息吗?

(y/n)";

std:

:

cin>>&sign;

i++;

}

return(n+i);

}

/*************************************输出数据***********************************************/

voidDisplay(Studentstud[],intn)

{

inti;

std:

:

cout<

std:

:

cout<

std:

:

cout<

std:

:

cout<

for(i=1;i

{

std:

:

cout<

ints=stud[i-1].chinese+stud[i-1].math+stud[i-1].english+stud[i-1].computer;

std:

:

cout<<""<

<<""<

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

{

std:

:

cout<

std:

:

cout<

system("pause");

std:

:

cout<

}

}

std:

:

cout<

system("pause");

}

/************************************查找学生显示其信息***************************************************/

voidQuery(Studentstud[],intn)

{

charnam[20];

std:

:

cout<

"<

std:

:

cin>>nam;

inti=0;

while(strcmp(stud[i].nam,nam)!

=0&&i

i++;

if(i==n)

{

cout<<"\t\t\t"<<"没有发现该学生的资料!

"<

return;

}

std:

:

cout<

"<

std:

:

cout<

"<

std:

:

cout<

"<

std:

:

cout<

"<

std:

:

cout<

"<

std:

:

cout<

"<

}

/*********************************删除学生信息************************************/

intDelete(Studentstud[],intn)

{

chars[20];

inti=0,j;

std:

:

cout<

"<

cin>>s;

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

=0&&i

if(i==n)

{

printf("\t\t\t没有发现该学生资料!

\n");

return(n);

}

for(j=i;j

{

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

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

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

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

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

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

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

}

cout<

"<

return(n-1);

}

/*******************************修改信息******************************************/

intRevise(Studentstud[],intn)

{

inti=0;

charna[10];

cin>>na;

while(strcmp(stud[i].nam,na)!

=0&&i

i++;

if(i==n)

{

cout<<"\t\t\t"<<"没有发现该学生的资料!

"<

}

std:

:

cout<<"修改班级:

"<

std:

:

cin>>stud[i].cls;

std:

:

cout<<"修改学号:

"<

std:

:

cin>>stud[i].num;

std:

:

cout<<"修改语文成绩:

"<

std:

:

cin>>stud[i].chinese;

std:

:

cout<<"修改英语成绩:

"<

std:

:

cin>>stud[i].english;

std:

:

cout<<"修改数学成绩:

"<

std:

:

cin>>stud[i].math;

std:

:

cout<<"修改计算机成绩:

"<

std:

:

cin>>stud[i].computer;

std:

:

cout<<"修改成功"<

return(n);

}

/***************************************显示学生名单**************************************/

voidshow(Studentstud[],intn)

{

for(inti=0;i

{

std:

:

cout<

}

system("pause");

}

/**************************************从文件读取数据*************************************************/

intAddfromText(Studentstud[],intn)

{

inti=0,number,x=0,y=0;

FILE*fp;

charfilename[20];

cout<

";

cin>>filename;

if((fp=fopen(filename,"rb"))==NULL)

{

cout<

cout<

system("pause");

return(n);

}

fscanf(fp,"%d",&number);

for(;i

{

fscanf(fp,"%d%s%s%d%d%d%d%d%d\n",&stud[n+i].cls,&stud[n+i].num,&stud[n+i].nam,&stud[n+i].chinese,

&stud[n+i].math,&stud[n+i].english,&stud[n+i].computer,&x,&y);

i++;

}

n+=number;

fclose(fp);

cout<

"<

cout<

system("pause");

return(n);

}

 

/**************************************将所有记录写进文件*************************************/

voidWritetoText(Studentstud[],intn)

{

inti=0;

FILE*fp;

charfilename[20];

cout<

cout<

";

cin>>filename;

if((fp=fopen(filename,"w+"))==NULL)

{

cout<

system("pause");

return;

}

fprintf(fp,"%d\n",n);

for(;i

{

fprintf(fp,"%-8d%-8s%-8s%-5d%-5d%-5d%-5d%-5d%-5d\n",stud[i].cls,stud[i].num,stud[i].nam,

stud[i].chinese,stud[i].math,stud[i].english,stud[i].computer,

stud[i].chinese+stud[i].math+stud[i].english+stud[i].computer,

(stud[i].chinese+stud[i].math+stud[i].english+stud[i].computer)/4);

i++;

}

fclose(fp);

}

/**************************************主函数调用*********************************************/

voidmain()

{

intn1=0,n2=0;

for(;;)

{

switch(menu())

{

case1:

intt;

std:

:

cout<

std:

:

cout<

std:

:

cout<

std:

:

cin>>t;

if(t==1)

{

n1=Input(stud1,n1);

}

elseif(t==2)

{

n2=Input(stud2,n2);

}

break;

case2:

std:

:

cout<

if(n1!

=0)

{

std:

:

cout<

"<

std:

:

cout<

Display(stud1,n1);

}

if(n2!

=0)

{

std:

:

cout<

"<

std:

:

cout<

Display(stud2,n2);

}

break;

case3:

intr;

std:

:

cout<

std:

:

cout<

"<

std:

:

cin>>r;

if(r==1)

{

Query(stud1,n1);

}

elseif(r==2)

{

Query(stud2,n2);

}

std:

:

cout<

system("pause");

break;

case4:

intp;

std:

:

cout<

std:

:

cout<

"<

std:

:

cin>>p;

if(p==1)

{

std:

:

cout<

";

n1=Revise(stud1,n1);

}

elseif(p==2)

{

std:

:

cout<

";

n2=Revise(stud2,n2);

}

system("pause");

break;

case5:

std:

:

cout<

if(n1!

=0)

{

std:

:

cout<

show(stud1,n1);

}

cout<

if(n2!

=0)

{

std:

:

cout<

show(stud2,n2);

}

system("pause");

break;

case6:

std:

:

cout<

into;

std:

:

cout<<"请输入学期:

"<

std:

:

cout<

std:

:

cin>>o;

if(o==1)

{

std:

:

cout<

n1=Delete(stud1,n1);

}

if(o==2)

{

std:

:

cout<

n2=Delet

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

当前位置:首页 > 医药卫生 > 基础医学

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

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