欢迎来到天天文库
浏览记录
ID:12748396
大小:365.50 KB
页数:34页
时间:2018-07-18
《选课系统-课设报告》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、*******************实践教学*******************兰州理工大学计算机与通信学院2011年春季学期C程序设计课程设计题目:学生选课系统专业班级:软件一班姓名:黄锋学号:10240506指导教师:王连相成绩:摘要学生选课系统是C语言应运的一个简单实例,它能实现选课信息的输入、删除、查找、保存等功能。该系统由七个模块组成,各模块的完成分别由指针、数组、链表等实现,最后通过主函数将各个模块加以联结组成此简单的学生选课管理系统。该系统有查找方便、可靠性高、存储量大、保密性好等优点,是一个教育单位不可缺少的部分。关键词:C语言;学生;信息;选课目录一
2、、需求分析1二、总体设计2三、详细设计31、数据定义32、算法流程图3四、编码6五、测试8六、设计总结10致谢11参考文献12一、需求分析经过简单的调研分析,可以基本确定学生选课系统主要用来实现对选课信息的输入、删除、保存、查找等功能。1·录入课程信息教务系统对课程进行安排。2·课程管理用户可以查看新增课程和已删除课程。3·录入学生信息学生可以输入自己的基本信息。4·学生信息管理系统可以对学生输入的信息进行管理,同时用户也可以进行自我信息更改。5·学生选课学生可以查询已选课程和可选课程,然后进行选课。6·系统信息查看及及存储用户可以查看课程信息和学生信息以及及存储自己信息
3、。7·退出系统用户完成在学生成绩管理系统的一系列操作后要离开,则就需退出系统。31二、总体设计课程管理学生选课系统录入课程信息录入学生信息学生选课学生信息管理系统信息查看退出系统31三、详细设计1、数据定义structcouse*head1;structstudent*head2;structcouse//课程信息结构体{intnum1;charname1[20];intscore;intnelepeo;//课程已选人数intMelepeo;//课程人数上限structcouse*next;};structstudent//学生信息结构体{intnum2;charname
4、2[20];intnelenum[50];//已选课程编号intnelen;//已选课程数量structstudent*next;};FILE*fp;//文件指针变量inti,j//定义变量i,jcharname[4],code[7];//定义数组变量312、算法流程图1)保存函数Save()的算法流程图FILE*fp;(fp=fopen(outfile,"wb"))==NULLprintf("Savingfile......");printf("cannotopenfile");p!=NULLfclose(fp);fwrite(p,sizeof(SALARY
5、),1,fp);保存函数Save()的算法流程图如图2所示31find函数out函数输入i的值sep函数J=-1输出dateisnotfind输出姓名,学号,成绩是否注:out为输出函数。图2查找的算法流程图2)载入函数load流程图31load函数用“rb”方式打开“stu_list”文件fread(&stu[i],sizeof(structstudent_type))out函数关闭文件i6、程序的流程图,把一个较为复杂的问题拆分,也使程序的功能较为直观的呈现出来。第二步:实现该程序把整个问题拆分为若干个子模块,然后确定每个模块一个子功能。3131五、测试31程序的主界面·录入课程界面课程管理界面31录入学生信息界面学生信息管理界面31学生选课界面系统信息查看及存储界面31六、设计总结本期课设终于完成了,也许是第一次做课设,经验不足的缘故吧,总的感觉就是难。课设前期无从下手,经过知道老师的讲解才对这次课设有了初步的了解。课设虽然完成,但其中还有许多缺陷,比如源代码编写较短,因而系统功能简单;还有就是虽然有查找功能,但其中有漏洞,不能确定的查找出某个学生的信息,7、查找只是一个大体的范围。这些都是本次课设的不足之处。当然通过这次课设,我收获还是很大的,虽然这次的课设,程序不是完全由我们自己编写的,只是通过把一个相似的例子加以修改得到的。这些程序看起来比较容易,但要程序实现要求的几个功能却不容易。而且要看懂每一个函数也不是十分容易的。当然在修改程序的过程中也收获了许多以前忽略的东西。在修改的过程中巩固了基础,认识了自己以前常犯的错误,也发现了自己的不足之处。当然通过这次课程设计,也增加了我学习软件技术的兴趣,虽然还不明确软件技术包含的具体内容,但从C语言这门课程开始,已发现程序设计的乐趣,
6、程序的流程图,把一个较为复杂的问题拆分,也使程序的功能较为直观的呈现出来。第二步:实现该程序把整个问题拆分为若干个子模块,然后确定每个模块一个子功能。3131五、测试31程序的主界面·录入课程界面课程管理界面31录入学生信息界面学生信息管理界面31学生选课界面系统信息查看及存储界面31六、设计总结本期课设终于完成了,也许是第一次做课设,经验不足的缘故吧,总的感觉就是难。课设前期无从下手,经过知道老师的讲解才对这次课设有了初步的了解。课设虽然完成,但其中还有许多缺陷,比如源代码编写较短,因而系统功能简单;还有就是虽然有查找功能,但其中有漏洞,不能确定的查找出某个学生的信息,
7、查找只是一个大体的范围。这些都是本次课设的不足之处。当然通过这次课设,我收获还是很大的,虽然这次的课设,程序不是完全由我们自己编写的,只是通过把一个相似的例子加以修改得到的。这些程序看起来比较容易,但要程序实现要求的几个功能却不容易。而且要看懂每一个函数也不是十分容易的。当然在修改程序的过程中也收获了许多以前忽略的东西。在修改的过程中巩固了基础,认识了自己以前常犯的错误,也发现了自己的不足之处。当然通过这次课程设计,也增加了我学习软件技术的兴趣,虽然还不明确软件技术包含的具体内容,但从C语言这门课程开始,已发现程序设计的乐趣,
此文档下载收益归作者所有