数据结构课程设计报告格式.docx
- 文档编号:26945976
- 上传时间:2023-06-24
- 格式:DOCX
- 页数:15
- 大小:240.07KB
数据结构课程设计报告格式.docx
《数据结构课程设计报告格式.docx》由会员分享,可在线阅读,更多相关《数据结构课程设计报告格式.docx(15页珍藏版)》请在冰豆网上搜索。
数据结构课程设计报告格式
北京化工大学北方学院
课程设计报告
课程名称数据结构课程设计
设计题目教师职称管理系统的设计与实现
专业、班级计科0902
学号090202040
姓名董晔
指导教师孙丽云
设计时间2012.9.3——2012.9.14
2012年9月14日
一、引言(简要说明设计题目的目的、意义、内容、主要任务等)
题目要求:
6.教师职称管理系统的设计与实现
(1)教师信息包括:
编号(charnum[3])、姓名(charname[9])、性别(charsex[5])、职称(charprof[6])、所在院系(chardept[10])
实验目的:
这次课程设计是检验学习成果的好机会,经过一个学期的学习,对于程序设计的掌握程度如何?
能否熟练运用?
都将在这份报告中得到体现。
也是对于程序设计的系统复习
二、正文(课程设计的主要内容,包括实验与观测方法和结果、仪器设备、计算方法、编程原理、数据处理、设计说明与依据、加工整理和图表、形成的论点和导出的结论等。
正文内容必须实事求是、客观真切、准确完备、合乎逻辑、层次分明、语言流畅、结构严谨,符合各学科、专业的有关要求。
)
模块分析:
Main()————CreatLink(n)创建模块,创建链表
|
————PrintLink(head)打印模块,打印链表
|
————SortProf(head)排序模块,为链表信息排序
|
————freeheap(head)删除模块,删除链表信息
|
————CountLink(head)统计模块,统计教师人数
开始运行如下界面:
此时先选择2,3,4,因为没有数据会提示,没有教师信息:
输入非法字符也会提示:
下面输入1,创建链表,提示添加教师人数:
继续添加信息:
输入2输出链表,程序会为您排序:
输入4统计教师人数:
输入3删除链表信息:
此时再输入2,3,4,程序会因为链表已删除而报错:
输入0退出系统:
以下为源代码:
#include
#include
usingnamespacestd;
//intn;
intcheck;
typedefstructTEACHER{
charnum[3];
charname[9];
charsex[5];
charprof[6];
chardept[10];
structTEACHER*next;
}*teacher;
teacherCreatLink(intn){//创建具有n个结点的链表
teacherp,q,head;
head=p=newTEACHER;
for(inti=0;i q=newTEACHER; cout<<"第"< "; cin>>q->num; cout<<"第"< "; cin>>q->name; cout<<"第"< "; cin>>q->sex; cout<<"第"< "; cin>>q->prof; cout<<"第"< "; cin>>q->dept; p->next=q; p=q; } p->next=NULL; check=1; returnhead; } voidPrintLink(teacherhead){//打印输出链表内容 teacherp=head->next; while(p! =NULL){ cout<<"编号: "< cout<<"姓名: "< cout<<"性别: "< cout<<"职称: "< cout<<"院系: "< p=p->next; } } intOrder(char*s){ char*title[4]={"教授","副教授","讲师","助教"}; for(inti=0;i<4;++i) if(strcmp(s,title[i])==0)returni; return127; } voidSortProf(teacherhead){//按职称排序 teacherp,s,pt; p=head; s=p->next; while(p->next! =NULL){ while(s->next! =NULL){ if(Order(p->next->prof)>Order(s->next->prof)){ pt=p->next; p->next=s->next; s->next=p->next->next; p->next->next=pt; } elses=s->next; } p=p->next; s=p->next; } } voidfreeheap(teacherhead){//释放动态内存 teacherp,q; p=head; q=p->next; while(q! =NULL){ p=q; q=p->next; free(p); } free(head); check=0; } intCountDeptProf(teacherhead,char*dept,char*prof){//统计指定院系的具有prof职称的人数 teacherp=head->next; intcount=0; while(p! =NULL){ if((strcmp(p->dept,dept)==0)&&(strcmp(p->prof,prof)==0)) ++count; p=p->next; } returncount; } intCountLink(teacherhead){//统计总人数 intcount=0; teacherp=head->next; while(p! =NULL){ ++count; p=p->next; } returncount; } intmain(){ check=0; while (1) { intx; intn; cout<<"*************************************\n"; cout<<"**********欢迎使用我的教师系统*******\n"; cout<<"**********1.添加教师信息*************\n"; cout<<"**********2.显示教师信息*************\n"; cout<<"**********3.删除教师信息*************\n"; cout<<"**********4.统计教师信息*************\n"; cout<<"**********0.退出教师管理系统*********\n"; cout<<"*************************************\n"; cout<<"请输入数字0-4进行选择: "; scanf("%d",&x); switch(x) { case1: cout<<"请输入添加教师的人数: "; scanf("%d",&n); teacherhead=CreatLink(n); break; case2: if(check==0) { cout<<"没有教师信息\n";break; } else { PrintLink(head); cout<<"排序后: \n"; SortProf(head); PrintLink(head);break; } case3: if(check==0) { cout<<"没有教师信息\n";break; } else { freeheap(head); cout<<"教师信息已清除\n";break; } case4: if(check==0) { cout<<"没有教师信息\n";break; } else { cout<<"共有教师: "< "< } case0: cout<<"谢谢教师管理系统\n"; exit(0); default: cout<<"\n请输入0—4选择! \n"; getchar();getchar(); } } return0; } 三、结论(应当准确、完整、明确精练;也可以在结论或讨论中提出建议、设想、尚待解决问题等。 ) 通过本次试验,我更加熟悉对指针对链表的操作,加深了对指针的了解,从而更加了解指针操作的方便。 并从老师上课分析课题讲解过程中,知道程序设计逻辑性,就像人思维一样,有先有后,那一步该实现,为什么要实现这一步; 同时在实验课上,通过问老师问题,老师告诉我程序要自己学会调试,如分步,设置断点等,书写代码要规范,思维一定要严谨,思路一定要清晰。 同时我感觉这个程序还可以继续扩展下去: 如在插入已存在学号的学生信息,虽然给出了提示“插入异常”,但未能给予用户重新输入的机会。 四、参考文献 [1]《C程序设计(第四版)》谭浩强. [2]《C++面向对象程序设计》姚全珠编陈超译 [3]《C程序设计(第四版)学习辅导》谭浩强 五、指导教师评语 签名: 年月日 课程设计成绩(五级分制)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 课程设计 报告 格式