1、完整word版程序设计综合训练优秀篇程序设计综合训练设计报告专 业: 班 级: 学 号: 姓名: 指导教师:成绩: 计算机工程学院 2012年10月(1)题目名称、内容课程管理系统假定有n门课程,每门课程有课程编号,课程名称,课程性质,总学时,授课学时,实验或上机学时,学分,开课学期等信息,学生可按要求(如总学分不得少于60)自由选课。试设计学生选修课程系统,使之能提供以下功能:1、课程信息录入功能(课程信息用文件保存,也可不用) 2、课程信息浏览功能3、排序:按课程编号排序4、查询功能:按课程性质查询5、课程修改、删除(任选一项)(2)解题的基本思路主函数选择需要处理的功能,分别再写出课程录
2、入自定义函数、课程浏览自定义函数、课程排序自定义函数、课程查询自定义函数、课程删除自定义函数。 (3)设计方案该系统包括数据录入、浏览、排序、删除、查询功能模块,每个模块在程序系统中用一个自定义函数来实现,如图:主函数: 真luru()(录入信息) liulan()(浏览信息) i 真 真 paixu()(按编号排序) find()(课程名称查找相应的信息)shanchu()(删除对象)(4)程序调试 1、出现的问题解决方法:仔细检查,不时地加入输出语句。 2、出现的问题没有了信息提示。解决方法:将主函数中的信息提示调到循环体。3.出现的问题选择处理功能后感觉信息太多没有清屏。解决方法:加入了
3、清屏功能的自定义函数。(5)测试课程录入课程浏览课程排序课程查询课程删除系统退出(6)总结当看到这系统之前,感觉这是一个不可能完成的作业,系统艾,多高档的东西啊,但等我坐下来认真分析时,才发现这系统并没有想象中的那么难,也是由我们平时做的简单程序段组成的。虽然程序段简单但也有些细节性错误搞得我头大,弄得我一度想放弃。这系统花了我不少时间,编系统的过程让我很带劲儿,感觉回到了高中,但回想起来总觉得缺少了些什么没有让我脑子里充满色彩,这提醒到我我不适合做程序员,这是我第一次编系统可能也是最后一次吧。不过通过这次编系统有几点还是要必须肯定的:这次实训让我对之前一窍不通的结构体有了一定的了解大事也是由
4、小事组成编程让我更会思考问题细节决定成败虚心向别人求教。总之,当自己做完这课程管理系统,我感觉非常充实,途中虽然有时候感觉有点茫然,有点累,但我觉得收获是巨大的,并且在以后的学习生活中也用得到,所以感觉很欣慰,很有成就感。当然我能有这么好的收获很大程度上还是首先因为我们有非常优秀的陈老师,她花了自己工作以外的时间给我们讲结构体和链表(算然我这次编系统没有用到链表,但在考试的时候起了非常大的用处),其次是高中就有了良好的基础,我心中充满了感激之情,无法用言语表达,感谢您,陈老师!您辛苦了! 祝您身体健康,事业有成,万事如意!(7)附录#include#include#define N 100st
5、ruct kech /*定义结构体*/ char name10; /*课程名称*/ char xz20; /*课程性质*/ int num; /*课程编号*/ int zxs; /*总学时*/ int jsxs; /*授课学时*/ int syxs; /*实验学时*/ int sjxs; /*上机学时*/ int score; /*学分*/ int xq; /*开课学期*/kechN; int subject=0;void luru() /*录入课程信息*/ int i=subject; printf(/*请输入课程信息*/n); printf(课程编号:); /*输入课程编号*/ scanf
6、(%d,&kechi.num); printf(课程名称:); /*输入课程名称*/ scanf(%s,kechi.name); printf(课程性质:); /*输入课程性质*/ scanf(%s,kechi.xz); printf(总学时:); /*输入总学时 */ scanf(%d,&kechi.zxs); printf(授课学时:); /*输入授课学时*/ scanf(%d,&kechi.jsxs); printf(实验学时:); /*输入实验学时*/ scanf(%d,&kechi.syxs); printf(上机学时:); /*输入上机学时*/ scanf(%d,&kechi.sj
7、xs); printf(学分:); /*输入学分*/ scanf(%d,&kechi.score); printf(开课学期:); /*输入开课学期*/ scanf(%d,&kechi.xq); subject+;void liulan() /*浏览课程信息*/ int i; if (subject!=0) printf(n 课程编号 课程名称 课程性质 总学时 授课学时 实验学时 上机学时 学分 开课学期n); /*输出信息*/ for(i=0;isubject;i+) printf( %6d %6s %6s %4d %6d %6d %6d %2d %6d n,kechi.num,kechi
8、.name,kechi.xz,kechi.zxs,kechi.jsxs,kechi.syxs,kechi.sjxs,kechi.score,kechi.xq); else printf(没有数据); void paixu() /*按课程编号排序*/ int i,j; int t7; char a20; for(j=0;jsubject-1;j+) /*冒泡法由小到大排序*/ for(i=0;ikechi+1.num) t0=kechi.num; /*交换课程编号*/ kechi.num=kechi+1.num; kechi+1.num=t0; strcpy(a,kechi.name); /*交
9、换课程名称*/ strcpy(kechi.name,kechi+1.name); strcpy(kechi+1.name,a); strcpy(a,kechi.xz); /*交换课程性质*/ strcpy(kechi.xz,kechi+1.xz); strcpy(kechi+1.xz,a); t1=kechi.zxs; /*交换总学时*/ kechi.zxs=kechi+1.zxs; kechi+1.zxs=t1; t2=kechi.jsxs; /*交换授课学时*/ kechi.jsxs=kechi+1.jsxs; kechi+1.jsxs=t2; t3=kechi.sjxs; /*交换实验学
10、时*/ kechi.sjxs=kechi+1.sjxs; kechi+1.sjxs=t3; t4=kechi.syxs; /*交换上机学时*/ kechi.syxs=kechi+1.syxs; kechi+1.syxs=t4; t5=kechi.score; /*交换学分*/ kechi.score=kechi+1.score; kechi+1.score=t5; t6=kechi.xq; /*交换开课学期*/ kechi.xq=kechi+1.xq; kechi+1.xq=t6; printf(按学期排序n); printf( 课程编号 课程名称 课程性质 总学时 授课学时 实验学时 上机学
11、时 学分 开课学期n); /*输出交换后的课程信息*/ for(i=0;isubject;i+) printf( %6d %6s %6s %4d %6d %6d %6d %2d %6d n,kechi.num,kechi.name,kechi.xz,kechi.zxs,kechi.jsxs,kechi.syxs,kechi.sjxs,kechi.score,kechi.xq);int find() /* 查找功能*/ int i; char name110; printf(请输入要查询/删除的课程名称:); scanf(%s,name1); for(i=0;isubject;i+) /*需查询
12、的课程信息输出*/ if(strcmp(name1,kechi.name)=0) printf(n 课程编号 课程名称 课程性质 总学时 授课学时 实验学时 上机学时 学分 开课学期n); printf( %6d %6s %6s %4d %6d %6d %6d %2d %6d n,kechi.num,kechi.name,kechi.xz,kechi.zxs,kechi.jsxs,kechi.syxs,kechi.sjxs,kechi.score,kechi.xq); return i; return -1;void shanchu() int i; int k=find(); if (k!=
13、-1) for (i=k;isubject-1;i+) strcpy(kechi.name,kechi+1.name); strcpy(kechi.xz,kechi+1.xz); kechi.num=kechi+1.num; kechi.zxs=kechi+1.zxs; kechi.jsxs=kechi+1.jsxs; kechi.syxs=kechi+1.syxs; kechi.sjxs=kechi+1.sjxs; kechi.score=kechi+1.score; kechi.xq=kechi+1.xq; subject-; printf(/*删除成功*/); else printf(/
14、*没有这个课程名称*/); void ScreenClear() system(pause); system(cls);void main() int choice=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) case 1: luru(); break; case 2: liulan(); break; case 3: paixu(); break; case 4: find(); break; case 5: shanchu(); case 6: printf(/*感谢使用本系统!*/n); break; default: printf(选择错误,请重新选择!n); ScreenClear();
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1