欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    语c言课程设计报告课程信息管理系统大学论文.docx

    • 资源ID:14570461       资源大小:396.66KB        全文页数:45页
    • 资源格式: DOCX        下载积分:5金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要5金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    语c言课程设计报告课程信息管理系统大学论文.docx

    1、语c言课程设计报告课程信息管理系统大学论文中 国 地 质 大 学本科生课程论文封面 课程名称 C语言课程设计 教师姓名 本科生姓名 本科生学号 本科生专业 会计学 所在院系 经济管理学院 类别: 课程设计 日期: 2015年1月21日课程设计评语对课程论文的评语:平时成绩:课程论文成绩:总 成 绩:评阅人签名:注:1、无评阅人签名成绩无效;2、必须用钢笔或圆珠笔批阅,用铅笔阅卷无效;3、如有平时成绩,必须在上面评分表中标出,并计算入总成绩。1课程论文题目课程信息管理系统课程信息包括:记录编号、课程编号、课程名、学时(讲课学时、实践学时)、学分、开课学期,考核方式(考试/报告)功能要求:A、 从

    2、课程信息文件中读取已有的课程信息,并实现屏幕显示。B、 能通过课程编号对已有的课程信息进行修改,要求编号不能修改,其他信息内容都可改,修改的结果保存至课程信息文件。C、 实现对课程信息的统计(分学期统计课程数量及开课总学分数)。D、 实现对课程信息的查询显示(查询条件分为课程编号、课程学分、开课学期),对有多条记录的查询结果按照课程开课学期进行排序显示。E、 新课程信息的添加并保存至课程信息文件。F、 数据约束关系:学时=讲课学时+时间学时;学分=学时/16。G、 课程信息的删除,根据课程编号,删除指定课程信息,并将结果写入文件。H、 每增加一条记录,记录编号自动加1。2程序设计思路(1)需求

    3、分析由于要录入、读取、保存课程信息,因而要实现文件的输入输出以及保存功能;要求可以对课程信息进行统计,因而需要有统计功能;要求用户可以修改、删除课程信息,并且可以添加新课程信息等,因而要提供修改、删除和添加功能;另外,还应该提供键盘式选择菜单以实现功能选择。(2)总体设计可以将这个系统的设计分为数据输入、数据修改、数据统计、数据查找、数据添加、删除数据、数据显示7个模块。(3)数据结构设计 根据问题描述,可采用结构体数组。结点结构(画相应的结构图):NumberClassNumberNameTeachTimePracticeTimeCreditSemesterTextWay定义如下:struc

    4、t Class int Number; int ClassNumber; char Name10; float TeachTime; float PracticeTime; float Credit; char Semester10; char TextWay10; Class10,CL;3功能模块图【输入课程信息数据模块】:【显示课程信息模块】:【查询课程模块】:【修改课程信息模块】:【统计课程数目模块】:【课程信息添加模块】:【删除课程信息模块】:4数据结构设计 把课程的相关信息作为结构体成员,存放若干课程信息用结构体数组。用while循环控制功能菜单的选择,swith中设置相应的功能模块

    5、函数调用,调用完一个函数后然后返回while进行判断,结果为真则进行功能菜单的选择,如果条件为假则终止函数。5.算法设计(1)总体设计 把课程的记录编号、课程编号、课程名、学时(讲课学时、实践学时)、学分、开课学期,考核方式(考试/报告)作为结构体成员,存放若干个课程的信息用结构体数组。将要实现的功能分为一个一个的函数模块,需实现哪个供的语句时就调用该功能语句。而要实现菜单式的功能选择又需要while中嵌套swith语句,即调用完一个函数后进行while判断,while中的条件控制语句如果为真,则执行功能选项,然后进行swith判断,符合case几的选项就调用相应的函数,然后再进行while判

    6、断,直到不符合条件是跳出循环,结束函数。这样就实现了函数的菜单式功能选择并得到相应的结果。(2)各个功能模块的设计各个函数功能模块实现不同的功能,且互相不影响。加入需同时实现二个或两个以上的函数就同时调用函数,这与函数模块之间互相独立互不影响不矛盾,而且这样写思路清晰,程序可读性高,不易出错,能够插入你想要的模块功能而不影响其他的函数和整体。(3)输入数据模块具体算法首先是声明结构体,然后定义结构体数组,数组的每一个元素都包含结构体中的所有成员,即一个课程的所有信息。用for循环遍历分别输入每一个课程的: 课程编号、课程名、学时(讲课学时、实践学时)、学分、开课学期,考核方式(考试/报告)。循

    7、环结束完后即完成了数据的录入操作。代码如下:/*输入模块*/void Input() int i = g_intNum; char c; for (int t = 1; t;i+,g_intNum+) int flag=1; printf(请输入要输入的课程的相关信息:n); Classi.Number = i; printf(请输入课程编号:); scanf(%d, &Classi.ClassNumber); printf(请输入课程名:); scanf(%s, Classi.Name); printf(请输入讲课学时:); scanf(%f, &Classi.TeachTime); pri

    8、ntf(请输入实践学时:); scanf(%f, &Classi.PracticeTime); Classi.Credit = (Classi.TeachTime + Classi.PracticeTime) / 16; printf(请输入开课学期(春季或者秋季):); scanf(%s, Classi.Semester); printf(请输入考核方式(考试或者报告):); scanf(%s, Classi.TextWay); printf(是否继续输入 Y/Nn); while(flag) fflush(stdin); scanf(%c,&c); switch (c) case Y: f

    9、lag = 0; break; case y: flag = 0; break; case N: t = 0;flag = 0; break; case n: t = 0;flag = 0; break; default: printf(输入有误,重新输入Y/N:); save();(4)信息修改模块具体算法首先输入信息,用for循环遍历每一个课程的课程编号,找出相应信息在文件的位置,依次用修改的信息替换掉原文件信息,即完成修改信息的操作。代码如下:/*修改模块*/void Modification() int n,i; printf(请输入您要修改的课程的课程编号:); scanf(%d,

    10、&n); for ( i = 0; i 10; i+) if (Classi.ClassNumber = n) break; FILE*fp; if (fp = fopen(Class.txt, r) = NULL) printf(cannot open filen); exit(0); fscanf(fp, %d%s%f%f%f%s%sn,&Classi.ClassNumber, Classi.Name, &Classi.TeachTime, &Classi.PracticeTime, &Classi.Credit, Classi.Semester, Classi.TextWay); pri

    11、ntf(请输入要修改的课程的相关信息:n); Classi.ClassNumber=n; printf(请输入课程名:); scanf(%s, CL.Name); strcpy(Classi.Name,CL.Name); printf(请输入讲课学时:); scanf(%f, &CL.TeachTime); Classi.TeachTime=CL.TeachTime; printf(请输入实践学时:); scanf(%f, &CL.PracticeTime); Classi.PracticeTime=CL.PracticeTime; CL.Credit = (CL.TeachTime+ CL.

    12、PracticeTime) / 16; Classi.Credit=CL.Credit ; printf(请输入开课学期(春季或者秋季):); scanf(%s, CL.Semester); strcpy(Classi.Semester,CL.Semester); printf(请输入考核方式(考试或者报告):); scanf(%s, CL.TextWay); strcpy(Classi.TextWay,CL.TextWay); save(); fclose(fp);(5)信息统计模块具体算法首先定义两个整型变量和两个浮点型变量,再用for循环和if条件语句遍历文件,若符合条件,整型变量自增一

    13、,浮点型变量由零开始相加,直至信息终结,即完成统计操作。代码如下:/*统计模块*/void Statistics() int i,n1=0,n2=0; float m1=0,m2=0; FILE*fp; if (fp = fopen(Class.txt, r) = NULL) printf(cannot open filen); exit(0); for ( i = 0; i 10; i+) fscanf(fp, %d%d%s%f%f%f%s%sn,&Classi.Number,&Classi.ClassNumber, Classi.Name, &Classi.TeachTime, &Clas

    14、si.PracticeTime, &Classi.Credit, Classi.Semester, Classi.TextWay); if (strcmp(Classi.Semester,春季)=0) n1+; m1= m1 + Classi.Credit; else if (strcmp(Classi.Semester,秋季)=0) n2+; m2 = m2 + Classi.Credit; printf(春季学期总课程数为%dn, n1); printf(春季学期总学分数为%fn, m1); printf(秋季学期总课程数为%dn, n2); printf(秋季学期总学分数为%fn, m2

    15、);(6)信息查询模块具体算法将for循环和if条件语句连用,先按选择的条件定位,再用for循环遍历文件,找出相应的信息使其显示在屏幕上即完成操作。代码如下:/*查询模块*/void Query() int i, k,a; float b; char m10; FILE*fp; if (fp = fopen(Class.txt, r) = NULL) printf(cannot open filen); exit(0); for (i= 0; i10; i+) fscanf(fp, %d%d%s%f%f%f%s%sn,&Classi.Number,&Classi.ClassNumber, Cl

    16、assi.Name, &Classi.TeachTime, &Classi.PracticeTime, &Classi.Credit, Classi.Semester, Classi.TextWay); printf(查询模块:); printf(n); printf(*n); printf(* *n); printf(* 1:课程编号 2:课程学分 *n); printf(* *n); printf(* 3:开课学期 *n); printf(* *n); printf(*n); printf(nn请输入查询选项:); scanf(%d, &k); for (; k4;) printf(请输入

    17、1到4之间的整数:); scanf(%d, &k); if (k=1) printf(请输入要查询的课程编号:); scanf(%d, &a); for ( i = 0; i 10; i+) if (Classi.ClassNumber = a) break; printf(记录编号:%dn,Classi.Number); printf(课程编号:%dn,Classi.ClassNumber); printf(课程名:%sn,Classi.Name); printf(讲课学时:%fn,Classi.TeachTime); printf(实践学时:%fn,Classi.PracticeTime)

    18、; printf(学分:%fn,Classi.Credit); printf(开课学期:%sn,Classi.Semester); printf(考核方式:%snn,Classi.TextWay); else if (k=2) printf(请输入要查询的课程的学分:); scanf(%f, &b); for ( i = 0; i 10; i+) if (Classi.Credit = b) printf(记录编号:%dn,Classi.Number); printf(课程编号:%dn,Classi.ClassNumber); printf(课程名:%sn,Classi.Name); prin

    19、tf(讲课学时:%fn,Classi.TeachTime); printf(实践学时:%fn,Classi.PracticeTime); printf(学分:%fn,Classi.Credit); printf(开课学期:%sn,Classi.Semester); printf(考核方式:%snn,Classi.TextWay); else printf(请输入要查询的开课学期:); scanf(%s, m); for ( i = 0; i 10; i+) if (strcmp(Classi.Semester,m)=0) printf(记录编号:%dn,Classi.Number); prin

    20、tf(课程编号:%dn,Classi.ClassNumber); printf(课程名:%sn,Classi.Name); printf(讲课学时:%fn,Classi.TeachTime); printf(实践学时:%fn,Classi.PracticeTime); printf(学分:%fn,Classi.Credit); printf(开课学期:%sn,Classi.Semester); printf(考核方式:%snn,Classi.TextWay); (7)信息添加模块具体算法用for循环遍历文件中的信息,找出结构体数组中最后一个数组的位置,使全局变量自增一作为记录编号,信息也将写入

    21、后一个空位置,填入信息即可完成操作。代码如下:/*添加模块*/void Add() int i; int t=g_intNum+; FILE*fp; if (fp = fopen(Class.txt, r) = NULL) printf(cannot open filen); exit(0); for (i=0; i10; i+) fscanf(fp, %d%d%s%f%f%f%s%sn,&Classi.Number,&Classi.ClassNumber, Classi.Name, &Classi.TeachTime, &Classi.PracticeTime, &Classi.Credit

    22、, Classi.Semester, Classi.TextWay); if (Classi.Number = 0) break; printf(请输入要添加的课程的相关信息:n); Classi.Number = t; printf(请输入课程编号:); scanf(%d, &Classi.ClassNumber); printf(请输入课程名:); scanf(%s, Classi.Name); printf(请输入讲课学时:); scanf(%f, &Classi.TeachTime); printf(请输入实践学时:); scanf(%f, &Classi.PracticeTime);

    23、 Classi.Credit = (Classi.TeachTime + Classi.PracticeTime) / 16; printf(请输入开课学期(春季或者秋季):); scanf(%s, Classi.Semester); printf(请输入考核方式(考试或者报告):); scanf(%s, Classi.TextWay); save();(8)信息删除模块具体算法首先定义变量n,使输入的课程编号为n,然后用for循环遍历文件找出相应课程编号的位置,令其所有信息值为空,之后保存即可完成操作。代码如下:/*删除模块*/void Delete() int n,i; printf(请输

    24、入要删除的课程的课程编号:); scanf(%d, &n); FILE*fp; if (fp = fopen(Class.txt, r) = NULL) printf(cannot open filen); exit(0); for ( i = 0; i 10; i+) fscanf(fp, %d%d%s%f%f%f%s%sn,&Classi.Number,&Classi.ClassNumber, Classi.Name, &Classi.TeachTime, &Classi.PracticeTime, &Classi.Credit, Classi.Semester, Classi.TextW

    25、ay); if (Classi.ClassNumber = n) Classi.Number = 0; Classi.ClassNumber=0; Classi.Credit = 0; strcpy(Classi.Name, 0); Classi.PracticeTime = 0; strcpy(Classi.Semester, 0); Classi.TeachTime=0; strcpy(Classi.TextWay, 0); break; save(); fclose(fp);(9)浏览模块具体算法定义指针fp,打开文件,用for循环依次将信息输出到屏幕上即完成操作。代码如下:/*显示模块

    26、*/void Display() FILE*fp; if (fp = fopen(Class.txt, r) = NULL) printf(cannot open filen); exit(0); for (int i = 0; i10; i+) fscanf(fp, %d%d%s%f%f%f%s%sn,&Classi.Number,&Classi.ClassNumber, Classi.Name, &Classi.TeachTime, &Classi.PracticeTime, &Classi.Credit, Classi.Semester, Classi.TextWay); for (i = 0; i 10&Classi.Number!=0; i+) printf(记录编号:%dn,Classi.Number); printf(课程编号:%dn,Classi.ClassNumber); printf(课程名:%sn,Classi.Name); printf(讲课学时:%fn,Classi.Teach


    注意事项

    本文(语c言课程设计报告课程信息管理系统大学论文.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开