《高级语言程序设计(C)》课程设计指导书2012.doc_第1页
《高级语言程序设计(C)》课程设计指导书2012.doc_第2页
《高级语言程序设计(C)》课程设计指导书2012.doc_第3页
《高级语言程序设计(C)》课程设计指导书2012.doc_第4页
《高级语言程序设计(C)》课程设计指导书2012.doc_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

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

文档简介

高级语言程序设计(C)课程设计指导书工商管理学院信息管理系2012年2月目 录目 录1第一章 设计要求2第二章 报告要求5第三章 选题及参考题目10第四章 成绩考核14第一章 设计要求一、基本要求1、要求利用C语言面向过程的编程思想来完成系统的设计;2、突出C语言的函数特征,以多个函数实现每一个子功能;4、画出功能模块图;5、具有清晰的程序流程图和数据结构的详细定义;6、能够进行菜单式功能选择,进行简单界面设计,能够实现友好的交互;7、程序应具备一定的容错能力;8、学生自己所完成工作中要综合运用到所学的如下知识点:(1)数组、结构体或共用体;(2)指针;(3)选择结构程序设计、循环结构程序设计;(4)自定义函数及其调用;(5)简单的文件操作:新建文件、打开文件、写文件等;在基本要求达到后,可进行创新设计,如设置用户登录,用户账户维护;系统用户功能控制,对管理员级和一般级别的用户系统功能操作不同等。二、设计解决方案根据所选题目首先进行算法分析,根据实现的功能进行数据分析,设计相应的数据结构,同时为贯彻“程序设计=算法+数据结构”的思想,完成流程图的设计,然后根据流程图写出设计代码。1、分析程序的功能要求,划分程序功能模块。 2、画出系统流程图。 3、代码的编写。定义数据结构和各个功能子函数。 4、程序的功能调试。 5、完成系统总结报告以及使用说明书三、进度安排要求此次课程设计时间为两周,分五个阶段完成:(一)选题阶段学生在指导老师的指导下按照课程设计的要求和自己的实际情况进行选题。学生在选择过程中按照参考题目的难易程度,寻找合适的课程设计题目,并经指导教师确认后定题,一旦题目选定,不允许随意更改。(二)分析设计阶段指导教师应积极引导学生自主学习和钻研问题,明确设计要求,找出实现方法,按照需求分析、总体设计、详细设计这几个步骤进行。(三)编码调试阶段根据设计分析方案编写C代码,然后调试该代码,实现题目要求的功能。 (四)总结报告阶段总结设计工作,写出课程设计说明书,要求学生写出需求分析、总体设计、详细设计、编码的步骤和内容。(五)考核阶段学生设计完成后,须提交相关内容并完成答辩,成绩有多部分组成,可参考课程设计考核章节内容。课程设计提交内容:1、课程设计报告(打印稿)。2、课程设计报告(电子版)。3、源程序(运行无误)。学生要在规定的时间内,按要求完成选题、系统分析、程序设计、上机调试和课程设计报告等工作。第二章 报告要求课程设计报告是对整个设计工作的陈述和总结,是课程设计最终的文字成果。一、报告内容要求C语言程序设计基础课程设计报告的内容框架:第一部分:引言引言是报告正文的引子,引言在内容上应包括:为什么要进行课程设计?立题的理论或实践依据是什么?拟创新点何在?理论与(或)实践意义是什么?第二部分:系统功能和原始数据(1)原始数据(2)系统功能第三部分:程序总体设计(1)数据结构(2)模块划分和层次结构(3)函数原型清单(4)程序总体框架(5)程序组织第四部分:功能模块函数设计和调试在报告中学生应对所设计的系统进行详细的功能分析,主要模块的算法描述,绘制出系统功能模块图,并具体给出相关的程序流程图(或盒图)。第五部分:程序清单列出整个系统开发的完整程序源代码,并在清单中给出程序中包含的函数等的文字说明。第六部分:课程设计总结对所选题目对应程序的运行情况做详细分析,总结本次设计所取得的经验和收获。如果程序未能全部调试通过,则应分析其原因。第七部分:参考资料在设计和书写报告中所参考的资料列表。二、报告格式要求(样式见下页)(一)报告输出顺序1、封皮;2、目录;3、课程设计内容(上述的七个部分)。(二)排版要求课程设计报告要求用A4纸输出,正文一级标题用黑体三号不加粗,二级标题用宋体四号加粗,三级标题及以下标题均采用黑体四号,正文采用宋体小四。行间距采用行距固定值18磅,段落首行缩进两个汉字,段前段后间距为0行距。课程设计报告字数不少于2000字(不包括程序清单和程序结果的部分)。参见附录2,报告书范文。高级语言程序设计(C)课程设计报告书设 计 题 目 姓 名 专 业 班 级 学 号 指 导 教 师 成 绩 工商管理学院信息管理系2012年2月目 录(黑体小二不加粗居中)(此处空一行)一 引言(仿宋三号加粗)二 系统功能和原始数据三 程序总体设计(只给出一级目录)以下省略报告正文部分:(正文章节编号可参考本指导书,具体内容与设计题目不同会有所区别)一、引言(一级标题黑体三号不加粗)二、系统功能和原始数据(一)原始数据(二级标题宋体四号加粗)(正文宋体小四号,首行缩进2字符,行距为固定值18磅)(二)系统功能三、程序总体设计(正文宋体小四号)六、总结(正文宋体小四号)参考资料:(宋体小三加粗)1 谭浩强.C程序设计(第三版).北京:清华大学出版社,2005 2 谭浩强.C程序设计题解与上机指导(第三版) .北京:清华大学出版社,20053 如是网上资料,请写明网址第三章 选题及参考题目一、选题要求在课程设计中,学生可以在指导教师的指导下自由选择题目,但所选题目的规模和复杂程度应能满足本课程设计要求。选题应避免所有同学都选同样的题目(由指导老师把握)。有些题目可组成小组协作完成,但每组人数不能超过2人。以下给出的仅为参考题目,学生在选择过程中根据自己的实际,按照参考题目的难易程度,寻找合适的课程设计题目,并经指导教师确认后定题,一旦题目选定,不允许随意更改。二、参考题目(详见附录1)第四章 成绩考核一、考核依据通过上机答辩方式,并结合学生的动手能力,独立分析解决问题的能力和创新精神,总结报告和答辩水平以及学习态度和考勤综合考评。结合学生的设计实际达到要求的程度予以评分,教师在成绩记录时采用五级分制方式。考核验收时由指导教师根据本课程设计的要求严格把关,公平公正。二、学生须提交的内容1、课程设计报告(打印稿)。2、课程设计报告(电子版)。3、源程序(运行无误,电子版)。三、成绩评定标准1、优:按要求完成题目,有完整的符合标准的文档,文档有条理、文笔通顺,格式正确,其中有总体设计思想的论述,有正确的流程图,程序完全实现设计方案,设计方案先进,软件可靠性好。 答辩回答问题正确,对系统的演示流畅,源代码解释清晰。2、良:完成设计题目,有完整的符合标准的文档,文档有条理、文笔通顺,格式正确;有完全实现设计方案的软件,设计方案较先进。答辩回答问题较好,对系统的演示较流畅,源代码解释较清晰。3、中:基本完成题目,有完整的符合标准的文档,有基本实现设计方案的软件,设计方案正确。答辩回答问题基本正确,对系统的演示基本完成,源代码解释较清楚。4、及格:基本完成题目,有完整的符合标准的文档,有基本实现设计方案的软件,设计方案基本正确。答辩回答问题基本正确,系统演示能够完成。源代码解释基本清楚。5、不及格:没有完成题目的要求,没有完整的符合标准的文档,软件没有基本实现设计方案,设计方案不正确。答辩回答问题不正确,系统演示不能够完成,源代码解释不清楚。附录1 供选择的C语言程序课程设计题目第一类题目 应用类题目1:年历显示。功能要求:(1) 输入一个年份,输出是在屏幕上显示该年的日历。假定输入的年份在1940-2040年之间。(2) 输入年月,输出该月的日历。(3) 输入年月日,输出距今天还有多少天,星期几,是否是公历节日。题目2:小学生测验面向小学12年级学生,随机选择两个整数和加减法形成算式要求学生解答。功能要求:(1)电脑随机出10道题,每题10分,程序结束时显示学生得分;(2)确保算式没有超出12年级的水平,只允许进行50以内的加减法,不允许两数之和或之差超出050的范围,负数更是不允许的;(3)每道题学生有三次机会输入答案,当学生输入错误答案时,提醒学生重新输入,如果三次机会结束则输出正确答案;(4)对于每道题,学生第一次输入正确答案得10分,第二次输入正确答案得7分,第三次输入正确答案得5分,否则不得分;(5)总成绩90以上显示“SMART”,80-90显示“GOOD”,70-80显示“OK”,60-70显示“PASS”,60以下“TRY AGAIN”。题目3 运动会比赛计分系统要求:初始化输入:N-参赛学校总数,M-男子竞赛项目数,W-女子竞赛项目数各项目名次取法有如下几种:取前5名:第一名得分7分,第二名得分5,第三名得分3,第四名得分2,第五名得分1;取前3名:第一名得分5,第二名得分3,第三名得分2;功能要求:(1)系统以菜单方式工作(2)由程序提醒用户填写比赛结果,输入各项目获奖运动员信息。(3)所有信息记录完毕后,用户可以查询各个学校的比赛成绩(4)查看参赛学校信息和比赛项目信息等。题目4:学生学籍管理系统用数据文件存放学生的学籍,可对学生学籍进行注册,登录,修改,删除,查找,统计,学籍变化等操作。功能要求:(1) 系统以菜单方式工作。(2) 登记学生的学号,姓名,性别,年龄,籍贯,系别,专业,班级;修改已知学号的学生信息;(3) 删除已知学号的学生信息;(4) 查找已知学号的学生信息;(5) 按学号,专业输出学生籍贯表。(6) 查询学生学籍变化,比如入学,转专业,退学,降级,休学,毕业。题目5:排班系统学校实验楼有7名保安人员:钱、赵、孙、李、周、吴、陈。由于工作需要进行轮休制度,一星期中每人休息一天。预先让每一个人选择自己认为合适的休息日。请编制程序,打印轮休的所有可能方案。当然使每个人都满意,例如每人选择的休息日如下: 钱:星期一、星期六赵:星期二、星期四 孙:星期三、星期日 李:星期五 周:星期一、星期四、星期六 吴:星期二、星期五 陈:星期三、星期六、星期日 运行结果: Solution: 1 赵 钱 孙 李 周 吴 陈 =星期四 星期一 星期三 星期五 星期六 星期二 星期日 Solution: 2 赵 钱 孙 李 周 吴 陈 =星期四 星期一 星期日 星期五 星期六 星期二 星期三 Solution: 3 赵 钱 孙 李 周 吴 陈 =星期四 星期六 星期三 星期五 星期一 星期二 星期日 Solution: 4 赵 钱 孙 李 周 吴 陈 = 星期四 星期六 星期日 星期五 星期一 星期二 星期三 题目6:通讯录程序设计设计一个实用的小型通讯录程序,具有添加,查询和删除功能。由姓名,籍贯,电话号码1,电话号码2,电子邮箱组成,姓名可以由字符和数字混合编码。电话号码可由字符和数字组成。实现功能:(1)系统以菜单方式工作(2)信息录入功能 (3)信息浏览功能 (4)信息查询功能 (5)信息修改功能(6)系统退出功能 题目7:学生选课系统假定有n门课程,每门课程有课程编号,课程名称,课程性质,学时,授课学时,实验或上机学时,学分,开课学期等信息,学生可按要求(如总学分不得少于15)自由选课。试设计一个选修课程系统,使之能提供以下功能: (1)系统以菜单方式工作 (2)课程信息和学生选课信息录入功能(课程信息用文件保存) (3)课程信息浏览功能 (4)查询功能 (5)按学分查询(6)某门课程学生选修情况(可选项)题目8:机房收费管理系统(1)输入功能:输入30名学生的学号、班级、姓名、上机起始时间。(2)计算功能:计算每个下机学生的上机费用,每小时1元。(上机费用=上机时间* 1.0/h ,不足一小时按一小时计算)(3)查询功能:按条件(班级、学号、姓名)显示学生的上机时间。(4)机器使用情况的显示(显示方式不限但要一目了然)题目9:班级成绩管理系统对一个有N个学生的班级,每个学生有M门课程。该系统实现对班级成绩的录入、显示、修改、排序、保存等操作的管理。功能要求:(1)本系统采用一个结构体数组,每个数据的结构应当包括:学号、姓名、M门课程名称。(2)本系统显示这样的菜单:请选择系统功能项:a、成绩录入b、成绩显示c、成绩保存d、成绩排序e、成绩修改(要求先输入密码)f、成绩统计1)显示每门课程成绩最高的学生的基本信息2)显示每门课程的平均成绩3)显示超过某门课程平均成绩的学生人数g、退出系统(3)执行一个具体的功能之后,程序将重新显示菜单。(4)将学生成绩保存到文件中。题目10:机房机位预定系统20台机器,编号1到20,从早八点到晚八点。两小时一个时间段,每次可预定一个时间段。功能要求:(1)系统以菜单方式工作(2)查询,根据输入时间,输出机位信息。(3)机位预定,根据输入的时间查询是否有空机位,若有则预约,若无则提供最近的时间段,另:若用户在非空时间上机,则将用户信息列入等待列表。(4)退出预定,根据输入的时间,机器号撤销该事件的预定!(5)查询是否有等待信息,若有则提供最优解决方案(等待时间尽量短),若无则显示提示信息。题目11:班级档案管理系统对一个有N个学生的班级,通过该系统实现对该班级学生的基本信息进行录入、显示、修改、删除、保存等操作的管理。功能要求:(1)本系统采用一个包含N个数据的结构体数组,每个数据的结构应当包括:学号、姓名、性别、年龄、备注。(2)本系统显示这样的菜单:请选择系统功能项:a 学生基本信息录入b 学生基本信息显示c 学生基本信息保存d 学生基本信息删除e 学生基本信息修改(要求先输入密码)f 学生基本信息查询(1)按学号查询(2)按姓名查询(3)按性别查询(4)按年龄查询g. 退出系统(3)执行一个具体的功能之后,程序将重新显示菜单。(4)将学生基本信息保存到文件中。(5)进入系统之前要先输入密码。题目12:职工工资管理系统 功能设计要求 1、输入记录:将每一个职工的姓名、ID号以及基本工资、职务工资、岗位津贴、医疗保险、公积金的数据作为一个记录。该软件能建立一个新的数据文件或给已建立好的数据文件增加记录。2、显示记录:根据用户提供的记录或者根据职工姓名显示一个或几个职工的各项工资和平均工资。3、修改记录:可以对数据文件的任意记录的数据进行修改并在修改前后对记录内容进行显示。4查找记录:可以对数据文件的任意记录的数据进行查找并在查找前后对记录内容进行显示。 5、删除记录:可删除数据文件中的任一记录。 6、统计: (A)计算各项工资平均工资及总工资, (B)统计符合指定条件(如职工工资前三项之和在3000元以上、30002000元、20001000元) 以内的工资职工人数及占总职工人数的百分比。(C)按字符表格形式打印全部职工工资信息表及平均工资(包括各项总的平均工资)。 7、保存数据文件功能。 例如:职工工资信息表 ID号 姓名 基本工资 职务工资 津贴 医疗保险- 公积金- 总工资 01 张望 1286 794 198 109 135 2034 02 李明 1185 628 135 94 114 1740 03 王小民 895 438 98 64 73 1294 04 张效章 1350 868 210 116 150 2162 05 彭山 745 398 84 61 68 1098 各项平均工资 1092.2 625.2 145 88.8 108题目13:工资纳税系统个人所得税每月交一次,底线是1600元/月,也就是超过了1600元的月薪才开始计收个人所得税。个人所得税税率表一(工资、薪金所得适用)级数-全月应纳税所得额-税率()1-不超过500元的-52-超过500元至2000元的部分-103-超过2000元至5000元的部分-154-超过5000元至20000元的部分-205-超过20000元至40000元的部分-256-超过40000元至60000元的部分-307-超过60000元至80000元的部分-358-超过80000元至100000元的部分-409-超过100000元的部分-45表中的应纳税所得额是指以每月收入额减除1600元后的余额。例如:计算为:2500-1600=900应纳个人所得税额=5005%+40010% =65再比如:我们用一个大额工资计算,25000元应纳税所得额=25000-1600=23400应纳个人所得税税额=5005%+150010%+300015%+1500020%+340025%=4475要求:输入工资计算出纳税金额。题目14:歌手比赛系统对一次歌手比赛的成绩进行管理,功能要求:1、输入每个选手的数据包括编号、姓名、十个评委的成绩,根据输入计算出总成绩和平均成绩(去掉最高分,去掉最低分)。2、显示主菜单如下:1)输入选手数据 2)评委打分 3)成绩排序(按平均分)4)数据查询 5)追加学生数据 6)写入数据文件7)退出系统。题目15:用英文单词模拟数学计算读入两个小于100的正整数A和B,计算A+B。需要注意的是:A和B的每一位数字由对应的英文单词给出。具体的输入输出格式规定如下:输入格式:测试输入包含若干测试用例,每个测试用例占一行,格式为 A + B = ,相邻两字符串有一个空格间隔。当A和B同时为zero时输入结束,相应的结果不要输出。输出格式:对每个测试用例输出1行,即A+B的值。 输入样例: one + two = three four + five six = zero seven + eight nine = zero + zero = 输出样例:threenine zero nine six题目16:万年历查询程序。功能要求:(1)提供菜单方式选择(2)输入年份、月份、日期,计算得到的是这一天据今天有多少天,星期几;(3)输入公历的年月日,输出农历年月日。(4)输入农历节气,输出当年农历的年月日及公历年月日。可以假定只涉及年份是1940年到2040年。题目17:C语言关键字中英翻译机。要求输入中文的名词和关键字,可以将其翻译成英语,如输入“基本整形”+回车,得到int;输入英文的单词int,则可以翻译成中文“基本整形”。可模拟文曲星来实现。可多次查询,输入bye时退出。题目18:用C语言设计一个简单的计算器,要求能够对输入的数1.进行+,-,*,/,运算;2.可以带括号( );3.不限定运算式的输入长度.(参考编译技术中语法分析原理)第二类题目 小游戏和图形处理题目19:图形时钟功能要求:在屏幕上显示一个图形时钟(用程序绘制一个与时钟样式相似即可),时间与系统时间一致,且要随着时间的走动准确的走动。题目20:五子棋游戏在一个方阵上通过两人对弈的形式,依次在棋盘上放置两种颜色的棋子,哪一方先让五个棋子形成一条直线(包括横、竖、对角线3个方向),即为获胜,本程序实现用键盘控制的五子棋游戏。游戏初始运行界面应为如下:游戏操作规则:按左右上下方向键移动棋子按空格键确定落棋子禁止在棋盘外按空格你是否接受上述的游戏规则(Y/N)如果输入Y,才可以进行游戏,进入正式的游戏界面,要绘制五子棋的棋盘,设置棋子颜色。题目21:计算24游戏要求:输入四个数通过加减乘除计算出24,显示计算过程,并提示成功信息。题目22:输入盘子数(2个以上有效),移动速度,开始演示汉诺塔移动的步骤,要求:盘子,A,B,C柱需要自己绘制,初始时盘子在A柱上通过B柱最终移动到C柱上,显示出盘子在几个柱之间的移动过程。题目23:在屏幕上绘制国际象棋棋盘题目24:在屏幕上绘制围棋棋盘题目25:在屏幕上绘制中国象棋棋盘。第三类题目 数学计算题目26:多项式乘法的实现,已知如下两个多项式P(x)=PX+ PX+.+PX+PQ(x)=qX+qX+.+qX+q求它们的乘积多项式 S(x)=sX+.+sX+s。可以定义两个一维数组p,q,按照次数从高到低存储两个多项式的系数,定义一维数组来s来存储结果;利用函数来完成对结果多项式各项系数的计算,最后在屏幕上计算结果。题目27:实现带有括号的四则运算。输入是一个带有括号的四则运算表达式,输出是计算得出的正确计算结果。例如:输入:123+213-67*34+345/23*45*(34+34-345+245+567)回车,然后程序计算得出结果为:359183题目28:线性方程组求解,输入是N(N256)元线性方程组Ax=B,输出是方程组的解,也可能无解或有多组解。可以用高斯消去法求解,也可以采用其它方法。题目29:n阶方阵求逆。输入是一个n(n256)阶方阵A,输出是它的逆矩阵,要求还要再将得到的逆矩阵与原来的矩阵相乘,验证其结果是单位矩阵。题目30:大整数的四则运算。大整数指超过十位的十进制整数,这里为简便,假定不超过五十位。这类大整数在C语言系统中因超界溢出,是不能直接表达和计算的。可以用数组来表示大整数,在此基础上编写出实现大整数加、减、乘、除的程序,并努力加以优化。题目31:设有任意正三角形ABC,其三条边BC、CA,AB上分别有一点A1、B1、C1,而且有AC1=2C1B,BA1=2A1C,CB1=2B1A。编制程序验证由线段AA1、BB1、CC1相交而成的三角形A2B2C2的面积是正三角形ABC的面积的七分之一。A1BC1B1CA题目32:对于任意的四边形ABCD,其对角线AC与BD的中点分别是M、N,AB、CD的延长线交于R。验证三角形RMN的面积是四边形ABCD面积的四分之一。CNMBADR第四类题目 系统相关题目题目33:设计一个模拟的时间条的程序 基本要求:一般我们在安装程序的时候,会经常看到有一个时间条表示程序安装的进度,这样用户就能够了解到安装还剩余多少时间。本程序实现的就是这个功能。当然,若要将其真正运用到某个程序中,还要加以修改,以便使之的进度能够真正的与应用程序的进度吻合。 创新要求:在基本要求达到后,进行创新设计。 题目34:文件加密 文件的传输会有明文和密文的区别,明文发送是不安全的,用一个程序实现发送文件的加密和解密操作。加密算法,密钥设计由同学自己选择现有的加密解密算法或是自己设计。要求:(1)对文件的字符根据加密算法,实现文件加密。 (2)对操作给出必要的提示。(3) 对存在的file1.txt文件,必须先打开,后读写,最后关闭。加密后的文件放在file2.txt。 (4)解密文件保存在file3.txt中。附录2 报告书范文目 录一 引言3二 系统功能和原始数据5三 程序总体设计8四 功能模块函数设计和调试24五 程序清单29六 课程设计总结33一、引言在理论学习和基础实验的基础上,开发规模较大的程序,掌握应用计算机解决实际问题的基本方法,熟悉C程序开发的全过程。本任务是根据给定的数据和程序,应用单向链表处理一个小班学生的信息。通过整个程序开发的过程,提高综合应用C语言的能力、编程和调试能力,为学习软件专业课程创建较扎实的理论基础和实践基础。二、系统功能和原始数据(一)学生信息和数据格式学生信息:学生信息包含:学号,姓名,性别,出生日期(年,月,日),三门课成绩和总分(数学,英语,C语言,总分)。数据格式:测试数据,以ASCII码文件studf.txt提供。studf.txt 文件结构:学号姓名性别年月日数学英语C语言总分studf.txt文件数据:20015101张明男19821021607276020015103李红英女198308251009689020015102成杰男19831120957087020015106许民光男19840126788774020015104陈富来男19831215867492020015107成杰男198401108478900(二)系统功能1)建立按学号递增的单向链表2)显示学生信息3)插入若干学生4)删除若干名学生按学号查找需删除的学生信息5)按学号查学生分数和平均分数6)按姓名查学生分数和平均分数7)按总分查学生分数和平均分数8)查各门课程平均分9)查学生平均年龄10) 查男女学生人数11) 显示学生信息表 三、程序总体设计(一)数据结构依据给定的学生信息和数据格式,链表结点必须用结构实现。结构类型的层次结构:struct student学号 字符串 char no9姓名 字符串 char name9(汉字)性别 字符串 char sex3(汉字)出生日期 日期结构 struct date 年 int year 月 int month 日 int day 三门课成绩和总分 整型数组 int score4结构类型定义为全局标识符: struct date/* 日期结构*/ int year;/* 年 */char month;/* 月 */char day;/* 日 */ ; struct student/* 学生信息结构 */ char no9;/* 学号 */char name9;/* 姓名 */char sex3;/* 性别 */struct date birthday;/* 出生日期 */int score4;/* 三门课成绩和总分 */ ;(二)模块划分依据程序的数据结构和功能,遵照“自顶向下”原则,采用基于函数的逐步求精法,描述该程序的层次结构。图1显示出该程序的层次结构,共三层。 函数原形清单:11 建立学生信息单向链表 create struct student * create(struct student *head,int *n)12 按学号链表递增排序 sort_l struct student * sort_l(struct student *head)13 插入学生信息 struct student * insert(struct student *head,int *n)图1 程序的层次结构(三)程序总体框架模块层次结构,只确定了模块之间的关系和函数原型,不是程序的执行步骤。程序总体框架是该程序的总体流程图。该程序不是顺序连续地执行全部功能,而是在某一时刻有选择地执行一种或多种功能。因此,选用菜单方式是较佳的方案。程序总体框架如图2 所示。(四)程序组织程序采用多源程序文件组织,由hstud_1.c主控源程序文件和stfun_1.c函数源程序文件等组成。图2 程序总体框架四、功能模块函数设计和调试(一)按学号查学生信息和平均成绩1、函数原型、功能和形参说明函数原型:void srch_no(struct student *head)函数功能:按学号查学生信息和平均成绩参数说明:struct student *head /*链表头结点指针*/2、函数流程图见下页。3、运行结果五、程序清单主控源程序文件 stumain.c/*/* 应用单向链表处理学生信息 stumain.c */* */* 学号:* 姓名:* 日期:* */*/#include #include #include #include stfun_2.c /* 处理学生信息的函数 */struct date/* 日期结构*/int year; /* 年 */char month; /* 月 */char day; /* 日 */;struct student/* 学生信息结构*/char no9; /* 学号 */char name9; /* 姓名 */char sex3; /* 性别 */struct date birthday; /* 出生日期 */int score4; /* 三门课分数和总分 */struct student *next; /* 指针,指向下一结点 */; main ()struct student *head=NULL;/* 单向链表的头指针*/int code;/* 菜单代码*/int n=0;/* 实际学生数*/clrscr();/* 库函数, 清屏 */head=create(head,&n);/* 从正文文件studf.tx读入数据,建立学生信息单向链表 */printf(nn 学生信息(学号无序):nn);printsi(head); /* 显示单向链表 */

温馨提示

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

评论

0/150

提交评论