程序设计学生选修课程系统设计与实现_第1页
程序设计学生选修课程系统设计与实现_第2页
程序设计学生选修课程系统设计与实现_第3页
程序设计学生选修课程系统设计与实现_第4页
程序设计学生选修课程系统设计与实现_第5页
已阅读5页,还剩80页未读 继续免费阅读

下载本文档

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

文档简介

专学专学班指生级导姓学教题目:学生选修课程系统设计与实现业计算机科学于技术(嵌入式)名 号 师徐小龙 日 程序设计指导教师成绩评定表班级学号班级学号专业评分标准优秀良好中等差认真对待课程设计,遵守实验室规定,上机不迟到早退,不做与设计无关的事。设计的科学、合理性功能丰富、符合设题目要求界面友好、外观漂亮、大方设计的原创性设计报告正确合理、反映系统设计流程文档内容详实程度文档格式规范、排版美观容绩设计成果设计报告简练简练、准确阐述设计内容,能准确有条理回评分等级指导教师签名日期2017-10-27备注评分等级有五种:优秀、良好、中等、及格、不及格假定有n门课程,每门课程有课程编号,课程名称,课程性质,总学时,授课学时,实验或上机学时,学分,开课学期等信息,学生可按要求(如总学分不得少于60)自由选课。试设计一选修课程系统,使之能提供以下功能:(1)系统以菜单方式工作(2)课程信息录入功能(课程信息用文件保存)--输入(3)课程信息浏览功能--输出(4)查询功能:按学分查询、按课程性质查询(5)学生可以选修课程录入课录入课程浏览课程查询课程进入选课统计选课将将课程信息输入文件中浏浏览文件中的课程信息按照按照课程性质学分查询课程信息输入学号姓名进行选开从从选课文件中统计信息1.使系统以菜单方式工作:输出个菜单,用于显示以从文件中加载的课程信息与若干个可选的功能选项。根据客户输入的选项来运行不同的功能,2.录入课程信息:使用户可以将课程信息输入文件3.浏览课程信息:使用户可以按照学分或者课程性质浏览文件中的课程信息4.进入选课操作:输入学号,姓名进行选课5.统计选课情况:从选课文件中统计信息在主函数中按照提示输入相对应数字进入相应的操作,同时,在输入序号就就具体流程图如下:应的操作对字否否(2)录入函数的设计scanf从键盘上输入课程信息,再通过fprintf将输入的信息保存在文件算法设计如下:S存具体流程图如下:输入课程信输入课程信息保存课程信息就是否指向尾就(3)浏览函数的设计对于浏览函数,通过fscanf读取文件中的课程信息,然后再通过printf将信息输出算法设计如下:S1:打开“course、txt”文件S2:读取文件中的信息S3:输出信息具体流程图如下:打开文件读读取课程信息输出课程信息就就是否指向尾(4)查询函数的设计对于不同方式的查询,如果输入的方式与文件中有相符的,则输出查询结果算法设计如下:S1:选择查询方式按课程性质信S2:如果方式就是学分查询,输入想查询的学分,打开文件,未指向文件尾部,如果文件中存在,则输出查询结果S3:如果方式就是课程性质查询,输入想查询的课程性质,打开文件,未指向文件尾部,读取文件信息,如果文件中存在,则输出查询结果S4:如果方式数字不存在,则退出查询具体流程图如下:选择查询方式输出课程信息输出课程信息否(5)选课函数的设计对于选课函数,先从键盘上输入学号,姓名,课程编号,课程名称,打开算法设计如下:S入选课信息,包括学号,姓名,课程编号,课程名称S2:打开文件“course、txt”S3:如果课程存在,则进行下一步Sstudenttxt文件S5:保存选课信息具体流程图如下:输入选输入选课信息打开课程文件建立选课文件读取选课信息保否(6)统计函数的设计对于统计函数,打开“student、txt”文件,读取文件中的选课信息,输出文件中的选课信息,计数,关闭文件算法设计如下:Sstudent、txt”文件S2:当未指向文件尾部,读取文件中的选课信息S3:输出选课信息同时计数S具体流程图如下:否1、主函数:构造voidmain(),实现调用各个功能模块:学生选课系统执行主流程如图所示,先执行主函数中显示菜单函数,通过循环与按键操作来执行相应的操作。按键的有效键值为0~5之间的任意数值,其她按入的机会。各个按键的执行功能为:“0”:退出系统;{intf1();uulanongjiprintf("\n***********************");printf("\n\n**********");**********************printf("\n");printf("*********************\n");printf("\n***********************");printf("\n\n{printf("\n;}while(n>0&&n<6){{}{printf("\n\n");printf("\n;*******************theend**********************请先选择1进行课程信息录入:");输入错误!请重新输入!\n输入错误!请重新输入!\n}}if(n==0){printf\n\n\n\n\n\n\n");printf("**********谢谢使用!**********\n;tfnnnnn}}函数功能及实现:此函数为输出菜单,进入系统后提示可根据供选择的项目进{printf"\n\n\n\n");printf("printf("printf("printf("printf("printf("}3.定义课程、选课结构体变量{{函数功能及实现:此函数录入课程信息,在查询、浏览、进入选课,查瞧选课信rscanf函数从屏幕读取课程信息,并通过fprintf函数将课程信息录入到文件“course、txt”中,最后输出主菜单,返回主程序。{FILE*fp;inti;if((fp=fopen("D://course、txt","w"))==NULL){}printf("\n请输入选择的课程门数:");printf("\n\n\n");f1();{}printf("\n}功能及实现:此函数先定义指向文件的指针*fp,课程结构体变量c,通过iffscanf函数将文件中的课程信息读出并通过printf打印到屏幕上,再通过intliulan()//浏览函数{ntiFILE*fp;if((fp=fopen("D://course、txt","r"))==NULL){}f1();while(!feof(fp)&&i<count)i++;}}函数功能及实现:先定义学生结构体变量s,打印相关可供选择的选项,通过则就是按学分查询课程,符合第一个if语句,输入想要查询的学分,程序通过for入“3”,符合第二个if语句,则按照课程名称查询,输入要课程名称,程序通过{FILE*fp;printf("\n1、按学分查询\n");printf("\n2、按课程性质查询");printf("请选择查询方式\n\n输入选项数字:");{printf("\n;}输入错误!请重新输入!\nif(b==1){printf("\n输入您要查询的学分:");if((fp=fopen("D://course、txt","r"))==NULL){}f1();while(!feof(fp)&&i<count){i++;}}{printf("\n\n输入您要查询的课程性质:");pfopenDcoursetxtrNULLcoursetxt{}f1();while(!feof(fp)&&i<count){i++;}}{}}能及实现:进入此函数可进行自由选课,首先定义了学生结构体变量s,r开文件并找到所要选择的课程,通过break跳出循环,关闭课程文件“course、{inti;FILE*fp;{printf("\n请输入学号姓名课程编号及课程名称:");fopenDcoursetxtrNULLcoursetxt{}while(!feof(fp)){}fclose(fp);printf("\n就是否继续,就是1,否0\n");studenttxtaNULL{}for(i=0;i<t;i++);hileflagprintf("\n*********恭喜选课成功!*********\n");}打印出所有已选课学生的学号、选课课程编号与所选课程的名称,通过计数变量inttongji()//统计函数{FILE*fp;if((fp=fopen("D://student、txt","r"))==NULL){}printf("\n学号姓名课程编号及课程名称\n");while(!feof(fp)){i++;}t=i;for(i=0;i<t;i++)printf("\n选课学生总人数为:%d人",total);}源程序代码:{{{intf1();uulanongjiprintf("\nprintf("\n\nprintf("\n");printf("printf("\nprintf("\n\n*********************************************");**********欢迎进入学生选课系统!**********");*******************theend*********************\n");*********************************************");请先选择1进行课程信息录入:");scanfdn请重新输入{printf("\n;}输入错误!请重新输入!\nwhile(n>0&&n<6){{}{printf("\n\n");printf("\n输入错误!请重新输入!\n;scanfdn止错误,提示重新输入}}if(n==0){printf\n\n\n\n\n\n\n");printf("**********谢谢使用!**********\n;tfnnnnn}exit(0);//退出选课系统}{printf"\n\n\n\n");intfnnintfnnintfnn}intf1(){printf("\n课程编号课程名称课程性质总学时学分开课学期:\n");}intluru()//录入函数{FILE*fp;//定义指向文件的指针inti;openDcoursetxtwNULLcoursetxt{}printf("\n请输入选择的课程门数:");printf("\n\n");f1();{}pprintf("\n}intliulan()//浏览函数*********录入成功!*********\n");{ntiFILE*fp;//定义指向文件的指针fopenDcoursetxtrNULLcoursetxt{}f1();while(!feof(fp)&&i<count)i++;}p}{FILE*fp;//定义指向文件的指针printf("\n1、按学分查询\n");printf("\n2、按课程性质查询");printf("请选择查询方式\n\n输入选项数字:");scanfdb止错误,提示重新输入{printf("\n输入错误!请重新输入!\n;}//按学分查询if(b==1){printf("\n输入您要查询的学分:");if((fp=fopen("D://course、txt","r"))==NULL){}f1();while(!feof(fp)&&i<count)//当没有指向文件尾部,读取文件“course、txt”中的数据{if(c、mark==score)//比较输入的分数与结构体中的分数,如果相同,输出那组数据i++;}}{printf("\n\n输入您要查询的课程性质:");fopenDcoursetxtrNULLcoursetxt{}f1();while(!feof(fp)&&i<count)//当没有到达文件尾部,读取“course、txt”中的数据{ifstrcmpckindkind=0)//比较输入的字符串与原文件中的课程性质,如果相输出那组数据i++;}}{}}{inti;FILE*fp;//定义指向文件的指针{printf("\n请输入学号姓名课程编号及课程名称:");fopenDcoursetxtrNULLcoursetxt{}while(!feof(fp))//如果课程编号与课程名称与学生所选一致,就跳出,执行下一步{}fclose(fp);printf("\n就是否继续,就是1,否0\n");if((fp=fopen("D://student、txt","a+"))==NULL)//建立文件“student、txt”{建立,并将学生选课信息输入"student、txt"for(i=0;i<t;i++);hileflagprintf("\n*********恭喜选课成功!*********\n");}inttongji()//统计函数{FILE*fp;if((fp=fopen("D://student、txt","r"))==NULL)//打开文件“student、txt”{}printf("\n学号姓名课程编号及课程名称\n");while(!feof(fp))//计数{件“student、txt”i++;}t=i;for(i=0;i<t;i++)printf("\n选课学生总人数为:%d人",total);p}据及其结果分析b询:程中的问题(1)调试步骤先进入菜单函数,选择数字进行相应的操作,然后,先进入录入函数阶段,程信息保存在文件中。然后,进入浏览函数阶段,先读取课程文件中的课程信息,然后将信息显示到屏幕上。接着,进入查询函数阶段,通过学分或者课程性质,查询相应的课程信息。随后,进入选课函数阶段,通过输入学号与姓名,进行选课操作,并创建一个“student、txt”文件,将选课信息保存其中。最后,进入统计函数阶段,读取选课文件中的信息,统计选课人数,并将选课信息显示在屏幕上。选scanfsssstrstrstr);输入数据howareyoun{rubreakiulanbreakhaxunbreakuankebreakongjibreak}(2)解决问题2、像逻辑错误,即算法中的问题,要通过不断检验算法,观察它逻辑中的错误。同时对于运行中出现中文的问题,就是因为对于数组的未初始化3、对于可以创建,但就是无法链接的问题,可能就是未关闭运行窗口,或查它所在的文件中就是否多有一行,如果文件中多一行,那就就是保存时出现问题,如果就是文件中就是正确的,那问题就可能出现在输出函数时,循环中多进行一次课程设计总结为了更好的复习C语言的基础知识,进一步加深对C语言编程的理解,老师给每个人布置了完成一个操作系统的任务。这对于我们来说,无疑就是一个巨大的个好的系统,就是要分成很多模块,而不就是单纯的堆叠在一个主函数里,对于同一种性质的,最好将她们放在另外一个函数里,方便多次调用,并且,避免了不必小小的问题,就会情不自禁的欢喜,瞧到错误栏显示的错误不断变少,就感觉成功而且,我还了解到独立思考的重要性。平时,上机课,我们都就是习惯性

温馨提示

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

评论

0/150

提交评论