淮阴工学院
数据结构课程设计
报告
软件系统测试报告下载sgs报告如何下载关于路面塌陷情况报告535n,sgs报告怎么下载竣工报告下载
选题名称: 学生管理系统
系(院): 计算机工程系
专 业: 计算机科学与技术
班 级: 网络1071
姓 名: 施琦 学 号: 1071304118
指导教师: 张亚红 张勇军
学年学期: 2008 ~ 2009 学年 第 2 学期
2009 年 6 月 20 日
设计任务书
课题
名称
学生管理系统
设计
目的
本课程设计的目的是通过实践使学生经历一个系统开发的全过程并受到一次综合的训练,以便能较全面地理解、掌握和综合运用所学的知识去分析、解决实际问题。
实验
环境
1、Windows2000及以上
2、Microsoft Visual C++6.0
任务
要求
对教师党员的评价套管和固井爆破片与爆破装置仓库管理基本要求三甲医院都需要复审吗
任务:
完成《学生管理系统》的分析设计工作,并选用Micosoft Visual C++6.0完成系统的开发。
要求:
1. 搜集学生管理方面的资料并编写代码;
2、上机调试;
3、答辩;
4、完成课程设计报告。
工作进度计划
序号
起止日期
工 作 内 容
2009.6.8~2009.6.9
搜集学生管理方面的资料并编写代码
2009.6.9~2009.6.10
上机调试
2009.6.10
答辩
2009.6.10~2009.6.14
完成课程设计报告
指导教师:
2009 年 6 月 10 日
摘要:
随着现在学校在校同学的增加,传统的的学生的信息的管理系统已经不能满足现在的需求,为了能够更加有效地对学生信息进行管理,所以在本次的数据结构课程设计中,目标是运用数据结构中的链
表
关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf
知识在C++中涉及一个能够有效管理学生信息的程序包括:主控程序、学生档案管理子系统、学生成绩管理子系统、学生宿舍管理子系统。可以对学生信息进行添加,修改,删除,和查看。
关键词:数据结构;链表;学生管理系统
目 录
1.需求分析 2
2.概要设计 2
2.1功能模块描述 2
3.详细设计和实现 2
3.1类的定义 2
3.2具体函数的实现 4
3.3程序
流程
快递问题件怎么处理流程河南自建厂房流程下载关于规范招聘需求审批流程制作流程表下载邮件下载流程设计
图 9
4.调试与操作说明 9
总 结 12
致 谢 13
参考文献 14
1.需求分析
随着现在学校在校同学的增加,传统的的学生的信息的管理系统已经不能满足现在的需求,所以在本次的数据结构课程设计中,我选择的课题是学生管理系统,目标是运用数据结构中的链表知识在Visual C++编程环境中设计出学生管理系统。
2.概要设计
链表是线形表的一种,线形表分为顺序存储结构和链式存储结构。线形表的顺序存储结构的特点是逻辑关系上相邻的两个元素物理位置上也相邻,因此可以随机存取表中任一元素。链式存储结构的特点是用一组任意的存储单元存储线形表的数据元素。链表的最大的优点是对表的添加、删除、查找、排序等操作比较方便,因此采用链表来存储学生相关信息。
本课题分为六个部分:构造单链表,显示所有学生信息的函数,添加学生信息的函数,查找学生信息的函数,删除学生信息的函数,主函数的设计。
2.1功能模块描述
void CList::addnode(CNode *pnode) //增加结点
void CList::deletelist() //删除链表
CNode *CList::deletenode(CNode *pnode) //删除结点
CNode *CList::lookup(CData &data) //查询
void CList::showlist() //显示学生信息
CNode *CList::getnext(CNode *pnode) //获得下个结点
int Student::comparename(CData &data) //比较姓名
int main() //主函数
3.详细设计和实现
3.1类的定义
定义了CData类,声明了comparename和show函数。
class CData
{
public:
CData(){};
virtual int comparename(CData &) =0;
virtual void show()=0;
virtual ~CData(){};
};
定义结点类,声明了inputdata,shownode函数。
class CNode
{
public:
CNode()
{
pdata=0;
pnext=0;
}
CNode(CNode &n);
void inputdata(CData *pd){pdata=pd;}
void shownode(){pdata->show();}
CData *getdata(){return pdata;}
friend class CList;
private:
CData *pdata;
CNode *pnext;
};
定义了链表类,声明了addnode和deletelist函数
class CList
{
public:
CList(){phead=0;}
~CList(){deletelist();}
void addnode(CNode *pnode);
void deletelist();
CNode *deletenode(CNode *pnode);
CNode *lookup(CData &data);
CNode *getlisthead(){return phead;}
void showlist();
CNode *getnext(CNode *pnode);
private:
CNode * phead;
};
3.2具体函数的实现
void loadfile(CList &stulist)
{
ifstream infile("student.dat",ios::binary);
if(!infile)
{
cout<<"没有数据文件!"<
inputdata(s);
stulist.addnode(p);
}
stulist.deletenode(p);
infile.close();
}//在该函数中创建了一个文件,可以存储数据,并且创建结点和链表
void operate(CList &stulist)
{
int choice;
do
{
system("cls");
cout<<" 欢迎使用学生管理系统 \n";
cout<<"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n"
<<" 1.输出所有学生记录\n"
<<" 2.增加学生记录\n"
<<" 3.删除学生记录\n"
<<" 4.查询学生记录\n"
<<" 0.退出\n"
<<"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n";
cout<<"提示:按0-4进行选择"<>choice;
cout<pdata->show();
p=p->pnext;
}
}
}//对学生的信息进行了显示。
在case2中
void add(CList &stulist)
{
CNode *p;
Student *s;
char c[17],n[17],nam[17];
double e,cp,m,ce,sm,cg,mar;float aver;