最新数据结构课程设计报告Word格式文档下载.docx
- 文档编号:7570289
- 上传时间:2023-05-08
- 格式:DOCX
- 页数:21
- 大小:64.17KB
最新数据结构课程设计报告Word格式文档下载.docx
《最新数据结构课程设计报告Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《最新数据结构课程设计报告Word格式文档下载.docx(21页珍藏版)》请在冰点文库上搜索。
3.del(
该函数实现的是删除功能。
该函数虽然定义的变量不多,但通过if语句和scanf语句的使用,对文件进行了读去和运用,简便的删除所选的目标
4.output()函数:
该函数是一个输出函数,它运用了for循环语句,本程序定义了两个变量,通过scanf语句的使用,又调用了函数SIR,实现了简洁明了的对学生成绩,姓名以及学号等进行输出。
5.mend()函数
该函数实现的是修改功能。
该函数虽然定义的变量不多,但通过if语句和scanf语句的使用,对文件进行了读去和运用,简便的修改所选的目标
6.found()函数
该函数实现的是查找功能。
该函数虽然定义的变量不多,但通过if语句和scanf语句的使用,对文件进行了读去和运用,简便的查找所选的目标
7.main()函数:
一个程序主函数不能少。
当以上的函数均编完之后,要实现各个功能操作的连接,还必须有主函数将它们联系起来,这样才能达到理想的结果。
对以上函数的连接,此程序采用了switch语句,格式清晰、容易接受。
至此学生成绩管理的基本功能便基本实现。
二
、系统软件环境:
MicrosoftVisualC++6.0
三
、程序主要功能:
实现基本的学生成绩数据管理,如:
具有建立文件,读取文件和保存记录的功能,并可增加、显示、修改、删除、查询学生记录的功能,并能对学生成绩进行统计.其中数据的查找、数据的删除又可通过不同的方式如按学号或姓名等进行操作。
四
、总结
系统功能说明:
1录入:
作用:
用于对学生学籍信息进行输入,并保存.
方法:
先输入学生学籍信息,然后录入,最后按enter结束.你所录入的文字
就给保存到该文件里!
2显示
输入学生学号,或者姓名可以显示学生的学籍信息
3查找:
有两种,一种按学号,一种按姓名。
4删除
输入需要删除的学生的学号,或者姓名
5修改
输入需要修改的学生的学号,或者姓名
6统计:
用于对学生学习成绩进行统计
输入学生学号,或者姓名.然后按确定
7保存
.
按7,并按确定,可以保存学生学籍信息
0退出:
退出整个"
学生学籍管理系统"
;
按0并按确定.
【附录程序】
//学生管理系统
//头文件及类
#include<
iostream>
string>
fstream>
poweredby
iomanip>
usingnamespacestd;
classstudent
{
protected:
intnumber;
charname[20];
charsex[6];
charplace[20];
charnation[6];
charbirth[20];
charparty[10];
charid[20];
floatscore[5];
public:
student*next;
student(){}
~student(){}
char*getname(){returnname;
}
intgetnumber(){returnnumber;
}
doublegetscore(inti){returnscore[i];
floatgetg(){return(score[0]+score[1]+score[2]+score[3]+score[4]+score[5]);
}
voidinput()
{
inte=1;
cout<
<
"
\t\t\t按提示输入:
endl;
\t\t输入学号:
"
cin>
>
number;
\t\t输入姓名:
name;
do
\t\t输入性别:
sex;
if(strcmp(sex,"
男"
)==0||strcmp(sex,"
女"
)==0)
\t\t输入籍贯:
place;
\t\t输入民族:
nation;
\t\t输入生日:
birth;
\t\t输入政治面貌:
party;
\t\t输入身份证号:
id;
\t\t输入数据结构与算法分数:
score[0];
\t\t输入信息管理与信息系统分数:
score[1];
\t\t输入ERP原理与应用分数:
score[2];
\t\t输入数据库原理与应用分数:
score[3];
\t\t输入企业认知实践分数:
score[4];
\t\t输入体测分数:
score[5];
e=0;
else
\t\t\t无此类型性别!
重新输入!
e=1;
}while(e);
return;
voidinput(ifstream&
is)
is>
number>
name>
sex>
place>
nation>
birth>
party>
id
>
score[0]>
score[1]>
score[2]>
score[3]>
score[4]>
is.get();
voidoutput()
学生基本信息如下:
学号:
number
<
姓名:
name
性别:
sex
籍贯:
place
民族:
nation
生日:
birth
政治面貌:
party<
endl
身份证号:
数据结构与算法:
score[0]
信息管理与信息系统:
score[1]
ERP原理与应用:
score[2]
数据库原理与应用:
score[3]
企业认知实践:
score[4]
体测:
score[5]
总分:
getg()<
voidoutput(ofstream&
os)
os<
setw(6)<
setw(15)<
setw(20)<
party
score[5]<
};
classschool
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;
school:
setkey
(1);
\t\t\t按1继续,按0返回:
n;
//子查找函数
intschool:
find(student**p1,intnum,char*pn)
student*p;
(*p1)=p;
if((p->
next)->
getnumber()==num||!
strcmp((p->
getname(),pn))
return1;
return0;
//查找函数
found()
intnum=-1,n=9;
charname[20]="
\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()
//修改函数
mend()
intnum=-1,n;
按学号修改,2:
按姓名修改:
\t\t找不到你要修改的内容!
//保存函数
save()
ofstreamos("
student.txt"
ios:
out);
if(school:
getkey()==1)
output(os);
\t\t\t文件已保存!
setkey(0);
//初始化函数
begin()
clear();
longt;
ifstreamis("
in);
is)
os.close();
intnum=-1;
while
(1)
num=-1;
t=is.tellg();
is.seekg(t);
if(num<
0)
{
is.close();
input(is);
//清空函数
clear()
p=head->
while(p)
p2=p;
//统计函数
count()
intn=0;
doubleg[3]={0,0,0};
floatj[3]={0,0,0};
n++;
for(inti=0;
i<
3;
i++)
g[i]=g[i]+(p->
getscore(i));
getscore(i))>
=60?
j[i]++:
0;
\t\t\b\b\b\b数据结构与算法总分:
g[0]<
平均分:
g[0]/n
及格率:
j[0]/n<
endl<
\t\t\b\b\b\b信息管理与信息系统总分:
g[1]
g[1]/n<
j[1]/n<
\t\t\b\b\b\bERP原理与应用总分:
g[2]<
g[2]/n
j[2]/n<
\t\t\b\b\b\b数据库原理与应用总分:
g[3]<
g[3]/n
j[3]/n<
\t\t\b\b\b\b企业认知实践总分:
g[4]
g[4]/n<
j[4]/n<
\t\t\b\b\b\b体测总分:
g[5]<
g[5]/n
j[5]/n<
//主选菜单函数
charschool:
mainmenu()
charn[6];
\n\n☆☆☆☆欢迎进入学生管理系统☆☆☆☆"
专业:
信息管理与信息系统专业班级:
090509学号:
090509112姓名:
盛韩"
****************************"
**1:
录入学生信息**"
**2:
显示设计学生信息**"
**3:
查找学生信息**"
**4:
删除学生信息**"
**5:
修改学生信息**"
**6:
统计学生成绩**"
**7:
保存学生信息**"
**0:
退出系统**"
请选择:
returnn[0];
//主函数
voidmain()
schoolpp;
intk=1;
charn;
pp.begin();
while(k==1)
n=pp.mainmenu();
switch(n)
case'
1'
pp.input();
break;
2'
pp.show();
3'
pp.found();
4'
pp.del();
5'
pp.mend();
6'
pp.count();
7'
pp.save();
0'
if(pp.getkey()==1)
\t\t\t是否保存?
1:
保存0:
不保存:
k;
if(k==1)
pp.save();
pp.clear();
k=0;
//源程序结束
【设计体会】
做了这个学生学籍管理系统,懂得了很多.明白了做事情都必须要先做好准备.看了有关C++方面的资料,上网找了些程序以作参考.觉得我这个程序的优点在于简单快捷的录入学生信息,并可以进行保存,我加上了学生各科成绩的统计,让学校在查看学生学籍信息的时候可以对学生的成绩一目了然.只需要输入学生的学号或者姓名就可以找到学生的学籍信息,还可以进行修改,保存.
但是存在的缺点就是,当录入的步骤有差错的时候不能够返回,有待完善与提高.
经过这次之后让我懂得一个程序的完善需要平时努力学习,积累知识,之后才可以找到解决方法的.改进方法就是增加个while
(1)死循环.
经过这次设计程序之后,让我的逻辑思维,与动手能力都有所提高,使我一步步的向前.
总之,编程尤其是调试是一项细致深入的工作,需要下工夫、动脑子、善于积累经验,这往往能反映出一个人的水平、经验和科学态度。
【参考文献】
朱若愚.数据结构[M].北京:
电子工业出版社,2006.1:
41-65
晋良颍.数据结构[M].北京:
人民邮电出版社,2007.05:
21-45
刘大有.数据结构[M].北京:
高等教育出版社,2006.3:
30-58
赵文静.数据结构与算法[M].北京:
科学出版社,2007.8:
41-64
徐孝凯.数据结构简明教程.[M].北京:
清华大学出版社,2006.04:
102-115
严蔚敏,吴伟民.数据结构(C语言版)[M].北京:
清华大学出版社,2007.4:
39-43
傅清祥,王晓东.数据结构与算法设计[M].北京:
电子工业出版社,2006.3:
31-46
王敬华,林萍,.陈静.C语言程序设计[M].北京:
清华大学出版社,2007.10:
22-39
李云清,杨庆红,揭安全.数据结构(C语言版)[M].北京:
人民邮电出版社,2006.1:
44-67
[10]李春葆.数据结构(C语言版)习题与解析[M].北京:
清华大学出版社,2006.1:
47-55
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 最新 数据结构 课程设计 报告