C语言课程设计题目及相关要求Word文档下载推荐.docx
- 文档编号:20913297
- 上传时间:2023-01-26
- 格式:DOCX
- 页数:45
- 大小:77.55KB
C语言课程设计题目及相关要求Word文档下载推荐.docx
《C语言课程设计题目及相关要求Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《C语言课程设计题目及相关要求Word文档下载推荐.docx(45页珍藏版)》请在冰豆网上搜索。
1400)
税金=(应发工资-1400)*10%;
实发工资=应发工资-水费-电费-税金。
(3)添加模块
增加新的职工工资信息,从键盘输入并逐条写到原来的输入文件中,采用追加而不是覆盖的方式(以”ab”方式打开文件)。
(4)浏览模块
分屏显示职工工资信息,可以指定10个1屏,按任意键显示下一屏。
通过菜单选择按照工资卡号还是姓名浏览。
如果按照卡号浏览,则显示的记录按照卡号升序输出;
按照姓名浏览则按照字典序输出(调用排序模块的排序功能)。
(5)排序模块
排序模块提供菜单选择,实现按照工资卡号升序、实发工资降序以及姓名字典序排序。
排序方法可以选择冒泡排序、插入排序、选择排序等。
(6)查询模块
实现按照工资卡号和姓名的查询,采用基本的查找方法即可。
(7)统计模块
输入起止月份,按照职工卡号和月份查询记录,把起止月份之间的实发工资金额累加。
附加:
思考在数据输入及添加模块尾部添加排序功能,使得文件中的数据按照卡号排序。
这样在查询模块和统计模块可以采用二分查找以提高效率。
二、校际运动会管理系统
1、需求分析
要记录比赛结果,可以查看参赛学校的信息和比赛项目信息,因而要实现文件的输入和输出功能;
用户可以查询各个学校的比赛成绩,查看参赛学校信息和比赛项目信息等,因而要提供查找和显示功能;
系统被设计为信息输入模块、比赛结果录入模块和查询模块三个模块。
数据结构采用结构体数组,包括学校、项目、运动员三个结构体。
Structathlete
{
Intage;
//年龄
CharFrom[20];
//来自学校
}Athlete;
//运动员结构体
Structitem
//项目名
Int*weight;
//在运行时根据用户的输入动态分配空间(各项目名次取法不同,weight所指空间依次存放第一名得分、第二名得分等)
Athlete*player;
//指向获奖运动员信息的指针
}Item;
//项目结构体
Structuniversity
//学校名
Item*item;
//竞赛项目指针,根据用户输入动态分配空间
Intscore;
//学校得分
}Uni;
//学校结构体
ItemTotalItem[ItemNum];
//项目结构体数组
UniAllUni[UniNum];
//学校结构体数组
(1)主函数
提供输入、处理和输出部分的函数调用,各功能模块采用菜单方式选择。
(2)信息输入模块
输入参赛学校总数,M-男子参赛项目数,W-女子参赛项目数。
把参赛学校信息和项目信息以及运动员信息录入文件(fwrite),建立三个文件。
例如第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);
Default:
}
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)查找模块
查找学校信息文件,生成团体总分报表;
用基本查找算法查询参赛学校信息(按照校名查找)或者比赛项目信息(按照项目名)。
三、学生学籍信息管理系统设计
学生基本信息、学生成绩基本信息要存入文件当中,因而要提供文件的输入输出操作;
查询功能要求提供查找和显示操作;
删除功能要求实现删除操作;
排序功能要求实现排序操作;
整个系统可以设计为数据录入模块、数据查询模块、数据删除模块和数据排序模块。
设计学生基本信息和学生成绩基本信息结构体数组。
Struct
intstuNo;
//学号
charname[20];
charsex[2];
//性别
intdomNum;
//宿舍号
inttel;
//电话号码
}StuInfo;
//学生基本信息结构体
Struct
charcourseNo;
//课程编号
charcourseName;
//课程名称
intcreditHour;
//学分
InttriGrade;
//平时成绩
IntexperiGrade;
//实验成绩
IntexamGrade;
//卷面成绩
FloattotalGrade;
//综合成绩
FloatfinalCreHour;
//实得学分
}StuGraInfo;
//学生成绩基本信息结构体
(1)数据录入模块
学生基本信息文件可以在磁盘建立,采用写文件方式录入学生成绩基本信息。
综合成绩和实得学分通过计算得到。
(2)查询模块
通过菜单选择查询功能,再选择学生基本情况查询和成绩查询,若选择前者,再通过菜单选择学号、姓名或宿舍号码,按照基本查找算法查找A.TXT,然后把查找结果输出若选择后者,则先在A.TXT中查找学号对应的姓名,再在B.TXT中查找该学生的课程情况,并统计科目和实得总学分,输出结果。
(fread和查找算法的应用)
(3)删除模块
通过菜单选择删除学生的功能,输入要删除学生的学号,则分别在A.TXT和B.TXT中查找该生信息,删除之;
或者输入学生的姓名,先在A.TXT中得到该生的学号,删除该生信息,再在B.TXT中删除该学号对应的信息。
注意:
C语言中没有直接删除信息的函数,需要自己实现,可以采取读出数据,判断数据(如果不删除,则进入缓冲区,否则删除),写入数据(把缓冲区中的数据写入文件)的步骤进行。
(4)排序模块
通过菜单选择排序依据,采用排序算法(冒泡、插入、选择等)对数据进行排序并输出结果。
首先要读文件(fread)。
四、一种简单的英文词典排版系统实现
运行结果以文本形式存储,因而要提供文件的输入输出操作;
检查重复单词要提供查找操作;
按A-Z的顺序排版,要提供排序操作;
添加新单词并重新排版要提供插入操作。
另外通过键盘式菜单实现功能选择。
整个系统被设计为单词录入模块、文件存储模块和单词浏览模块。
其中单词录入模块要完成输入单词、检查是否重复、排序操作。
文件存储模块把存放单词的数组中的数据写入文件。
单词浏览模块完成英文词典的输出,即文件的输出操作。
数据结构采用指针数组或二维数组:
char*dictionary[N];
或chardictionary[N][20]。
其中N是宏定义#defineN100(表示单词个数)
(1)单词录入模块
输入一个单词,存放在一个临时字符数组中,以空格或回车表示单词的结束(这也是默认操作),然后换行输出刚刚输入的单词。
采用插入排序算法的思想把该单词插入单词数组中,不同的是如果两个单词相同则不插入。
(2)文件存储模块
采用fwrite或fprintf把单词数组输入到文件中。
(3)单词浏览模块
采用fread或fscanf把单词从文件中读出,然后输出。
五、一担挑游戏
1、数据结构
数据结构定义为二位数组:
charchess_board[3][3];
元素初始化为’’。
2、算法流程
Main()
{
charchess_board[3][3]={‘’};
//定义棋盘,并初始化为空;
while(未结束)
输出棋盘;
//用flag标志移动方,0表示计算机走棋,1表示对弈者走棋
If(flag==0)//计算机走棋
扫描棋盘矩阵;
If(存在空单元)
置该单元为’O’;
If(有三个’O’在一条线上)
输出棋盘矩阵;
输出“计算机赢!
”;
退出程序;
}
Flag=1;
//下一步轮到对弈者走棋
Else
报告平局,退出程序。
Else//对弈者走棋
置该单元为’X’;
If(有三个’X’在一条线上)
输出“恭喜你,你赢了!
Flag=0;
//下一步轮到计算机走棋
}//else
}//while
}//main
其中扫描棋盘矩阵可以自行设计函数,最简单的方式是按行或按列扫描棋盘,找到空位就布棋;
判断三点是否连成一条直线的操作比较简单,读者自己思考。
六、通讯录管理系统
信息记录要存放到文件中去,因而要实现文件的输入输出操作;
要实现数据的插入、删除、修改和显示功能,因而要实现插入、删除、修改和显示操作;
要实现按人名或电话号码进行查询的功能,因而要提供查找操作;
整个系统可以设计为数据插入模块、数据修改模块、数据删除模块、数据显示模块和数据查询模块。
采用结构体数组。
//人名
Charpost[20];
//工作单位
Inttel;
//电话号码
Charemail[20];
//email地址
}TelInfo;
//电话簿信息结构体
TelInfotelInfo[N];
//电话簿信息结构体数组
(1)数据插入模块
输入数据,然后采用追加方式写文件(以”wb”方式打开文件,再用fwrite写入)。
(2)数据修改模块
通过菜单选择修改姓名、电话号码。
可以把要修改的姓名或电话号码存储在临时变量里面,然后读文件,找到要修改的记录,把该记录重新以新的值写入。
(3)数据删除模块
删除一条记录,则输入要删除的人名,然后读文件,把文件中读出来的记录的人名与待删除的人名比较,如果不匹配,则重新写入文件;
否则舍弃不再写入文件。
(4)数据显示模块
采用分屏显示,每屏10条记录。
用fread或fscanf读文件,输出结果。
(5)数据查询模块
用基本查找算法对电话簿实现按人名或电话号码的查询(读文件,把读出记录得相应字段与输入的查询字段比较),并把结果输出。
七、投票程序
实现键盘输入投票人数和投票结果,进行统计时实现排序功能,输出结果。
该程序可以分为数据输入部分和统计部分。
采用结构体:
Struct
Charcode;
//代号
//得分
}Candidates[N];
//候选人结构体数组
这里#defineN3;
采用二维数组,则行方向对应一张投票,列方向对应各候选人得分。
Candidate[M][N];
(1)输入部分
Chartmp[3];
//存放投票的中间变量
输入投票人数n;
For(i=0;
i<
n;
++i)//投票
Scanf(“%s”,tmp);
If(tmp[0]==tmp[1]||tmp[1]==tmp[2]||tmp[0]==tmp[2])
Printf(”该票无效!
”);
Tmp[0]号候选人加5分;
Tmp[1]号候选人加3分;
Tmp[2]号候选人加2分;
(2)统计部分
对候选人按照他们的得分排序(冒泡、插入、选择等),然后比较前两名得分是否相同。
如果相同,则显示“重新投票”;
否则显示三个候选者得分并输出“祝贺X当选冠军”,X为最高分候选者。
八、销售管理系统
问题分析:
数据结构采用结构体,设计便条结构体:
StructsellNote
IntsellerNo;
//销售员代号(1-4)
IntproNo;
//产品代号(1-5)
FloatsellMoney;
//销售额
}SNote;
便条信息采用文件存储,实现建立文本文件。
主函数输出提示菜单,让用户选择查看不同信息。
(1)个人销售额查看
计算上个月每个人每种产品的销售额。
设立count[4][5],用来存储4个销售员的5种产品的销售额。
读文件,把相同销售员的相同产品的销售额累加,写入count中。
最后count[i][j]中存放的就是第i+1个销售员的第j+1种商品的销售额。
(2)销售额排序
类似个人销售额的计算,这里把一个销售员的所有产品的销售额累加,存放到一个临时数组中,再对数组进行排序即可。
(3)产品销售额
操作与
(2)类似。
(4)统计报表
可以先采用
(1)的操作,再对count数组计算。
count[i][0]+count[i][1]+count[i][2]+count[i][3]+count[i][4]既是第i个销售员的销售之和,count[0][j]+count[1][j]+count[2][j]+count[3][j]+count[4][j]既是第j种产品的销售之和。
所有count[i][j]的和既是总和。
另外注意输出格式。
九、学生选修课程系统设计
系统以菜单方式工作,因而要提供键盘式选择菜单以实现功能选择;
由于课程信息要用文件保存,因而要提供文件的输入输出操作;
由于要浏览信息,所以要提供显示功能;
要实现查询功能,故要提供查找操作。
整个系统可以设计为信息输入模块、信息查询模块以及信息浏览模块。
数据结构采用结构体,这里采用课程信息结构体和学生选课信息结构体。
Struct
CharcourseCode[10];
CharcourseName[20];
CharcourseType[10];
//课程类别
InttotalPeriod;
//总学时
IntclassPeriod;
//授课学时
IntexperiPeriod;
//上机学时
FloatcreditHour;
Intterm;
//开课学期
}CourseInfo[N];
//课程信息结构体
IntstuNo;
//学号;
}StuCourInfo[N];
//学生选课信息结构体
(1)信息输入模块
从键盘输入课程信息和学生选课信息,写入文件。
(fwrite,fprintf)
(2)信息浏览模块
分屏显示课程信息,每屏10条课程记录,按任意键继续。
从文件中读数据(fread,fscanf),然后再显示。
(3)信息查询模块
通过菜单选择查询字段,可以按照课程编号、课程名称、课程性质、开课学期、学分对课程信息文件进行查找,查找算法可以选择基本查找、二分查找等算法。
可以通过菜单选择课程编号,在学生选课信息文件中查询该课程学生选修情况。
十、飞机订票系统设计
航班信息用文件保存,因而要提供文件的输入输出操作;
航班信息浏览功能需要提供显示操作;
要查询航线需要提供查找功能;
另外要提供键盘式选择菜单以实现功能选择。
该系统设计为航班信息输入模块、航班信息浏览模块和航线查询模块。
数据结构采用结构体数组,设计航班结构体如下:
CharflightNo[10];
//航班号
Charstart[10];
//起始站
Charend[10];
//终点站
Floatday;
//飞行时间
InttotalTicket;
//预售票总数
IntsellTicket;
//已售票总数
}Flight[N];
//航班结构体
(1)航班信息输入模块
采用fwrite或fprintf把航班信息写入航班信息文件。
(2)航班信息浏览模块
分屏显示航班信息,每屏10条记录,按任意键显示下一屏。
读文件(采用fread或fscanf)然后显示即可。
(3)航线查询模块
通过菜单选择查询方式,提供按照航班号、起点站、终点站和飞行时间查询。
采用基本查找算法即可。
十一、职工信息管理系统设计
系统要以菜单方式工作,因而要提供键盘式选择菜单以实现功能选择;
职工信息采用文件保存,因而要提供文件的输入输出操作;
要实现职工信息的浏览功能,则要提供信息显示操作;
要实现职工信息查询功能,则要提供查找操作(按学历查询和按职工号查询两种查询方式);
要实现职工信息删除、修改功能则要提供文件记录的删除、修改操作。
2、总体设计
整个系统被设计为职工信息输入模块、职工信息浏览模块、职工信息查询模块和职工信息删除与修改模块。
3、详细设计
数据结构采用结构体,设计职工信息结构体:
StructemployeeInfo
CharjobNo[10];
//职工号
Charsex;
ChareduLevel[10];
//学历
Floatsalary;
//工资
Charaddr;
//地址
Chartel[11];
//电话
}EmpInfo;
//职工信息结构体
(1)职工信息输入模块
采用fwrite或fprintf把职工信息写入航班信息文件。
(2)职工信息浏览模块
分屏显示职工信息,每屏10条记录,按任意键显示下一屏。
(3)职工信息查询模块
通过菜单选择查询方式,提供按学历查询和按职工号查询两种查询方式。
(4)职工信息删除与修改模块
通过菜单选择删除操作,由于C语言没有提供直接删除文件记录的函数,因而需要自己实现:
读记录,判断是否要删除(与输入的要删除的记录比较),如果要删除,则舍弃;
否则重新写入文件。
修改操作于删除操作类似,只是判断是否是要修改的记录,如果是,则把修改后的记录写入文件,否则直接写入文件。
十二、图书信息管理系统设计
系统以菜单方式工作,提供键盘式选择菜单以实现功能选择;
图书信息采用文件保存,因而要提供文件的输入输出操作;
要实现图书信息的浏览功能,则要提供信息显示操作;
要实现图书信息查询功能,则要提供查找操作(提供按书名、作者名查询两种查询方式);
要实现图书信息删除、修改功能则要提供文件记录的删除、修改操作。
整个系统被设计为图书信息输入模块、图书信息浏览模块、图书信息查询模块和图书信息删除与修改模块。
数据结构采用结构体,设计图书信息结构体:
CharloginNo[10];
//登录号
//书名
Charauthor[20];
//作者名
CharclassNo[10];
//分类号
Charpublisher[10];
//出版单位
CharpubTime[20];
//出版时间
Floatprice;
//价格
}bookInfo;
//图书信息结构体
(1)图书信息输入模块
采用fwrite或fprintf把图书信息写入图书信息文件。
(2)图书信息浏览模块
分屏显示图书信息,每屏10条记录,按任意键显示下一屏。
(3)图书信息查询模块
通过菜单选择查询方式,提供按书名查询和按作者名查询两种查询方式。
(4)图书信息删除与修改模块
十三、图书管理系统设计
图书管理信息采用文件保存,因而要提供文件的输入输出操作;
要实现对图书基本信息的查询,则要提供查找操作(提供按书名、作者名查询两种查询方式)和显示操作;
要实现对撤销图书信息的删除则要提供文件记录的删除操作;
办理借书或还书手续需要提供修改操作;
另外还要提供键盘式选择菜单以实现功能选择。
整个系统被设计为数据输入模块、数据查询模块、数据删除模块和数据修改模块。
StructbookManageInfo
CharbookName[20];
//图书名称
CharbookCode[20];
//图书编号
//图书价格
Charauthor[10];
//作者
In
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 课程设计 题目 相关 要求