选课系统报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
程序设计报告
专业:
班级:
学号:
姓名:
指导教师:
成绩:
计算机工程学院
2014年6月
目录
一、题目: 名称、内容 (2)
二、解题的基本思路 (2)
三、设计方案
功能模块框图 (3)
程序流程图等 (3)
四、算法设计
算法描述 (9)
实现方法 (9)
详细流程图 (10)
五、程序调试
调试过程与步骤 (15)
发现的问题 (16)
解决的办法 (17)
六、测试
运行程序 (17)
输入测试数据 (18)
判断是否达到预期目的 (19)
注: 1.测试数据要有典型意义
2.要注意临界值的选取
3.注意测试数据的广泛性和普适性
七、总结
收获与体会 (20)
有实际内容,忌空洞无物
忌千篇一律,400字左右。
八、附录:源代码(含注释) (21)
一、题目名称、内容
(学生选课管理系统设计)(第32组)
假定有n门课程,每门课程的信息包括:课程编号,课程名称,课程性质(公共课、必修课、选修课),总学时,学分,开课学期等信息,学生可按要求(如总学分不得少于60)自由选课。试设计一选修课程系统,实现以下功能:
1.课程信息录入(课程信息用文件保存,并可在电脑中直接查找并打开该文件) 2.课程信息浏览
3.课程信息查询
(1)按学分查询
(2)按课程性质查询
4.学生选修课程
学生输入学号和姓名后可进行选课。
5.统计学生选课情况
二、解题的基本思路
C语言课程设计和现代计算机技术的实际应用相结合,是我们在本阶段学完理论课程之后对自己该方面的能力的一次很好的检验,从开始的算法思路到运行调试后的美观的图形界面以及另人兴奋的可用程序,都是一个很好的学习和锻炼的过程。使我们巩固了原有的理论知识,培养了我们灵活运用和组合集成所学过知识及技能来分析、解决实际问题的能力。使我们体会到自身知识和能力能在实际中的应用和发挥。不但可以激发创新意识,同时,还可以开发创造能力、培养沟通能力。
这次学生选修课系统管理设计时间虽然仅有一个星期,但确实使我受益非浅。通过学生选修课系统管理设计我丰富了计算机操作经验,更加深了对C语言的了解,熟悉了其环境,更增强了对Microsoft Visual C++ 6.0的使用技巧。C语言是在国内外广泛使用的一种计算机语言。语言功能丰富、表达能力强、使用灵活方便、既具有高级语言的优点,又具有低级语言的许多特点,适合编写系统软件。
同时,我觉得C语言应该是操作和理论相结合的课程,在不断地编写中去思考,两者是不可分割的。我们在编写一个较大的程序时应该把它分开成几个小程
序来看,这样会容易得多。比如说,这次的选课系统,将系统分为录入、浏览、查询、选课、统计、退出系统六个阶段。通过主函数调用各个函数,层次清晰,一眼明了,同时。为了满足多种查询的方式,将查询函数分为两个部分,按照学分查询和按照课程性质查询,这样可以避免错误。
最后,我觉得我所编出的程序的最大的优点就是输入错误后,有个重新输入的步骤,这样避免有人误选数字,而导致程序结束。同时,在程序中用printf输出如“欢迎进入”、“谢谢使用”等的敬语,更具有人性化,亲人美观的界面可以让选课者赏心悦目。同时,程序中的换行等,都可以保持界面不至于太过拥挤,大方简约。
三、设计方案,功能模块框图与程序流程图等
(1)设计方案:通过主函数调用各个函数实现其功能,并逐步进行优化(2)本系统的功能模块如图所示
(3)主要功能模块:
1.主函数:构造void main(),实现调用各个功能模块:
学生选课系统执行主流程如图所示,先执行主函数中显示菜单函数,通过循环和按键操作来执行相应的操作。按键的有效键值为0~5之间的任意数值,其他按键为无效输入,会提示“输入错误,请重新输入”,同时,再次用scanf创造再次输入的机会。各个按键的执行功能为:
“1”:录入选修课课程信,调用函数luru();
“2”:浏览录入的课程信息,调用函数liulan();
“3”:查询课程信息,调用函数chaxun();
“4”:进入选课操作,调用函数chaxun();
“5”:统计选课信息,调用函数tongji();
“0”:退出系统;
int main()
{
int n;
int menu();
int f1();
int luru();
int liulan();
int chaxun();
int xuanke();
int tongji();
printf("\n ********************** ***********************");
printf("\n\n ********** 欢迎进入学生选课系统!**********");
menu();
printf("\n");
printf(" ******************* the end *********************\n");
printf("\n ********************** ***********************");
printf("\n\n 请先选择1 进行课程信息录入:");
scanf("%d",&n);
for(;n>5||n<0;)
{
printf("\n 输入错误!请重新输入!\n ");
scanf("%d",&n);
}
while(n>0&&n<6)
{
switch(n)
{
case 1:luru();break;
case 2:liulan();break;
case 3:chaxun();break;
case 4:xuanke();break;
case 5:tongji();break;
}
scanf("%d",&n);
for(;n>5||n<0;)
{
printf("\n\n");