完整word版程序设计综合训练优秀篇.docx
《完整word版程序设计综合训练优秀篇.docx》由会员分享,可在线阅读,更多相关《完整word版程序设计综合训练优秀篇.docx(19页珍藏版)》请在冰豆网上搜索。
完整word版程序设计综合训练优秀篇
《程序设计综合训练》
设 计 报 告
专业:
班级:
学号:
姓 名:
指导教师:
成 绩:
计算机工程学院
2012年10月
(1)题目名称、内容
课程管理系统
假定有n门课程,每门课程有课程编号,课程名称,课程性质,总学时,授课学时,实验或上机学时,学分,开课学期等信息,学生可按要求(如总学分不得少于60)自由选课。
试设计学生选修课程系统,使之能提供以下功能:
1、课程信息录入功能(课程信息用文件保存,也可不用)
2、课程信息浏览功能
3、排序:
按课程编号排序
4、查询功能:
按课程性质查询
5、课程修改、删除(任选一项)
(2)解题的基本思路
主函数选择需要处理的功能,分别再写出课程录入自定义函数、课程浏览自定义函数、课程排序自定义函数、课程查询自定义函数、课程删除自定义函数。
(3)设计方案
该系统包括数据录入、浏览、排序、删除、查询功能模块,每个模块在程序系统中用一个自定义函数来实现,如图:
主函数:
真
luru()(录入信息)
liulan()(浏览信息)
i
真
真
paixu()(按编号排序)
find()(课程名称查找相应的信息)
shanchu()(删除对象)
(4)程序调试
1、出现的问题
解决方法:
仔细检查,不时地加入输出语句。
2、出现的问题
没有了信息提示。
解决方法:
将主函数中的信息提示调到循环体。
3.出现的问题
选择处理功能后感觉信息太多没有清屏。
解决方法:
加入了清屏功能的自定义函数。
(5)测试
课程录入
课程浏览
课程排序
课程查询
课程删除
系统退出
(6)总结
当看到这系统之前,感觉这是一个不可能完成的作业,系统艾,多高档的东西啊,但等我坐下来认真分析时,才发现这系统并没有想象中的那么难,也是由我们平时做的简单程序段组成的。
虽然程序段简单但也有些细节性错误搞得我头大,弄得我一度想放弃。
这系统花了我不少时间,编系统的过程让我很带劲儿,感觉回到了高中,但回想起来总觉得缺少了些什么没有让我脑子里充满色彩,这提醒到我我不适合做程序员,这是我第一次编系统可能也是最后一次吧。
不过通过这次编系统有几点还是要必须肯定的:
①这次实训让我对之前一窍不通的结构体有了一定的了解②大事也是由小事组成③编程让我更会思考问题④细节决定成败⑤虚心向别人求教。
总之,当自己做完这课程管理系统,我感觉非常充实,途中虽然有时候感觉有点茫然,有点累,但我觉得收获是巨大的,并且在以后的学习生活中也用得到,所以感觉很欣慰,很有成就感。
当然我能有这么好的收获很大程度上还是首先因为我们有非常优秀的陈老师,她花了自己工作以外的时间给我们讲结构体和链表(算然我这次编系统没有用到链表,但在考试的时候起了非常大的用处),其次是高中就有了良好的基础,我心中充满了感激之情,无法用言语表达,感谢您,陈老师!
您辛苦了!
祝您身体健康,事业有成,万事如意!
(7)附录
#include
#include
#defineN100
structkech/*定义结构体*/
{
charname[10];/*课程名称*/
charxz[20];/*课程性质*/
intnum;/*课程编号*/
intzxs;/*总学时*/
intjsxs;/*授课学时*/
intsyxs;/*实验学时*/
intsjxs;/*上机学时*/
intscore;/*学分*/
intxq;/*开课学期*/
}kech[N];
intsubject=0;
voidluru()/*录入课程信息*/
{
inti=subject;
printf("/******请输入课程信息******/\n");
printf("课程编号:
");/*输入课程编号*/
scanf("%d",&kech[i].num);
printf("课程名称:
");/*输入课程名称*/
scanf("%s",kech[i].name);
printf("课程性质:
");/*输入课程性质*/
scanf("%s",kech[i].xz);
printf("总学时:
");/*输入总学时*/
scanf("%d",&kech[i].zxs);
printf("授课学时:
");/*输入授课学时*/
scanf("%d",&kech[i].jsxs);
printf("实验学时:
");/*输入实验学时*/
scanf("%d",&kech[i].syxs);
printf("上机学时:
");/*输入上机学时*/
scanf("%d",&kech[i].sjxs);
printf("学分:
");/*输入学分*/
scanf("%d",&kech[i].score);
printf("开课学期:
");/*输入开课学期*/
scanf("%d",&kech[i].xq);
subject++;
}
voidliulan()/*浏览课程信息*/
{
inti;
if(subject!
=0)
{
printf("\n课程编号课程名称课程性质总学时授课学时实验学时上机学时学分开课学期\n");/*输出信息*/
for(i=0;i{
printf("%6d%6s%6s%4d%6d%6d%6d%2d%6d\n",kech[i].num,kech[i].name,kech[i].xz,kech[i].zxs,kech[i].jsxs,kech[i].syxs,kech[i].sjxs,kech[i].score,kech[i].xq);
}
}
else
{
printf("没有数据");
}
}
voidpaixu()/*按课程编号排序*/
{
inti,j;
intt[7];
chara[20];
for(j=0;jfor(i=0;iif(kech[i].num>kech[i+1].num)
{
t[0]=kech[i].num;/*交换课程编号*/
kech[i].num=kech[i+1].num;
kech[i+1].num=t[0];
strcpy(a,kech[i].name);/*交换课程名称*/
strcpy(kech[i].name,kech[i+1].name);
strcpy(kech[i+1].name,a);
strcpy(a,kech[i].xz);/*交换课程性质*/
strcpy(kech[i].xz,kech[i+1].xz);
strcpy(kech[i+1].xz,a);
t[1]=kech[i].zxs;/*交换总学时*/
kech[i].zxs=kech[i+1].zxs;
kech[i+1].zxs=t[1];
t[2]=kech[i].jsxs;/*交换授课学时*/
kech[i].jsxs=kech[i+1].jsxs;
kech[i+1].jsxs=t[2];
t[3]=kech[i].sjxs;/*交换实验学时*/
kech[i].sjxs=kech[i+1].sjxs;
kech[i+1].sjxs=t[3];
t[4]=kech[i].syxs;/*交换上机学时*/
kech[i].syxs=kech[i+1].syxs;
kech[i+1].syxs=t[4];
t[5]=kech[i].score;/*交换学分*/
kech[i].score=kech[i+1].score;
kech[i+1].score=t[5];
t[6]=kech[i].xq;/*交换开课学期*/
kech[i].xq=kech[i+1].xq;
kech[i+1].xq=t[6];
}
printf("按学期排序\n");
printf("课程编号课程名称课程性质总学时授课学时实验学时上机学时学分开课学期\n");/*输出交换后的课程信息*/
for(i=0;iprintf("%6d%6s%6s%4d%6d%6d%6d%2d%6d\n",kech[i].num,kech[i].name,kech[i].xz,kech[i].zxs,kech[i].jsxs,kech[i].syxs,kech[i].sjxs,kech[i].score,kech[i].xq);
}
intfind()/*查找功能*/
{
inti;
charname1[10];
printf("请输入要查询/删除的课程名称:
");
scanf("%s",name1);
for(i=0;i{
if(strcmp(name1,kech[i].name)==0)
{
printf("\n课程编号课程名称课程性质总学时授课学时实验学时上机学时学分开课学期\n");
printf("%6d%6s%6s%4d%6d%6d%6d%2d%6d\n",kech[i].num,kech[i].name,kech[i].xz,kech[i].zxs,kech[i].jsxs,kech[i].syxs,kech[i].sjxs,kech[i].score,kech[i].xq);
returni;
}
}
return-1;
}
voidshanchu()
{
inti;
intk=find();
if(k!
=-1)
{
for(i=k;i{
strcpy(kech[i].name,kech[i+1].name);
strcpy(kech[i].xz,kech[i+1].xz);
kech[i].num=kech[i+1].num;
kech[i].zxs=kech[i+1].zxs;
kech[i].jsxs=kech[i+1].jsxs;
kech[i].syxs=kech[i+1].syxs;
kech[i].sjxs=kech[i+1].sjxs;
kech[i].score=kech[i+1].score;
kech[i].xq=kech[i+1].xq;
}
subject--;
printf("/*******删除成功*******/");
}
else
{
printf("/*******没有这个课程名称*******/");
}
}
voidScreenClear()
{
system("pause");
system("cls");
}
voidmain()
{
intchoice=0;
while(choice!
=6)
{
printf("/*************欢迎使用本系统,请根据需要进行操作!
*************/\n");
printf("/**********主菜单**********/\n");
printf("1.课程录入\n");
printf("2.课程浏览\n");
printf("3.课程排序\n");
printf("4.课程查询\n");
printf("5.课程删除\n");
printf("6.系统退出\n");
printf("请选择:
\n");
scanf("%d",&choice);
switch(choice)
{
case1:
luru();
break;
case2:
liulan();
break;
case3:
paixu();
break;
case4:
find();
break;
case5:
shanchu();
case6:
printf("/*************感谢使用本系统!
*************/\n");
break;
default:
printf("选择错误,请重新选择!
\n");
}
ScreenClear();
}
}