学生选课系统设计报告_第1页
学生选课系统设计报告_第2页
学生选课系统设计报告_第3页
学生选课系统设计报告_第4页
学生选课系统设计报告_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、*实践教学*兰州理工大学计算机与通信学院2017年春季学期C稈序设计课稈设计题 目:学牛选课系统专业班级:应用物理姓 名:杨维峰学 号: 40指导教师:李聪成 绩:学生选课系统摘要学生选课系统是教育单位不可缺少的重要系统组成部分,他对于学校的决策者、管理 者管理、查看课程来说都有至关重要,所以学生选课系统应该能够为广大学、师生提供充 足的信息和快捷的课程选择过程,有助于学生选好每一门课程,此系统选课方便、快捷, 用简单的界面来展示学生的选课信息,可以提高对学生信息管理的效率。关键词:方便,快捷,选课信息,选择,管理1题目要求设计一个关于学生选课方便简捷的程序,从而达到学生能够快速的选到课 程。

2、2需求分析数据结构可用结构体,包括课程和选修两个结构体,其中课程结构体成员包 括课程编号,课程名称,课程性质,总学时,授课学时,实验或上机学时,学分, 开课学期。选修结构体成员包括学号,课程编号,该结构体的建立主要是为了查 询某门课程学生选修情况。功能简介此系统是一个学生选课管理系统。它包含功能有:学生选课信息的录入,学 生选课信息的删除,学生选课信息的查找,学生选课信息的显示等功能。菜单模式:此模块主要实现对本系统所有功能的显示。录入模块:此模块主要实现对学生选课信息的录入,主要包括学生学号、学生姓名、所选课程、课程学分、授课老师。删除模式:此模块主要实现对学生选课信息的删除。?显示模块:此

3、模块主要实现对学生选课信息的显示。查找模块:此模块主要是通过学生学号查找该学生的选课信息。?清屏模块:此模块主要是对主界面输入的信息进行清屏。?退出程序:此模块主要用于退出一(录菜清删查显入单屏除找示功功功功功功匕匕 厶冃匕匕 厶冃匕匕 厶冃匕匕 厶冃匕匕 厶冃匕匕 厶冃i厶匕能厶匕能系统3总体设计学生选课系统4详细设计系统主要函数说明函数名称函数功能主函数显示主菜单模块in put函数输入学生选课基本信息del函数学生选课信息的删除过程find函数查找学生选课基本信息display 函数显示学生已选课程信息主函数主函数显示主菜单模块通过调用 menu函数显示主菜单,调用main函数提示 使用

4、的用户该执行的操作,实现基本的人机对话;然后通过读取用户的输入,调用 switch函数对用户的输入进行进一步的处 理,并使用while函数实现用户的选择性的重复输入;显示学生选课管理信息模块通过调用display函数实现显示已创建的所有学生选课管理信息的功能;查找学生选课管理信息模块通过调用 find函数实现按学生学号查找学生的 选课信息的功能;in put 函数此函数为输入学生选课情况的基本信息。通过运用文件和指针输入实现所有 学生选课信息的存储,从而实现程序的第一步操作。运用?if语句判断文件是否存在;若不存在,则建立一个名为”work”的文件,将所有信息保存文件中。在文件中fopen (

5、)以ab+的方法打开二进制文件,使函数返回指向一个文 件指针?work;以fread(&worm,LEN,1,fp)? 从fp所指向的文件中读取1个 字节数为LEN大小的数据块存放到&worm所指定的存储空间;以 fwrite(&wori?,LEN,1,?fp)?从fp所指向的存储空间中取出1个字节数为LEN大小的数据块写入&worm所指定的存储空间。运用字符串ch2实现判断”是否”的字符丫/N的输入2实现判断”是否” 的字符Y/N的输入开始定义学生指针调用in put函数建立word文档并判断文件是否存在储存信息按任意键返回函数此函数为学生选课信息的删除过程。删除学生选课管理信息模块通过调用

6、 del函数实现通过查找学生学号找到想要删除的课程,从而删除用户想要删除的课程的功能;运用文件的知识实现文件的打开。运用for循环来确定删除的个数,然后通 过if语句依次根据学生学号对学生选课信息进行删除。再次运用for循环使删除学生信息后将记录的总个数减1,将后一个记录移到前一个记录的位置。最后使用clear()功能,再次运用fopen()打开文件,用fwrite()将更改后 的记录重新写入指定的磁盘文件中,并保存。开始耳f定义学生指针是否以创建该学生信息成功删除显示“找不到删除的节否占I ”八、记录总数减一按任意键返回函数为了实现用户使用学生选课信息管理系统查找学生信息的功能,查找模块调用

7、find函数以实现这一功能。该程序里运用文件和指针,通过fread循环遍历文件中输入的数据,查找与 用户输入的学生编号相同的学生选课信息,如果找到该学生,则显示该学生的选 课信息。显示“有找到要查找的节点!”开始定义学生指针输入要查找的学生学号否是否显示该学是找到记录Y ( y)是否显示该 学生的详细信息显示学生信息按任意键返回生的详细信息5系统测试主界面该部分只有主菜单。若选择1,则进入学生选课信息输入界面;若选择 ?2, 则进入学生选课信息删除界面;若选择 3,则进入学生选课信息显示界面;?若 进入4,则进入学生选课信息查找界面;若选择 5,则直接退出系统;若选择?6, 则选择直接清屏输入

8、界面根据提示,当选择1时,系统会先提示是否输入信息,当输入“Y或? “y”, 则进出正式的学生信息输入阶段, 会依次提示输入学生学号、学生姓名、已选课 程、学分、任课老师,并且这些内容会保存到文件名为“ work”的文件中。然后 系统会进入清屏环节,在下一页系统提示是否继续输入,输入“ n”,??则结束 输入。显示界面根据系统提示输入3,则会显示已保存的学生选课信息删除界面根据系统提示输入2,然后系统会提示输入所要删除的人数,输入人数后, 系统会根据你输入的人数来进行循环删除, 单次删除过程为:先提示请输入需要 删除的学号,找到记录后,提示是否删除,输入“ Y或” y”,显示成功删除为了使系统

9、更加完整的体现该功能, 再次输入3显示已保存的信息,前后对 比,可清晰的体现删除功能c *C: Docnerit s amd Sett xnsl&dBinist rator-QDBbugSmr. exe学生选课管浬系统1输入信息2删除信息3显不信息4查我信息5退岀6箱屏j入谨项:2 输欠奠删除的人数:号;号; 编录除编录除 入记別入记删:16895L0142是否删y:1609510140是否删y6 总结经过连续二周的时间, 终于学生选课管理系统程序设计完成了。 虽然在这之 前,我们已经对 c 语言这门课程学习了一个学期,对其有了一定的了解,但是也仅仅只是停留在了解的范围, 对里面的好多东西还是

10、很陌生, 更 多的在运用起来的时候还是感到很棘手, 毕竟,以前从来没接触过这些, 所以学 起来会觉得有些费劲。 由于之前学习 C 语言可能没花多少时间, 对里面有些知识 一窍不通,所以要用C语言的知识来设计一个学生选课管理系统, 对我来讲是有 一定难度的。不过还好,我们班的同学都很好,他们孜孜不倦的教我,这使我相 当的感动。对于这次的课程设计我的完成过程主要是这样子的。 首先我分析了相关的题 目内容,并参考了书上的学生管理系统和网上的一些相关资料然后才开始正式进 行设计。一开始不知从何下手但后来又分析了一下题目。 知道了学生选课管理系 统主要就是有一些操作来完成, 这些操作包括: 输入学生选课

11、信息、 删除学生选 课信息、显示学生选课信息、查找学生选课信息等等。同时通过这几天的程序及报告编写, 我也发现了自己的很多不足, 自己知识 的很多漏洞, 看到了自己的实践经验还是比较缺乏, 理论联系实际的能力还是比 较脆弱。尤其是编写大型的程序所要拥有的知识和技能比较缺乏。程序编好了, 还要经过调试和修改, 这步也很关键, 好的程序是经过了无数次的修改和调试才 产生的。在同学的帮助下我的程序基本上能够满足要求, 但还有一些地方需要改 进,在今后我应该在多看书的同时还要加强实践的练习。 才能进一步提高自己的 编程能力。参考文献1 何钦铭. 颜晖. C 语言程序设计(第 3版). 北京:高等教育出

12、版社,2 颜晖.张泳. C 语言程序设计实验与习题指导(第 3 版). 北京:高等教育 出版社,3 谭浩强.C语言程序设计.清华大学出版社,4 谭浩强.C程序设计题解与上机指导.清华大学出版社,5 C 语言函数手册 . 机械工业出版社, 19996 C 语言的实际应用 . 安徽科学技术出版社, 2000致谢在这次 c 语言课程设计中,首先得感谢李老师给予我们指导与帮助 , 在她的 指导帮助下, 才使得我们能够顺利的完成课程设计, 更重要的是在这次课程设计 中,极大的提高我的 c 语言设计能力, 也让我深刻的了解到自己在这方面的诸多 不足,使得我能更清楚的了解自己的水平, 加强了我对这门学科的认

13、识。 同时也 感谢和我一起完成这课设的王云龙同学, 我们在互相交流帮助中也相互学习到许 多小的应用技巧, 解决了一些列问题。 还要感谢那些给予我们帮助的同学, 也给 了我很大的帮助。附录:源程序#include #include #include #include #define SIZE 300#define LEN sizeof(WOR)typedef structint num;char name20;char keming20;float xuefen;char teacher20;WOR;WOR worSIZE, WOR1SIZE;int flag;void menu()um);um

14、=worm.num)printf( 该记录已经存在 , 按任意键继续 !); getch();fclose(fp); return;printf ( 学生姓名 :);scanf (%s, );keming);xuefen);teacher); if(fwrite(&worm,LEN, 1, fp)!=1)ame);m+;clear();um)break; if(i=m)printf( 没有找到要删除的节点 n);getch();return;printf( 找到记录,是否删除 (y/n);scanf(%s,ch);scanf(%s,ch);if(strcmp(ch,Y)=0|

15、strcmp(ch,y)=0)um)break;if(i=m)printf( 没有找到要查找的节点 n);getch();flag = 1;return;printf( 找到记录 );printf( 是否显示该学生的详细信息: (Y/N);scanf(%s,ch);if(strcmp(ch,Y)=0|strcmp(ch,y)=0)学分 printf( 学号 姓名 已选课程 任课老师 n);printf(%-9dt%stt%st%tt%sn,wori.num,,wori.keming,wor i.xuefen,wori.teacher);fclose(fp);void disp

16、lay()um,,wori.keming,wori.xuefen,wori.teacher); getch();printf( 按任意键继续! n);getch();clear();/ 清屏int main()int i,d;menu();while(1)printf(n 输入选项 :);scanf(%d,&d);switch(d)case 1:input();break;/ 输入信息case 2:int m;printf( 请输入要删除的人数 :n); scanf(%d,&m);for(i=0; im; i+)del();getch();printf( 按任意键继续: );getch();clear();/ 清屏break;/

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论