计算机程序设计基础课程设计报告.docx
- 文档编号:5518703
- 上传时间:2022-12-18
- 格式:DOCX
- 页数:13
- 大小:223.25KB
计算机程序设计基础课程设计报告.docx
《计算机程序设计基础课程设计报告.docx》由会员分享,可在线阅读,更多相关《计算机程序设计基础课程设计报告.docx(13页珍藏版)》请在冰豆网上搜索。
计算机程序设计基础课程设计报告
计算机程序设计基础课程设计报告
吉首大学
计算机程序设计基础课程设计报告
学院:
城乡资源与规划学院专业:
城市规划
班级:
2011级学号:
20115199015
姓名:
何斌课题:
C课程设计
指导教师:
周佩娟报告成绩:
日期:
2013年6月15日
1、课程设计题目
建立一个班级(20个学生)的学生情况表(采用链表),每个学生的数据包括学号、姓名、性别和二门课的成绩。
2、课程设计要求
1、要求按规定的时间完成;
2、要求按照题目的要求完成程序的编写,且排版合理,整体整齐,并用C++6.0运行;3、设计报告要求格式正确,要素完整,层次清楚,思路清晰,文字流畅。
3、设计题目分析
3.1题目简介
在学习大学计算机链表之后,为了更加熟练的运用之前所学的计算机技能,更好的锻炼同学们的计算机编程和操作能力,在经过这次课程设计后,可以充分的了解到同学们的计算机能力。
因此,特开展此次课程设计。
3.2设计要求
在建立的程序中,要求建立一个主函数和一个菜单函数,主函数要求包含:
链表的建立,链表的插入,链表的删除,链表的输出和链表的查找等。
4、课程设计内容
4.1总体设计
(系统总体设计框架、系统功能模块图)
4.2详细设计
(主要功能模块的算法设计思路、工作流程图)
主函数:
菜单函数:
链表的创建:
链表的输出:
链表的查找:
链表的删除:
链表的插入:
4.3调试和测试
(程序调试过程、数据测试结果分析,测试过程中遇到的主要问题以及采取的解决措施)
刚开始拿到这个题目时,经过老师的简单介绍,对其有一点点了解,于是把所需的函数输入了程序,然后再对相应的变量进行修改。
试着运行,但是发现这样的困难较大,于是把函数分开来,一个一个的改,一个个的做,直到每个函数都符合要求之后,再整体的合在一起,再试着运行,发现还是有问题,于是对主函数进行修改,以及菜单函数进行修改,最后都可以运行时,再输入数据,验证程序的可行性。
有问题,再继续修改,反复多次,并询问老师,最后确定函数。
最后结合做出的程序,再进行一定的调试,让它更方便使用和更容易被使用。
5、设计心得与总结
(课程设计过程中的学习体会和收获,对C语言和本次课程设计的认识)
在这次课程设计中,我明白了,对于这种由多个函数组成的综合性程序,为了更好更快的达到想要的结果,可以先对分函数进行符合要求的调整,再把所有的函数整合起来进行调整,修改主函数、菜单函数。
这样由总到分再到总的做法,可以清晰明了的找出错误点和需修改点。
还有一点就是,再做课程设计时,不能孤立自己的去完成,而是在不懂的时候主动找老师同学们进行咨询,再把东西转为自己的东西,这样才能提高自己的动手设计程序的水平,经过老师和同学的共同协作,才能更好的完成课程设计。
经过这次的课程设计,大大的提高了我的动手能力,和读程序的能力,让我更好的掌握了这门课程。
同时,也让我看到了自己的很多不足之处,例如:
程序的输入速度和准确度;对程序的认识度;对程序函数的运用度等,都需要很大的提高。
6、建议
7、附件:
#include
#include
#include
structstudent
{
charname[20];
longintnum;
intscore1,score2;
charsex;
structstudent*next;
};
intn;
longnum;
structstudent*head=NULL,*stu;
structstudent*creat()
{
structstudent*head,*p,*q;
n=0;
head=NULL;
p=q=(structstudent*)malloc(sizeof(structstudent));
do{
printf("enterdate(input0forend):
\n");
printf("pleaseinputStudentnum:
");
scanf("%ld%*c",&p->num);
if(0==p->num)
break;
printf("pleaseinputStudentname:
");
scanf("%s",&p->name);
printf("pleaseinputStudentscore1:
");
scanf("%d",&p->score1);
printf("pleaseinputStudentscore2:
");
scanf("%d",&p->score2);
printf("pleaseinputStudentsex(m/w):
");
scanf("%*c%c%*c",&p->sex);
n++;
if(n==1)
{
head=p;
head->next=NULL;
}
else
q->next=p;
q=p;
p=(structstudent*)malloc(sizeof(structstudent));
}while(p->num!
=0);
q->next=NULL;
return(head);
}
structstudent*insert(structstudent*head)
{
structstudent*p0,*p1,*p2;
structstudent*stud=(structstudent*)malloc(sizeof(structstudent));
printf("pleaseinputStudentnum:
");
scanf("%ld%*c",&stud->num);
printf("pleaseinputStudentname:
");
scanf("%s",&stud->name);
printf("pleaseinputStudentscore1:
");
scanf("%d",&stud->score1);
printf("pleaseinputStudentscore2:
");
scanf("%d",&stud->score2);
printf("pleaseinputStudentsex(m/w):
");
scanf("%*c%c%*c",&stud->sex);
p0=head;
while(p0->next){
p0=p0->next;
}
p0->next=stud;
stud->next=NULL;
returnhead;
}
structstudent*delete(structstudent*head,longnum)
{
structstudent*p1,*p2;
if(head==NULL)
{
printf("\nlistnull!
\n");
returnNULL;
}
p1=head;
while(num!
=p1->num&&p1->next!
=NULL)
{
p2=p1;
p1=p1->next;
}
if(num==p1->num)
{
if(p1==head)
head=p1->next;
else
p2->next=p1->next;
printf("delete:
%ld\n",num);
free(p1);
n--;
}
else
printf("%ldnotbeenfound!
\n",num);
return(head);
}
voidprint(structstudent*head)
{
structstudent*p;
p=head;
if(head!
=NULL)
{
printf("\n\n|StudentNum||StudentName||Score1||Score2||sex|\n");
do{
printf("|%11ld||%12s||%6d||%6d||%c|\n",p->num,p->name,p->score1,p->score2,p->sex);
p=p->next;
}
while(p!
=NULL);
}
else
printf("thisisaNULLlist");
}
structstudent*find(structstudent*head,longnum)
{
structstudent*p1,*p2;
if(head==NULL)
{
printf("\nlistnull!
\n");
returnNULL;
}
p1=head;
while(p1!
=NULL&&p1->num!
=num)
{
p1=p1->next;
}
if(p1!
=NULL)
{
printf("Find:
");
printf("StuNum:
%ld\nStuname:
%s\nStusco1:
%d\nStusco2:
%d\nStusex:
%c\n",p1->num,p1->name,p1->score1,p1->score2,p1->sex);
}
else
printf("%ldnotbeenfound!
\n",num);
return(head);
}
intmain()
{
structstudent*stud;
intmenu();
while
(1)
{
switch(menu())
{
case1:
head=creat();
break;
case2:
head=insert(head);
printf("\n\tcontinue!
");
break;
case3:
scanf("%d%*c",&num);
delete(head,num);
printf("\n\tcontinue!
");
break;
case4:
print(head);
printf("\n\tcontinue!
");
getch();
break;
case5:
printf("Pleaseinputfindnum:
");
scanf("%d%*c",&num);
find(head,num);
printf("\n\tcontinue!
");
getch();
break;
case6:
clrscr();
case7:
exit(0);
}
}
}
intmenu()
{
chard[7];
intc;
printf("\n\n%16s","");
printf("*****menu*****\n\n");
printf("\t\t1.creatlist\n");
printf("\t\t2.insertlist\n");
printf("\t\t3.deletelist\n");
printf("\t\t4.printlist\n");
printf("\t\t5.findlist\n");
printf("\t\t6.clrscr\n");
printf("\t\t7.exit\n");
do{
printf("\n\tenterselect(1-7):
");
gets(d);
c=atoi(d);
}
while(c<0||c>7);
returnc;
}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 程序设计 基础 课程设计 报告