课程设计报告模板.docx
- 文档编号:4721521
- 上传时间:2022-12-07
- 格式:DOCX
- 页数:14
- 大小:19.69KB
课程设计报告模板.docx
《课程设计报告模板.docx》由会员分享,可在线阅读,更多相关《课程设计报告模板.docx(14页珍藏版)》请在冰豆网上搜索。
课程设计报告模板
北京理工大学珠海学院
课程设计说明书
_2011_—_2012_学年第_1_学期
题目:
学院:
专业班级:
学号:
学生姓名:
指导教师:
成绩:
时间:
年月日
北京理工大学珠海学院
课程设计任务书
2011~2012学年第1学期
学生姓名:
专业班级:
10软件工程4班
指导教师:
翁省辉工作部门:
计算机学院
一、课程设计题目
模拟记事本程序
二、课程设计内容
用文本命令行界面模拟记事本功能:
包括编辑、保存、另存为、复制、粘贴、查找、替换等功能。
三、进度安排
(1)1-2学时,选定题目、分析需求、理解需求;
(2)3-4学时,程序设计,定义数据类型、数据处理方式;
(3)5-10学时,编写程序、调试、测试;
(4)11-12学时,编写设计报告;
(5)13-16学时,答辩。
四、基本要求
(1)只能使用C++语言,源程序要有适当的注释,使程序容易阅读
(2)至少采用文本菜单界面(如果能采用图形菜单界面更好)
(3)学生可自动增加新功能模块(视情况可另外加分)
(4)建立文件操作类、界面显示类及相关接口类,用文件读写实现。
(5)写出课程设计报告,应不少于3000字(不含附录),同一组学生只需提交1份,但必须在报告中列明分工。
课程负责人签名:
年月日
课程设计分工安排
姓名
课程设计负责工作
备注
课程设计成绩评定表
姓名
成绩评定权重
总分
总成绩
(五分制)
平时成绩20
报告成绩50
答辩成绩30
××××(题目)
摘要
□□××××(空两格,小四号宋体)
关键词:
×××××□×××××□×××××□××××(小四号宋体,各关键词之间空一格)
目录
第一章设计内容与目标1
第二章总体设计2
2.1模块化设计总方案2
2.2模块功能设计2
第三章详细设计3
3.1数据结构设计3
3.2模块接口设计3
3.3模块实现设计3
第四章调试与测试4
4.1调试过程中的主要问题4
4.2测试过程与结果4
参考文献5
心得体会6
第一章设计内容与目标
第二章总体设计
2.1模块化设计总方案
□□☆☆☆☆☆☆☆☆☆正文(空两格、小四号宋体)
为实现系统功能,本程序主要分为六个模块。
它们分别为:
输入一个学生信息、删除一个学生信息、查询一个学生信息、插入一个学生信息、列出所有的学生信息、保存并且退出该程序。
这六个函数再通过主函数调用分别得以实现。
2.2模块功能设计
第三章详细设计
3.1数据结构设计
用链表存储数据。
每个学生的信息用链表的一个节点来存储。
CNodeCList
classCNode
{
public:
CNode(){pdata=0;pnext=0;}
CNode(CNode&n);
voidinputdata(CData*pd){pdata=pd;}//给节点的Data域赋值
voidshownode(){pdata->show();}//输出节点的数据
CData*getdata(){returnpdata;}//获取节点的数据
friendclassCList;
private:
CData*pdata;
CNode*pnext;
};
classCList
{
public:
CList(){phead=0;}
~CList(){deletelist();}
voidaddnode(CNode*pnode);//添加新的节点
voiddeletelist();//删除链表
CNode*deletenode(CNode*pnode);//删除节点
CNode*lookup(CData&data);//查找姓名相同的节点,并返回该节点
CNode*getlisthead(){returnphead;}//获取链表的头结点
voidshowlist();//输出链表
CNode*getnext(CNode*pnode);//获得下一个节点
private:
CNode*phead;
};
3.2模块接口设计
模块接口:
(1)show()
(2)set(char*c,char*n,char*nam,doublee,doublecp,doublem,doublece,doublesm,doublecg,doublemar,doubleaver)
(3)voidprint()//打印学生信息的项目
(4)voiddisplay(CList&stulist)//输出学生的信息
(5)voidadd(CList&stulist)//增加学生的信息
(6)voidlookup(CList&stulist)//查找某位学生的信息
(7)voiddeletes(CList&stulist)//删除某位学生的信息
//输出学生的信息,如学生班级,学号,姓名。
。
。
。
voidStudent:
:
show()
{
cout< cout< cout< cout< cout< cout< cout< cout< cout< cout< cout< } //输入学生的信息 voidStudent: : set(char*c,char*n,char*nam,doublee,doublecp,doublem,doublece,doublesm,doublecg,doublemar,doubleaver) { strcpy(s_class,c); strcpy(s_num,n); strcpy(s_name,nam); ele_technique=e; c_program=cp; mul_technique=m; col_english=ce; sen_math=sm; col_gym=cg; marx_economy=mar; average=aver; } //打印学生信息的项目 voidprint() { cout< cout< cout< cout< cout< cout< cout< cout< cout< cout< cout< } //先是学生的信息 voiddisplay(CList&stulist) { print(); stulist.showlist(); cout< cout<<"按任意键返回主菜单"; getchar(); getchar(); } //增加学生的信息 voidadd(CList&stulist) { CNode*p; Student*s; charc[17],n[17],nam[17]; doublee,cp,m,ce,sm,cg,mar;floataver; cout<<"请输入姓名(输入0结束): "; cin.ignore(); cin.getline(nam,17); while(strcmp(nam,"0")) { cout<<"输入学号: ";cin.getline(n,17); cout<<"输入班级: ";cin.getline(c,17); cout<<"输入电子技术成绩: ";cin>>e; cout<<"输入C++成绩: ";cin>>cp; cout<<"输入多媒体技术成绩: ";cin>>m; cout<<"输入大学英语成绩: ";cin>>ce; cout<<"输入高等数学成绩: ";cin>>sm; cout<<"输入大学体育成绩: ";cin>>cg; cout<<"输入马克思政治经济学成绩: ";cin>>mar; aver=((e+cp+m+ce+sm)*0.8/5+cg*0.15+mar*0.05); s=newStudent; s->set(c,n,nam,e,cp,m,ce,sm,cg,mar,aver); p=newCNode; p->inputdata(s); stulist.addnode(p); cout<<"记录添加成功."< cout<<"请输入姓名(输入0结束): "; cin.ignore(); cin.getline(nam,17); } } //查找某位学生的信息 voidlookup(CList&stulist) { CNode*plook; charname[17]; cout<<"请输入你要查找的姓名(输入0结束): "; cin.ignore(); cin.getline(name,17); while(strcmp(name,"0")) { Students; s.set("0","0",name,0,0,0,0,0,0,0,0); plook=stulist.lookup(s); if(plook) { print(); plook->shownode(); } else cout<<"对不起,在学生记录中查找不到"< cout<<"请输入你要查找的姓名(输入0结束): "; cin.getline(name,17); } } //删除某位学生的信息 voiddeletes(CList&stulist) { CNode*plook; charname[17]; cout<<"请输入要删除的记录的学生姓名(输入0结束): "; cin.ignore(); cin.getline(name,17); while(strcmp(name,"0")) { Students; s.set("0","0",name,0,0,0,0,0,0,0,0); plook=stulist.lookup(s); if(plook) { print(); plook->shownode(); stulist.deletenode(plook); cout< } else cout<<"对不起,在学生记录中查找不到"< cout<<"请输入要删除的记录的学生姓名(输入0结束): "; cin.getline(name,17); } } //保存文件 voidstorefile(CList&stulist) { ofstreamoutfile("student.dat",ios: : binary); if(! outfile) { cout<<"数据文件打开错误,数据存入文件失败! "< return; } CNode*p; Student*s; p=stulist.getlisthead(); while(p) { s=(Student*)p->getdata(); outfile.write((char*)s,sizeof(Student)); p=stulist.getnext(p); } outfile.close(); } //载入文件 voidloadfile(CList&stulist) { ifstreaminfile("student.dat",ios: : binary); if(! infile) { cout<<"没有数据文件! "< return; } CNode*p; Student*s; while(! infile.eof()) { s=newStudent; infile.read((char*)s,sizeof(Student)); p=newCNode; p->inputdata(s); stulist.addnode(p); } stulist.deletenode(p); infile.close(); } voidoperate(CList&stulist) { intchoice; do { system("cls"); cout<<"→欢迎进入学生成绩管理系统←\n"; cout<<"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n" <<"1.输出所有学生成绩记录\n" <<"2.增加学生成绩记录\n" <<"3.删除学生成绩记录\n" <<"4.查询学生成绩记录\n" <<"0.退出学生能够成绩管理系统\n" <<"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n"; cout<<"提示: 按0-4进行选择您要的服务"; cin>>choice; cout< switch(choice) {case1: display(stulist);break; case2: add(stulist);break; case3: deletes(stulist);break; case4: lookup(stulist);break; case0: storefile(stulist);break; default: cout<<"输入错误,请重新输入您的选择: "; } }while(choice! =0); } 3.3模块实现设计 第四章调试与测试 4.1调试过程中的主要问题 由于本人天资聪明,在调试过程中完全没有出现任何问题。 4.2测试过程与结果 参考文献 参考文献需加类型标志: 普通图书-M,期刊-J,报纸文章-N,论文集-C,网上电子文献-EB/OL,学位论文-D。 文献为普通图书类的书写格式是: [编号]作者: 《书名》[类型标志],出版单位出版年,页码。 示例如下: [1]樊孝忠: 《计算机应用基础》[M],北京理工大学出版社2006年版,第20页。 文献为期刊类的书写格式是: [编号]作者: 《文章题目》[类型标志],《期刊名》年份期号,页码。 示例如下: [1]单民: 《检察机关终止刑事诉讼及其制约的比较》[J],《国家检察官学院学报》2001年第1期,第69页。 心得体会 □□☆☆☆☆☆☆☆☆☆(正文小四号宋体,内容限1页) 计算机学院课程设计答辩记录表 专业学院 专业 姓名 学号 课程设计 题目 答辩日期 答辩时间 答 辩 提 问 及 其 回 答 记 录
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 课程设计 报告 模板