C++课程设计学生学籍管理系统Word文件下载.docx
- 文档编号:17502522
- 上传时间:2022-12-06
- 格式:DOCX
- 页数:13
- 大小:57.08KB
C++课程设计学生学籍管理系统Word文件下载.docx
《C++课程设计学生学籍管理系统Word文件下载.docx》由会员分享,可在线阅读,更多相关《C++课程设计学生学籍管理系统Word文件下载.docx(13页珍藏版)》请在冰豆网上搜索。
及时整理资料,撰写课程设计报告中有关这个题目的内容。
三、系统功能介绍
(一)程序对学生学籍的数据处理要求
1能够输入并浏览学生的基本信息;
2能够实现对学生信息的查询和修改;
3能够对成绩进行统计;
4能够对学生的信息进行保存;
(二)系统功能:
资料维护:
系统维护包括对各学生信息和成绩的录入操作。
对数据表中的信息进行浏览。
系统查询:
可以对不同科目的总成绩、不及率、各科平均成绩相关信息。
四、输入输出的设计
1.界面的设计
①、界面设计
程序运行后会出现一个简捷的窗口,便于用户查询数据。
②、功能设计
通过主窗体调用其他窗体,具体实现可以参照系统分析相关内容。
应用系统主控界面包括学生信息录入,查找等功能模块。
学生信息录入功能完成学生信息和成绩的输入。
记录查询功能可以对数据各分类的记录进行查询。
2.数据输出设计
主要运行界面:
统计界面:
查找界面:
显示界面:
录入界面:
保存界面:
修改界面:
删除界面:
3、系统运行的结果:
(仅部分)
五、详细设计
1、系统功能结构图:
2、
(1)类:
student
数据成员:
编号,姓名,性别,籍贯,民族,生日,政治面貌,省份证,数学成绩,英语成绩,计算机成绩
(2)类:
school
成员函数:
录入函数Input():
输入编号到计算机的成绩;
统计函数count():
统计各科的总成绩,计算平均成绩,统计各科的及格率;
查询函数found():
按学号或姓名查找学生的记录;
修改函数mend():
修改指定学号学生成绩记录;
删除函数del():
删除指定学号学生记录;
输出函数show():
输出班级所有学生成绩记录;
UML图:
六、附录:
(主要代码)
#include<
>
//操纵符定义在其中
classstudent
{
protected:
intnumber;
charname[20];
charsex[6];
charplace[20];
charnation[6];
charbirth[20];
charparty[10];
charid[20];
floatscore[3];
public:
student*next;
student(){}
~student(){}
char*getname(){returnname;
}
intgetnumber(){returnnumber;
}
doublegetscore(inti){returnscore[i];
floatgetg(){return(score[0]+score[1]+score[2]);
}
voidinput()
{inte=1;
cout<
<
"
\t\t\t按提示输入:
endl;
\t\t输入编号:
"
;
cin>
number;
\t\t输入姓名:
name;
do
{cout<
\t\t输入性别:
sex;
if(strcmp(sex,"
男"
)==0||strcmp(sex,"
女"
)==0)
{cout<
\t\t输入籍贯:
cin>
place;
cout<
\t\t输入民族:
nation;
\t\t输入生日:
birth;
\t\t输入政治面貌:
party;
\t\t输入身份证号:
id;
\t\t输入数学分数:
score[0];
\t\t输入英语分数:
score[1];
\t\t输入计算机分数:
score[2];
e=0;
else
{cout<
\t\t\t无此类型性别!
重新输入!
e=1;
}while(e);
return;
voidinput(ifstream&
is)
{is>
number>
name>
sex>
place>
nation>
birth>
party>
id
>
score[0]>
score[1]>
();
}
voidoutput()
学生基本信息如下:
编号:
number<
姓名:
name<
性别:
sex<
籍贯:
place
民族:
nation<
生日:
birth<
政治面貌:
party<
endl
身份证号:
id<
数学:
score[0]<
英语:
score[1]
<
计算机:
score[2]<
总分:
getg()<
endl<
voidoutput(ofstream&
os)
{os<
setw(6)<
number<
setw(15)<
setw(20)<
party
}};
//操纵符指定宽度
classschool
{public:
school(){head=newstudent;
head->
next=NULL;
key=0;
~school(){deletehead;
voidinput();
voidmend();
voiddel();
intfind(student**p,intnum,char*pn="
^"
);
voidfound();
voidshow();
voidcount();
voidsave();
voidbegin();
voidclear();
charmainmenu();
intgetkey(){returnkey;
voidsetkey(intk){key=k;
private:
student*head;
intkey;
};
//录入函数
voidschool:
:
input()
{student*p,*p2=NULL;
p=head;
intn;
while(p->
next)
p=p->
next;
while(n)
{p2=newstudent;
p2->
input();
p->
next=p2;
p2->
p=p->
school:
setkey
(1);
\t\t\t按1继续,按0返回:
n;
}}
//子查找函数
intschool:
find(student**p1,intnum,char*pn)
{student*p;
p=head;
(*p1)=p;
if((p->
next)->
getnumber()==num||!
strcmp((p->
getname(),pn))
return1;
p=p->
return0;
//查找函数
found()
intnum=-1,n=9;
charname[20]="
{cout<
\t\t1:
按编号查找,2:
按姓名查找:
}while(n<
1||n>
2);
if(n==1)
\t\t\t输入编号:
num;
if(n==2)
\t\t\t输入姓名:
if(!
find(&
p,num,name))
\t\t找不到你要查找的内容!
return;
(p->
output();
//删除函数
del()
{student*p,*p2;
intnum;
if(!
p,num,"
))
\t\t找不到你要删除的内容!
p2=p->
next=p2->
deletep2;
show()//显示函数
{(p->
}}
//修改函数
mend()
intnum=-1,n;
charname[20]="
按编号修改,2:
按姓名修改:
\t\t找不到你要修改的内容!
(p->
save()//保存函数
ofstreamos("
ios:
out);
if(school:
getkey()==1)
while(p->
{(p->
output(os);
\t\t\t文件已保存!
setkey(0);
begin()//初始化函数
clear();
longt;
ifstreamis("
in);
is)
{ofstreamos("
return;
intnum=-1;
while
(1)
{num=-1;
t=();
is>
(t);
if(num<
0)
{();
return;
p2=newstudent;
input(is);
p->
clear()//清空函数
{student*p,*p2;
p=head->
while(p)
{p2=p;
count()//统计函数
{student*p;
intn=0;
doubleg[3]={0,0,0};
floatj[3]={0,0,0};
{p=p->
n++;
for(inti=0;
i<
3;
i++)
{g[i]=g[i]+(p->
getscore(i));
getscore(i))>
=?
j[i]++:
0;
\t\t\b\b\b\b数学总分:
g[0]<
平均分:
g[0]/n
及格率:
j[0]/n<
\t\t\b\b\b\b英语总分:
g[1]
g[1]/n<
j[1]/n<
\t\t\b\b\b\b计算机总分:
g[2]<
g[2]/n
j[2]/n<
//主选菜单函数
charschool:
mainmenu()
charn[6];
\n\n☆☆☆☆欢迎进入学籍管理系统☆☆☆☆"
****************************"
**1:
录入学生信息**"
**2:
显示学生信息**"
**3:
查找学生信息**"
**4:
删除学生信息**"
**5:
修改学生信息**"
**6:
统计学生成绩**"
**7:
保存学生信息**"
**0:
退出系统**"
请选择:
returnn[0];
//主函数
voidmain()
{schoolpp;
intk=1;
charn;
();
while(k==1)
{n=();
switch(n)
{case'
1'
break;
case'
2'
3'
4'
5'
6'
7'
0'
if()==1)
\t\t\t是否保存?
1:
保存0:
不保存:
k;
if(k==1)
k=0;
}}}
七、系统设计、开发过程中遇到的问题及创新点
本程序基本完成了题目要求的功能。
但是由于显示的限制,所罗列的学生成绩只给出了数学,英语,计算机的成绩。
程序可通过改进,增加科目数。
程序在显示学生信息时输入过于繁杂,不够清晰明朗,若显示成类似表格的形式就好了。
解决办法将输出函数的输出格式改一下,难点是计算输出点的控制。
至于创新,就是在课题的选择上,我更加偏向于选择自己感兴趣的课题,更加注意程序的实用性
八、心得体会
通过这次课程设计,我学会了很多的知识,我通过自学相关的书籍,浏览网站,接触了大量的编程知识,在编程过程中逐渐提升自己的自学能力,克服困难的能力。
我觉得首先要对程序的设计要求有一个比较明确的认识,然后系统分析与系统设计,最后是代码设计与调试。
程序实现上,设计了简单的查询界面,将各个功能集中出来按照程序编写原则,便于查询。
根据C++课程所学的概念、理论和方法,按照C++程序设计的基本步骤,设计出一个适当规模的程序;
进一步加深对C++语言的理解和掌握。
理论联系实际,加深和巩固所学的理论知识,提高实践能力和计算机的综合运用能力。
我们编写程序的过程是辛苦与快乐的,程序的编写原则很重要,只要我们在编程,就必须不断改进,才能更好提高编程能力。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 课程设计 学生 学籍 管理 系统