高级语言程序设计课程设计题目.doc
《高级语言程序设计课程设计题目.doc》由会员分享,可在线阅读,更多相关《高级语言程序设计课程设计题目.doc(14页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、信电学院C语言课程设计题目及参考资料一、贪吃蛇游戏程序设计设计要求:1. 贪吃蛇游戏是一个经典小游戏,一条蛇在封闭围墙里,围墙里随机出现一个食物,通过按键盘四个光标键控制蛇向上下左右四个方向移动,蛇头撞倒食物,则食物被吃掉,蛇身体长一节,同时记10分,接着又出现食物,等待蛇来吃,如果蛇在移动中撞到墙或身体交叉蛇头撞倒自己身体游戏结束。2. 要求游戏难度可以三个水平,低难度,贪吃蛇移动的慢,随着难度增加,贪吃蛇移动速度变快。3. 食物只能在屏幕的某个指定区域出现。4. 在屏幕区域加墙,贪吃蛇碰到墙,游戏结束。设计思想:程序关键在于表示蛇的图形及蛇的移动。用一个小矩形快表示蛇的一节身体,身体每长一
2、节,增加一个矩形块,蛇头用俩节表示。移动时必须从蛇头开始,所以蛇不能向相反的方向移动,如果不按任意键,蛇自行在当前方向上前移,但按下有效方向键后,蛇头朝着该方向移动,一步移动一节身体,所以按下有效方向键后,先确定蛇头的位置,而后蛇的身体随蛇头移动,图形的实现是从蛇头新位置开始画出蛇,这时,由于未清屏的原因,原来的蛇的位置和新蛇的位置差一个单位,所以看起来蛇多一节身体,所以将蛇的最后一节用背景色覆盖。食物的出现与消失也是画矩形块和覆盖矩形块。为了便于理解,定义两个结构体:食物与蛇。设计流程图:开始初始化界面和蛇身放置食物蛇开始运动蛇吃到食?蛇长大蛇死亡?继续?退出界面NNYNY游戏者按键选择Y二
3、、手机通信录管理系统1、 需求分析手机通信录采用文件存储,因而要提供文件的输入输出操作;查看功能要提供显示操作;增加新数据的过程要检查是否有重复,存储空间是否已满,且录入的新数据能按递增的顺序自动进行条目编号,因而要提供查找、统计和排序操作;要提供修改与删除和自动调整编号功能;另外还要提供键盘式选择菜单以实现功能选择。2、 总体设计整个系统可以设计为数据查看模块、数据添加模块、数据修改模块、数据删除模块。手机通信录管理系统数据查看模块数据添加模块数据修改模块数据删除模块办公类个人类商务类3、 详细设计数据结构采用结构体,设计通信录结构体:Struct communicationMethod C
4、har name20; /姓名 Char tel12; /电话号码 Int type; /分类:0表示办公类,1表示个人类,2表示商务类 Char email20; /电子邮件地址 Int num; /条目编号ComMtd;(1)数据查看模块通过菜单选择查看信息,然后选择办公类、个人类或者商务类,则显示所选类信息列表。这是一个查找与显示的过程,在手机通信录文件中查找type类型符合的记录,输出。 (2)数据添加模块 提示输入一条记录,将对通信录执行查找操作,查找姓名和电话号码字段,如不存在相同的记录,则用以追加方式写入文件,并给记录的条目字段赋值(在检查有无重复的过程中启动计数),否则提示“数
5、据已经存在,请重新输入或者取消!”。 (3)数据修改模块 修改通信录信息,则需要读文件,判断信息是否是要修改的信息,如果是,修改,重新写入文件;否则直接重新写入文件。 (4)数据删除模块通过菜单选择删除操作,由于C语言没有提供直接删除文件记录的函数,因而需要自己实现:读记录,判断是否要删除(与输入的要删除的记录比较),如果要删除,则舍弃;否则重新写入文件。三、工资管理系统1、 需求分析工资信息存放在文件中,提供文件的输入、输出等操作;要实现浏览功能,提供显示、排序操作;而查询功能要求实现查找操作;另外还应该提供键盘式选择菜单以实现功能选择。2、总体设计整个系统可以分为信息输入、信息添加、信息浏
6、览、信息排序、信息查询和信息统计模块。3、详细设计工资信息采用结构体数组:Struct Salary_Info int Card_No; /工资卡号 Char name20; /姓名 int month; /月份 float Init_Salary; /应发工资 float Water_Rate; /水费 float Electric_Rate; /电费 float tax; /税金 float Final_Salary; /实发工资SIMAX; /SIMAX中每个数组元素对应一个职工工资信息(1)主函数提供输入、处理和输出部分的函数调用,各功能模块采用菜单方式选择。(2)输入模块 按照工资卡
7、号、姓名、月份、应发工资、水费、电费的顺序输入信息,税金和实发工资根据输入的信息进行计算得到,这些信息被录入到文件中。税金的计算:if(应发工资800&应发工资1400) 税金=(应发工资-1400)*10%;实发工资=应发工资-水费-电费-税金。(3)添加模块增加新的职工工资信息,从键盘输入并逐条写到原来的输入文件中,采用追加而不是覆盖的方式。(4)浏览模块 通过菜单选择按照工资卡号还是姓名浏览。如果按照卡号浏览,则显示的记录按照卡号升序输出;按照姓名浏览则按照字典序输出(调用排序模块的排序功能)。(5)排序模块排序模块提供菜单选择,实现按照工资卡号升序、实发工资降序以及姓名字典序排序。排序
8、方法可以选择冒泡排序、插入排序、选择排序等。(6)查询模块实现按照工资卡号和姓名的查询,采用基本的查找方法即可。(7)统计模块输入起止月份,按照职工卡号和月份查询记录,把起止月份之间的实发工资金额累加。四、校际运动会管理系统1、需求分析要记录比赛结果,可以查看参赛学校的信息和比赛项目信息,因而要实现文件的输入和输出功能;用户可以查询各个学校的比赛成绩,查看参赛学校信息和比赛项目信息等,因而要提供查找和显示功能;另外还应该提供键盘式选择菜单以实现功能选择。2、总体设计 系统被设计为信息输入模块、比赛结果录入模块和查询模块三个模块。3、详细设计 数据结构采用结构体数组,包括学校、项目、运动员三个结
9、构体。Struct athlete Char name20; /姓名 Int age; /年龄 Char From20; /来自学校Athlete; /运动员结构体Struct item Char name20; /项目名Int* weight; /在运行时根据用户的输入动态分配空间(各项目名次取法不同,weight所指空间依次存放第一名得分、第二名得分等)Athlete* player; /指向获奖运动员信息的指针Item; /项目结构体Struct university Char name20; /学校名 Item *item; /竞赛项目指针,根据用户输入动态分配空间 Int score
10、; /学校得分Uni; /学校结构体Item TotalItemItemNum; /项目结构体数组Uni AllUniUniNum; /学校结构体数组(1)主函数 提供输入、处理和输出部分的函数调用,各功能模块采用菜单方式选择。 (2)信息输入模块输入参赛学校总数,M-男子参赛项目数,W-女子参赛项目数。把参赛学校信息和项目信息以及运动员信息录入文件,建立三个文件。例如第i个项目:Scanf(“%s”,TotalItemi.name); /输入项目名Ch=Getchar(); /通过输入1,2,3来选择项目名次取法Switch(ch) Case 1: n=5;break; Case 2: n=
11、3; break; Case 3: printf(“取前几名?”,&n); break; Default: break;TotalItemi.weight=new intn;TotalItemi.athlete=NULL; /指向获奖运动员信息,初始化为空然后写入文件:fp=fopen(“item.txt”,”wb”);fwrite(&TotalItemi,sizeof(Item),1,fp);学校信息和运动员信息的录入与此类似。(2)比赛结果录入模块 通过菜单选择进入比赛结果录入模块,更改TotalItemi.athlete的值,并把获奖名单保存到项目文件中。项目文件格式为:项目名 项目权值
12、(按照第一名、第二名给出权值) 获奖运动员信息(按照第一名、第二名给出) (3)查找模块查找学校信息文件,生成团体总分报表;用基本查找算法查询参赛学校信息(按照校名查找)或者比赛项目信息(按照项目名)。 五、学生学籍信息管理系统设计1、需求分析学生基本信息、学生成绩基本信息要存入文件当中,因而要提供文件的输入输出操作;查询功能要求提供查找和显示操作;删除功能要求实现删除操作;排序功能要求实现排序操作;另外还应该提供键盘式选择菜单以实现功能选择。2、总体设计 整个系统可以设计为数据录入模块、数据查询模块、数据删除模块和数据排序模块。3、详细设计 设计学生基本信息和学生成绩基本信息结构体数组。St
13、ruct int stuNo; /学号 char name20; /姓名 char sex2; /性别 int domNum; /宿舍号 int tel; /电话号码 StuInfo; /学生基本信息结构体Struct int stuNo; /学号 char courseNo; /课程编号 char courseName; /课程名称 int creditHour; /学分Int triGrade; /平时成绩Int experiGrade; /实验成绩Int examGrade; /卷面成绩Float totalGrade; /综合成绩Float finalCreHour; /实得学分Stu
14、GraInfo; /学生成绩基本信息结构体(1)数据录入模块学生基本信息文件可以在磁盘建立,采用写文件方式录入学生成绩基本信息。综合成绩和实得学分通过计算得到。(2)查询模块通过菜单选择查询功能,再选择学生基本情况查询和成绩查询,若选择前者,再通过菜单选择学号、姓名或宿舍号码,按照基本查找算法查找A.TXT,然后把查找结果输出若选择后者,则先在A.TXT中查找学号对应的姓名,再在B.TXT中查找该学生的课程情况,并统计科目和实得总学分,输出结果。(3)删除模块通过菜单选择删除学生的功能,输入要删除学生的学号,则分别在A.TXT和B.TXT中查找该生信息,删除之;或者输入学生的姓名,先在A.TX
15、T中得到该生的学号,删除该生信息,再在B.TXT中删除该学号对应的信息。注意:C语言中没有直接删除信息的函数,需要自己实现,可以采取读出数据,判断数据(如果不删除,则进入缓冲区,否则删除),写入数据(把缓冲区中的数据写入文件)的步骤进行。(4)排序模块通过菜单选择排序依据,采用排序算法(冒泡、插入、选择等)对数据进行排序并输出结果。六、学生选修课程管理系统1、需求分析 系统以菜单方式工作,因而要提供键盘式选择菜单以实现功能选择;由于课程信息要用文件保存,因而要提供文件的输入输出操作;由于要浏览信息,所以要提供显示功能;要实现查询功能,故要提供查找操作。2、总体设计 整个系统可以设计为信息输入模
16、块、信息查询模块以及信息浏览模块。3、详细设计 数据结构采用结构体,这里采用课程信息结构体和学生选课信息结构体。 Struct Char courseCode10; /课程编号 Char courseName20; /课程名称 Char courseType10; /课程类别 Int totalPeriod; /总学时 Int classPeriod; /授课学时 Int experiPeriod; /上机学时 Float creditHour; /学分 Int term; /开课学期CourseInfoN; /课程信息结构体Struct Int stuNo; /学号; Char course
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 高级 语言程序设计 课程设计 题目
限制150内