您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 市场营销 > C语言课程设计—学生选课系统-DOC
海量资源,欢迎共阅武汉理工大学华夏学院课程设计报告书课程名称:C课程设计题目:学生选课系统程序设计系名:信息工程系专业班级:姓名:学号:指导教师:成绩:2016年3月4日课程设计任务书学生姓名:专业班级:指导教师:工作单位:设计题目:学生选课系统程序设计初始条件:学生选课系统能提供学生选课,以及学生和课程信息管理等一系列功能。要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)1、任务描述海量资源,欢迎共阅假定有n门课程,每门课程有课程编号,课程名称,课程性质,学时,授课学时,实验或上机学时,学分,开课学期等信息,学生可按要求(如总学分不得少于15)自由选课。试设计一个选修课程系统,使之能提供以下功能:(1)系统以菜单方式工作(2)课程信息和学生选课信息录入功能(课程信息用文件保存)(3)课程信息浏览功能(4)查询功能(5)按学分查询(6)某门课程学生选修情况(可选项)2、本课程涉及的知识点变量的定义、输入和输出函数、结构体类型的定义、结构体数组、循环语句、选择语句,文件的操作等。设计报告撰写格式要求:一、课程设计说明书(或报告书)正文内容【设计题目】例如:学生选课系统【开发环境】硬件环境:微机系列,内存在1G以上,软件环境:MicrosoftWindowsXP【开发工具】MicrosoftVisualC++6.0【完成时间】2016-2-29-----2016.3.4【需求分析】分析阐述用户的需要以及要实现的程序应具有什么样的功能。【系统总体设计】在明确了所要解决的问题后,很自然地就要提出自己解决问题的思路和方案。让读者了解方案的总体设计和关键技术。要阐述自己的设计方案,说明为什么要选择或设计这样的方案。具体包括:系统总的设计思路,功能模块图;海量资源,欢迎共阅使用的设计软硬件环境和开发技术和平台等。【系统详细设计】在这部分中,应该具有相关关键实现技术(如使用什么库函数,使用什么循环结构等)。【系统调试和测试】调试:介绍设计过程中遇到的问题和解决方法。测试:介绍如何测试系统,测试中发现的问题和解决方案。【结束语】这部分篇幅不大,对整个设计中做的工作、获得的成果、心得体会等做一个简单小结。【参考文献】罗列在设计过程中查阅的文献名称注意:参考文献罗列的格式为资料编号•作者姓名•文献或期刊名称•出版社名称,文献的出版时间或期刊的期号例如:文献[1]谭浩强.,C程序设计(第二版)[M],北京:清华大学出版社,2001年期刊[2]于振海.officeXP网上数据存取.计算机应用文摘[J],2003,24;69(页)二、课程设计说明书(或报告书)正文的书写格式简介一、正文标题层次正文题序层次是文章结构的框架,一般采用社会通用的论文书写形式。即章条序码统一用阿拉伯数字表示,题序层次可以分为若干级,各级号码之间加小圆点,末尾一级的海量资源,欢迎共阅后面不加小圆点,层次分级一般不超过四级为宜,示例如下:第一级(章)123……第二级(条)1.11.2…2.12.2…3.13.2………第三级(条)1.1.11.1.2…1.2.11.2.2…2.1.12.1.2…2.2.12.2.2…3.1.13.1.2…3.2.13.2.2………二、表格每个表格应有自己的表序与表题,表序与表题间空一格。例如:表1.1XXXX,且表题与表序应写在表格的上方正中处。三、插图插图图面要整齐、美观,插图应与正文呼应,不能脱节。每幅插图应有图序与图题,图序编号要连续,图序与图题间空一格且要放在插图下方居中处。四、公式公式应另起一行写在稿纸的中央时间安排:周次星期一星期二星期三星期四星期五第2周第1-4节第3-4节第1-4节第1-2节第1-4节地点现教221现教221现教221现教221现教221课程设计考核及评分标准1.系统完成任务:50分海量资源,欢迎共阅2.各种技术的综合应用:10分3、回答提问情况:20分4.设计报告:20分目录1设计题目学生选课系统2开发环境2.1硬件环境微机系列,内存在1G以上2.2软件环境Win7系统3开发工具MicrosoftVisualC++6.04完成时间2016年2月29日—2016年3月4日5需求分析用户需求如下:假定有n门课程,每门课程有课程编号,课程名称,课程性质,学时,授课学时,实验或上机学时,学分,开课学期等信息,学生可按要求(如总学分不得少于15)自由选课。试设计一个选修课程系统。故此,经过分析后我觉得程序应该具有以下功能:(1)系统以菜单方式工作(2)课程信息和学生选课信息录入功能(3)课程信息浏览功能(4)查询功能(5)按学分查询6系统总体设计系统由哪几个功能模块构成,给出功能模块图。C中模块化的工具是函数根据上面的需求分析,可以将这个系统的设计分为如下六大模块。选课模块、按学分查找模块、按编号查找模块、查看课程模块、查看选课情况模块、课程输入模块、完成选择模块。模块图如下图1所示。图1系统功能模块图另外,程序用了两个结构体和五个全局变量N1,N2,kk1,kk2,kk3。五菜单选择模录入学生学生选课退出完成选择学生信息录入课程信息课程信息管理个全局变量是用来控制输入数据的循环的。两个结构体分别是课程信息结构体:structcouse//课程信息结构体{intnum1;//课程编号charname1[20];//课程名称charxinzhi[30];//课程性质intztime;//课程总学时intstime;//授课学时intshiyan;//实验学时intscore;//学分longintdate;//开学学期intnelepeo;//课程已选人数intMelepeo;//课程人数上限structcouse*next;};和存储学生信息的结构体:structstudent//学生信息结构体{intnum2;charname2[20];intnelenum[50];//已选课程编号intnelen;//已选课程数量structstudent*next;};voidMs(){for(kk1=0;kk11100;kk1++)for(kk2=0;kk21200;kk2++)for(kk3=0;kk31200;kk3++);}7系统详细设计7.1系统主菜单系统界面设计图包括六个选项,用户可根据自己的需求选择不同的选项。系统界面设计图如图2所示。图2系统界面设计图系统模块图分为六大模块。分别是录入课程信息模块,课程信息管理模块,录入学生信息模块,学生信息管理模块,学生选课模块和退出系统模块。系统功能模块图如下图3所示。图3系统功能模块图图3主菜单设计模块图主菜单录入课程信息课程信息管理录入学生信息学生信息管理学生选课退出系统当用户进入主菜单后,会显示有六个选项的界面,需要用户从1-6个选项中选择一个选项来进行操作,若所选数非1-6,则会退出系统。系统主菜单流程图如图4所示。NYY图4系统总流程图该程序实现代码如下。intmain()//主函数{inti;start:printf(\n\t\t\t欢迎使用学生选课系统!\n);printf(\n);printf(\t主菜单:\n);printf(\t*******************************************************\n);printf(\t**\n);定义n输入n,判断n是根据n的值调用各功能模开始调用完成结束printf(\t*1.录入课程信息*\n);printf(\t*2.课程信息管理*\n);printf(\t*3.录入学生信息*\n);printf(\t*4.学生信息管理*\n);printf(\t*5.学生选课*\n);printf(\t*6.退出系统*\n);printf(\t**\n);printf(\t*******************************************************\n);printf(\n请输入菜单选项(1~6):);scanf(%d,&i);if(i1||i6){printf(输入错误,请重输:\n);gotostart;}switch(i){case1:{system(cls);inputc();gotostart;break;}case2:{system(cls);managementc();gotostart;break;}case3:{system(cls);inputs();gotostart;break;}case4:{system(cls);managements();gotostart;break;}case5:{system(cls);elective();gotostart;break;}case6:{system(cls);printf(感谢使用本系统!\n\n再见!\n);}}return0;}7.2录入课程信息录入课程信息有两个选项,录入课程和返回主菜单。录入课程信息界面设计如图5所示。图5录入课程信息界当用户进入录入课程后,会有两个选项,录入课程和返回主菜单。录入课程信息流程图如图6所示。YNNY图6录入课程信息流程图实现该功能代码如下。voidkeyboardc()//录入课程子函数{structcouse*p1,*p2;N1=0;p1=p2=(structcouse*)malloc(sizeof(structcouse));printf(课程编号课程名称课程性质总学时授课学时实验学时学分开课学期人数上限\n);scanf(%d%s%s%d%d%d%d%d,&p1-num1,p1-name1,&p1-xinzhi,&p1-ztime,&p1-stime,&p1-shiyan,&p1-score,&p1-date,&p1-Melepeo);p1-nelepeo=0;head1=NULL;定义nn=1?n=2?返回主菜单录入课程录入完成开始结束while(p1-num1!=0){N1=N1+1;if(N1==1)head1=p1;elsep2-next=p1;p2=p1;p1=(structcouse*)malloc(sizeof(structcouse));scanf(%d%s%s%d%d%d%d%d,&p1-num1,p1-name1,&p1-xinzhi,&p1-ztime,&p1-stime,&p1-shiyan,&p1-score,&p1-date,&p1-Melepeo);p1-nelepeo=0;}p2-next=NULL;}voidinputc()//录入课程主函数{inti;printf(\t\t\t录入课程信息\n);printf(\n1.录入课程\n);printf(2.返回主菜单\n);printf(请选择(1~2):\n);scanf(%d,&i);switch(i){case(1):keyboardc();break;case(2):break;}}7.3课程管理课程管理有三个选项,新增课程,删除课程和返回主菜单。课程管理界面设计如图7所示。图7课程管理界面课程管理可以选择增添或删除课程,若输入课程格式错误会显示错误,用户需要重新输入程管理流程图如图8所示。NY图8课程管理流程图实现该功能代码如下。voiddelc(intnum1)//课程管理子函数(删除课程){structcouse*p1,*p2;保存显示失新增或删除课程输入课程信息开始结束if(head1==NULL){printf(\n没有课程,无法删除!\n);gotoend;}p1=head1;while(num1!=p1-num1&&p1-next!=NULL){p2=p1;p1=p1-next;}if(num1==p1-num1){if(p1==head1)head1=p1-next;elsep2-next=p1-next;printf(已删除该编号课程!\n);N1=N1-1;}elseprintf(无该编号的课程!\n);end:;}v
本文标题:C语言课程设计—学生选课系统-DOC
链接地址:https://www.777doc.com/doc-6704192 .html