高校学籍管理系统Word格式文档下载.docx
《高校学籍管理系统Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《高校学籍管理系统Word格式文档下载.docx(31页珍藏版)》请在冰豆网上搜索。
三、答辩与评分标准:
1、完成基本功能:
40分;
2、设计报告及使用说明书:
3、设置错误或者按照要求改变结果:
10分;
4、回答问题:
10分。
四、
教材及参考书
朱战立等著,C++面向对象程序设计,人民邮电出版社;
郑莉著,C++语言程序设计(含实验指导书)。
清华大学出版社(结构化程序设计部分)
钱能主编,C++程序设计教程,清华大学出版社,2000.11
戴锋编著,VisualC++程序设计基础,清华大学出版社,2001.4
吕日著,C++程序设计教程,清华大学出版社,
C++大学教程,美国HarveyM.Deitel等
五、课程设计时间安排
1、班级:
通信工程0801/02
2、指导教师:
3、时间安排:
上机时间:
十九周周一下午14:
00-18:
00
周二下午14:
十九周周三上午08:
00-12:
附:
选题方案:
所选题目根据学生学号确定,学号模6加1,即(学号%6+1)。
如你的学号为17,则所选题目号为:
17%6+1==6(题目6)。
六、设计项目:
题目3:
高校学籍管理系统
(一)、课程设计题目:
高校学籍管理系统
(二)、目的与要求:
1、目的:
(1)要求学生达到熟练掌握C++语言的基本知识和技能;
(2)基本掌握面向对象程序设计的基本思路和方法;
(3)能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题。
2、基本要求:
(1)要求利用面向对象的方法以及C++的编程思想来完成系统的设计;
(2)要求在设计的过程中,建立清晰的类层次;
3、创新要求:
在基本要求达到后,可进行创新设计,如根据查找结果进行修改的功能。
4、写出设计说明书
(三)、设计方法和基本原理:
1、功能要求
要求完成以下功能:
1)能够从屏幕上读取一个学生的信息并将信息存入到数据文件中。
2)能够将指定的信息从文件中删除。
3)能够按编号、姓名对学生的信息进行检索并将检索结果显示在屏幕上。
4)可以统计全部学生的总成绩,及其在班上的排名。
5)能够统计各科的平均成绩及及格率。
6)要求有错误提示功能,例如性别只能输入男女,输入错误提示重新输入。
7)如果检索不到相应的信息应提示用户。
2、问题的解决方案:
根据系统功能要求,可以将问题解决分为以下步骤:
a)
写出需求分析(做什么)
b)
分析系统中的各个实体之间的关系及其属性和行为;
c)
根据问题描述,设计系统的类层次;
d)
完成类层次中各个类的描述(包括属性和方法);
e)
完成类中各个成员函数的定义;
f)
用户界面的设计
g)
分析系统功能模块(系统流程图)
h)
代码编写
i)
功能调试;
j)
完成系统总结报告以及系统使用说明书。
目录
一、需求分析3
1.系统设计目的与意义3
2.系统功能需求(系统流程图)3
2.系统功能流程图4
3.输入输出的要求4
二、总体分析5
1.系统功能分析5
2.系统功能结构图5
三、详细设计6
1.类设计:
6
三、界面设计与各功能模块的实现8
1.界面设计8
四、系统调试10
1.首页进入学籍管理系统主菜单10
2录入学生信息界面:
10
3.显示学生信息界面11
4.查找学生信息界面11
5.删除学生信息界面12
6.修改学生信息12
7.统计学生信息:
13
五、使用说明及心得体会14
六、附件15
一、需求分析
1.系统设计目的与意义
要求用C++面向程序设计语言编写一高校学籍管理系统,
1)要求学生达到熟练掌握C++语言的基本知识和技能;
2)基本掌握面向对象程序设计的基本思路和方法;
3)能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题。
2.系统设计的意义:
系统要能够对相应的数据进行很好的测试,系统的统计对每一科的总成绩,平均成绩,及格律都进行了统计;
系统数据的录入除可以手工录入外,还可以采用文件的录入;
系统统计学生的基本信息较全面,包括学号,姓名,民族,政治面貌,身份证号,生日,性别,数学、英语、计算机的成绩;
程序中查找运用了两种查找方式即学号查找和姓名查找。
2.系统功能需求(系统流程图)
1.要求完成以下功能:
2.系统功能流程图
3.输入输出的要求
1.输入的要求:
通过主函数体调用其他函数应用系统主控界面包括学生信息录入,查找等功能模块。
学生信息录入功能完成学生信息和成绩的输入。
记录查询功能可以对数据各分类的记录进行查询。
2.输出的要求:
1)能够按编号、姓名对学生的信息进行检索并将检索结果显示在屏幕上。
2)可以统计全部学生的总成绩,及其在班上的排名。
3)能够统计各科的平均成绩及及格率。
4)如果检索不到相应的信息应提示用户
二、总体分析
1.系统功能分析
能够从屏幕上读取一个学生的信息并将信息存入到数据文件中。
能够将指定的信息从文件中删除。
能够按编号、姓名对学生的信息进行检索并将检索结果显示在屏幕上。
可以统计全部学生的总成绩,及其在班上的排名。
能够统计各科的平均成绩及及格率。
要求有错误提示功能,例如性别只能输入男女,输入错误提示重新输入。
如果检索不到相应的信息应提示用户。
2.系统功能结构图
三、详细设计
类:
student
数据成员
编号,姓名,性别,籍贯,民族,生日,政治面貌,身份证,数学成绩,英语成绩,计算机成绩
classstudent
{
protected:
intnumber;
//学号
charname[20];
//姓名
charsex[6];
//性别
charplace[20];
//籍贯
charnation[6];
//民族
charbirth[20];
//出生日期
charparty[10];
//政治面貌
charid[20];
//身份证号
floatscore[3];
//成绩
school
成员函数
录入函数input():
逐步输入学生信息;
修改函数mend():
按姓名或编号修改学生信息;
统计函数count():
统计各科的总成绩,计算平均成绩,统计各科的及格率;
查找函数found():
按学号或姓名查找学生的记录;
修改函数mend():
修改指定学号学生成绩记录;
删除函数del():
删除指定学号学生记录;
输出函数show():
输出班级所有学生成绩记录;
classschool
voidinput();
//录入函数
voidmend();
//修改函数
voiddel();
//删除函数
intfind(student**p,intnum,char*pn="
^"
);
//子查找函数
voidfound();
//查找函数
voidshow();
//显示函数
voidcount();
//统计函数
voidsave();
//保存函数
voidbegin();
//初始化函数
voidclear();
//清空函数
charmainmenu();
//主菜单函数
具体如下图所示:
三、界面设计与各功能模块的实现
1.界面设计
1.界面设计
程序运行后会出现一个简捷的窗口,便于用户查询数据。
2.功能模块实现设计
通过主窗体调用其他窗体。
应用系统主控界面包括学生信息录入,查找等功能模块。
具体举例如下:
1)查找函数:
voidschool:
:
found()
student*p;
intnum=-1,n=9;
charname[20]="
;
do
cout<
<
"
1:
按编号查找,2:
按姓名查找:
"
cin>
>
n;
}while(n<
1||n>
2);
if(n==1)
cout<
请输入编号:
num;
}
if(n==2)
请输入姓名:
cin>
name;
if(!
find(&
p,num,name))
SORRY!
找不到你要查找的内容!
endl;
return;
(p->
next)->
output();
2)删除函数
del()
student*p,*p2;
intnum;
if(!
p,num,"
))
找不到你要删除的内容!
p2=p->
next;
p->
next=p2->
deletep2;
school:
setkey
(1);
四、系统调试
1.首页进入学籍管理系统主菜单
3.显示学生信息界面:
4.查找学生信息界面:
5.删除学生信息界面:
6.修改学生信息:
五、使用说明及心得体会
此次c++课程设计,在指导教师的精心教导下,我们学会了如何用C++编写一个简单的应用程序。
首先要对程序的设计要求有一个比较明确的认识,然后系统分析与系统设计,最后是代码设计与调试。
程序实现上,设计了简单的查询界面,将各个功能集中出来按照程序编写原则,便于查询。
其中遇到了四个错误,第一个是d:
\123\123.h(341):
errorC2143:
syntaxerror:
missing'
'
before'
。
是在主菜单函数中多了一个“;
”经调试查出改正。
第二个错误时d:
\123\123.h(326):
errorC2111:
pointeradditionrequiresintegraloperand。
是在统计函数中,定义了g[]为数组格式,但是在用到的时候却忽略了,按照非数组形式计算,结果出错,一直没有找出,最后在老师的精心指导下才发现了这一问题。
第三个错误是:
根据C++课程所学的概念、理论和方法,按照C++程序设计的基本步骤,设计出一个适当规模的程序;
进一步加深对C++语言的理解和掌握。
理论联系实际,加深和巩固所学的理论知识,提高实践能力和计算机的综合运用能力。
我们编写程序的过程是辛苦与快乐的,程序的编写原则很重要,只要我们在编程,就必须不断改进,才能更好提高编程能力。
六、附件
源文件代码:
1.头文件:
#include<
iostream.h>
string.h>
fstream.h>
iomanip.h>
public:
student*next;
student(){}
~student(){}
char*getname(){returnname;
}
intgetnumber(){returnnumber;
floatgetscore(inti){returnscore[i];
floatgetg(){return(score[0]+score[1]+score[2]);
}
//录入信息
voidinput()
inte=1;
按提示输入:
number;
请输入性别:
sex;
if(strcmp(sex,"
男"
)==0||strcmp(sex,"
女"
)==0)
{
请输入籍贯:
place;
请输入民族:
nation;
请输入生日:
birth;
请输入政治面貌:
party;
请输入身份证号:
id;
请输入数学分数:
score[0];
请输入英语分数:
score[1];
请输入计算机分数:
score[2];
e=0;
else
无此类型性别!
重新输入!
e=1;
}while(e);
return;
voidinput(ifstream&
is)
is>
number>
name>
sex>
place>
nation>
birth>
party>
id
>
score[0]>
score[1]>
is.get();
//显示信息
voidoutput()
学生基本信息如下:
编号:
number
<
姓名:
name
性别:
sex
籍贯:
place
民族:
nation
生日:
birth
政治面貌:
party<
endl
身份证号:
数学:
score[0]
英语:
score[1]
计算机:
score[2]
总分:
getg()<
endl<
voidoutput(ofstream&
os)
os<
setw(6)<
setw(15)<
setw(20)<
party
score[2]<
};
classschool
school(){head=newstudent;
head->
next=NULL;
key=0;
~school(){deletehead;
intgetkey(){returnkey;
voidsetkey(intk){key=k;
private:
student*head;
intkey;
//录入函数
input()
student*p,*p2=NULL;
p=head;
intn;
while(p->
next)
p=p->
while(n)
p2=newstudent;
p2->
input();
p->
next=p2;
p=p->
按1继续,按0返回:
//子查找函数
intschool:
find(student**p1,intnum,char*pn)
student*p;
p=head;
(*p1)=p;
if((p->
getnumber()==num||!
strcmp((p->
getname(),pn))
return1;
return0;
//查找函数
//删除函数
//显示函数
show()
//修改函数
mend()
intnum=-1,n;
按编号修改,2:
按姓名修改:
找不到你要修改的内容!
//保存函数
save()
ofstreamos("
student.txt"
ios:
out);
if(school:
getkey()==1)
while(p->
(p->
output(os);
文件已保存!
setkey(0);
//初始化函数
begin()
clear();
longt;
ifstreamis("
in);
is)
os.close();
return;
intnum=-1;
while
(1)
num=-1;
t=is.tellg();
is>
n