当前位置:文档之家› C++学生成绩排名系统课程设计(附源码)

C++学生成绩排名系统课程设计(附源码)

C++学生成绩排名系统课程设计(附源码)
C++学生成绩排名系统课程设计(附源码)

河南城建学院

C++语言课程设计报告书

专业:信息管理与信息系统

课程设计名称:《面向对象程序设计》

题目:学生成绩排名系统

班级:0834131

设计者学号:

设计者姓名:

同组人员:

指导老师:张妍琰郭力争

完成时间:2015 年1月9 日

目录

目录 (1)

第一章开发环境和开发工具 (1)

1.1 C++简介 (1)

1.2 开发背景 (1)

1.3 开发环境 (2)

第二章设计目的与实现 (3)

2.1 系统需求分析 (3)

2.2系统功能分析 (3)

2.3系统总体设计 (4)

2.3.1编写要求 (4)

2.3.2开发设计思想 (4)

2.3.3系统功能模块分析与设计 (5)

2.4程序实现流程 (5)

2.5成绩统计模块算法思想 (7)

第三章测试与分析 (9)

3.1数据显示 (9)

3.2结果分析 (9)

总结 (11)

心得体会 (12)

参考文献 (13)

第一章开发环境和开发工具

1.1C++简介

C++是在C语言的基础上开发的一种集面向对象编程、泛型编程和过程化编程于一体的编程语言。当C语言发展到顶峰的时刻,出现了一个版本叫C with Class,那就是C++最早的版本,在C语言中增加class 关键字和类,那个时候有很多版本的C都希望在C语言中增加类的概念;后来C标准委员会决定为这个版本的C起个新的名字,那个时候征集了很多种名字,最后采纳了其中一个人的意见,以C语言中的++运算符来体现它是C语言的进步,故而叫C++,成立了C++标准委员会。

C++应用较为广泛,是一种静态数据类型检查的,支持多重编程的通用程序设计语言。它支持过程化程序设计,数据抽象,面向对象设计,制作图标等多种程序设计风格。C++语言的主要特点表现在两个方面,一是尽量兼容C,二是支持面向对象的方法。它操持了C的简洁、高效的接近汇编语言等特点,对C的类型系统进行了改革的扩充,因此C++比C更安全,C++的编译系统能检查出更多的类型错误.

1.2开发背景

随着科学技术的不断发展,计算机科学日渐成熟,其强大的功能已为人们所深刻认识,它己进入人类社会的各个领域并发挥着越来越重要的作用。采用计算机进行信息化管理已成为衡量教学管理科学化和现代化的重要标志,而学生成绩排名的全面自动化、信息化则是其中重要的组成部分。学生成绩排名信息的好坏对于教学管理者来说至关重要,在很大程度上影响着教学管理者对学生的看法及学生个人考评。因此,本文所研究的学生成绩排名系统具有一定的使用价值和现实意义。

1.3开发环境

本文所采用的开发环境主要是基于VC6.0。VC++6.0是微软公司推出的开发Win32应用程序(Windows 95/98/2000/XP/NT)的、面向对象的可视化集成工具。它的最大优点就是提供了功能强大的MFC类库,MFC 是一个很大的C++类层次结构,其中封装了大量的类及其函数,很多Windows程序所共有的标准内容可以由MFC的类来提供,MFC类为这些内容提供了用户接口的标准实现方法,程序员所要做的就是通过预定义的接口把具体应用程序特有的东西填入这个轮廓,这将简化编程工作,大大的减少程序员编写的代码数量,使编程工作变得更加轻松容易。

第二章设计目的与实现

2.1系统需求分析

随着社会的不断进步,教育教学事业越来越受到重视,国家对部分学生的优惠政策越来越深入人心;与此同时,随着人口的增加,学生人数也在随之有了大幅度提升。因此,教学管理者们对学生的成绩排名这一任务的实现也越来越频繁,越来越繁琐。所以,我们需要一个方便的学生成绩排名系统来减轻教学管理者的负担,更加方便快捷的来查询,管理学生的成绩信息。

2.2系统功能分析

2.2.1 成绩的管理功能

【1】添加学生信息:添加学生的成绩信息,包括学生学号,姓名,各科成绩,输入功能操作结束返回到主菜单。若员工信息输入有误,需及时修改。

【2】删除学生信息:删除某个学生的成绩信息,采用数组的方法,根据学号进行删除,删除功能操作结束,返回到主菜单。

【3】学生信息排序:排序功能可以根据需求分四种方式进行学生成绩的排序,包括按四科科目的成绩分别进行排序以及按总成绩进行排序。排序功能操作结束,返回到主页面。

2.2.2 成绩的统计功能

成绩统计功能:统计功能可以实现学生总人数的统计,各科平均分以及各科及格率,另外,还包括总分的平均分,可以研究整体学生的成绩。

2.2.3成绩的查找功能

成绩的查找功能:查找功能可以根据需求选择三种方式中的一种进行查找,包括按学号查找,按姓名查找,按科目查找,在按科目查找功能下,又细分了按英语成绩,按数学成绩,按C++成绩,按语文成绩查找。

2.3系统总体设计

2.3.1编写要求

1) 声明一个成绩类,类中包括学生成绩,姓名,学号,以及对成绩相应的操作函数,例如添加、删除、排序等功能;

2) 调用函数部分,对类中函数成员以及友元函数进行实现,实现其对成绩的统计功能,例如平均分,及格率等功能;

3) 具备按学号、姓名、或课程名查询成绩的功能;

4)编写主函数,要求提供一个界面,允许操作人员输入学生成绩数据。

2.3.2开发设计思想

基于以上系统设计目标,本文在开发学生成绩排名系统时遵循了以下开发设计思想:

●尽量达到操作过程中的直观、方便、实用、等要求。

●系统采用模块化程序设计方法,既便于系统功能的各种组合和修改,又便于未参与开发的技术维护人员补充、维护。

●系统可以根据用户需求进行数据的添加、删除、等操作。

2.3.3系统功能模块分析与设计

本系统分为五个模块:添加学生信息、删除学生信息、学生成绩排序、学生成绩统计、学生成绩查找。得到如图3-1所示的系统功能模块图。

图3-1系统功能模块图

2.4程序实现流程

【1】添加学生信息

2.4-1

【2】删除学生信息

2.4-2

【3】学生成绩排序

2.4-3

【4】学生成绩统计

.

2.4-4

【5】学生成绩查找

2.4-5

【6】主页面模块

2.4-6

2.5成绩统计模块算法思想

采用类的对象数组对类中的对象进行引用,在使用对象数组时只能引用单个数组元素,每个数组元素都是一个对象,通过这个对象,便可以访问到它的公有成员。通过对其成员的访问实现统计功能。

void tongji()

{

int n1,n2=0,n_m=0,n_e=0,n_c=0,n_y=0,t_m=0,t_e=0,t_c=0,t_y=0,t_t=0;//n1计数,n2统计总人数

for(n1=0;n1<50;n1++)

{

if(student[n1].num!=0)//对类的对象数组中的成员进行访问

{

n2++;

t_m=t_m+student[n1].m_num;//数学总分数

t_e=t_e+student[n1].e_num;//英语总分数

t_c=t_c+student[n1].c_num;//英语总分数

t_y=t_y+student[n1].y_num;//语文总成绩

t_t=t_t+student[n1].t_num;//总分数

}

if(student[n1].m_num>=60)

{

n_m++;

}

if(student[n1].e_num>=60)

{

n_e++;

}

if(student[n1].c_num>=60)

{

n_c++;

}

if(student[n1].y_num>=60)

{

n_y++;

}

}

if(n2==0)

{

cout<<"对不起,无记录"<

main();

}

else

cout<<"总人数为:"<

第三章测试与分析3.1数据显示

统计功能输出显示如下:

总人数:2

数学平均分:87 及格率:100% 英语平均分:65 及格率:100% C++平均分:65 及格率:100% 语文平均分:87 及格率:100% 总分平均分:305

3.2结果分析

1)进入程序主页面:

2)输入2进入统计模块,当程序无数据记录时:

当程序有学生记录时:

总结

此次课程设计,在小组各成员的共同努力下完成,组长设计了成绩排序系统的成绩类,然后将各个实现功能分给组员进行实现,由于我基础不太好,给他们添了很大的麻烦。虽然课程设计结束了,但其中还存在着很多问题。一方面,因为有关文件储存这方面的知识欠缺,不太牢固,导致了我们每次都要手动录入学生成绩信息,因此我们的程序还需要进一步完善;另一方面,面向对象的程序开发需要符合客观生活逻辑,所以程序在删除,统计等方面的需求还需要增加其他方面,同时,类的设计有待完善。虽然课程设计的结果不尽人意,但在这两周的付出是很有价值的,在以后的日子里,我一定要积极自主学习,将基本知识打牢固,同时,学会与同学们合作,将作业完成的更好。

心得体会

通过一周的课程设计,使我对《C++语言程序设计》这门课程有了更深入的理解。《C++语言程序设计》是一门实践性较强的课程,为了学好这门课程,必须在掌握理论知识的同时,加强上机实践。

我的课程设计题目是学生成绩排名系统。刚开始做这个程序的时候,感到完全无从下手,甚至让我觉得完成这次程序设计根本就是不可能的,于是开始查阅各种资料以及参考文献,之后便开始着手写程序,写完运行时有很多问题。特别是实现统计功能时,经常运行出现错误,但通过小组成员的共同努力最终基本解决了问题。

在本课程设计中,我明白了理论与实际应用相结合的重要性,并提高了自己组织数据及编写大型程序的能力。培养了基本的、良好的程序设计技能以及合作能力。这次课程设计同样提高了我的综合运用所学知识的能力。并对VC6.0有了更深入的了解。《C++语言程序设计》是一门实践性很强的课程,上机实习是对学生全面综合素质进行训练的一种最基本的方法,是与课堂听讲、自学和练习相辅相成的、必不可少的一个教学环节。上机实习一方面能使书本上的知识变“活”,起到深化理解和灵活掌握教学内容的目的;另一方面,上机实习是对学生软件设计的综合能力的训练,包括问题分析,总体结构设计,程序设计基本技能和技巧的训练。此外,还有更重要的一点是:机器是比任何教师更严厉的检查者。因此,在“数据结构”的学习过程中,必须严格按照老师的要求,主动地、积极地、认真地做好每一个实验,以不断提高自己的编程能力与专业素质。

通过这段时间的课程设计,我认识到C++语言程序设计是一门比较难的课程。需要多花时间上机练习。这次的程序训练培养了我实际分析问题、编程和动手能力,使我掌握了程序设计的基本技能,提高了我适应实际,实践编程的能力。

总的来说,这次课程设计让我获益匪浅,对C++语言程序设计也有了进一步的理解和认识。

参考文献

[1]谭浩强.C程序设计(第四版).北京:清华大学出版社.2005

[2]郑莉.C++程序设计.北京:清华大学出版社.2010.7

[3]顾彦玲.C++开发实战.北京:清华大学出版社.1010.10

[4]刘志铭.C++项目开发全程实录.北京:清华大学出版社.2013

[5]钱能.c++程序设计教程.北京:清华大学出版社.1999

学生成绩排名系统源码#include

#include

using namespace std;

class Score

{

private:

string number;

string name;

int math;

int english;

public:

Score(){}

~Score(){}

void setNumber(string Number)

{

number=Number;

}

string getNumber()

{

return number;

}

void setName(string Name)

{

name=Name;

}

string getName()

{

return name;

}

void setMath(int Math)

{

math=Math;

}

int getMath()

{

return math;

}

void setEnglish(int English)

{

english=English;

}

int getEnglish()

{

return english;

}

int getSum()

{

return math+english;

}

};

class ScoreManager{

private:

Score score[100];

int sum;

int Select();

int SearchByNumber(string);

int SearchByName(string);

void SortByNumber();

void SortByName();

void SortBySum();

float getAverage();

public:

ScoreManager(){sum=0;}

~ScoreManager(){}

void Add();

void Delete();

void Update();

void Search();

void ShowAll();

void Sort();

void Average();

void PassRate();

};

int ScoreManager::Select()

{

cout<<"请选择查找方式:"<

cout<<"1、学号"<

cout<<"2、姓名"<

int n,i;

string str;

cin>>n;

switch(n)

{

case 1:

cout<<"请输入学号:";

cin>>str;

i=SearchByNumber(str);

break;

case 2:

cout<<"请输入姓名:";

cin>>str;

i=SearchByName(str);

}

return i;

}

int ScoreManager::SearchByNumber(string number)

{

int i;

for(i=0;i

{

if(score[i].getNumber()==number)

break;

}

if(i==sum)

return -1;

return i;

}

int ScoreManager::SearchByName(string name)

{

int i;

for(i=0;i

{

if(score[i].getName()==name)

break;

}

if(i==sum)

return -1;

return i;

}

void ScoreManager::SortByNumber()//按学号排序

{

int i,j;

Score temp;

for(i=0;i

{

for(j=i;j

if(score[j].getNumber()>score[j+1].getNumber())

{

temp=score[j];

score[j]=score[j+1];

score[j+1]=temp;

}

}

}

void ScoreManager::SortByName()//按名字排序

{

int i,j;

Score temp;

for(i=0;i

{

for(j=i;j

if(score[j].getName()>score[j+1].getName())

{

temp=score[j];

score[j]=score[j+1];

score[j+1]=temp;

}

}

}

void ScoreManager::SortBySum()//按总分

{

int i,j;

Score temp;

for(i=0;i

{

for(j=i;j

if(score[j].getSum()>score[j+1].getSum())

{

temp=score[j];

score[j]=score[j+1];

score[j+1]=temp;

}

}

}

float ScoreManager::getAverage()

{

int i,s;

for(s=i=0;i

s+=score[i].getSum();

return s/(float)sum;

}

void ScoreManager::Add()

{

Score s;

string number;

string name;

int math;

int english;

cout<<"请输入学号:";

cin>>number;

s.setNumber(number);

cout<<"请输入姓名:";

cin>>name;

s.setName(name);

cout<<"请输入数学:";

cin>>math;

s.setMath(math);

if(math>100)

{

cout<<"输入有误"<

return;

}

cout<<"请输入英语:";

cin>>english;

s.setEnglish(english);

score[sum]=s;

sum++;

cout<<"添加成功"<

}

void ScoreManager::Delete()

{

int i=Select();

if(i==-1)

{

cout<<"学生不存在"<

return;

}

for(i++;i

score[i-1]=score[i];

sum--;

cout<<"删除成功"<

}

void ScoreManager::Update()

{

int i=Select();

if(i==-1)

{

cout<<"学生不存在"<

return;

UML课程设计-源代码

(object Petal version 47 _written "Rose 8.0.0303.1400" charSet 134) (object Design "Logical View" is_unit TRUE is_loaded TRUE attributes (list Attribute_Set (object Attribute tool "Java" name "IDE" value "Internal Editor") (object Attribute tool "Java" name "UserDefineTagName1" value "") (object Attribute tool "Java" name "UserDefineTagText1" value "") (object Attribute tool "Java" name "UserDefineTagApply1" value "") (object Attribute tool "Java" name "UserDefineTagName2" value "") (object Attribute tool "Java" name "UserDefineTagText2" value "") (object Attribute tool "Java" name "UserDefineTagApply2" value "") (object Attribute tool "Java" name "UserDefineTagName3" value "") (object Attribute tool "Java"

操作系统课程设计

课程设计报告 2015~2016学年第一学期 操作系统综合实践课程设计 实习类别课程设计 学生姓名李旋 专业软件工程 学号130521105 指导教师崔广才、祝勇 学院计算机科学技术学院 二〇一六年一月

- 1 -

- 2 -

一、概述 一个目录文件是由目录项组成的。每个目录项包含16B,一个辅存磁盘块(512B)包含32个目录项。在目录项中,第1、2字节为相应文件的外存i节点号,是该文件的内部标识;后14B为文件名,是该文件的外部标识。所以,文件目录项记录了文件内、外部标识的对照关系。根据文件名可以找到辅存i节点号,由此便得到该文件的所有者、存取权、文件数据的地址健在等信息。UNIX 的存储介质以512B为单位划分为块,从0开始直到最大容量并顺序加以编号就成了一个文件卷,也叫文件系统。UNIX中的文件系统磁盘存储区分配图如下: 本次课程设计是要实现一个简单的模拟Linux文件系统。我们在内存中开辟一个虚拟磁盘空间(20MB)作为文件存储器,并将该虚拟文件系统保存到磁盘上(以一个文件的形式),以便下次可以再将它恢复到内存的虚拟磁盘空间中。文件存储空间的管理可采用位示图方法。 二、设计的基本概念和原理 2.1 设计任务 多用户、多级目录结构文件系统的设计与实现。可以实现下列几条命令login 用户登录 logout 退出当前用户 dir 列文件目录 creat 创建文件 delete 删除文件 open 打开文件 close 关闭文件 - 3 -

read 读文件 write 写文件 mkdir 创建目录 ch 改变文件目录 rd 删除目录树 format 格式化文件系统 Exit 退出文件系统 2.2设计要求 1) 多用户:usr1,usr2,usr3,……,usr8 (1-8个用户) 2) 多级目录:可有多级子目录; 3) 具有login (用户登录)4) 系统初始化(建文件卷、提供登录模块) 5) 文件的创建:create (用命令行来实现)6) 文件的打开:open 7) 文件的读:read8) 文件的写:write 9) 文件关闭:close10) 删除文件:delete 11) 创建目录(建立子目录):mkdir12) 改变当前目录:cd 13) 列出文件目录:dir14) 退出:logout 新增加的功能: 15) 删除目录树:rd 16) 格式化文件系统:format 2.3算法的总体思想 - 4 -

ecel中对学生成绩自动排名修订版

E X C E L中对学生成绩 自动排名 集团标准化小组:[VVOPPT-JOPP28-JPPTL98-LOPPNN]

E x c e l中怎样实现自动排名 在学生成绩统计中,经常要对成绩排名次(老师掌握),一般的做法是将成绩排序(降序)后,将第一名和第二名手工填入1,2,然后选中这两个单元格,将鼠标指针移向选中部分的右下角,待其变为黑色的十字后,左键双击该十字,就能产生整列的名次。但这也会带来一个麻烦,那就是如果总分相同,按通常的情况,他们的名次应该是相同的,不过,自动填充功能是不会做到这一点的。所以还需要手工修改有关的名次。如果有成百上千的数据,岂不会弄得头都大了。 1.在“总分”列的F2单元格输入“=SUM(C2:E2)”,然后按下回车键,第一个学生的总分就会计算出来了。 图1原始成绩表 2.在“名次”列的“G2”单元格输入“=RANK(F2,$F$2:$F$7)”,然后按下回车键,第一位学生的名次也就出来了。怎么,名次不对?不要紧,往后看。对了,还要说一句,那就是上面公式中那个“$F$7”是“总分”栏中的最后一个数据的位置,实际中可以根据表格中的实际情况来填写。 3.选中F2和G2单元格,然后拖动填充柄向下至最后一个单元格,看到了吗?所有人的总分和名次都在瞬间完成了(如图2)。而且更妙的是,按照这种方法,如果总分相同,名次也是相同的。数据越多,这种方法就越能体现出它的优势。试试看吧! 图2排好序的表 最后要提醒的是,在用于排名次的“=RANK(F2,$F$2:$F$7)”公式中,可千万不要忽略了符号“$”呀!名次到底能不能排得准确无误,它可是起到很重要的作用呢。 现在,我们来看看如何更快、更好地排出一个无规律的数列。 1.在“总分”列的F2单元格输入“=SUM(C2:E2)”,然后按下回车键,第一个学生的总分就会计算出来了。 2.在“名次”列的“G2”单元格输入“=RANK(F2,$F$2:$F$7)”,(意思是计算F2的数值在F2到F7的名次,注意F7后加逗号,表示将数据按降序排名,逗号后加上1表示,对该列数据按升序排名)然后按下回车键,第一位学生的名次也就出来了。怎么,名次不对?不要紧,往后看。对了,还要说一句,那就是上面公式中那个“$F$7”是“总分”栏中的最后一个数据的位置,实际中可以根据表格中的实际情况来填写。 3.选中F2和G2单元格,双击填充柄(黑色的十字),看到了吗?所有人的总分和名次都在瞬间完成了。而且更妙的是,按照这种方法,如果总分相同,名次也是相同的。数据越多,这种方法就越能体现出它的优势。试试看吧! 最后要提醒的是,在用于排名次的“=RANK(F2,$F$2:$F$7)”公式中,可千万不要忽略了符号“$”呀!名次到底能不能排得准确无误,它可是起到很重要的作用呢。

5_Java课程设计源代码

package zhouchuan; import java.applet.*; import java.awt.*; import java.awt.event.*; import https://www.doczj.com/doc/d09564538.html,.*; public class zhouchuan extends Applet implements ActionListener { AudioClip clip; Button buttonPlay, buttonLoop, buttonStop; public void init(){ try{ URL url=new URL("file:"+"F://ding.wav"); clip=getAudioClip(url);}catch(Exception e){ } buttonPlay=new Button("开始播放"); buttonLoop=new Button("循环播放"); buttonStop=new Button("停止播放"); buttonPlay.addActionListener(this); buttonStop.addActionListener(this); buttonLoop.addActionListener(this); add(buttonPlay); add(buttonLoop); add(buttonStop); } public void stop(){ clip.stop(); } public void actionPerformed(ActionEvent e){ if(e.getSource()==buttonPlay) clip.play(); else if(e.getSource()==buttonLoop) clip.loop();

C语言学生成绩排名系统

学生成绩排名系统 班级: 学号: 姓名: 指导教师: 日期:2011-01-05

目录 1、系统总体框架 2、功能分析 3、模块设计与分析 4、类的设计与分析 5、特色算法分析 6、功能测试 7、存在的不足与对策 8、程序源代码 9、软件使用说明 10、C语言心得体会

1、系统总体框架 设计目的:(1)基本掌握面向过程程序设计的基本思路和方法; (2)达到熟练掌握C语言的基本知识和技能; (3)能够利用所学的基本知识和技能,解决简单的程序设计问题 图1

2、功能分析 “学生成绩管理系统”包括九个模块:输入学生资料,输出学生资料,学生姓名按顺序排列,添加学生资料,按姓名查找,删除该学生资料,查找并显示学生资料,按姓名查找,修改该学生资料,从文件中读入数据,储存学生资料并退出系统。每个模块既相互联系又相互独立。 本系统根据学生成绩管理的需要,而建立一个“学生成绩管理系统”,以方便对成绩的各项管理操作。本系统能对成绩进行输入和输出;能按姓名对学生进行排序,并显示学生资料、成绩等,不过得以系统输入学生资料、成绩为前提;能添加学生成绩资料;能根据学生的姓名来查询该学生的成绩资料,并修改或是删除该学生信息;能够从文件中读取学生信息,并且添加到系统中;能把对系统所进行的操作进行保存,以及时更新系统中的数据。 3、模块设计与分析 (1)输入学生资料模块: 主要功能用来对学生的成绩进行收集和输入。在学生信息保存在系统中的前提下,成绩录入需要输入学生资料,比如班级,学号,姓名。在准确输入学生资料后,就可以对该学生的各科成绩进行录入。该学生各科成绩输入成功后,系统会提示是否继续进行操作,如果想继续输入学生成绩就输入y,不想再输入学生成绩的话就输入n,再输入n之后,系统返回到主菜单。 (2)输出学生资料模块: 主要功能用来对学生的成绩进行输出。在系统已经录入了学生资料成绩的前提下,使用该功能可以显示所有学生的信息,资料等等。具体包括学生的班级,学号,姓名和各科成绩。在查看学生的资料,成绩各方面的信息后,按任意键就可以返回到主菜单。

操作系统课程设计报告

上海电力学院 计算机操作系统原理 课程设计报告 题目名称:编写程序模拟虚拟存储器管理 姓名:杜志豪.学号: 班级: 2012053班 . 同组姓名:孙嘉轶 课程设计时间:—— 评语: 成绩: 目录 一、设计内容及要求 (4) 1. 1 设计题目 (4) 1.2 使用算法分析: (4)

1. FIFO算法(先进先出淘汰算法) (4) 1. LRU算法(最久未使用淘汰算法) (5) 1. OPT算法(最佳淘汰算法) (5) 分工情况 (5) 二、详细设计 (6) 原理概述 (6) 主要数据结构(主要代码) (6) 算法流程图 (9) 主流程图 (9) Optimal算法流程图 (10) FIFO算法流程图 (10) LRU算法流程图 (11) .1源程序文件名 (11) . 2执行文件名 (11) 三、实验结果与分析 (11) Optimal页面置换算法结果与分析 (11) FIFO页面置换算法结果与分析 (16) LRU页面置换算法结果与分析 (20) 四、设计创新点 (24) 五、设计与总结 (27)

六、代码附录 (27) 课程设计题目 一、设计内容及要求 编写程序模拟虚拟存储器管理。假设以M页的进程分配了N

块内存(N

数据库课程设计源代码

use kjq111007307 /*创建一个部门信息表 包含“部门号,部门名,部门经理,人数”属性列*/ create table department (depart_no char(2)primary key, depart_name char(30)not null, depart_manage char(6)not null, depart_people int not null ) /*创建一个职位信息表 包含“职位,基本薪资,福利,失业保险,住房公积金”属性列*/ create table position (pos char(30)primary key, basesalary float not null, benefits float not null, insurances float not null, housing_funds float not null ) /*创建一个职工信息表 包含"职工号,职工名,性别,年龄,学历,部门号,职位"属性列*/ create table staff_message (staff_no char(4)primary key, staff_name char(10)not null, staff_sex char(2)check(staff_sex in('男','女')), staff_age int not null, staff_edu char(10)not null, staff_dep char(2)not null, staff_job char(30)not null, foreign key(staff_dep)references department(depart_no), foreign key(staff_job)references position(pos) ) /*创建一个员工考勤表 包含“职工号,年月,迟到,缺勤,加班”属性列*/ create table staff_days (staff_no char(4), month_date char(6), staff_late int not null, staff_absent int not null, workoverdays int not null, primary key(staff_no,month_date) ) /*创建一个薪资表 包含“职工号,年月,奖金,罚金,真实薪资”属性列*/ create table salary (staff_no char(4),

学生成绩管理系统论文

学生成绩管理系统毕业设计论文 【摘要】 本系统依据开发要求主要应用于教育系统,完成对日常的教育工作中学生成绩档案的数字化管理。开发本系统可使学院教职员工减轻工作压力,比较系统地对教务、教学上的各项服务和信息进行管理,同时,可以减少劳动力的使用,加快查询速度、加强管理,以及国家各部门关于信息化的步伐,使各项管理更加规范化。 目前,学校工作繁杂、资料重多,虽然各类管理信息系统已进入高校,但还未普及,而对于学生成绩管理来说,目前还没有一套完整的、统一的系统。因此,开发一套适和大众的、兼容性好的系统是很有必要的。 本系统在开发过程中,注意使其符合操作的业务流程,并力求系统的全面性、通用性,使得本系统不只适用于一家教育机构。在开发方法的选择上,选择了生命周期法与原型法相结合的方法,遵循系统调查研究、系统分析、系统设计和系统实施四个主要阶段进行设计,而在具体的设计上,采取了演化式原型法,随着用户的使用及对系统了解的不断加深,对某一部分或几部分进行重新分析、设计、实施。本论文主要从系统分析、系统设计、系统实施与使用等几个方面进行介绍。 【关键词】成绩管理信息系统信息化数据库https://www.doczj.com/doc/d09564538.html, According to there quirements of developing, the system is mainly applied to education system which manage as the daily teaching education al administration and computeration of teachers and students.Developing grade Management System cannot only ruduce thep resure of the staff and system

教师课程管理系统(c++课程设计源代码)

#include #include #include #include #include #include using namespace std; using std::string; class ke; ostream&operator<<(ostream&dist,ke&k); istream&operator>>(istream&sour,ke&k); class teacher; ostream&operator<<(ostream&dist,teacher&t); istream&operator>>(istream&sour,teacher&t); class ke { protected: static int keID; string keName; char keJB; int keXS; int keJC; int keBH; public: ke(string name="未命名的课程",char jb='0',int xs=0,int jc=0,int bh=0); void show(); friend ostream&operator<<(ostream&dist,ke&k); friend istream&operator>>(istream&sour,ke&k); int getkeJC(){return keJC;} string getkeName(){return keName;} }; int ke::keID=0; ke::ke(string name,char jb,int xs,int jc,int bh) { keID++; bh=keID; keName=name; keJB=jb; keXS=xs; keJC=jc; keBH=bh; } void ke::show() {

学生成绩管理系统复杂数据查询

情境8 学生成绩管理系统复杂数据查询 一、工作目的 1.掌握在一个数据表中实现数据的简单查询 2.掌握同时在多个数据表中实现数据的复合查询 3.掌握实现分组查询 4.掌握对查询结果集排序 5.掌握利用库函数进行数据统计 二、工作任务 任务一、连接查询 1、内连接 查询成绩表(Grade)和课程表(Course)中所有学生的成绩及课程信息。 SELECT sNo,https://www.doczj.com/doc/d09564538.html,o,https://www.doczj.com/doc/d09564538.html,ame,grade FROM Grade INNER JOIN Course ON https://www.doczj.com/doc/d09564538.html,o= https://www.doczj.com/doc/d09564538.html,o 2、外连接 从学生表(Student)、成绩表(Grade)和课程表(Course)中查询学生的学号(sNo)、姓名(sName)、课程名(cName)和成绩(grade)(包括没有选课的同学)。 SELECT xs.sNo, sName, https://www.doczj.com/doc/d09564538.html,ame, grade FROM Student xs LEFT JOIN Grade cj ON cj.sNo = xs.sNo LEFT JOIN Course kc ON https://www.doczj.com/doc/d09564538.html,o = https://www.doczj.com/doc/d09564538.html,o 从学生表(Student)、成绩表(Grade)和课程表(Course)中查询学生的学号(sNo)、姓名(sName)、课程名(cName)和成绩(grade)(包括还没有讲过的新课)。 SELECT xs.sNo, sName, https://www.doczj.com/doc/d09564538.html,ame, grade FROM Grade cj INNER JOIN Student xs ON cj.sNo = xs.sNo RIGHT JOIN Course kc ON https://www.doczj.com/doc/d09564538.html,o = https://www.doczj.com/doc/d09564538.html,o 从学生表(Student)、教师表(Teacher)中查询同姓的教师和学生的姓名。 SELECT LEFT(XS.SNAME,1) 姓氏,XS.SNAME 学生姓名,JS.TNAME 教师姓名 FROM TEACHER JS FULL JOIN STUDENT XS ON LEFT(JS.TNAME,1) = LEFT(XS.SNAME,1) 3、自连接 查询成绩表(Grade)中与学号(sNo)为“082034101”的学生所学的课程相同的学生的学号(sNo)、课程号(cNo)、成绩(grade)。 SELECT cj1.sNo,cj2.sNo,https://www.doczj.com/doc/d09564538.html,o,cj1.grade FROM Grade cj1, Grade cj2 WHERE https://www.doczj.com/doc/d09564538.html,o=https://www.doczj.com/doc/d09564538.html,o AND cj1.sNo<>’082034101’ AND cj2.sNo=’082034101’ 在学生表(Student)中查询年龄相差2岁的每一对学生的学号(sNo)、出生日期(sBirthday) 。SELECT xs1.sNo,xs1.sBirthday,xs2.sNo,xs2.sBirthday FROM Student xs1,Student xs2 WHERE YEAR(xs1.sBirthday)=YEAR(xs2.sBirthday)+2 任务二、嵌套查询 查询哪些课程(cName)被学号(sNo)为“082034101”的学生所学习。 SELECT cName FROM Course WHERE cNo IN (SELECT cNo FROM Grade WHERE sNo=’082034101’) 查询所有成绩(grade)都及格的学生信息。

EXCEL中对学生成绩自动排名

E X C E L中对学生成绩自 动排名 Revised final draft November 26, 2020

E x c e l中怎样实现自动排名 在学生成绩统计中,经常要对成绩排名次(老师掌握),一般的做法是将成绩排序(降序)后,将第一名和第二名手工填入1,2,然后选中这两个单元格,将鼠标指针移向选中部分的右下角,待其变为黑色的十字后,左键双击该十字,就能产生整列的名次。但这也会带来一个麻烦,那就是如果总分相同,按通常的情况,他们的名次应该是相同的,不过,自动填充功能是不会做到这一点的。所以还需要手工修改有关的名次。如果有成百上千的数据,岂不会弄得头都大了。 1.在“总分”列的F2单元格输入“=SUM(C2:E2)”,然后按下回车键,第一个学生的总分就会计算出来了。 图1原始成绩表 2.在“名次”列的“G2”单元格输入“=RANK(F2,$F$2:$F$7)”,然后按下回车键,第一位学生的名次也就出来了。怎么,名次不对?不要紧,往后看。对了,还要说一句,那就是上面公式中那个“$F$7”是“总分”栏中的最后一个数据的位置,实际中可以根据表格中的实际情况来填写。 3.选中F2和G2单元格,然后拖动填充柄向下至最后一个单元格,看到了吗?所有人的总分和名次都在瞬间完成了(如图2)。而且更妙的是,按照这种方法,如果总分相同,名次也是相同的。数据越多,这种方法就越能体现出它的优势。试试看吧! 图2排好序的表 最后要提醒的是,在用于排名次的“=RANK(F2,$F$2:$F$7)”公式中,可千万不要忽略了符号“$”呀!名次到底能不能排得准确无误,它可是起到很重要的作用呢。 现在,我们来看看如何更快、更好地排出一个无规律的数列。 1.在“总分”列的F2单元格输入“=SUM(C2:E2)”,然后按下回车键,第一个学生的总分就会计算出来了。 2.在“名次”列的“G2”单元格输入“=RANK(F2,$F$2:$F$7)”,(意思是计算F2的数值在F2到F7的名次,注意F7后加逗号,表示将数据按降序排名,逗号后加上1表示,对该列数据按升序排名)然后按下回车键,第一位学生的名次也就出来了。怎么,名次不对?不要紧,往后看。对了,还要说一句,那就是上面公式中那个“$F$7”是“总分”栏中的最后一个数据的位置,实际中可以根据表格中的实际情况来填写。 3.选中F2和G2单元格,双击填充柄(黑色的十字),看到了吗?所有人的总分和名次都在瞬间完成了。而且更妙的是,按照这种方法,如果总分相同,名次也是相同的。数据越多,这种方法就越能体现出它的优势。试试看吧! 最后要提醒的是,在用于排名次的“=RANK(F2,$F$2:$F$7)”公式中,可千万不要忽略了符号“$”呀!名次到底能不能排得准确无误,它可是起到很重要的作用呢。 如何利用Excel实现名次统计

c语言课程设计源代码

c语言课程设计源代码标准化管理处编码[BBX968T-XBB8968-NNJ668-MM9N]

学校运动会管理系统问题描述: (1) 初始化输入:N-参赛院系总数,M-男子竞赛项目数,W-女子竞赛项目数; (2) 各项目名次取法有如下几种: 取前5名:第1名得分 7,第2名得分 5,第3名得分3,第4名得分2,第5名得分 1; (3) 由程序提醒用户填写比赛结果,输入各项目获奖运动员的信息。 (4) 所有信息记录完毕后,用户可以查询各个院系或个人的比赛成绩,生成团体总分报表,查看参赛院系信息、获奖运动员、比赛项目信息等。 程序代码: #include<> #include<> #define N 3 #define M 3 #define W 3 char* n_number[3]={"1","院系2","院系3"}; char* m_number[3]={"1","男项2","男项3"};

char* w_number[3]={"女项1","女项2","女项3"}; int size=2; struct student { char num[10]; char name[20]; char xiangmu[20]; int score; char ximing[20]; }stu[100],temp; void input() um,&stu[i].name,&stu[i].xiangmu,&stu[i].score,&stu[i].ximing); iming,n_number[0])==0) iming); iming,n_number[h])==0) for(int s=0;s

学生成绩处理系统

学生成绩处理系统 (成果总结) 《学生成绩处理系统》是针对就业教育学生考试成绩进行处理和汇总的数据处理系统。该系统的建立使就业教育学生的成绩管理更规范化、便捷化和自动化,在实际运用中有较强的推广性。该系统共分为原始成绩录入、总评成绩处理、补考成绩处理三大模块。现本课题已经完成,以下为课题编写内容。 第一部分系统策划与分析 一、确定系统开发平台 根据课题要求及实现功能的需要,结合系统平台的易操作性和直观性,最终确定使用Microsoft Office Access 2003作为本系统开发平台,同时以Microsoft Office Excel 2003中的工作报表作为源数据库链接。 二、确定系统功能模块 结合目前学生成绩处理的实际要求,确定本系统功能模块主要有原始成绩录入模块、总评成绩处理模块、补考成绩处理模块。

原始成绩录入 模块 平时成绩录入卷面成绩录入科目及比例分 配 各科目卷面总 和成绩及排名 三、系统主要功能模块分析 1、原始成绩录入模块 此模块主要实现学生原始成绩的录入(包括平时成绩和卷面成绩)、科目及比例分配、各科目卷面总和成绩及排名。 2、总评成绩处理模块 此模块是本系统的核心模块,主要实现各科目总评成绩统计、总分及名次、不及格人次数统计、优秀优良率统计、学生平均成绩分析图。 3、补考成绩处理模块 此模块主要实现各科目参加补考学生的统计,生成补考通知单。 第二部分系统设计与编写 一、原始成绩录入模块设计与编写 1、原始成绩录入模块功能分解图 2、原始成绩录入模块设计与编写 2.1 平时成绩录入和卷面成绩录入 平时成绩和卷面成绩是组成学生总评成绩的原始数据,所有的成绩

操作系统(一个小型操作系统的设计与实现)课程设计

南通大学计算机科学与技术学院操作系统课程设计报告 专业: 学生姓名: 学号: 时间:

操作系统模拟算法课程设计报告 设计要求 将本学期三次的实验集成实现: A.处理机管理; B.存储器管理; C.虚拟存储器的缺页调度。 设计流程图 主流程图 开始的图形界面 处理机管理存储器管理缺页调度 先来先服务时 间 片 轮 转 首 次 适 应 法 最 佳 适 应 法 先 进 先 出 L R U 算 法

A.处理机调度 1)先来先服务FCFS N Y 先来先服务算法流程 开始 初始化进程控制块,让进程控制块按进程到达先后顺序让进程排队 调度数组中首个进程,并让数组中的下一位移到首位 计算并打印进程的完成时刻、周转时间、带权周转时间 其中:周转时间 = 完成时间 - 到达时间 带权周转时间=周转时间/服务时间 更改计时器的当前时间,即下一刻进程的开始时间 当前时间=前一进程的完成时间+其服务时间 数组为空 结束

2)时间片轮转法 开始 输入进程总数 指针所指的进程是 否结束 输入各进程信息 输出为就绪状态的进程的信息 更改正在运行的进程的已运行时间 跳过已结束的程序 结束 N 指向下一个进程 Y 如果存在下一个进程的话 Y N 输出此时为就绪状态的进程的信息 时间片轮转算法流程图

B.存储器管理(可变式分区管理) 1)首次适应法 分配流程图 申请xkb内存 由链头找到第一个空闲区 分区大小≥xkb? 大于 分区大小=分区大小-xkb,修改下一个空闲区的后向指针内容为(后向指针)+xkb;修改上一个空闲区的前向指针为(前向指针)+xkb 将该空闲区从链中摘除:修改下一个空闲区的后向地址=该空闲区后向地址,修改上一个空闲区的前向指针为该空闲区的前向指针 等于 小于延链查找下 一个空闲区 到链尾 了? 作业等待 返回是 否 登记已分配表 返回分配给进程的内存首地址 开始

小型公司管理系统C++课程设计(含源代码)

C++程序设计课程设计报告 课题: 小型公司工资管理系统 专业班级: 学号: 姓名: 指导教师: 评阅意见: 评定成绩: 指导老师签名:

目录 1.设计系统的目的意义 (1) 2.系统需求、功能分析 (2) 3. 数据结构表 (3) 4. 数据测试表 (5) 5. 运行和调试 (7) 6. 课程心得体会 (16) 参考书目 (17) 附录 (18)

课程设计报告内容: 1、设计系统的目的意义 本次课程设计所编辑的C++程序是为了建立“小型公司工资管理系统”。 通过对该系统的建立进一步掌握面向过程和面面相对象程序的设计的几本方法和编程技巧,巩固所学理论知识,是理论与实践相结合,提高分析问题、 解决问题的能力。 具体一点主要是为了进一步熟悉C++中类的概念、类的继承、抽象类、虚函数、虚基类、多态和文件的输入/输出等内容的实现方式。了解系统开发的需求分析、类层次设计、模块分析、编码测试、模块组装与整体调试的全过程;逐 步熟悉程序设计的方法,并养成良好的编程习惯。

2、系统需求、功能分析 A、公司主要有四类雇员:经理、技术人员、销售人员、销售经理。要求储存雇 员的编号、姓名、性别、所在部门、级别等信息,并进行工资计算。 B、工资的计算方法 (1)经理:领取固定月薪,固定月薪5000元; (2)技术人员:按小时领取月薪,工作时间*小时工资(80元/小时); (3)销售人员:按巩固销售额领取月薪,0.33*销售额; (4)销售经理:既拿固定月薪也领取销售提成,0.33*销售额+固定月薪(5000元)。 C、功能分析 (1)添加功能:程序能够任意添加上述四类人员的记录,可提供选择界面供用户选择所要添加的人员类别,要求员工的编号要唯一,如果添加了重复编号的记录时,则提示数据添加重复并取消添加。 (2)查询功能:可根据编号、姓名等信息对已添加的记录进行查询,如果未找到,给出相应的提示信息,如果找到,则显示相应的记录信息; (3)显示功能:可显示当前系统中所有记录,每条记录占据一行。 (4)编辑功能:可根据查询结果对相应的记录进行修改,修改时注意编号的唯一性。 (5)删除功能:主要实现对已添加的人员记录进行删除。如果当前系统中没有相应的人员记录,则提示“记录为空!”并返回操作;否则,输入要删除的人员的编号或姓名,根据所输入的信息删除该人员记录,如果没有找到该人员信息,则提示相应的记录不存。 (6)统计功能:能根据多种参数进行人员的统计。例如,统计四类人员数量以及总数,或者统计男、女员工的数量,或者统计平均工资、最高工资、最低工资等信息。 (7)读取功能:可将保存在文件中的人员信息读入到当前系统中,供用户进行使用。 (8) 退出功能:退出程序。

计算机操作系统课程设计

计算机操作系统课程设计 班级:计091-1 姓名: 学号: 使用语言:C++ 指导老师: 学院:

一、系统要求 1、实验目的 通过一个简单多用户文件系统的设计,加深理解文件系统的内部功能及内部实现。 2、实验内容 为linux系统设计一个简单的二级文件系统。要求做到以下几点: (1)可以实现下列几条命令(至少4条); login 用户登陆 dir 列文件目录 create 创建文件 delete 删除文件 open 打开文件 close 关闭文件 read 读文件 write 写文件 (2)列目录时要列出文件名、物理地址、保护码和文件长度; (3)源文件可以进行读写保护。

二、系统分析 1、设计思想 本文件为二级文件系统,即要实现对文件的增删改查,同时又具备登陆系统、注册用户的功能,各个用户之间的文件系统互不干扰。 本文件系统采用两级目录,其中第一级对应于用户账号,第二级对应于用户帐号下的文件。另外,为了简便文件系统未考虑文件共享,文件系统安全以及管道文件与设备文件等特殊内容。 系统采用结构体来存储用户、文件目录、文件数据内容: 0 48*5 48*5+44*50 48*5+44*50+264*200 每个分区都是由结构体组成,每个个去的结构体的个数由格式化系统是决定。

整个系统的编码构成主要分为: Allstruct.h 定义了每个分区的结构体; Mysys.h 声明了对系统操作的各种方法;Myuserfile.h 声明了对文件操作的各种方法; Mymain.cpp 整个系统的主函数,操作入口; Mysys.cpp 包含了mysys.h,实现了操作系统的各种方法;Myuserfile.cpp 包含了myuserfile.h,实现了操作文件的各种方法; 2、主要数据结构 Allstruct.h文件的内容: struct s_user //用户区结构体 { long isuse; //是否使用 char name[20]; //用户名 char psd[20]; //密码 long address; //目录地址 };

SP课程设计QQ登陆系统含源代码

目录 1 前言 ........................................................................................................................... 页码 1.1 问题提出 ..................................................... 页码 1.2 研究意义 ..................................................... 页码 2 系统需求分析 ............................................................................................................. 页码 2.1 系统功能分析........................................................................................................ 页码 2.2 系统功能模块设计................................................................................................ 页码 3 数据库的概念结构设计............................................ 页码 3.1数据抽象...................................................... 页码 3.2设计全局概念模式.............................................. 页码 4 数据库的逻辑设计................................................. 页码 4.1形成初始的关系模式............................................ 页码 4.2关系模式的规范化处理.......................................... 页码5系统的实现与调试 ................................................. 页码6 总结............................................................... 页码参考文献 .......................................................................................................................... 页码

C++课程设计 学生成绩排名系统

淮 海 工 学 院 计算机工程学院
课程设计报告
设计名称: 姓 名: 专业班级: 系 (院): 设计时间: 设计地点:
指导教师评语:
C++程序设计课程设计 学 号:
成绩:
签名:
年月日

C++程序设计课程设计报告
第 2 页 共 30 页
1.课程设计目的
本课程设计是网络工程专业重要的实践性环节之一,是在学生学习完《C++程序设计》课程后进行的一 次全面的综合练习。本课程设计的目的和任务:
(1)巩固和加深学生对 C++课程的基本知识的理解和掌握; (2)掌握 C++编程和程序调试的基本技能; (3)利用 C++进行简单软件设计的基本思路和方法; (4)提高运用 C++解决实际问题的能力; (5)掌握书写程序设计说明文档的能力。
2.课程设计任务与要求:
要求: 1) 设计题目、设计要求以及系统功能需求分析;
2) 总体设计:包括模块说明、模块结构图和系统流程图;
3) 详细设计:包括主要功能模块的算法设计思路以及对应的工作流程图;
4) 源程序代码及设计成果:完整源程序清单和设计成果;
5)总结: 调试分析过程描述:包括测试数据、测试输出结果以及对程序调试过程中存在问题的思考(列出 主要问题的出错现象、出错原因、解决方法及效果等)包括课程设计过程中的学习体会与收获、对 C++和本 次课程设计的认识等内容.;
任务: 设计一个学生成绩排名系统,该系统的主要功能如下: 1) 具备对成绩的管理功能(添加、删除、排序) 2) 具备对成绩的统计功能(最高分,最低分,平均分,及格率等) 3) 具备按学号、姓名、或课程名查询成绩的功能。 4)学生成绩应该保存在文件中。
备注:成绩记录以下信息:班级,学号,姓名,课程名,成绩(百分制)。可以用能表示学生成绩的结构体 数组存储数据。

操作系统课程设计题目

操作系统课程设计 一、课程设计题目 实现一个模拟操作系统。 二、课程设计的目的 通过模拟操作系统原理的实现,加深对操作系统工作原理理解,进一步了解操作系统的实现方法,并可练习合作完成系统的团队精神和提高程序设计能力。 三、小组人数 建议3~4人一组共同完成模拟系统的实现。 四、编程语言 建议使用VC、VB、C#、Java等Windows环境下的程序设计语言,以借助这些语言环境来模拟硬件的一些并行工作。 五、课程设计内容 模拟采用多道程序设计方法的单用户操作系统,该操作系统包括进程管理、存储管理、设备管理、文件管理和用户接口四部分。 六、课程设计具体要求和内容 1.文件管理和用户接口 文件管理和用户接口部分实现的主要是单用户的磁盘文件管理部分,包括文件的逻辑结构、物理结构、目录、磁盘分配回收、文件的保护和用户接口的实现。 ⑴文件的逻辑结构 文件的逻辑结构采用流式结构; 文件的内容均采用文本文件; 系统中有两种文件,一种是存放任意字符的文件,一种是可执行文件。可执行文件的内容就是模拟系统内进程的程序体。 文件中要有一种特定命令的“可执行”文件,该文件中的命令有: x=?; 给x赋值一位数 x++; x加1 x--; x减1 !??;第一个?为A,B,C中某个设备,第二个?为一位数,表示使用设备的时间(由于没有实际设备,所以无法知道设备何时工作完成,所以假定一个数,这个数随着系统时间增加而递减,减到0时,认为是设备工作完成); end. 表示文件结束,同时将结果写入文件out,其中包括文件路径名和x的值。 ⑵磁盘模拟 用一个文件disk1模拟磁盘c,用一个文件disk2模拟磁盘d。两个磁盘一样大小,磁盘的每个盘块64字节,模拟磁盘共有128块。第0、1块存放文件分配表,第2块存放根目录,其余存放子目录和文件。 ⑶目录结构 目录结构采用树型目录结构。 ①目录项内容(8个字节): 目录名、文件名:3个字节; 扩展名:2个字节(可执行文件扩展名为ex,目录没有扩展名); 目录、文件属性:1字节(1位标识是文件还是目录,1位标识只读还是非只读,1位是隐藏属性,标识显示还是不显示); 起始盘块号:1个字节; 文件长度:1字节(目录没有长度)。

相关主题
文本预览
相关文档 最新文档