c课程设计论文.docx
- 文档编号:11370274
- 上传时间:2023-02-28
- 格式:DOCX
- 页数:36
- 大小:472.93KB
c课程设计论文.docx
《c课程设计论文.docx》由会员分享,可在线阅读,更多相关《c课程设计论文.docx(36页珍藏版)》请在冰豆网上搜索。
c课程设计论文
课程设计(论文)任务书
学院 软件学院 专 业 软件工程+信息工程班 级 3班
一、课程设计(论文)题目 学生成绩管理系统
二、课程设计(论文)工作自2010年6月21日起至2010年6月25日止。
三、课程设计(论文)地点:
南区4栋2楼
四、课程设计(论文)内容要求:
1.本课程设计的目的
(1)使学生掌握C++编程的基本工作原理;
(2)培养学生基本掌握C++应用编程的基本思路和方法;
(3)使学生掌握C++应用调试的基本技能;
(4)培养学生分析、解决问题的能力;
(5)提高学生的科技论文写作能力。
2.课程设计的任务及要求
1)基本要求:
(1)分析应用的功能构成;
(2)分析数据对象及其关联;
(3)实现系统的类的设计;
(4)对所设计应用进行调试。
2)创新要求:
在基本要求达到后,可进行创新设计,增加功能、改进界面和性能。
3)课程设计论文编写要求
(1)要按照书稿的规格打印誊写设计论文
(2)论文包括目录、绪论、正文、小结、参考文献、谢辞、附录等
(3)论文装订按学校的统一要求完成
4)答辩与评分标准:
(1)系统功能分析:
25分;
(2)完成设计过程:
25分;
(3)完成调试:
25分;
(4)回答问题:
25分。
5)参考文献:
6)课程设计进度安排
内容天数 地点
构思及收集资料1 图书馆
设计与调试2 实验室
撰写论文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
#include
#include
#include
#include
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<<"********************************学生成绩管理系统********************************"< cout<<"----囊括信息专业主要课程----"< cout<<"【1】输入数据"< cout<<"【2】显示所有数据"< cout<<"【3】按平均分降序排列"< cout<<"【4】查找并显示一组数据"< cout<<"【5】插入一组数据"< cout<<"【6】修改一组数据"< cout<<"【7】删除一组数据"< cout<<"【8】从文件中读入数据"< cout<<"【9】将所有记录写入文件"< cout<<"【0】退出本系统\n"< cout<<"*********************作者: 09软件工程+信息工程3班吴乐斌***********************"< cout<<"请你选择操作(0-9): "< c=getchar();/*读入选择*/ } while(c<'0'||c>'9'); return(c-'0');/*返回选择*/ } intInput(Studentstud[],intn)/*输入若干条记录*/ { inti=0; charsign,x[10];/*x[10]为清除多余的数据所用*/ while(sign! ='n'&&sign! ='N')/*判断*/ { cout<<"请输入学生的班别: ";/*交互输入*/ cin>>stud[n+i].class_0; cout<<"请输入学生的学号: "; cin>>stud[n+i].number; cout<<"请输入学生的姓名: "; cin>>stud[n+i].name; cout<<"请输入该学生『离散数学』的成绩: "; cin>>stud[n+i].electrics; cout<<"请输入该学生『C++程序设计』的成绩: "; cin>>stud[n+i].c_program; cout<<"请输入该学生『大学物理』的成绩: "; cin>>stud[n+i].multimedia; cout<<"请输入该学生『大学英语』的成绩: "; cin>>stud[n+i].english; cout<<"请输入该学生『高等数学』的成绩: "; cin>>stud[n+i].math; cout<<"请输入该学生『大学体育』的成绩: "; cin>>stud[n+i].sport; cout<<"请输入该学生『马克思主义基本原理』的成绩: "; cin>>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; cout<<"该学生的总分为: "< "< gets(x);/*清除多余的输入*/ cout<<"=====>提示: 继续写入成绩? (Y/N)"; cin>>sign;/*输入判断*/ i++; } return(n+i); } voidDisplay(Studentstud[],intn)/*显示所有记录*/ { inti; if(! stud)cout<<"没有记录"; else{ cout<<"--------------------------------------------------------------------------------"< cout<<"班别学号姓名离散C++物理英语数学体育马克思总分平均分"< cout<<"--------------------------------------------------------------------------------"< for(i=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; cout< stud[i-1].math<<""< } cout<<"\t\t\t"< system("pause"); } voidSort(Studentstud[],intn)/*按平均分排序*/ { inti,j,k; floats; chart[20]; for(i=0;i for(j=0;j if(stud[j].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; } cout<<"--------------------------------------------------------------------------------"< cout<<"班别学号姓名离散C++物理英语数学体育马克思总分平均分"< cout<<"--------------------------------------------------------------------------------"< for(i=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; cout< stud[i-1].math< } } intInsert(Studentstud[],intn)/*插入一条记录*/ { charx[10];/*清除多余输入所用*/ cout<<"请输入学生的班别: "< cin>>stud[n].class_0; cout<<"请输入学生的学号: "; cin>>stud[n].number; cout<<"请输入学生的姓名: "; cin>>stud[n].name; cout<<"请输入该学生『离散数学』的成绩: "; cin>>stud[n].electrics; cout<<"请输入该学生『C++程序设计』的成绩: "; cin>>stud[n].c_program; cout<<"请输入该学生『大学物理』的成绩: "; cin>>stud[n].multimedia; cout<<"请输入该学生『大学英语』的成绩: "; cin>>stud[n].english; cout<<"请输入该学生『高等数学』的成绩: "; cin>>stud[n].math; cout<<"请输入该学生『大学体育』的成绩: "; cin>>stud[n].sport; cout<<"请输入该学生『马克思主义基本原理』的成绩: "; cin>>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; gets(x); n++; Sort(stu,n);/*调用排序函数*/ cout<<"=====>提示: 插入成功! "< return(n); } intDelete(Studentstud[],intn)/*按学号查找,删除一条记录*/ { ints; inti=0,j; cout<<"输入需要删除学生的学号: "< cin>>s; while((stud[i].number-s)! =0&&i if(i==n) { cout<<"=====>提示: 对不起,无法找到改学号……"< return(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; } cout<<"=====>提示: 已成功删除! "< return(n-1); } voidSearch(Studentstud[],intn)/*查找并显示一个记录*/ { ints; inti=0; cout<<"输入需要查找学生的学号: "< cin>>s; while((stud[i].number-s)! =0&&i if(i==n) { cout<<"=====>提示: 对不起,无法找到该学生的信息! "< return; } cout<<"
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 课程设计 论文
![提示](https://static.bdocx.com/images/bang_tan.gif)