高级语言程序设计课程设计题目.docx

上传人:b****3 文档编号:11564818 上传时间:2023-06-01 格式:DOCX 页数:22 大小:23.43KB
下载 相关 举报
高级语言程序设计课程设计题目.docx_第1页
第1页 / 共22页
高级语言程序设计课程设计题目.docx_第2页
第2页 / 共22页
高级语言程序设计课程设计题目.docx_第3页
第3页 / 共22页
高级语言程序设计课程设计题目.docx_第4页
第4页 / 共22页
高级语言程序设计课程设计题目.docx_第5页
第5页 / 共22页
高级语言程序设计课程设计题目.docx_第6页
第6页 / 共22页
高级语言程序设计课程设计题目.docx_第7页
第7页 / 共22页
高级语言程序设计课程设计题目.docx_第8页
第8页 / 共22页
高级语言程序设计课程设计题目.docx_第9页
第9页 / 共22页
高级语言程序设计课程设计题目.docx_第10页
第10页 / 共22页
高级语言程序设计课程设计题目.docx_第11页
第11页 / 共22页
高级语言程序设计课程设计题目.docx_第12页
第12页 / 共22页
高级语言程序设计课程设计题目.docx_第13页
第13页 / 共22页
高级语言程序设计课程设计题目.docx_第14页
第14页 / 共22页
高级语言程序设计课程设计题目.docx_第15页
第15页 / 共22页
高级语言程序设计课程设计题目.docx_第16页
第16页 / 共22页
高级语言程序设计课程设计题目.docx_第17页
第17页 / 共22页
高级语言程序设计课程设计题目.docx_第18页
第18页 / 共22页
高级语言程序设计课程设计题目.docx_第19页
第19页 / 共22页
高级语言程序设计课程设计题目.docx_第20页
第20页 / 共22页
亲,该文档总共22页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

高级语言程序设计课程设计题目.docx

《高级语言程序设计课程设计题目.docx》由会员分享,可在线阅读,更多相关《高级语言程序设计课程设计题目.docx(22页珍藏版)》请在冰点文库上搜索。

高级语言程序设计课程设计题目.docx

高级语言程序设计课程设计题目

信电学院《C语言课程设计》题目及参考资料

一、贪吃蛇游戏程序设计

设计要求:

1.贪吃蛇游戏是一个经典小游戏,一条蛇在封闭围墙里,围墙里随机出现一个食物,通过按键盘四个光标键控制蛇向上下左右四个方向移动,蛇头撞倒食物,则食物被吃掉,蛇身体长一节,同时记10分,接着又出现食物,等待蛇来吃,如果蛇在移动中撞到墙或身体交叉蛇头撞倒自己身体游戏结束。

2.要求游戏难度可以三个水平,低难度,贪吃蛇移动的慢,随着难度增加,贪吃蛇移动速度变快。

3.食物只能在屏幕的某个指定区域出现。

4.在屏幕区域加墙,贪吃蛇碰到墙,游戏结束。

设计思想:

程序关键在于表示蛇的图形及蛇的移动。

用一个小矩形快表示蛇的一节身体,身体每长一节,增加一个矩形块,蛇头用俩节表示。

移动时必须从蛇头开始,所以蛇不能向相反的方向移动,如果不按任意键,蛇自行在当前方向上前移,但按下有效方向键后,蛇头朝着该方向移动,一步移动一节身体,所以按下有效方向键后,先确定蛇头的位置,而后蛇的身体随蛇头移动,图形的实现是从蛇头新位置开始画出蛇,这时,由于未清屏的原因,原来的蛇的位置和新蛇的位置差一个单位,所以看起来蛇多一节身体,所以将蛇的最后一节用背景色覆盖。

食物的出现与消失也是画矩形块和覆盖矩形块。

为了便于理解,定义两个结构体:

食物与蛇。

设计流程图:

开始

初始化界面和蛇身

放置食物

蛇开始运动

蛇吃到食?

蛇长大

蛇死亡?

继续?

退出界面

N

N

Y

N

Y

游戏者按键选择

Y

 

二、手机通信录管理系统

1、需求分析

手机通信录采用文件存储,因而要提供文件的输入输出操作;查看功能要提供显示操作;增加新数据的过程要检查是否有重复,存储空间是否已满,且录入的新数据能按递增的顺序自动进行条目编号,因而要提供查找、统计和排序操作;要提供修改与删除和自动调整编号功能;另外还要提供键盘式选择菜单以实现功能选择。

2、总体设计

整个系统可以设计为数据查看模块、数据添加模块、数据修改模块、数据删除模块。

手机通信录管理系统

数据查看模块

数据添加模块

数据修改模块

数据删除模块

办公类

个人类

商务类

3、详细设计

数据结构采用结构体,设计通信录结构体:

StructcommunicationMethod

{

Charname[20];//姓名

Chartel[12];//电话号码

Inttype;//分类:

0表示办公类,1表示个人类,2表示商务类

Charemail[20];//电子邮件地址

Intnum;//条目编号

}ComMtd;

(1)数据查看模块

通过菜单选择查看信息,然后选择办公类、个人类或者商务类,则显示所选类信息列表。

这是一个查找与显示的过程,在手机通信录文件中查找type类型符合的记录,输出。

(2)数据添加模块

提示输入一条记录,将对通信录执行查找操作,查找姓名和电话号码字段,如不存在相同的记录,则用以追加方式写入文件,并给记录的条目字段赋值(在检查有无重复的过程中启动计数),否则提示“数据已经存在,请重新输入或者取消!

”。

(3)数据修改模块

修改通信录信息,则需要读文件,判断信息是否是要修改的信息,如果是,修改,重新写入文件;否则直接重新写入文件。

(4)数据删除模块

通过菜单选择删除操作,由于C语言没有提供直接删除文件记录的函数,因而需要自己实现:

读记录,判断是否要删除(与输入的要删除的记录比较),如果要删除,则舍弃;否则重新写入文件。

三、工资管理系统

1、需求分析

工资信息存放在文件中,提供文件的输入、输出等操作;要实现浏览功能,提供显示、排序操作;而查询功能要求实现查找操作;另外还应该提供键盘式选择菜单以实现功能选择。

2、总体设计

整个系统可以分为信息输入、信息添加、信息浏览、信息排序、信息查询和信息统计模块。

3、详细设计

工资信息采用结构体数组:

StructSalary_Info

{

intCard_No;//工资卡号

Charname[20];//姓名

intmonth;//月份

floatInit_Salary;//应发工资

floatWater_Rate;//水费

floatElectric_Rate;//电费

floattax;//税金

floatFinal_Salary;//实发工资

}SI[MAX];//SI[MAX]中每个数组元素对应一个职工工资信息

(1)主函数提供输入、处理和输出部分的函数调用,各功能模块采用菜单方式选择。

(2)输入模块

按照工资卡号、姓名、月份、应发工资、水费、电费的顺序输入信息,税金和实发工资根据输入的信息进行计算得到,这些信息被录入到文件中。

税金的计算:

if(应发工资<=800)

税金=0;

elseif(应发工资>800&&应发工资<=1400)

税金=(应发工资-800)*5%;

elseif(应发工资>1400)

税金=(应发工资-1400)*10%;

实发工资=应发工资-水费-电费-税金。

(3)添加模块

增加新的职工工资信息,从键盘输入并逐条写到原来的输入文件中,采用追加而不是覆盖的方式。

(4)浏览模块

通过菜单选择按照工资卡号还是姓名浏览。

如果按照卡号浏览,则显示的记录按照卡号升序输出;按照姓名浏览则按照字典序输出(调用排序模块的排序功能)。

(5)排序模块

排序模块提供菜单选择,实现按照工资卡号升序、实发工资降序以及姓名字典序排序。

排序方法可以选择冒泡排序、插入排序、选择排序等。

(6)查询模块

实现按照工资卡号和姓名的查询,采用基本的查找方法即可。

(7)统计模块

输入起止月份,按照职工卡号和月份查询记录,把起止月份之间的实发工资金额累加。

四、校际运动会管理系统

1、需求分析

要记录比赛结果,可以查看参赛学校的信息和比赛项目信息,因而要实现文件的输入和输出功能;用户可以查询各个学校的比赛成绩,查看参赛学校信息和比赛项目信息等,因而要提供查找和显示功能;另外还应该提供键盘式选择菜单以实现功能选择。

2、总体设计

系统被设计为信息输入模块、比赛结果录入模块和查询模块三个模块。

3、详细设计

数据结构采用结构体数组,包括学校、项目、运动员三个结构体。

Structathlete

{

Charname[20];//姓名

Intage;//年龄

CharFrom[20];//来自学校

}Athlete;//运动员结构体

Structitem

{

Charname[20];//项目名

Int*weight;//在运行时根据用户的输入动态分配空间(各项目名次取法不同,weight所指空间依次存放第一名得分、第二名得分等)

Athlete*player;//指向获奖运动员信息的指针

}Item;//项目结构体

Structuniversity

{

Charname[20];//学校名

Item*item;//竞赛项目指针,根据用户输入动态分配空间

Intscore;//学校得分

}Uni;//学校结构体

ItemTotalItem[ItemNum];//项目结构体数组

UniAllUni[UniNum];//学校结构体数组

(1)主函数

提供输入、处理和输出部分的函数调用,各功能模块采用菜单方式选择。

(2)信息输入模块

输入参赛学校总数,M-男子参赛项目数,W-女子参赛项目数。

把参赛学校信息和项目信息以及运动员信息录入文件,建立三个文件。

例如第i个项目:

Scanf(“%s”,TotalItem[i].name);//输入项目名

Ch=Getchar();//通过输入1,2,3来选择项目名次取法

Switch(ch)

{

Case‘1’:

n=5;break;

Case‘2’:

n=3;break;

Case‘3’:

printf(“取前几名?

”,&n);break;

Default:

break;

}

TotalItem[i].weight=newint[n];

TotalItem[i].athlete=NULL;//指向获奖运动员信息,初始化为空

然后写入文件:

fp=fopen(“item.txt”,”wb”);

fwrite(&TotalItem[i],sizeof(Item),1,fp);

学校信息和运动员信息的录入与此类似。

(2)比赛结果录入模块

通过菜单选择进入比赛结果录入模块,更改TotalItem[i].athlete的值,并把获奖名单保存到项目文件中。

项目文件格式为:

项目名项目权值(按照第一名、第二名…给出权值)获奖运动员信息(按照第一名、第二名…给出)

(3)查找模块

查找学校信息文件,生成团体总分报表;用基本查找算法查询参赛学校信息(按照校名查找)或者比赛项目信息(按照项目名)。

五、学生学籍信息管理系统设计

1、需求分析

学生基本信息、学生成绩基本信息要存入文件当中,因而要提供文件的输入输出操作;查询功能要求提供查找和显示操作;删除功能要求实现删除操作;排序功能要求实现排序操作;另外还应该提供键盘式选择菜单以实现功能选择。

2、总体设计

整个系统可以设计为数据录入模块、数据查询模块、数据删除模块和数据排序模块。

3、详细设计

设计学生基本信息和学生成绩基本信息结构体数组。

Struct

{

intstuNo;//学号

charname[20];//姓名

charsex[2];//性别

intdomNum;//宿舍号

inttel;//电话号码

}StuInfo;//学生基本信息结构体

Struct

{

intstuNo;//学号

charcourseNo;//课程编号

charcourseName;//课程名称

intcreditHour;//学分

InttriGrade;//平时成绩

IntexperiGrade;//实验成绩

IntexamGrade;//卷面成绩

FloattotalGrade;//综合成绩

FloatfinalCreHour;//实得学分

}StuGraInfo;//学生成绩基本信息结构体

(1)数据录入模块

学生基本信息文件可以在磁盘建立,采用写文件方式录入学生成绩基本信息。

综合成绩和实得学分通过计算得到。

(2)查询模块

通过菜单选择查询功能,再选择学生基本情况查询和成绩查询,若选择前者,再通过菜单选择学号、姓名或宿舍号码,按照基本查找算法查找A.TXT,然后把查找结果输出若选择后者,则先在A.TXT中查找学号对应的姓名,再在B.TXT中查找该学生的课程情况,并统计科目和实得总学分,输出结果。

(3)删除模块

通过菜单选择删除学生的功能,输入要删除学生的学号,则分别在A.TXT和B.TXT中查找该生信息,删除之;或者输入学生的姓名,先在A.TXT中得到该生的学号,删除该生信息,再在B.TXT中删除该学号对应的信息。

注意:

C语言中没有直接删除信息的函数,需要自己实现,可以采取读出数据,判断数据(如果不删除,则进入缓冲区,否则删除),写入数据(把缓冲区中的数据写入文件)的步骤进行。

(4)排序模块

通过菜单选择排序依据,采用排序算法(冒泡、插入、选择等)对数据进行排序并输出结果。

六、学生选修课程管理系统

1、需求分析

系统以菜单方式工作,因而要提供键盘式选择菜单以实现功能选择;由于课程信息要用文件保存,因而要提供文件的输入输出操作;由于要浏览信息,所以要提供显示功能;要实现查询功能,故要提供查找操作。

2、总体设计

整个系统可以设计为信息输入模块、信息查询模块以及信息浏览模块。

3、详细设计

数据结构采用结构体,这里采用课程信息结构体和学生选课信息结构体。

Struct

{

CharcourseCode[10];//课程编号

CharcourseName[20];//课程名称

CharcourseType[10];//课程类别

InttotalPeriod;//总学时

IntclassPeriod;//授课学时

IntexperiPeriod;//上机学时

FloatcreditHour;//学分

Intterm;//开课学期

}CourseInfo[N];//课程信息结构体

Struct

{

IntstuNo;//学号;

CharcourseCode[10];//课程编号

}StuCourInfo[N];//学生选课信息结构体

(1)信息输入模块

从键盘输入课程信息和学生选课信息,写入文件。

(2)信息浏览模块

从文件中读数据,然后再显示。

(3)信息查询模块

通过菜单选择查询字段,可以按照课程编号、课程名称、课程性质、开课学期、学分对课程信息文件进行查找,查找算法可以选择基本查找、二分查找等算法。

可以通过菜单选择课程编号,在学生选课信息文件中查询该课程学生选修情况。

七、飞机订票管理系统

1、需求分析

航班信息用文件保存,因而要提供文件的输入输出操作;航班信息浏览功能需要提供显示操作;要查询航线需要提供查找功能;另外要提供键盘式选择菜单以实现功能选择。

2、总体设计

该系统设计为航班信息输入模块、航班信息浏览模块和航线查询模块。

3、详细设计

数据结构采用结构体数组,设计航班结构体如下:

Struct

{

CharflightNo[10];//航班号

Charstart[10];//起始站

Charend[10];//终点站

Floatday;//飞行时间

InttotalTicket;//预售票总数

IntsellTicket;//已售票总数

}Flight[N];//航班结构体

(1)航班信息输入模块

把航班信息写入航班信息文件。

(2)航班信息浏览模块

读文件然后显示即可。

(3)航线查询模块

通过菜单选择查询方式,提供按照航班号、起点站、终点站和飞行时间查询。

采用基本查找算法即可。

八、职工信息管理系统

1、需求分析

系统要以菜单方式工作,因而要提供键盘式选择菜单以实现功能选择;职工信息采用文件保存,因而要提供文件的输入输出操作;要实现职工信息的浏览功能,则要提供信息显示操作;要实现职工信息查询功能,则要提供查找操作(按学历查询和按职工号查询两种查询方式);要实现职工信息删除、修改功能则要提供文件记录的删除、修改操作。

2、总体设计

整个系统被设计为职工信息输入模块、职工信息浏览模块、职工信息查询模块和职工信息删除与修改模块。

3、详细设计

数据结构采用结构体,设计职工信息结构体:

StructemployeeInfo

{

CharjobNo[10];//职工号

Charname[20];//姓名

Charsex;//性别

Intage;//年龄

ChareduLevel[10];//学历

Floatsalary;//工资

Charaddr;//地址

Chartel[11];//电话

}EmpInfo;//职工信息结构体

(1)职工信息输入模块

把职工信息写入航班信息文件。

(2)职工信息浏览模块

读文件然后显示即可。

(3)职工信息查询模块

通过菜单选择查询方式,提供按学历查询和按职工号查询两种查询方式。

采用基本查找算法即可。

(4)职工信息删除与修改模块

通过菜单选择删除操作,由于C语言没有提供直接删除文件记录的函数,因而需要自己实现:

读记录,判断是否要删除(与输入的要删除的记录比较),如果要删除,则舍弃;否则重新写入文件。

修改操作于删除操作类似,只是判断是否是要修改的记录,如果是,则把修改后的记录写入文件,否则直接写入文件。

九、图书管理系统

1、需求分析

图书管理信息采用文件保存,因而要提供文件的输入输出操作;要实现对图书基本信息的查询,则要提供查找操作(提供按书名、作者名查询两种查询方式)和显示操作;要实现对撤销图书信息的删除则要提供文件记录的删除操作;办理借书或还书手续需要提供修改操作;另外还要提供键盘式选择菜单以实现功能选择。

2、总体设计

整个系统被设计为数据输入模块、数据查询模块、数据删除模块和数据修改模块。

3、详细设计

数据结构采用结构体,设计图书信息结构体:

StructbookManageInfo

{

CharbookName[20];//图书名称

CharbookCode[20];//图书编号

Floatprice;//图书价格

Charauthor[10];//作者

Intstate;//存在状态,0代表可以出借,1代表已经借出

CharborrowerName[10];//借书人姓名

Intsex;//借书人性别,0代表女,1代表男

CharstuNo[10];//借书人学号

}bookMInfo;

(1)数据输入模块

把图书基本信息写入图书信息文件。

(2)数据查询模块

通过菜单选择查询方式,提供按书名查询和按作者名查询两种查询方式。

采用基本查找算法即可。

(3)数据删除模块

通过菜单选择删除操作,由于C语言没有提供直接删除文件记录的函数,因而需要自己实现:

读记录,判断是否要删除(与输入的要删除的记录比较),如果要删除,则舍弃;否则重新写入文件。

(4)数据修改模块

办理借书手续时,先要在文件中查找要借的书的存在状态,若可以出借,则允许借出,把借书人姓名、性别和学号添加到该书的记录中,并把存在状态改为已经借出;否则,显示“抱歉,该书已借出”。

办理还书手续时,在文件中查找该书的记录,然后把存在状态改为允许出借,把借书人姓名、性别和学号删除。

具体修改操作可以参考删除操作。

 

十、学生成绩管理系统

1、需求分析

学生纪录用文件存储,因而要提供文件的输入输出操作;要实现插入一个新的学生纪录,因而要提供文件的插入操作;要实现学生纪录得修改和删除,以及登记成绩和修改成绩,因而要提供文件纪录的修改和删除操作;要浏览全班成绩,故要提供显示操作;计算学生总成绩需要提供简单的统计操作;要按学号排序输出全班成绩表,因而要提供排序操作;另外要提供键盘式选择菜单以实现功能选择。

2、总体设计

整个成绩管理系统设计分为1.录入学员信息2.显示学员信息3.成绩排序信息4.添加学员信息5.删除学员信息6.修改学员信息7.查询学员信息8.从文件读入学员信息9.删除文件中学员信息10.保存学员信息11.退出

3、详细设计

数据结构采用结构体,设计学生纪录结构体:

structstudent

{

intno;//学号

charname[20];//姓名

charsex[4];//性别

floatscore1;//成绩1

floatscore2;//成绩2

floatscore3;//成绩3

floatsort;//排序成绩

floatave;//平均分

floatsum;//总分

};

(1)主函数输出提示菜单:

插入学生纪录修改学生纪录删除学生纪录登记成绩

修改成绩浏览学生纪录查看总成绩查看成绩表

(2)数据插入模块

采用追加的方式把学生成绩信息写入学生成绩信息文件。

(3)数据修改模块

通过菜单选择修改学生纪录,打开该文件,从文件中读一条记录,判断是否要修改,如果是,则修改后重新写入文件;否则直接重新写入文件,读下一条记录。

(4)数据删除模块

通过菜单选择删除学生纪录,打开该文件,从文件中读一条记录,判断是否要删除,如果是,则舍弃;否则重新写入文件,读下一条记录。

(5)成绩登记模块

类似数据修改模块,只是修改字段为各个科目的成绩。

(6)成绩修改模块

参考数据修改模块。

(7)数据浏览模块

读取学生成绩信息文件,显示输出。

(8)成绩统计模块

从学生成绩信息文件中读取一个学生纪录,计算该学生的总成绩(简单的成绩相加),输出,然后读取下一条纪录。

(9)成绩表查看模块

建立结构体数组

Struct

{

SRrecord;//学生纪录

Floattotal;//总成绩

}stu[N];

从学生成绩信息文件中读取各个纪录,total中存放计算得到的总成绩。

然后采用排序算法(冒泡、插入、选择等)对数组按照总成绩进行排序。

最后顺序输出。

十一、服装销售管理系统

1、需求分析

用户与商品信息要采用文件存储,因而要提供文件的输入输出操作;实现用户的添加、修改、删除,商品信息的添加、修改、删除、查找等需要提供信息的添加、删除、修改与查找操作;实现商品浏览功能的实现需要实现显示操作;另外还要提供键盘式选择菜单以实现功能选择。

2、总体设计

整个服装销售系统被设计为管理员模块、店长模块、销售员模块、商品模块等,如下图所示:

另外还要实现各用户自身信息的管理。

服装销售系统

管理员模块

店长模块

销售员模块

商品模块

用户添加

用户删除

用户修改

商品添加

商品删除

商品修改

商品查找

商品浏览

商品出售

3、详细设计

数据结构采用结构体,构造结构体如下:

Structgoods//商品

{

Charname[10];//商品名

Charcode[10];//商品代码

Charproducer[10];//制造商

Floatprice;//价格

}Goods;

Structadministrator//管理员

{

CharID[10];

Charpassword[10];

…//其他信息

}Admin;

Structshopkeeper//店长

{

CharID[10];

Charpassword[10];

…//其他信息

}Shkpr;

Structseller//销售员

{

CharID[10];//营业ID号

Charname[10];//姓名

CharID[10];//所属店长ID号

Goods*good;//指向该销售员销售的商品信息

…//其他信息

}Seller;

Structgoods_report//商品报表

{

Goodsgood;//商品

Sellerassistant;//营业员

Charsell_data[20];//出售日期

}

先建立文本文件Admin.txt,其中存放管理员的ID和密码及其它信息;文本文件Shopkeeper.txt,其中存放店主的用户名和密码及其它信息;文本文件Seller.txt,其中存放销售员的ID和密码及其他信息。

登录系统时,通过菜单选择登录身份,然后提示输入用户ID和密码。

如果以管理员身份登录,则在Admin.txt文件中查找(采用基本的查找算法)输入的用户ID和密码是否存在,如果存在,则允许进入,显示选择菜单:

修改密码添加用户用户信息商品信息;否则,显示“输入的用户名或密码错误!

”,返回上级菜单。

店长与销售员登录系统与此

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > IT计算机 > 电脑基础知识

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

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