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

    C语言课程设计报告示例.docx

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

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

    C语言课程设计报告示例.docx

    1、C语言课程设计报告示例课程设计和调试过程规范化要求1) 需求分析分析系统功能需求以及用户操作流程。2) 概要设计在需求分析的基础上,确定系统总体框架 (系统功能结构图 )。3) 详细设计定义数据存储结构,并设计实现系统功能的具体算法,画出各算法的工作流程图。4) 代码设计根据所设计的算法,定义相应函数分别实现系统的各子功能模块,同时由主程序提供 友好的用户界面,使用户可通过选择主菜单来调用课程设计中要求完成的各个功能模 块,子程序执行完后还可以返回到主菜单,继续选择其他功能执行。源程序要求书写 规范,结构清晰。重点函数的重点变量,重点功能部分均要求给出清晰的程序注释。5) 程序调试程序编译、链

    2、接成功后,自己设计实现程序功能的一组或多组测试数据,并严格按照 此测试数据进行测试,然后分析测试结果。如果程序不能正常运行或结果不正确,则 需对程序进行单步调试,在调试过程中认真查找算法实现中存在的问题,并加以分析 和改正。如果程序能够基本正确地运行,可考虑增加若干基本的容错功能(如避免用 户操作错误时程序出现死循环等) ;另外尽量对现有算法给出改进方案,并比较不同算 法之间的优缺点。课程设计报告及书写内容要求 课程设计任务完成后,每位同学必须独立书写一份课程设计报告。课程设计报告的内 容应包括以下部分:1)需求分析。包括设计题目、设计要求以及系统功能需求分析;2)概要设计。包括系统总体设计框

    3、架和系统功能模块图;3)详细设计。包括主要功能模块的算法设计思路以及对应的工作流程图;4)主要源程序代码。包括存储结构设计说明,以及完整源程序清单;5)调试分析过程描述。包括测试数据、测试输出结果,以及对程序调试过程中存在问题的思考(列出主要问题的出错现象、出错原因、解决方法及效果等) ;6)测试结果。列出所有功能的运行界面,并作文字说明。7)总结。包括课程设计过程中的学习体会与收获、对 C 语言和本次课程设计的认识以及 自己的建议等内容。8)源代码。完整的 c 语言代码。二O一七二O八学年第二学期信息工程学院课程设计报告书课程名称:高级语言程序设计班 级:学 号:姓 名:指导教师:薛海燕二O

    4、八年六月1.题目 42.功能 43.要求 44.设计内容 44.1 主函数 MAIN () 4.4.2 初始化函数 STUDENT * INIT () 44.3 菜单选择函数 INT MENU _SELECT(); 44.4输入记录函数 STUDENT * CREATE() 54.5 显示记录函数 VOID PRINT(STUDENT * HEAD ) 54.6查找记录函数 VOID SEARCH(STUDENT * HEAD ) 54.7删除记录函数 STUDENT * DELETE(STUDENT * HEAD ) 64.8排序函数 STUDENT * SORT(STUDENT * HEA

    5、D ) 74.9插入函数 STUDENT * INSERT(STUDENT * HEAD ,STUDENT * NEW) 74.10保存数据到文件函数 VOID SAVE (STUDENT * HEAD ) 84.11从文件读数据函数 STUDENT *LOAD () 85.调试分析 96.测试结果 97.总结 128.源代码 121.题目学生成绩管理系统的设计与实现2.功能(1)每一条记录包括一个学生的学号、姓名、 3 门成绩、平均成绩。(2)输入功能:可以一次完成无数条记录的输入。(3)显示功能:完成全部学生记录的显示。(4)查找功能:完成按姓名查找学生记录,并显示。(5)排序功能:按学生

    6、平均成绩进行排序。(6)插入功能:按平均成绩高低插入一条学生记录。(7)保存功能:将学生记录保存在任何自定义的文件中,如保存在: c:score。(8)读取功能:将保存在文件中的学生记录读取出来。(9)有一个清晰美观界面来调用各个功能3.要求(1)整个系统均用 C 语言实现;(2)利用指针、链表来实现学生成绩的数据结构设计;(3)系统具有输入、显示、查询、删除、排序、插入,保存、读取基本功能;(4)系统的各个功能模块都用函数的形式来实现;(5)可以将学生成绩信息保存在文件中。(6)可以将学生信息从文件中读取出来。4.设计内容 整个系统除了主函数外,另外还有 10 个函数,实现八大功能:输入功能

    7、、显示功能、 查找功能、排序功能、插入功能、保存功能、读取功能。各个函数的详细设计说明分别如 下:4.1主函数 main()利用无限次循环for(;)和swithch()实现各函数的调用,系统根据输入的数字选项来调用 相应的函数。4.2初始化函数 STUDENT *init()这是一个无参函数,里面只有一个语句,它的作用是使链表初始化 ,使head的值为NULL 。比如:没有这个函数的话,在你没有输入任何数据的情况下,去执行显示功能的 时候会显示一些乱码!4.3菜单选择函数 int menu_select();这是一个无参函数,主要实现“功能选择”的界面,在这个界面里有显示系统的九大 功能,根

    8、据每个功能前面的序号进行选择,中间还显示系统当前的时间。等执行完每一个 函数功能后,按任一键回到主界面也要通过这个函数来实现!4.4输入记录函数 STUDENT *create()这是一个无参函数,用来执行第学生成绩记录的输入,当学生为 0时停止输入,函数结束后,带回一个指向链表头的指针 head。算法:先声明一个首节点 head,并将head-next设为NULL。每输入一个数据就声明一个新节点P,把p-next设为NULL,并且链接到之前列表的尾端。for(;)N-S流程图如图1所示。指针p指向新开辟的单元指针p是否为空 一 是否输出内存溢出输入学号p-nump-num 是否为 0 “停止

    9、 输入 返回 菜单输入姓名p-namefor(i=0;isum=s;p-average=(float)s/3 ;p-order=0 ;p-next=head ; head=p;head=NULL图1输入学生信息流程图4.5显示记录函数 void print(STUDENT *head)这是一个不返回值的有参函数,形参为“链表头的指针”,负责对全部学生成绩记录 的输出,不足之处就是不能对学生成绩进行分页显示。算法:先将p结点的指针指向第一个结点,将 p结点(即第一个结点)的数据输出。然后再将p结点的指针指向p指针的的指针(即下一结点),将p结点(即第一结点)的数据输出。重 复执行此步聚直到p指针

    10、指向NULL为止。N-S流程图如图2所示。p=head使指向第一个结点输出p所指向的结点p指向一下个结点当p指的不是表尾图2显示学生信息流程图4.6查找记录函数 void search(STUDENT *head)这是一个不返回值的有参函数,形参为“链表头的指针”,实现按学号对某个学生进行查找,并显示所查找到的记录。算法:采用线性查找法往下一个节点查找。输入所要查找的学生的学号 S,设一个指针变量p,先指向第一个结点,当 strcmp(p-names) & p != NULL时,使p后移一个结点,如 果p!=NULL,输出p所指的结点。N-S流程图如图3所示。输入要查找的学生的学号 sp=he

    11、ad使p指向第一结点当记录的学号不是要找的,或指针不为空时p=p-n extNULL如果指针不为空输出p所指向的结点显示没有该学生图3按照学号查找学生信息流程图4.7删除记录函数 STUDENT *delete(STUDENT *head)这是一个有参函数,形参为“链表头的指针”,先输入要删除的学生记录的学号,找 到后显示该学生信息,等确认后便可按“ Y”进行删除。算法:从p指向的第一个结点开始,检查该结点中的 num值是否等于输入的要求删除的那个学号。如果相等就将该结点删除,如不相等,就将 p后移一个结点,再如此进行下去,直到遇到表尾为止。N-S流程图如图4所示。p仁head;输入入要删除的

    12、学号s当(strcmp(p1-num,s)& p1 != NULLp2=p1 p1=p1- nexthead=p1- next p2-n ext=p1- next 的信息“(删除头结点)图4按照学号删除学生信息流程图4.8排序函数 STUDENT *sort(STUDENT *head)这是一个有参函数,形参为“链表头的指针”,按学生成绩的平均分高低进行排序, 还可以显示名次。N-S流程图如图5所示。temp=head-next, head-next=NULL当 temp!=NULL 时t=temp ; temp=temp-next ; p仁head; p2=head; 当 t-average

    13、average&p1!=NULL 时p2=p1 ; p1=p1-p1=p2是next ;t-n ext=p1 ; head=t;t-n ext=p1 ; p2-n ext=t;p仁head;当 p1!=NULL 时i+ ; p1-order=i ; p1=p1-next ;输出“排序成功”图5按照平均分降序排序流程图4.9插入函数 STUDENT *insert(STUDENT *head,STUDENT *new)这是一个有参函数,形参有两个,一个是“链表头的指针”,一个是“待插入指针”, 按照原来成绩平均分的高低进行插入,插入后会重新进行排序,并返回。算法:先将学生的成绩按平均分由高分到低

    14、分进行排序,再插入一个新生的结点 ,要求按平均分的高低顺序插入。先用指针变量 p0指向待插入的结点,p1指向第一个结点。如果pO-averageaverage,则待插入的结点不应插在 p1所指的结点之前。此时将 p1后移,并使p2指向刚才p1所指的结点。重复以上的步骤,直到 pO-average=p1-average为止。这时将p0指向的结点插到p1所指结点之前。但是如果 p1所指的已是表尾结点,则p1就不应后移了。如果 p0-average比所有结点的average都小,则应将p0所指的结点插 到链表末尾。如果插入的位置既不在第一个结点之前,又不在表尾结点之后,则将 p0的值赋给p2-,使p

    15、2-next指向待插入的结点,然后将 p1的值赋给p0-next,使得p0-next 指向p1指向的变量。如果插入位置为第一个结点之前,则将 p0赋给head,将p1赋给p0-next。如果要插到表尾之后,应将 p0赋给p1-next,NULL赋给p0-next。最后再调用排序的函数,将学生成绩重新排序.N-S流程图如图6 所示P仁head, p0=new原来的链表是空表 一一 匸将p0所指 的结点作为 唯一结点当p0-averageaverage以及p1所指向的不是表尾结占八、p2指向p1位置 p1向后移一个结点 _ p0-average=p1-averagep1指向头结点 是 否p1- n

    16、 ext=p0 p0- next=NULL (插到表尾之后)head=p0 p0 -next=p1 (插到表头之前)p2-n ext=p0 p0-n ext=p1(插到表中间)n=n+1 ;(结点加1)head=sort(hear);(将成绩重新排序)图6按照平均分有序插入新学生流程图4.10保存数据到文件函数void save(STUDENT *head)这是一个不返回值的有参函数,形参为“链表头的指针”,可以把学生记录保存在电脑 上由自己任意命名的二进制文件。N-S流程图如图7所示。输入要保存记录的文件地址 outfile 文件不能打开 一p=head;输出一个出错信 息,并返回菜单当p不

    17、为空时fwrite(p,LEN,1,fp);(写入一条记录)p=p-next;(指针后移)fclose(fp);(关闭文件)图7将学生信息保存到文件流程图4.11从文件读数据函数 STUDENT *load()这是一个不返回值的有参函数,形参为“链表头的指针”,根据输入的文件地址进行读 取。N-S流程图如图8所示。定义两个指针变量 p1,p2输入要打开的记录文件地址 in file_文件不能打开否 开辟一个新单元f指针P1是否为空否 是返回菜单返回菜单 读入记录fclose(fp);(关闭文件)图8从文件读入学生信息流程图5调试分析(1) 刚开始没有那个初始化函数,程序运行后,没有输入任何数据

    18、就试得去执行显示 功能,结果显示的是一些乱码!加入初始化函数后,这种现象也随之消失。(2) 刚开始执行输入函数,按学号顺序输入十个学生的成绩 ,输完后执行显示功能, 学生成绩记录是按学号的反顺序显示的,试着在其中增加一些语句,希望能把学号按正常顺序显示,但暂时没有成功,所以在输入成绩时只能按学号反顺序输入,最后就按学号正 常顺序输出了。(3) 刚开始时,先把成绩按平均分排序,再插入一个学生的成绩,执行显示功能,虽然插入的学生的成绩能正常插入,但该学生的名次为 0。后来,在插入成绩之后,调用排序函数,把所有成绩重新排序一次。(4) 在输入函数中设了一个无限循环,可以输入无数个学生的成绩信息,当学

    19、号为 0 的时候则停止输入。(5) 输入太多个学生的成绩时,屏幕显示不能控制为一页一页显示,所以为了方便起 见,不要输入太多记录,十七左右为最佳。(6) 在没有输入任何信息的情况下,去执行排序功能,最后显示有一个记录,学号、 姓名为空白,成绩都为 0,名次为1。(7) 在输入选项时不能输入字母 ,否则会死循环,建议不要乱输字母。* 这里写自己的调试过程,可以贴图并配以文字分析*6测试结果(1)主函数非法输入测试如图9所示为主函数非法输入测试。选釋你晏谡行的骡作(17): ghfhfgkylhy辘人u含有养法宇荷运重訴请一口请逢择畑费三二的饌作(町:1 现在谓毡昵提示进特书購电人库活錯人鱼吃A举

    20、的兰旨匡吠* 上)图9主函数非法输入测试(2)登记入库测试如 图10所示登记入库界面。ttfe輸fe.s -KF 亠 I-压J=rF3窄豈生 7底畳XWu -=: WXMMX - Nt Xrt号 宰越 件香00它C由E 00G00 0QGQ01112?2 舅雜-2 3M5G再初坡卷 匡傕哼理碍列讣也界讣氓眉 辛弭衲tpTIII爺带錯也 符幵耀tp;?4M置卡皆-;丄-逼彩打;j- ,-; .;?, :tp6S6黑決汴伫 主陀tpMS致慚期试 t-ziflj| 十护5弱 :1 lL.lv +.:,出上孝耳:再 輻盛图11图书馆所有藏书一览(3)读者登录数据测试 如图12,为读者登陆测试界面。书号

    21、佻作者出版社tpMU*亓斎201 02 計tqS55S乂2011 02 9 C;i 辛煙 “:* tyfla图12读者登陆数据测试(4)借书操作测试如图13所示。如借书成功,现存量减少。oql# r :k& r 4- - oo怡愉入疑奏垂哉的书号711 I2M- -” S. id - .作看出版社出版日槻n1122220G9 OG 12zzd图13借书操作测试图14为读者的借阅情况。巧号滄* 口作者出版社还书日期t p5泣篦法异论環华大学2011.02.23tqSSSS现忧礼仪无名T牧学隔2011.02.29111222高等数学JS果高敷出版社2811.02.38图14读者的借阅情况(5)还书

    22、操作测试如图15所示。选中需要还的高等数学书,还书成功,高等数学现存量重新变成 25。捋盘找師节号:111222/ 予 |TJ - t拍版社由皈日期 现存st库存氧111222托芸蠢爭咼甑出版牡2009 0G.M 25 25图15还书操作图16显示读者的借书情况中少了高等数学。来妥的邃老:李远髙 以站聂窓的儘闻情駅;书号书Jg作者岀版社还岂E賄tpSSSS劉去导论F H3 W W老英清半太学2011,02 29tq5555现代礼仪2011,02.29图16还书成功后的借阅情况7总结* 这里写自己的心得体会,比如拿到题目之后如何一步一步实现的?收获的经验是什么?程序中哪部分是碰到的难点?如何解决

    23、这个难题的?以后怎样做才能提高程序设计课程的学习效果? *8源代码高级语言程序设计课程设计评分标准学号 姓名等级对知识的理解和掌握(占总成绩25%)知识理解透彻,且掌握扎实 基本理解所学知识 概念不清,没有理解所学知识程序功能的完善程度(占总成绩15%)完善完善基本完善 不完善程序结构的合理性(占总成绩15%)合理基本合理 不太合理数据结构的合理性(占总成绩15%)正确应用并有创新 正确应用基本正确应用学生的工作态度与 独立工作能力(占总成绩15%)工作态度认真能独立完成任务 工作态度认真但独立性较差 工作态度基本认真但缺乏独立性设计报告的规范性(占总成绩15%)符合规范 基本符合规范 规范性较差成绩等级指导老师签字时间


    注意事项

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

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




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

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

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


    收起
    展开