还剩21页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
《高级语言程序设计》课程设计说明书设计题目学生选修课程系统设计目录
1.设计目的…………………….p
22.总体设计……………………p
33.详细设计…………………….p
44.调试与测试………………….p
55.源程序清单与执行结果…….p
66.建议和体会………………….p21一.设计目的
(1)基本掌握面向过程程序设计的基本思路和方法;
(2)达到熟练掌握C语言的基本知识和技能;
(3)能够利用所学的基本知识和技能,解决简单的程序设计问题程序功能
(1)输入信息密码保护
(2)浏览信息
(3)查询信息,提供两种查询方式
(4)统计选课情况
(5)进入选课操作
(6)退出选课系统二.总体设计设计的流程图如下
三、详细设计
1、输入初始的课程信息课程信息用文件保存,包括课程编号,课程名称,课程性质,总学时,授课学时,实验或上机学时,学分,开课学期等相关信息在输入课程信息前要先输入管理员密码,从而限制权限;
2、浏览模块按照指示就可以找到课程编号,课程名称,课程性质,总学时,授课学时,实验或上机学时,学分,开课学期等相关信息;
3、查询模块按照指示可以选择通过学分查询信息,或者选择课程性质来查询信息;
4、选择模块通过输入学号和课程编号来选择所修课程,并有统计功能;
5、查阅模块选择主菜单的选项,可以了解统计所选课程的人数;
6、退出模块在主菜单选择“0”退出选课系统四调试与测试问题
一、查询模块其中包括课程编号,课程名称,课程性质,总学时,授课学时,实验或上机学时,学分,开课学期等相关信息;当输入学分或者课程性质后,系统进行判断时,提示“输入错误!请重新输入!”解决办法及步骤:
1、浏览所有课程中的学分是否为你所输入的值
2、浏览所有课程中的课程性质是否有存在你所输入的值
3、输出用于循环检查语句中的课程,发现乱码
4、仔细分析乱码的原因,最后发现是变量的类型错误,错将课程性质的结构体指针变量定义为了其他类型的指针变量问题
二、选择模块从主菜单进入选课系统,通过输入学号和课程编号来选择所修课程当输入选择信息时,系统却提示“输入错误!请重新输入!”解决办法及步骤
1、检查所编写的程序代码是否完全正确,若不是,则改之,然后再继续正确输入选择信息,
2、检查当我们在输入选择信息时,看是否我们输入的信息有误,若是这样的话,我们应当仔细输入选择信息五.源程序清单与执行结果#includestdio.h#includestdlib.h#includestring.hstructcourse{intnum;charname
[20];charkind
[10];inttime;intttime;intetime;intmark;intterm;};structstudent{intsnum;intcnum;charcname
[20];};/*课程信息录入*/voidinsert{voidmain;FILE*fp;structcoursec;intcountsecret=624816;intisecret1;systemcolor1f;iffp=fopenE:\\course.txta+==NULL{printfcannotopenfile\n;}printf请输入系统密码;scanf%dsecret1;ifsecret==secret1{printf\n密码正确,请输入课程门数:\n;scanf%dcount;printf课程编号课程名称课程性质总学时授课学时实验或上机学时学分开课学期:\n;fori=0;icount;i++{scanf%d%s%s%d%d%d%d%dc.numc.namec.kindc.timec.ttimec.etimec.markc.term;fprintffp%d%s%s%d%d%d%d%d\nc.numc.namec.kindc.timec.ttimec.etimec.markc.term;}}elseprintf抱歉,密码错误,您无此权限\n;fclosefp;main;}/*课程信息浏览*/voidbrowser{voidmain;FILE*fp;structcoursec;inta;systemcolor3f;iffp=fopenE:\\course.txtr==NULL{printf\nCannotopencourse!\n;}printf课程编号课程名称课程性质总学时授课学时实验或上机学时学分开课学期:\n;for;!feoffp;{fscanffp%d%s%s%d%d%d%d%d\nc.numc.namec.kindc.timec.ttimec.etimec.markc.term;printf%5d%12s%9s%9d%9d%11d%11d%11d\nc.numc.namec.kindc.timec.ttimec.etimec.markc.term;}fclosefp;printf\n1-返回主菜单;2-退出选课系统\n;scanf%da;ifa==1main;elseexit0;}/*课程信息查询*/voidsearch{voidmain;FILE*fp;structcoursec;intscore;charkind
[10];inta;intb;systemcolor2f;printf
1.按学分查询
2.按课程性质查询.\n;printf请选择查询方式,输入选项数字;scanf%db;ifb==1{printf\n请输入您要查询的学分:\n;scanf%dscore;iffp=fopenE:\\course.txtr==NULL{printf\nCannotopencourse!\n;}printf课程编号课程名称课程性质总学时授课学时实验或上机学时学分开课学期:\n;for;!feoffp;/*feoffp遇到文件结束符时返回1否则feoffp返回0*/{fscanffp%d%s%s%d%d%d%d%d\nc.numc.namec.kindc.timec.ttimec.etimec.markc.term;ifc.mark==scoreprintf%5d%12s%9s%9d%9d%11d%11d%11d\nc.numc.namec.kindc.timec.ttimec.etimec.markc.term;}}elseifb==2{printf\n请输入您要查询的课程性质:\n;scanf%skind;iffp=fopenE:\\course.txtr==NULL{printf\nCannotopencourse!\n;}printf课程编号课程名称课程性质总学时授课学时实验或上机学时学分开课学期:\n;for;!feoffp;{fscanffp%d%s%s%d%d%d%d%d\nc.numc.namec.kindc.timec.ttimec.etimec.markc.term;ifstrcmpc.kindkind==0printf%5d%12s%9s%9d%9d%11d%11d%11d\nc.numc.namec.kindc.timec.ttimec.etimec.markc.term;}}else{printf输入错误!;exit1;}fclosefp;printf\n1-返回主菜单;2-退出选课系统\n;scanf%da;ifa==1main;elseexit1;}/*统计选课情况*/voidxuanke_information{voidmain;inttotal=0;inta;FILE*fp;structstudents;systemcolor6f;iffp=fopenE:\\student.txtr==NULL{printf\nCannotopenstudent!\n;}printf学号课程编号课程名称\n;for;!feoffp;{fscanffp%d%d%s\ns.snums.cnums.cname;total++;printf%7d%9d%13s\ns.snums.cnums.cname;}printf\n选课学生总人数为%d人total;fclosefp;printf\n1-返回主菜单;2-退出选课系统\n;scanf%da;ifa==1main;elseexit1;}/*学生选修课程*/voidxuan_ke{voidmain;structstudents;structcoursec;inta;FILE*fp;systemcolor5f;printf\n请输入您的学号及您要选择的课程编号:;scanf%d%ds.snums.cnum;iffp=fopenE:\\course.txtr==NULL{printf\nCannotopencourse!\n;}for;!feoffp;{fscanffp%d%s%s%d%d%d%d%d\nc.numc.namec.kindc.timec.ttimec.etimec.markc.term;ifs.cnum==c.numbreak;}fclosefp;iffp=fopenE:\\student.txta+==NULL{printf\nCannotopenstudent!\n;}fprintffp%d%d%s\ns.snums.cnumc.name;fclosefp;printf\n1-返回主菜单;2-退出选课系统\n;scanf%da;ifa==1main;elseexit0;}/*主菜单*/voidmain{intnw=0;systemcolor1f;printf********************************************************************************\n;printf学生选课系统菜单\n;printf********************************************************************************\n;printf1-录入选课信息\n;printf2-浏览选课信息\n;printf3-查询选课信息\n;printf4-统计选课情况\n;printf5-进入选课操作\n;printf0-退出选课系统\n;printf********************************************************************************\n;printf请选择输入选项前数字:;scanf%dn;do{ifn5||n0{printf\n输入错误!请重新输入!\n;scanf%dn;}elsew=1;}whilew==0;switchn{case1:insert;break;case2:browser;break;case3:search;break;case4:xuanke_information;break;case5:xuan_ke;break;case0:exit0;}return;}执行结果
1.主菜单功能
2.课程信息录入或插入功能
2.1密码保护
2.2信息正常录入
3.课程信息浏览功能
4.课程信息查询功能
4.1学分查询
4.2课程性质查询
5.学生选修课程功能
6.统计选课情况功能六建议和体会本学期我们的C语言程序设计课程的考试题目是让学生自主设计老师为我们提供了相关课题;同时为激发同学们的创造性,同学们不仅可以对自己所选择的课题进行相关的改进,而且可以自拟课题C语言的实质就是以一定的语法规范为准,通过对数据量的复杂结构运算,完成一定功能的程序,是一门计算机基础语言,我们通过这一学期的学习,对于其特点和算法有了一定程度的了解这段时间的课程设计正是让我们巩固以前的知识并在此基础上能够有所突破在设计的开始一段时间里,我努力弄懂每一个知识点,力求自己设计出一个完整的程序,可惜到处碰壁,一个星期下来只写了不到100行,由于时间紧迫,得到网上搜索相关程序,不断修改完善了解到要设计一个完整的程序,其中最难的可能就属设计整个程序的框架,其中可能会需要经过很多次的修改与调试,所以必须要有耐心,直至最后设计出自己想要的程序另外平时学习c语言的基础也很关键,因为如果平时学得就不怎么样,那么在面对一个比较有难度的程序时,可能会望而却步,看懂他人的程序都是个难点,更别说让自己去设计了因此平时要多向同学、老师请教,查找相关资料,开拓视野,增加知识面设计一个程序的过程就是一个解决实际问题的过程,从解决实际问题的角度,我们可以这样来看首先要了解这个问题的基本要求,即输入、输出、完成、从输入到输出的要求是什么;在次我们必须捋清思路,逐一的解决问题的各个方面,即从输入开始入手,着重考虑如何从输入导出输出,在这个过程中,可确定所需的变量、数组、函数,然后确定处理过程--算法感谢这次的课程设计,它使我更加深刻地体会到c语言程序编写过程的严谨与细致,还有就是无论做任何事都要有耐心,学会运用网络信息资源不懂的问题要及时解决,不断提高编程能力总的来说,这次程序设计让我获益匪浅,对C语言也有了进一步的认识C语言功能高、表达能力强、使用灵活方便、目标程序效率高等等C语言是在国内外广泛使用的一种计算机语言,相信除了以上优点,还有许多我们还未发现,希望能在以后的学习中有更深入的认识开始系统初始化1输入课程信息2浏览课程信息3查询课程信息5进入选课操作0退出选课系统4统计选课情况1按学分查询2按课程信息查询结束。