课程设计报告范例.docx
- 文档编号:24519898
- 上传时间:2023-05-28
- 格式:DOCX
- 页数:15
- 大小:305.97KB
课程设计报告范例.docx
《课程设计报告范例.docx》由会员分享,可在线阅读,更多相关《课程设计报告范例.docx(15页珍藏版)》请在冰豆网上搜索。
课程设计报告范例
北京理工大学珠海学院
课程设计说明书
_2010_—_2011_学年第_1_学期
题目:
学院:
专业班级:
学号:
学生姓名:
指导教师:
成绩:
时间:
年月日
北京理工大学珠海学院
课程设计任务书
2010~2011学年第1学期
学生姓名:
专业班级:
09软件工程1班
指导教师:
刘玉仙工作部门:
计算机学院
一、课程设计题目
模拟记事本程序
二、课程设计内容
用文本命令行界面模拟记事本功能:
包括编辑、保存、另存为、复制、粘贴、查找、替换等功能。
三、进度安排
(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模块调用图3
第三章详细设计4
3.1数据结构设计4
3.2模块接口设计5
3.3流程图6
第四章调试与测试9
4.1调试过程中的主要问题9
4.2测试结果9
参考文献12
心得体会13
第一章设计内容
设计一个实用的学生通讯录管理系统,能以简便高效的方式对通讯录进行管理和检索,具体功能有:
(1)录入:
学生通讯录信息包括:
学号,姓名,性别,出生年月,地址,电话,课题小组,E—mail等。
以结构数组或数据文件的形式存放通讯录信息。
(2)更新:
能插入、删除通讯录信息。
(3)浏览:
按学号为序或姓名为序进行通讯录信息浏览。
(4)查询:
能实现指定联系人信息查询或指定课题组人员查询功能。
系统以菜单方式工作,要求界面友好,易于操作。
第二章总体设计
2.1模块化设计
为实现系统功能,本程序主要分为六个模块。
它们分别为:
输入一个学生信息、删除一个学生信息、查询一个学生信息、插入一个学生信息、列出所有的学生信息、保存并且退出该程序。
这六个函数再通过主函数调用分别得以实现。
主函数,首先提供了程序运行时的友好界面,列出了清单,提供用户做出选择,以便决定使用通讯录的哪种功能。
然后,通过执行多分支选择语句——switch语句,分别实现其它各个函数的调用功能。
其它各个函数的功能分别如下:
creat函数用于对通讯录中的数据以文件的方式进行读入;
Input函数用于录入通讯录中学生的信息;
Delete函数用于对通讯录中指定信息的删除;
Search函数用于对通讯录中指定信息的查询;
Insert函数用于在通讯录中插入信息;
List函数用于对通讯录中所有信息进行浏览;
Save函数用于保存通讯录信息并且退出。
2.2模块调用图
图2-1模块调用图
第三章详细设计
3.1数据结构设计
本程序中,运用了多种数据结构。
首先对于学生通讯录中各项详细信息的记录用了结构数组的形式,然后又运用链表动态地分配内存单元,在creat函数中,把保存在数组中的值再赋值给其中的一个结点,通过指针的后移,把多个数据连成一个链,形成一个链表。
在这过程当中,还运用了数据文件的方式,每一次从终端输入的数据都以数据文件的形式保存到了磁盘。
对于主要数据结构的举例如下:
结构数组:
structstudent
{intnumber;
charname[10];
charsex[6];
structdatebirthday;
charaddr[30];
chartel[15];
charemail[30];
intgroup;
}student[max];
链表:
① typedefstructlnode
{intnumber;
charname[10];
charsex[6];
structdatebirthday;
charaddr[30];
chartel[15];
charemail[30];
intgroup;
structlnode*next;
}listnode,*linklist;
② while(strcmp(p4->next->name,name1)!
=0)
p4=p4->next;
p5=p4->next;
p4->next=p5->next;
数据文件:
① FILE*fp;
fp=fopen("Contacts.c","r+");
if(fp!
=NULL)
{for(i=1;i {j=fgetc(fp); if(j==EOF) return; k=i-1; fseek(fp,k*sizeof(structstudent),0); fread(&student[i],sizeof(structstudent),1,fp); ②voidSave() {intj; fp=fopen("Contacts.c","w"); for(p2=head,j=0;p2! =NULL;j++,p2=p2->next) fwrite(&student[j],sizeof(structstudent),1,fp); 3.2模块接口设计 由于本程序中大部分运用了链表这一数据结构,函数中存在很多指针,所以这个程序中被调用的函数都是空类型的,但这并没有影响最终结果的输出,反而使得函数调用的过程更加简便。 本程序执行的入口是main函数,然后在main函数中首先调用了creat函数,这就实现了对通讯录中的数据以文件的方式进行读入。 接下来在do-while语句中再套用switch语句实现对各个函数的调用。 被调用的函数都是没有形参的,但是通过对链表的使用,可以使得每一次的函数调用都能得到返回值。 最后,再从main函数中结束整个程序的运行。 其中涉及到被调用的函数有: voidcreat() voidInput() voidInsert() voidDelete() voidSave() Search() voidList() 3.3流程图 Input函数: List函数: Save函数: Search函数: Delete函数 第四章调试与测试 4.1调试过程中的主要问题 由于本程序是分模块设计的,所以运行时选择完任务并且执行完任务后,又会继续回到用户选择界面,供用户继续选择任务并执行任务,整个程序以文件形式读写,所以每次都可对输入的数据进行保存。 对于本程序的调试运行,总体上情况良好。 但是,其中也出现了一些小问题。 我发现的主要问题有: 使用getchar和gerche的差别: 在main函数中,对于变量ch的赋值,如果使用getchar(),则会使运行界面多显示一次用户选择界面,并且也显示Inputerror的标志,但是,如果使用getche()就不会出现这种情况了。 对于出现这种情况的原因,我找了一些资料,原因大致如下。 ch=getche()是从键盘上带回显的读入一个字符送给字符变量ch,而getchar()函数也是从键盘上读入一个字符,并带回显,但是它要等待输入直到按回国才结束,回车前的所有输入字符都会逐个显示在屏幕上,但只有第一个字符作为函数的返回值。 4.2测试结果 1用户界面 2输入学生信息 3查找学生信息 4删除学生信息 5浏览学生信息 参考文献 参考文献需加类型标志: 普通图书-M,期刊-J,报纸文章-N,论文集-C,网上电子文献-EB/OL,学位论文-D。 文献为普通图书类的书写格式是: [编号]作者: 《书名》[类型标志],出版单位出版年,页码。 示例如下: [1]樊孝忠: 《计算机应用基础》[M],北京理工大学出版社2006年版,第20页。 文献为期刊类的书写格式是: [编号]作者: 《文章题目》[类型标志],《期刊名》年份期号,页码。 示例如下: [1]单民: 《检察机关终止刑事诉讼及其制约的比较》[J],《国家检察官学院学报》2001年第1期,第69页。 心得体会 □□☆☆☆☆☆☆☆☆☆(正文小四号宋体,内容限1页) 计算机学院课程设计答辩记录表 专业学院 专业 姓名 学号 课程设计 题目 答辩日期 答辩时间 答 辩 提 问 及 其 回 答 记 录
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 课程设计 报告 范例