第一篇:46题任务书-学生成绩管理系统
编号:46
河北联合大学
《软件设计基础-C++》
课程设计任务书
学院班级设计人__成绩____
一、题目:学生成绩管理系统
二、目的与要求:
1. 目的:
(1)掌握面向对象程序设计的基本思路和方法;
(2)了解系统开发的需求分析、类层次设计、模块分解、编码测试、模块组装与整体调试的全过程;
2. 基本要求:
(1)在VC++6.0环境中,学会调试程序的方法,及时查究错误,独立调试完成。
(2)程序调试通过后,完成程序文档的整理,加必要的注释。
3.创新要求:
在基本达到题目要求外,进行创新设计,如设计模糊查询。
4.书写设计报告的要求
设计报告中包含以下几个方面:
(1)设计题目
(2)总体设计
① 概述所作系统的功能及用途
② 用自顶而下或自底而上的方法,划分功能模块。
③ 确定各模块的算法
(3)根据算法画出模块图
(4)列出程序清单,并加以必要的注释
(5)写出调试程序的方法
(6)指出所设计问题的不足和改进方案
(7)总结本次设计的收获及心得
三、设计方法和基本原理:
1. 问题描述:
编制一个简单的“学生成绩管理系统”,要求其主要功能有:数据输入,成绩排序,成绩查询,成绩统计,奖学金评定,打印等基本功能。
2. 问题的解决方案:
1.用静态数组或动态数组
2.排序模块,应针对各门课程的成绩或总分进行排序:查询模块最好设计为可按学号,姓名,成绩任意属性进行;统计模块包括统计及格人数,不及格人数等功能。
编号:46
3.可调用库函数来美化界面。
四、主要技术问题的描述:
运用数组和库函数实现学生成绩的录入、统计、查询、修改、删除、输出。
(1)定义类类型1)主函数main():定义学生结构体数组,调用录入、统计等函数对成绩表进行处理;
(2)录入函数Input():输入学生成绩;
(3)统计函数Statistic():计算平均成绩;
(4)查询函数Lookup():查询指定学号学生成绩记录;
(5)修改函数Modify():修改指定学号学生成绩记录;
(6)删除函数Delete():删除指定学号学生记录;
(7)输出函数Output():输出班级所有学生成绩记录;
(8)排序函数Sort():按平均分对学生成绩记录项进行降序排序;
(9)插入函数Insert():按平均分顺序插入新记录。
另外,学生数据可写入文件,也可从文件中读取。
五、课程设计时间:年月日至年月日
六、课程设计的考核方式及评分方法
1.考核方式
课程设计结束时,在机房当场验收。
(1)教师提供测试数据,检查运行结果是否正确。
(2)回答教师提出的问题。
(3)学生提交课程设计报告(A4纸打印),并将电子文档和源程序发至ftp服务器:ftp://210.31.197.23
用户名和密码按照指导教师告知的即可。
2.评分方法
(1)出勤率
(2)课程设计准备工作
(3)课程设计期间纪律
(4)课程设计运行结果
(5)课程设计报告
(6)答辩情况
指导教师签字:
系主任签字:
日期:年月日
第二篇:VB学生成绩管理系统任务书
河北联合大学
《软件设计基础-VB》课程设计任务书
学院班级设计人成绩
一、题目:学生成绩管理系统
二、目的与要求:
1.目的:
培养学生综合利用VisualBasic6.0语言进行程序设计的能力,主要培养学生使用ACCESS数据库和ADO控件设计信息管理类软件。
2.基本要求:
① 要求用ACCESS搭建数据库。
② 使用ADO控件实现与数据库的连接。
③ 使用MSChart图表控件绘制各种类型的图表;使用MSFlexGrid表格控件显示数据信息。④ 程序界面美观,运行无差错
3.创新要求:
在基本要求达到后,进行创新设计:
(1)允许更改密码。
(2)增加排名次的功能。
(3)可以按院系、专业和年级计算平均成绩并绘制图表。
(4)用户可以添加新的院系和专业名称。
三、设计方法和基本原理:
1.功能要求:
设计一个“学生成绩管理系统”程序,实现对学生成绩的添加、修改、删除、查询和图表绘制,具体如下:
(1)运行程序先进入“登录”界面,要求输入数据库密码,如果密码错误,给出提示。
(2)经过密码检验后,显示主界面,以表格形式显示数据库中所有学生的成绩信息。
(3)“添加”:其中院系、专业和年级使用组合框进行选择。
(4)“修改”:只允许修改学生成绩,不允许修改姓名、院系、专业和年级。
(5)“删除”:可以删除学生信息,删除前进行确认。
(6)“查询”:可以根据院系、专业和年级进行查询。
(7)“图表绘制”:分别以二维条形图、二维圆饼图和三维条形图的形式显示学生成绩中优、良、中、及格和不及格的分布情况。
2.问题的解决方案:
40-1
根据问题描述,可以将问题解决分为以下几个方面:
① 进行需求分析确定数据库的结构,建立相应的数据表。
② 利用ADO控件与数据库连接。
③ 设计主界面,要求有菜单、工具栏和状态栏,具体内容按功能要求自行设计。
④ 其他界面自行设计,满足基本功能要求即可。
四、难点与提示:
(1)本题目中数据库文件的设计是关键,可按如下方法:
创建一个数据库文件scores.mdb,包含三个数据表:院系、专业和成绩。“院系”表中保存院系代号和名称;“专业”表中保存专业代号和名称,以及所属院系的代号;“成绩”表中保存学生姓名、院系代号、专业代号、年级和各科成绩。
(2)ADO控件和数据库的连接代码:
provider = “provider=Microsoft.jet.oledb.4.0”
datasource = “data source=” & App.Path & “scores.mdb”
With Adodc1
.Mode = adModeReadWrite
.ConnectionString = provider & “;” & datasource
.CommandType = adCmdTable
.RecordSource = “yx”
.Refresh
End With
五、课程设计时间:2012年5月10日至2012年7月1日
六、课程设计进行地点:学校机房
七、书写设计报告的要求:
设计报告中包含以下几个方面:
1.设计题目
2.设计思路
①划分功能模块
②确定各模块的算法
3.用图示的方式给出过程或函数之间的调用关系
4.列出程序清单,并加以必要的注释
5.对该设计题目有何更完善的方案
6.通过本次设计,有何收获及心得体会
八、课程设计的考核方式及评分方法
40-2
1.考核方式
课程设计结束时,学生要提交课程设计报告(A4纸打印),并将电子文档和源程序上传至课程设计服务器中:
ftp://210.31.197.23
找到自已指导教师的文件夹后,进入班级文件夹,再找到自己的文件夹,然后将文档复制到该文件夹中即可。
2.评分方法
(1)出勤率
(2)课程设计准备工作
(3)课程设计期间纪律
(4)课程设计运行结果
(5)课程设计报告
(6)答辩情况
指导教师: 系主任签字:日期:40-3 年月日
第三篇:C语言课程设计任务书(学生成绩管理系统)
课程设计题目:简单的学生成绩管理的程序
要求:
一、由键盘输入原始数据。原始数据内容如下:
学号姓名C程序设计高等数学英语线性代数
1王..80808080
2张..90909090
注:要求至少有20个学生的原始数据
二、实现以下功能。
程序要求主函数是一个功能选择菜单,其它各功能用函数实现。功能要求如下:
1、原始数据的输入
2、计算每位同学的平均分
3、计算每门课程的平均分
4、计算各分数段(90-100、80-89、60-79、60以下)的人数
5、对这些同学的成绩按平均分排序,给出名次。
6、对原始数据可以进行增、删、改的编辑操作。
7、按学号查询学生。找到则显示该生信息,否则提示未找到。
8、原始数据可以保存为文件,也可以从文件载入。
注:程序统计输出结果如下:
学号姓名C程序设计高等数学英语线性代数平均分名次 1王..80808080802 2张..90909090901
…
各科平均分8585858585
C程序设计高等数学英语线性代数平均分
90-10011111
80-8911111
60-6900000
60以下00000
第四篇:学生成绩管理系统
//*学生成绩管理系统*//
#include
#define N 3
struct student
{
int no;
char name[20];
float english;
float computer;
float math;
float average;
};
void getclass(struct student *class_gishui)
{
int i;
printf(“请输入%d个学生的学号 姓名 英语 计算机 数学n”,N);
for(i=0;i { printf(“第%d个学生”,i+1); scanf(“%d%s%f%f%f”,&class_gishui[i].no,&class_gishui[i].name,&class_gishui[i].english,&class_gishui[i].computer,&class_gishui[i].math); } } void print_class(struct student *class_gishui) { int i; for(i=0;i { class_gishui[i].average=(class_gishui[i].english+class_gishui[i].computer+class_gishui[i].math)/3; } printf(“学生信息表如下:n”); printf(“学号tt姓名tt英语tt计算机tt数学tt平均成绩n”); for(i=0;i printf(“%dtt%stt%ft%ft%ft%fn”,class_gishui[i].no,class_gishui[i].name,class_gishui[i].english,class_gishui[i].computer,class_gishui[i].math,class_gishui[i].average); } void paixu(struct student *class_gishui) { int i,j,flag; struct student t[1]; for(i=0;(i { flag=0; for(j=0;j if(class_gishui[j].average>class_gishui[j+1].average) { t[0]=class_gishui[j]; class_gishui[j]=class_gishui[j+1]; class_gishui[j+1]=t[0]; flag=1; } if(flag==0) break; } printf(“排序后学生成绩为:n”); printf(“学号t姓名t英语tt计算机tt数学tt平均成绩n”); for(i=0;i printf(“%dt%st%ft%ft%ft%fn”,class_gishui[i].no,class_gishui[i].name,class_gishui[i].english,class_gishui[i].computer,class_gishui[i].math,class_gishui[i].average); } void main() { struct student class_gishui[N]; getclass(class_gishui); print_class(class_gishui); paixu(class_gishui); } Option Explicit Option Base 1 Dim st()As String Dim grade()As chengji, str1$, str2$, prog()As kecheng Private Sub chengji_Click()' 输出序号、成绩及分数 Cls Dim i% Print str1 For i = LBound(grade)To UBound(grade)Print grade(i).xh;grade(i).xm;Space(4Len(Trim(grade(i).xm)));grade(i).score(1);grade(i).score(2);Spc(5);grade(i).score(3);Spc(8);grade(i).score(4);Spc(8);grade(i).score(5);Spc(4);grade(i).aver Next i End Sub Private Sub kecheng_Click()'在窗口输出课程的内容 Cls Dim i% Print str2 For i = LBound(prog)To UBound(prog)Print prog(i).bh;Spc(12);prog(i).name;Spc(12);prog(i).xf Next i End Sub Private Sub paiming_Click()'利用加权平均分排名 Dim i%, j%, m%, n%, p% Cls Print str1 & “ 加权平均分” & “ 排名” m = LBound(grade): n = UBound(grade)For i = m To n p = 1 For j = 1 To n If grade(i).aver < grade(j).aver Then p = p + 1 grade(i).rank = p Next j Next i For i = m To n Print grade(i).xh;grade(i).xm;Space(4-Len(Trim(grade(i).xm)));grade(i).score(1);grade(i).score(2);Spc(5);grade(i).score(3);Spc(8);grade(i).score(4);Spc(8);grade(i).score(5);Spc(2);grade(i).aver, grade(i).rank Next i End Sub Private Sub pjf_Click()Cls Dim i%, j%, n%, m%, sum% m = UBound(prog): n = UBound(grade)Print str2;Spc(4);“平均分” For i = 1 To 5 sum = 0 For j = 1 To n sum = sum + grade(j).score(i)prog(i).pjf = sum / n Next j Print prog(i).bh;Spc(10);prog(i).name;Spc(10);prog(i).xf;Spc(10);prog(i).pjf Next i End Sub Private Sub renshu_Click()Cls Dim bn(1 To 5, 5 To 9)As Integer, t As Integer, x As Integer, i%, j%, m%, n% n = UBound(prog): m = UBound(grade)Print “范围”;Spc(1);“<60”;Spc(7);“60~70”;Spc(7);“70~80”;Spc(7);“ 80~90”;Spc(7);“90~100” For j = 1 To n For i = 1 To m Select Case grade(i).score(j)Case 0 To 60 bn(j, 5)= bn(j, 5)+ 1 Case 60 To 70 bn(j, 6)= bn(j, 6)+ 1 Case 70 To 80 bn(j, 7)= bn(j, 7)+ 1 Case 80 To 90 bn(j, 8)= bn(j, 8)+ 1 Case 90 To 100 bn(j, 9)= bn(j, 9)+ 1 End Select Next i Print prog(j).name;bn(j, 5), bn(j, 6), bn(j, 7), bn(j, 8), bn(j, 9)Next j End Sub Private Sub bujige_Click()Cls Dim i%, j%, t% Print Spc(2);“学号”;Spc(5);“姓名”;Spc(5);“不及格课程”;Spc(6);“学分”;Spc(4);“成绩” For i = 1 To UBound(grade) t = 0 For j = 1 To UBound(prog) If grade(i).score(j)< 60 Then t = t + 1 End If If t > 1 And grade(i).score(j)< 60 Then Print Tab(25);prog(j).name;Tab(38);Format(prog(j).xf, “0.0”);Spc(2);grade(i).score(j) ElseIf t = 1 And grade(i).score(j)< 60 Then Print Spc(3);grade(i).xh;grade(i).xm;Tab(25);prog(j).name;Tab(38);Format(prog(j).xf, “0.0”);Spc(4);grade(i).score(j) End If Next j Next i End Sub Private Sub youdengsheng_Click()Cls Dim i%, j%, t% Print Tab(3);“学号”;Spc(6);“姓名”;Spc(4);“英语”;Spc(4);“数学”;Spc(4);“VB”;Spc(3);“物理”;Spc(3);“专业概论”;Spc(3);“平均成绩”;Spc(3);“名次” For i = 1 To UBound(grade) t = 0 For j = 1 To UBound(prog) If grade(i).score(j)>= 95 Then t = t + 1 End If Next j If grade(i).aver >= 90 Or grade(i).rank <= 3 Or(t = 2 And grade(i).aver >= 85)Then Print Tab(3);grade(i).xh;Tab(13);grade(i).xm;Tab(21);grade(i).score(1);Spc(3);grade(i).score(2);Spc(3);grade(i).score(3);Spc(3);grade(i).score(4);Spc(3);grade(i).score(5);Spc(8);Format(grade(i).aver, “0.00”);Spc(5);grade(i).rank End If Next i End Sub Private Sub chengjitiao_click()Cls Dim i% For i = LBound(grade)To UBound(grade)Print “学号”;Spc(6);“姓名”;Spc(8);“英语”;Spc(6);“数学”;Spc(4);“体育”;Spc(6);“物理”;Spc(5);“化学”;Spc(6);“加权平均分”;Spc(5);“平均分”;Spc(5);“名次” Print Spc(2);grade(i).xh;grade(i).xm;Spc(0);grade(i).score(1);Spc(5);grade(i).score(2);Spc(5);grade(i).score(3);Spc(5);grade(i).score(4);Spc(5);grade(i).score(5);Spc(9);grade(i).aver;Spc(7);grade(i).aver;Spc(5);grade(i).rank Next i End Sub第五篇:简易学生成绩管理系统