c课程设计论文文档格式.docx

上传人:b****3 文档编号:7590320 上传时间:2023-05-08 格式:DOCX 页数:36 大小:472.93KB
下载 相关 举报
c课程设计论文文档格式.docx_第1页
第1页 / 共36页
c课程设计论文文档格式.docx_第2页
第2页 / 共36页
c课程设计论文文档格式.docx_第3页
第3页 / 共36页
c课程设计论文文档格式.docx_第4页
第4页 / 共36页
c课程设计论文文档格式.docx_第5页
第5页 / 共36页
c课程设计论文文档格式.docx_第6页
第6页 / 共36页
c课程设计论文文档格式.docx_第7页
第7页 / 共36页
c课程设计论文文档格式.docx_第8页
第8页 / 共36页
c课程设计论文文档格式.docx_第9页
第9页 / 共36页
c课程设计论文文档格式.docx_第10页
第10页 / 共36页
c课程设计论文文档格式.docx_第11页
第11页 / 共36页
c课程设计论文文档格式.docx_第12页
第12页 / 共36页
c课程设计论文文档格式.docx_第13页
第13页 / 共36页
c课程设计论文文档格式.docx_第14页
第14页 / 共36页
c课程设计论文文档格式.docx_第15页
第15页 / 共36页
c课程设计论文文档格式.docx_第16页
第16页 / 共36页
c课程设计论文文档格式.docx_第17页
第17页 / 共36页
c课程设计论文文档格式.docx_第18页
第18页 / 共36页
c课程设计论文文档格式.docx_第19页
第19页 / 共36页
c课程设计论文文档格式.docx_第20页
第20页 / 共36页
亲,该文档总共36页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

c课程设计论文文档格式.docx

《c课程设计论文文档格式.docx》由会员分享,可在线阅读,更多相关《c课程设计论文文档格式.docx(36页珍藏版)》请在冰点文库上搜索。

c课程设计论文文档格式.docx

撰写论文1       图书馆

学生签名:

2010年6月21日

课程设计(论文)评审意见

(1)完成原理分析(25分):

优( )、良( )、中( )、一般( )、差( );

(2)设计分析  (25分):

(3)完成调试  (25分):

(4)回答问题  (25分):

(5)格式规范性及考勤是否降等级:

是( )、否( )

评阅人:

   职称:

2010年6月24日

华东交通大学

C++程序设计

课程设计报告

选题名称:

学生成绩管理系统

系(院):

软件学院

专业:

软件工程+信息工程

班级:

三班

姓名:

吴同学学号:

2009XXXXXXXXXX

指导教师:

莫老师

学年学期:

2009~2010学年第二学期

2010年6月24日

摘要:

随着科学技术的发展,计算机领域不断取得新的研究成果。

计算机在代替和延伸脑力劳动方面发挥越来越重要的作用,不仅在商业、企业、银行等起着重要作用,而且在日常生活中也越来越离不开计算机。

就像在大学,有很多学生的信息需要处理、保存,以及提供优质的服务,此时计算机显得尤为重要。

随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识。

作为计算机应用的一部分,使用计算机对学生成绩信息进行管理,有着手工管理所无法比拟的优点。

所以,现今绝大部分大学都使用了计算机来规划整个学生的信息、提供选课、网络教学等。

学生成绩管理系统能方便用户迅速、准确处理学生的成绩,得到想要的数据并能将学生的信息以文档保存,以供使用时调出。

本文介绍了简易学生成绩管理系统在MicrosoftVisualC++6.0环境下的实现过程:

系统的分析、功能模块的设计、系统的调试和测试。

此系统的主要管理信息有:

学生的班级、学生的学号、学生的姓名、离散数学成绩、c++程序设计成绩、大学物理成绩、大学英语成绩、高等数学成绩、大学体育成绩、马克思主义基本原理成绩。

本系统的主要功能有:

输入数据(即学生成绩等相关信息)、显示所有数据、按平均分降序排列、查找并显示一组数据、插入一组数据、修改一组数据、删除一组数据、从文件中读入数据、将所有记录写入文件、退出本系统。

关键字:

学生成绩管理

1需求分析

1.1功能需求分析

简易学生成绩管理系统主要有四个大的模块:

学生信息(如班级、学号、姓名、各科成绩等)的录入文件中;

查找并显示、删除、插入、修改一组数据;

从文件中输出所有数据并进行按平均分排序;

退出此系统。

(1)学生信息的录入模块

主要功能是录入学生的信息,具体操作是:

先打开程序的主界面,然后选择数字1,即可录入数据,程序依次输出:

学生的班级、学生的学号、学生的姓名、信息专业的各科成绩等,最后会询问是否继续录入。

结束后可以选择数字9,进行数据的保存,实际生活中学生成绩的文件主要以word或excel等储存,为了方便操作我在调试本系统中成绩文件采用了txt的文档格式保存,当然也可以使用word文档形式。

(2)查找、显示、修改、插入、删除模块

主要功能是查找用户所需要的学生信息,直接选择数字4,便可根据学生的班级、学号、姓名可以查询到相关成绩,包括各科成绩还有平均分和总分等,提供了极大的便利。

为了更加具有人性化,本系统还增设了修改、插入、删除等功能,以便极大的服务广大师生。

(2)输出所有数据并进行按平均分排列模块

主要功能是方便用户进行一个全面的观察,统计所有的学生成绩,即按总分的排名。

另外,每个文件中的学生成绩管理,也会进行相应的对比,方便比较。

(3)退出系统模块

简单的利用了c++面向对象程序设计思想,设计出了可选择的退出装置。

1.2环境需求分析

操作系统:

WindowsXP

调试软件:

VisualC++6.0

1.3方法需求分析

由于数组存放数据的时候要先确定数组的规模,不能动态的分配内存空间,而单链表是非连续存放的,可以对内存空间进行动态分配,此系统是用单链表完成的。

然后定义链表的结点类型为结构就可以实现对学生学号、姓名、成绩、班级等学保存。

每次只要返回头指针,就可以对整个链表进行操作,因此选链表来存放学生信息。

2概要设计

2.1系统功能模块图

学生成绩管理系统

输入学生信息

插入学生信息

删除学生信息

显示学生信息

按姓名找学生

保存学生信息

读取学生信息

计算总分均分

学生成绩排序

按学号查成绩

分类合计

2.2设计思想:

学生成绩管理系统是用面向对象的方法设计,由于数组的存放是连续的,而单链表是非连续存放的,是动态分配内存空间,因此此系统采用单链表来完成。

各个功能模块的实现主要转变到对单链表的遍历,添加和删除结点。

3详细设计

3.1设计原理

学生成绩管理系统以菜单选择,通过调用各个函数,对单链表的遍历,实现不同的功能,不同函数处理后返回的只是一个头结点,但是通过头结点可以找到所有链表中的信息,只要有函数,找到头指针就能进行相应的操作,所以模块化的程序方便以后添加或者删除某些功能,程序中通过system(“cls”)清屏函数实现界面的转换,主函数中的循环保证程序不会退出,一个循环和一个清屏函数实现了主菜单和各子画面的切换(子函数)。

这样的话各个子函数都可以调用一开始输入的数据,这样就实现了各个不同函数调用时都能使用整个系统连续起来了。

作为一个学生成绩管理系统,增加了文件的读入和写出功能,增加了程序的实用性。

3.2程序详细代码

#include<

iostream.h>

/*引用库函数*/

stdlib.h>

ctype.h>

stdio.h>

string.h>

typedefstruct

{

charclass_0[20];

/*班级*/

intnumber;

/*学号*/

charname[20];

/*姓名*/

floatelectrics;

/*离散数学成绩*/

floatc_program;

/*C++语言成绩*/

floatmultimedia;

/*大学物理成绩*/

floatenglish;

/*大学英语成绩*/

floatmath;

/*高等数学成绩*/

floatsport;

/*体育成绩*/

floatpolity;

/*马克思主义基本原理成绩*/

floatsummary;

/*总分*/

floataverage;

/*平均分*/

}Student;

Studentstu[100];

/*结构体数组变量*/

intmenu()/*菜单函数*/

{

charc;

do

system("

cls"

);

/*运行前清屏*/

cout<

<

"

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

endl;

/*菜单选择*/

----囊括信息专业主要课程----"

【1】输入数据"

【2】显示所有数据"

【3】按平均分降序排列"

【4】查找并显示一组数据"

【5】插入一组数据"

【6】修改一组数据"

【7】删除一组数据"

【8】从文件中读入数据"

【9】将所有记录写入文件"

【0】退出本系统\n"

*********************作者:

09软件工程+信息工程3班吴乐斌***********************"

请你选择操作(0-9):

c=getchar();

/*读入选择*/

}

while(c<

'

0'

||c>

9'

return(c-'

/*返回选择*/

intInput(Studentstud[],intn)/*输入若干条记录*/

inti=0;

charsign,x[10];

/*x[10]为清除多余的数据所用*/

while(sign!

='

n'

&

sign!

N'

)/*判断*/

请输入学生的班别:

;

/*交互输入*/

cin>

>

stud[n+i].class_0;

请输入学生的学号:

stud[n+i].number;

请输入学生的姓名:

stud[n+i].name;

请输入该学生『离散数学』的成绩:

stud[n+i].electrics;

请输入该学生『C++程序设计』的成绩:

stud[n+i].c_program;

请输入该学生『大学物理』的成绩:

stud[n+i].multimedia;

请输入该学生『大学英语』的成绩:

stud[n+i].english;

请输入该学生『高等数学』的成绩:

stud[n+i].math;

请输入该学生『大学体育』的成绩:

stud[n+i].sport;

请输入该学生『马克思主义基本原理』的成绩:

stud[n+i].polity;

stud[n+i].summary=stud[n+i].electrics+stud[n+i].c_program+stud[n+i].multimedia+stud[n+i].english+stud[n+i].math+stud[n+i].sport+stud[n+i].polity;

stud[n+i].average=stud[n+i].summary/7;

该学生的总分为:

stud[n+i].summary<

平均分为:

stud[n+i].average<

gets(x);

/*清除多余的输入*/

=====>

提示:

继续写入成绩?

(Y/N)"

sign;

/*输入判断*/

i++;

}

return(n+i);

voidDisplay(Studentstud[],intn)/*显示所有记录*/

inti;

if(!

stud)cout<

没有记录"

else{

--------------------------------------------------------------------------------"

/*格式头*/

班别学号姓名离散C++物理英语数学体育马克思总分平均分"

for(i=1;

i<

n+1;

i++)/*循环输入*/

stud[i-1].summary=stud[i-1].electrics+stud[i-1].c_program+stud[i-1].multimedia+stud[i-1].english+

stud[i-1].math+stud[i-1].sport+stud[i-1].polity;

stud[i-1].average=stud[i-1].summary/7;

stud[i-1].class_0<

"

stud[i-1].number<

stud[i-1].name<

stud[i-1].electrics<

stud[i-1].c_program<

stud[i-1].multimedia<

stud[i-1].english<

stud[i-1].math<

stud[i-1].sport<

stud[i-1].polity<

stud[i-1].summary<

stud[i-1].average<

\t\t\t"

}

pause"

voidSort(Studentstud[],intn)/*按平均分排序*/

inti,j,k;

floats;

chart[20];

for(i=0;

n-1;

i++)/*冒泡法排序*/

for(j=0;

j<

n-1-i;

j++)

if(stud[j].average<

stud[j+1].average)

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

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

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

k=stud[j+1].number;

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

stud[j].number=k;

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

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

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

s=stud[j+1].electrics;

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

stud[j].electrics=s;

s=stud[j+1].c_program;

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

stud[j].c_program=s;

s=stud[j+1].multimedia;

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

stud[j].multimedia=s;

s=stud[j+1].english;

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

stud[j].english=s;

s=stud[j+1].math;

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

stud[j].math=s;

s=stud[j+1].sport;

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

stud[j].sport=s;

s=stud[j+1].polity;

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

stud[j].polity=s;

s=stud[j+1].summary;

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

stud[j].summary=s;

s=stud[j+1].average;

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

stud[j].average=s;

intInsert(Studentstud[],intn)/*插入一条记录*/

charx[10];

/*清除多余输入所用*/

stud[n].class_0;

stud[n].number;

stud[n].name;

stud[n].electrics;

stud[n].c_program;

stud[n].multimedia;

stud[n].english;

stud[n].math;

stud[n].sport;

stud[n].polity;

stud[n].summary=stud[n].electrics+stud[n].c_program+stud[n].multimedia+stud[n].english+

stud[n].math+stud[n].sport+stud[n].polity;

stud[n].average=stud[n].summary/7;

n++;

Sort(stu,n);

/*调用排序函数*/

插入成功!

/*返回成功信息*/

return(n);

intDelete(Studentstud[],intn)/*按学号查找,删除一条记录*/

ints;

inti=0,j;

输入需要删除学生的学号:

/*交互式问寻*/

s;

while((stud[i].number-s)!

=0&

n)i++;

/*查找判断*/

if(i==n)

对不起,无法找到改学号……"

/*返回失败信息*/

for(j=i;

j++)/*删除操作*/

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

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

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

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

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

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

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

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

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

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

已成功删除!

return(n-1);

voidSearch(Studentstud[],intn)/*查找并显示一个记录*/

输入需要查找学生的学号:

对不起,无法找到该学生的信息!

/*输入失败信息*/

return;

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

当前位置:首页 > 高中教育 > 数学

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

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