c语言函数课程设计 c语言程序设计数学函数

求C语言课程设计有没有人接这笔生意?。棵蝗私?,我接了啊!
已经发到你邮箱了,注意查收 。
C语言课程设计//我以前的作业
游戏说明
1.开始游戏
1)系统随机产生一位不重复的N位数字 。N的大小与等级有关 。
初级:N=3中级:N=4高级:N=5
2)游戏者输入所猜的不重复数字c语言函数课程设计,并按回车提交 。提交的数据
数应与N的大小一致c语言函数课程设计,当数据位数大于N时,只取前N位 。
3)系统将提交的数与它自动产生的数进行比较 , 输出结果“*A*B”形式 。其中A代表数字正确相应位置也正确,B代表数字正确但位置不正确 。如:1A3B表示游戏者有1个数字的位置正确且数值也正确,除此以外,游戏者还猜对c语言函数课程设计了3个数字 , 但位置不对,即游戏者已经猜出4位数据,但有3个数据位置不对!
4)游戏者有限定次数的猜测机会 , 在规定次数内完成,则游戏成功,否则,游戏失败 。其中 , 猜测次数与等级有关:
初级c语言函数课程设计:10次中级:9次高级:8次 。
5)按完成游戏所用的时间和次数计算游戏者所得分数,游戏等级越高,猜测所用的次数越少 , 得分越高!若游戏者得分比系统已经保存的分数的高,将提示要求输入游戏者信息,并且保存在最佳排行之中 。
2.等级设置
6)游戏者可以自行设置游戏等级:初级,中级和高级 。
3.最佳排行
在最佳排行中,游戏者可以查看当前游戏的最佳排行 。
4.游戏说明
在游戏说明中,游戏者可以查看游戏规则 。
三.总体设计
本课程设计对模块设计的要求如下:
(1)要求使用多文件方式实现设计c语言函数课程设计;
(2)要求在各个文件内实现结构化设计;
(3)每个模块作为一个单独的C文件 , 每个文件内的函数如表所示,表中给出了各个函数的功能说明 。
(4)宏和数据结构等放在头文件中,并使用条件编译 。
(1)文件及函数组成
源文件 函数名或其他成分功能
record.h
ASK 宏定义
结构声明 结构声明
库函数及函数原型声明
game_ control.c Game_rank 设置游戏等级
Game_explain 输出游戏说明
game_ register.c Tiptop_record 记录最高分
Tiptop_output 输出最佳排行
game.c Game_main 开始游戏中心
Build_number 获取系统随机数字
Game_in_out 获取游戏者数据和输出结果
Time_command 时间控制
Game_result 游戏结果处理输出
record.c main 主函数
Menu_select 选择菜单
manage_menu 处理菜单
(2)函数设计
1.头部文件
文件名称:record.h
功能:声明函数原型 , 包含文件及自定义宏和数据结构 。
要求:报告是否能正常打开文件执行操作 。
2. 设置游戏等级函数
函数原型:void Game_rank(void)
功能:可由游戏者自行设置游戏等级
参数:void
返 回 值:void
要求:如果游戏者没有进行等级设定,则默认初级进行游戏 。
3. 输出游戏说明函数
函数原型:void Game_ explain()
功能:输出游戏规则说明
参数:void
返 回 值:void
要求:说明游戏相应的按键,保证游戏者按照说明 。
4. 记录最高分函数:
函数原型:void Tiptop_register(int)
功能:把从Get_player函数得到的游戏者信息和游戏的积分信息一同保存到指定路径的Tiptop_register.dat文件中
参数:int S;S为游戏积分
返 回 值:void
要求:要求把Tiptop1.txt(初级最高分) Tiptop2.txt(中级最高分) Tiptop3.txt(高
级最高分)原来有的信息替换为现在的信息,并且只有积分大于原有信息的第
十名,才会被以替换的方式记录;并且是降序的方式排列的 。
5. 输出最佳排行函数:
函数原型:void Tiptop_out()
功能:输出最佳排行信息
参数:void
返 回 值:void
要求:没有信息的时候输出提示 , 有信息时按降序排列输出全部信息 。
6. 开始游戏中心函数
函数原型:void Game_main()
功能:调用Time_ control 、Build_number等函数 , 进行游戏的整体控制
参数:void
返 回 值:void
要求:注意函数的完整性 , 保证游戏顺利进行,注意没有设置等级时候,默认C=1!
7. 获取系统随机数字函数
函数原型:int *Build_number()
功能:系统调用time.h文件,利用srand((unsigned) time()产生1个N位随机数字 , 供游戏者猜测
参数:void
返 回 值:int 8=*i:指向产生的随机数字构成的数组的指针
要求:产生的数字是随机的 , 并且是不重复的,总共产生N(依据游戏等级而定)位数字,组成数组[初级为3个数字] 。
8. 获取游戏者游戏数据和输出游戏进程结果函数
函数原型:void Course_in_out()
功能:把游戏者猜的数据读入内存,并且分析得出结果,并输出结果
参数:void
返 回 值:void
要求:用A或B的代码表示本次的结果,其中A表示数值对位置也对 , B表示数值对,但位置错了!每次得到游戏者的猜测数据都要分析得出结果并输出结果,以便游戏者的下一次猜测 。
9. 时间控制函数
函数原型:int Time_ control()
功能:利用dos.h和time.h文件,得到玩游戏的总时间,计算游戏积分 。
参数:void
返 回 值:int Time:游戏前后的时间差异
要求:得到的时间是以秒为单位,数据是整型数据 。
10. 游戏结果处理输出函数
函数原型:void Game_result(int m )
功能:计算,得出最后游戏积分
参数:int m:整个游戏的时间
返 回 值:void
要求:按照游戏等级,设置不同的游戏积分方式 。
11. 主函数:
函数原型:void main()
功能:调用各个子函数,实现整体程序的运行
参数:void
返 回 值: void
要求:控制整个游戏的顺利进行 。
12. 选择菜单函数:
函数原型:void Menu_select()
功能:得到Handle_menu的返回值,由一个switch语句选择开始,等级,最佳排行 , 游戏说明,结束等菜单操作 。
参数:void
返 回 值:void
要求:由Handle_menu得到数据可循环得到,直到得到数字5时,选择退出菜单,方可退出游戏,否则一直循环程序!
13. 处理菜单函数:
函数原型:int Handle_menu()
功能:输出菜单选择提示 , 并由cin语句实现游戏者的输入,输入选择相应菜单对应的菜单序号,并把相应的值传给Menu_select函数
参数:void
返 回 值:int n:选择相应菜单的菜单序号
要求:输入的值不是相应的菜单的序号时返回0值,否则返回游戏者的输入值,以选择相应菜单 。
四.程序代码
1. record.h
#include"time.h"
#includedos.h
#includestdio.h
#includestdlib.h
#includestring.h
//结构体
#define MAXSIZE 20
typedef long int ElemType; //定义结构体tiptop,存放游戏者的最高分等信息
typedef struct tiptop
{
ElemType data;
char name[MAXSIZE];
char grade[MAXSIZE];
int year;
int month;
int day;
char week[MAXSIZE];
int hour;
int minute;
int second;
}tiptop;
//全局变量
int C;//C为等级设置变量
//函数声明
void Menu_select();//选择菜单函数
int manage_menu();//处理菜单函数
void Tiptop_record(int); //记录最高分函数
void Tiptop_output();//输出最佳排行函数
void Game_rank();//设置游戏等级函数
void Game_explain();//输出游戏说明函数
void Game_main();//开始游戏中心函数
int *Build_number();//获取系统随机数字函数
void Game_in_out();//获取游戏数据和输出游戏进程结果函数
int Time_command();//时间控制函数
void Game_result(int);//游戏结果处理输出函数
2. game_ control.c
#include"record.h"
//**********************
//设置游戏等级函数
//**********************
void Game_rank()
{
FILE *fp;
printf("\t******************************\n");
printf("\t************1:初级************\n");
printf("\t************2:中级************\n");
printf("\t************3:高级************\n");
printf("\t******************************\n");
printf("\t请选择游戏等级:\t");
loop:
scanf("%d",C);
if(C1||C3)
{
printf("\t输入有误!请重新输入:\t");
goto loop;
}
if((fp=fopen("C.txt","w"))==NULL)
{
printf("打开C.txt文件失败!");
exit(1);
}
fwrite(C,sizeof(int),1,fp);
fclose(fp);
if(C==1)
printf("\t等级设置为初级!\n");
if(C==2)
printf("\t等级设置为中级!\n");
if(C==3)
printf("\t等级设置为高级!\n");
printf("\n");
}
//****************
//输出游戏说明函数
//****************
void Game_explain()
{
printf("游戏说明:\n");
printf("\t**********************************************************\n");
printf("\t**********************************************************\n");
printf("\t①:游戏开始 , 系统随机产生一位不重复的N位数字 。N的大小与等级\n");
printf("\t有关:\n");
printf("\t初级:N=3\t中级:N=4\t高级:N=5\t\n");
printf("\t②:游戏者输入所猜的不重复数字,并按回车提交 。\n");
printf("\t提交的数据位数应与N的大小一致 , 当数据位数大于N时,只取前N位;\n");
printf("\t③:系统将提交的数与它自动产生的数进行比较,输出结果\n");
printf("\t“*A*B”形式 。其中A代表数字正确相应位置也正确 , B代\n");
printf("\t表数字正确但位置不正确 。如:1A3B表示游戏者有1个数字的位置\n");
printf("\t正确且数值也正确,除此以外,游戏者还猜对了3个数字,但位置不\n");
printf("\t对,即游戏者已经猜出4位数据,但有3个数据位置不对!\n");
printf("\t④:游戏者有限定次数的猜测机会 , 在规定次数内完成,\n");
printf("\t则游戏成功 。否则,游戏失败 。其中,猜测次\n");
printf("\t数与等级有关:\n");
printf("\t初级:10次\t中级:9次\t高级:8次 。\t\n");
printf("\t⑤:按完成游戏所用的时间和次数计算游戏者所得分数 , \n");
printf("\t游戏等级越高,猜测所用的次数越少,得分越高!\n");
printf("\t若游戏者得分比系统已经保存的分数的高 , 将提示要求\n");
printf("\t输入游戏者信息,并且保存在最佳排行之中 。\n");
printf("\t⑥:游戏者可以自行设置等级!\n");
printf("\t**********************************************************\n");
printf("\t**********************************************************\n");
printf("\n");
}
3. game_ register.c
#include"record.h"
//**************
//记录最高分函数
//**************
void Tiptop_record(int S)
{
FILE *fp;
tiptop n;
char *week[]={"星期天","星期一","星期二","星期三","星期四","星期五",
"星期六"};
time_t timep;
struct tm *t;
printf("\t恭喜您!\n");
printf("\t您获得本游戏的最高分!\n");
//获取名字
printf("\t请输入您的姓名:");
printf("\t");
scanf("%s",n.name);
//获取时间
time(timep);
t=gmtime(timep);
t-tm_year=1900 t-tm_year;
t-tm_mon=1 t-tm_mon;
t-tm_hour=8 t-tm_hour;
n.year=t-tm_year;
n.month=t-tm_mon;
n.day=t-tm_mday;
strcpy(n.week,week[t-tm_wday]);
n.hour=t-tm_hour;
n.minute=t-tm_min;
n.second=t-tm_sec;
//获取等级
if(C==1)
strcpy(n.grade,"初级");
if(C==2)
strcpy(n.grade,"中级");
if(C==3)
strcpy(n.grade,"高级");
//获取分数
n.data=https://www.04ip.com/post/S;
if(C==1)
{
if((fp=fopen("tiptop1.txt","w"))==NULL)
{
printf("\t打开tiptop1.txt文件失败!");
exit(1);
}
fwrite(n,sizeof(struct tiptop),1,fp);
fclose(fp);
}
if(C==2)
{
if((fp=fopen("tiptop2.txt","w"))==NULL)
{
printf("\t打开tiptop2.txt文件失败!");
exit(1);
}
fwrite(n,sizeof(struct tiptop),1,fp);
fclose(fp);
}
if(C==3)
{
if((fp=fopen("tiptop3.txt","w"))==NULL)
{
printf("\t打开tiptop3.txt文件失败!");
exit(1);
}
fwrite(n,sizeof(struct tiptop),1,fp);
fclose(fp);
}
}
//****************
//输出最佳排行函数
//****************
void Tiptop_output()
{
int i;
FILE *fp;
tiptop p,q,r;
if((fp=fopen("tiptop1.txt","r"))==NULL)
{
printf("还没有最佳排行!");
exit(1);
}
fread(p,sizeof(struct tiptop),1,fp);
fclose(fp);
if((fp=fopen("tiptop2.txt","r"))==NULL)
{
printf("还没有最佳排行!");
exit(1);
}
fread(q,sizeof(struct tiptop),1,fp);
fclose(fp);
if((fp=fopen("tiptop3.txt","r"))==NULL)
{
printf("还没有最佳排行!");
exit(1);
}
fread(r,sizeof(struct tiptop),1,fp);
fclose(fp);
if(p.data=https://www.04ip.com/post/=0q.data==0r.data=https://www.04ip.com/post/=0)
{
printf("\t暂无最高分信息!");
printf("\n");
printf("\t是否直接进入游戏?刷新最佳排行信息?\n");
printf("\t1:是\t2:否\n");
printf("\t");
i=0;
scanf("%d",i);
if(i==1)
{
printf("\t请设置游戏等级: \n");
Game_rank();
【c语言函数课程设计 c语言程序设计数学函数】Game_main();
}
else
Menu_select();
}
else
{
printf("\t最佳排行:\n");
printf("\t等级\t姓名\t分数\t游戏时间\n");
if(p.data!=0)
{
printf("\t%s\t%s\t%d\t",p.grade,p.name,p.data);
printf("%d—%d—%d\t",p.year,p.month,p.day);
printf("%s\t%d:%d:%d\n",p.week,p.hour,p.minute,p.second);
}
if(q.data!=0)
{
printf("\t%s\t%s\t%d\t",q.grade,q.name,q.data);
printf("%d—%d—%d\t",q.year,q.month,q.day);
printf("%s\t%d:%d:%d\n",q.week,q.hour,q.minute,q.second);
}
if(r.data!=0)
{
printf("\t%s\t%s\t%d\t",r.grade,r.name,r.data);
printf("%d—%d—%d\t",r.year,r.month,r.day);
printf("%s\t%d:%d:%d\n",r.week,r.hour,r.minute,r.second);
}
if(p.data=https://www.04ip.com/post/=0)
printf("\t初级暂无最高分信息!\n");
if(q.data=https://www.04ip.com/post/=0)
printf("\t中级暂无最高分信息!\n");
if(r.data=https://www.04ip.com/post/=0)
printf("\t高级暂无最高分信息!\n");
//重置最佳排行榜
if(p.data!=0q.data!=0r.data!=0)
{
printf("\t是否重置最佳排行?\n");
printf("\t1:是\t2:否\t");
i=0;
scanf("%d",i);
if(i==1)
{
p.data=https://www.04ip.com/post/0;
q.data=https://www.04ip.com/post/0;
r.data=https://www.04ip.com/post/0;
if((fp=fopen("tiptop1.txt","w"))==NULL)
{
printf("打开tiptop1.txt文件失败!");
exit(1);
}
fwrite(p,sizeof(struct tiptop),1,fp);
fclose(fp);
if((fp=fopen("tiptop2.txt","w"))==NULL)
{
printf("打开tiptop2.txt文件失败!");
exit(1);
}
fwrite(q,sizeof(struct tiptop),1,fp);
fclose(fp);
if((fp=fopen("tiptop3.txt","w"))==NULL)
{
printf("打开tiptop3.txt文件失败!");
exit(1);
}
fwrite(r,sizeof(struct tiptop),1,fp);
fclose(fp);
}
}
}
}
4.game.c
#include"record.h"
//全局变量
int *c1;//产生的数保存在指针c中
int A,B;// AB均为游戏重要参数
int N;//NUM为需要猜测的数据个数
int TIME;//TIME为猜数字共有的次数
long int S;//S为游戏积分
//****************
//开始游戏中心函数
//****************
void Game_main()
{
FILE *fp;
int time;
if((fp=fopen("C.txt","r"))==NULL)
{
printf("打开C.txt文件失败!");
printf("\n");
exit(1);
}
fread(C,sizeof(int),1,fp);
N=C 2;
TIME=11-C;
if(C==1)
{
printf("\t游戏等级为:初级!\n");
}
if(C==2)
{
printf("\t游戏等级为:中级!\n");
}
if(C==3)
{
printf("\t游戏等级为:高级!\n");
}
printf("\t需要猜测的数字位数数为:%d , 共有%d次猜测机会!",N,TIME);
printf("\n");
time=Time_command();
Game_result(time);
}
//********************
//获取系统随机数字函数
//********************
int *Build_number()
{
int i,j,m;
time_t t;
c1=(int *)malloc(N*sizeof(int));
if(c1==NULL)
{
printf("分配内存错误!\n");
printf("\n");
exit(1);
}
srand((unsigned) time(t));
for(i=0;iN;i)
{
m=rand(); //产生一个数字
if(i==0)
*c1=m;
else
{
for(j=0;ji;j)
{
if(m==*(c1 j)//若原有数据之中已经有了与m相同的数字 , 则重新产生数字
{
i--;
break;
}
*(c1 i)=m;
}
}
}
printf("\t系统产生的数据为:");
for(i=0;iN;i)
printf("*");
printf("\n");
printf("\t您可以开始游戏! 计时开始...\n");
printf("\t不能有重复的数字!\n");
printf("\t数字中间用空格隔开\n");
return c1;
}
//****************************************
//获取游戏者游戏数据和输出游戏进程结果函数
//****************************************
void Game_in_out()
{
int i,j,m;
int n;//游戏者猜测的数字
int a[5];//游戏者猜测的数据构成的数组
int c[5];
int *p;
p=Build_number();
for(i=0;iN;i)
{
c[i]=*(p i);
}
for(m=0;mTIME;m)
{
if(m==(TIME-1))
{
printf("\t**请注意:**\n");
printf("\t**仅剩下一次机会了!**\n");
printf("\t**努力!加油!**\n");
}
printf("\t请输入第%d次猜测的数字:\t",m 1);
for(j=0;jN;j)
{
scanf("%d",n);
a[j]=n;
}
A=0;
B=0;
for(i=0;iN;i)
{
if(a[i]==c[i])
A;
}
for(i=0;iN;i)
{
for(j=0;jN;j)
{
if(a[i]==c[j]i!=j)
B;
}
}
printf("\t您本次猜测的结果为:\t");
printf("%d A %d B",A,B);
printf("\n");
//游戏成功控制退出猜测程序
if(A==N)
{
m=TIME;
}
}
//TIME改变 , 记录游戏总次数的数据
TIME=i;
free(c1);
}
//************
//时间控制函数
//************
int Time_command()
{
int a;//游戏时间
time_tfirst,second;
first=time(NULL);//获取系统时间
Game_in_out();
second=time(NULL);//再次获取系统时间
a=(int)difftime(second,first);
return a;
}
//********************
//游戏结果处理输出函数
//********************
void Game_result(int m)
{
FILE *fp;
tiptop p;
time_t t;
int S;
int n;
int i=0;
int minute,second;
if(A!=N)
{
S=0;
printf("\tGame over!\n");
printf("\t您本次游戏的积分为:\t%d",S);
printf("\t继续努力!\n");
printf("\t是否继续游戏?\n");
printf("\t1:是\t\t\t2:否");
printf("\n");
scanf("%d",i);
if(i==1)
Game_main();
else
Menu_select();
}
else
{
printf("\t恭喜您游戏成功!");
printf("\n");
minute=m/60;
second=m`;
printf("\t您本次游戏所用时间为:");
printf("%d分钟%d秒\n",minute,second);
printf("\n");
//积分
if(C==1)
{
n=11-TIME;
S=n*n*n*10-m;
}
if(C==2)
{
n=10-TIME;
S=n*n*n*n*10-m;
}
if(C==3)
{
n=9-TIME;
S=n*n*n*n*n*10-m;
}
if(S10)
{
srand((unsigned) time(t));
S=rand()0;
}
printf("\t您本次游戏的积分为:\t%d",S);
printf("\n");
}
//判断是否符合最高分条件
if(C==1)
{
if((fp=fopen("tiptop1.txt","r"))==NULL)
{
printf("打开tiptop1.txt文件失败!");
printf("\n");
exit(1);
}
fread(p,sizeof(struct tiptop),1,fp);
fclose(fp);
}
if(C==2)
{
if((fp=fopen("tiptop2.txt","r"))==NULL)
{
printf("打开tiptop2.txt文件失败!");
printf("\n");
exit(1);
}
fread(p,sizeof(struct tiptop),1,fp);
fclose(fp);
}
if(C==3)
{
if((fp=fopen("tiptop3.txt","r"))==NULL)
{
printf("打开tiptop3.txt文件失败!");
printf("\n");
exit(1);
}
fread(p,sizeof(struct tiptop),1,fp);
fclose(fp);
}
if(S=(p.data))
Tiptop_record(S);
//提示跳转
if(C==1)
{
printf("\t您本次游戏等级是初级,是否要进入中级?\n");
printf("\t1:是\t\t\t2:否");
printf("\n\t");
i=0;
scanf("%d",i);
if(i==1)
{
C=2;
if((fp=fopen("C.txt","w"))==NULL)
{
printf("打开C.txt文件失败!");
exit(1);
}
fwrite(C,sizeof(int),1,fp);
fclose(fp);
Game_main();
}
else
Menu_select();
}
if(C==2)
{
printf("\t您本次是中级游戏,是否要进入高级游戏呢?\n");
printf("\t1:是\t\t\t2:否");
printf("\n\t");
i=0;
scanf("%d",i);
if(i==1)
{
C=3;
if((fp=fopen("C.txt","w"))==NULL)
{
printf("打开C.txt文件失败!");
exit(1);
}
fwrite(C,sizeof(int),1,fp);
fclose(fp);
Game_main();
}
else
Menu_select();
}
}
5.record.c
#include"record.h"
//******
//主函数
//******
void main()
{
printf("\n");
printf("********************************************\n");
printf("********************************************\n");
printf("欢迎进入猜数字游戏\n");
printf("\n");
printf("\t设计者:\n");
printf("********************************************\n");
printf("********************************************\n");
printf("\n");
Menu_select();
}
//************
//选择菜单函数
//************
void Menu_select()
{
while(1)
{
switch(manage_menu())
{
case 0:
printf("输入有误,请重新输入!\n");
break;
case 1:
Game_main();
break;
case 2:
Game_rank();
break;
case 3:
Tiptop_output();
break;
case 4:
Game_explain();
break;
case 5:
printf("\n");
printf("\n");
printf("*************** ************ *******\n");
printf("*************** ************** *********\n");
printf("************ **** *********** \n");
printf("**************** ** ********* \n");
printf("************* ************* ****** *********\n");
printf("************* ************* ****** *********\n");
printf("****** **** ****** ** *******\n");
printf("****** **** **** ** *******\n");
printf("****** **** ****** *******\n");
printf("****** **** **** *******\n");
printf("\n");
printf("Goodbye!\n");
exit(1);
}
}
}
//************
//处理菜单函数
//************
intmanage_menu()
{
int n;
printf("\t**************************\n");
printf("\t**\t1:开始游戏\t**\n");
printf("\t**\t2:等级设置\t**\n");
printf("\t**\t3:最佳排行\t**\n");
printf("\t**\t4:游戏说明\t**\n");
printf("\t**\t5:退出游戏\t**\n");
printf("\t**************************\n");
printf("\t请输入相应序号选择相应菜单:");
printf("\t");
scanf("%d",n);
printf("\n");
if(n1||n5)
n=0;
return n;
}
C语言课程设计--设计求两数之差的绝对值的函数和抽奖程序求绝对值:
#includestdio.h
#include "stdafx.h"
void main()
{
int a,b,t;
int fun(int a,int b);
printf("请输入a和b的值:");
scanf("%d%d",a,b);
t=fun(a,b);
printf("%d和%d之差的绝对值为:%d\n",a,b,t);
}
int fun(int a,int b)
{ int t;
t=a-b;
if(t0) t=t-2*t;
return t;
}
研究下
c语言课程设计?之前写过的,你可以拿去参考
#includestdio.h
#includestring.h
#includestdlib.h
typedef struct guest
{
int number;
char name[10];
int sum;
char time[5];
struct guest *next;
}GuestLink,*Pointer;
GuestLink stu[10];
int i,j,k;
void Insert(Pointer *Head);
void Search(Pointer Head);
void Update(Pointer Head);
void Delete(Pointer *Head);
void Show(Pointer Head);
void Sort(Pointer Head);
void Save(Pointer Head);
void Put(Pointer Head);
int main()
{
Pointer Head=NULL;
int i;
do{
printf("
");
printf("1---增加订餐客户信息
");
printf("2---查询订餐客户信息
");
printf("3---修改订餐客户信息
");
printf("4---删除订餐客户信息
");
printf("5---浏览客户订餐信息
");
printf("6---按照用餐时间升序排序
");
printf("7---保存订餐信息到数据文件
");
printf("8---查看数据文件中的订餐信息
");
printf("9---退出
");
printf("
");
printf("请选择1--9:");
scanf("%d",i);
switch(i)
{
case 1:Insert(Head);
break;
case 2:Search(Head);
break;
case 3:Update(Head);
break;
case 4:Delete(Head);
break;
case 5:Show(Head);
break;
case 6:Sort(Head);
break;
case 7:Save(Head);
break;
case 8:Put(Head);
break;
case 9:
break;
default:printf("选择错误!请重新选择!");
break;
}
}while(i!=9);
return 0;
}
void Insert(Pointer *Head)
{
int in_number;
Pointer p,q,r;
printf("请输入编号:
");
scanf("%d",in_number);
p=q=*Head;
while(p!=NULL)
{
if(p-number==in_number)
{
printf("已经有相同编号:");
return;
}
else
{
q=p;p=p-next;
}
}
r=(Pointer)malloc(sizeof(GuestLink));//没有*号
r-next=NULL;
if(r==NULL)
{
printf("分配空间失败");
return;
}
if(q==NULL)//如果是空表,判断空表用q!!!!
*Head=r;
else
{q-next=r;}
r-number=in_number;
printf("请输入姓名:
");
scanf("%s",r-name);
printf("请输入人数:
");
scanf("%d",r-sum);
printf("请输入时间:
");
scanf("%s",r-time);
}
/*
void Insert(Pointer *Head)
{int in_number;
Pointer p,q,r;
p=q=*Head;
printf("请输入号码:");
scanf("%d",in_number);
while(p!=NULL)
{
if(in_number==p-number)
{printf("已存在号码!");}
else
{q=p;p=p-next;}
}
r=(Pointer)malloc(sizeof GuestLink);
r-next=NULL;
if(q==NULL)
*Head=r;
else
q-next=r;
printf("请输入姓名:");
scanf("%s",r-name);
printf("请输入人数");
scanf("%f",r-sum);
printf("请输入时间");
scanf("%s",r-time);
}*/
void Search(Pointer Head)
{
int flag=1;
int number;
Pointer p;
printf("请输入要查询的编号:");
scanf("%d",number);
p=Head;
while(p!=NULLflag)
{
if(p-number==number)
{ printf("编号\t姓名\t人数\t时间
");
printf("%s\t",p-name);
printf("%d\t",p-sum);
printf("%s\t
",p-time);
flag=0;
}
else
p=p-next;
}
if(flag)
printf("没有查询到!");
}
/*
void Search(Pointer Head)
{
int flag=0;
int number;
Pointer p;
p=Head;
printf("请输入您要查找的编号:");
scanf("%f",number);
while(p!=NULLflag)
{
if(p-number==number)
{
printf("已查询到您要的编号");
flag=0;
}
else
{
p=p-next;
}
}
if(flag==1)
{printf("姓名:%s",p-name);
printf("编号:%f",p-number);
printf("人数:%f",p-sum);
printf("时间:%s",p-time);
}
else
{printf("没有查询到您要查询的编号!");}
}
*/
void Update(Pointer Head)
{
int flag=1;
int number;
Pointer p;
printf("请输入要修改的编号:");
scanf("%d",number);
p=Head;
while(p!=NULLflag)
{
if(p-number==number)
{
printf("请输入人数:");
scanf("%d",p-sum);
printf("请输入用餐时间:");
scanf("%s",p-time);
flag=0;
}
else
p=p-next;
}
if(flag)
printf("没有找到要修改的记录!");
}
//update与查询过程相似!!!
void Delete(Pointer *Head)
{
int flag=1;
int number;
Pointer p,q;
printf("请输入要删除的数据编号:");
scanf("%d",number);
p=q=*Head;
while(p!=NULLflag)
{
if(p-number==number)
{
if(p==*Head)
{
*Head=p-next;free(p);//删除结点后要及时释放内存?。。?
}
else
{q-next=p-next;free(p);}
flag=0;
}
else
{q=p;p=p-next;}
}
if(flag)
printf("没有找到可以删除的数据?。?);
}
/*
void Delete(Pointer *Head)
{
Pointer p,q;
p=q=*Head;
int number;
int flag=1;
printf("请输入您要删除的结点:");
scanf("%d",number);
while(p!=NULL)
{
if(p-number==number)
{ if(p==*Head)
{
*Head=p-next;free(p);
}
else
{
q-next=p-next;free(p);
}
flag=0;
}
else
{
q=p;p=p-next;
}
}
if(flag)
{printf("没有找到要删除的数据!");}
}
*/
void Show(Pointer Head)
{
Pointer p;
p=Head;
printf("编号\t姓名\t人数\t用餐时间
");
while(p!=NULL)
{
printf("%d\t",p-number);
printf("%s\t",p-name);
printf("%d\t",p-sum);
printf("%s\t
",p-time);
p=p-next;
}
}
void Sort(Pointer Head)
{
//三个for循环,第一个赋给结构数组 第二个排序 , 第三个输出
Pointer p;
p=Head;
int count=0;
GuestLink temp;
for(i=0;p!=NULL;i)
{
strcpy(stu[i].name,p-name);
stu[i].number=p-number;
stu[i].sum=p-sum;
strcpy(stu[i].time,p-time);
count;
p=p-next;
}
for(i=0;icount-1;i)
{
k=i;
for(j=i 1;jcount;j)
if(strcmp(stu[j].time,stu[k].time)0)k=j;
if(k!=i)
{temp=stu[i];stu[i]=stu[k];stu[k]=temp;}//一个字都不能改?。。。?
//{temp=stu[k];stu[k]=stu[i];stu[i]=temp;}
}
printf("编号\t姓名\t人数\t用餐时间
");
for(i=0;icount;i)
{
printf("%d\t",stu[i].number);
printf("%s\t",stu[i].name);
printf("%d\t",stu[i].sum);
printf("%s\t
",stu[i].time);
}
}
/*Head=p=stu;
while(p!=NULL)
{
printf("姓名:%-10s",p-name);
printf("人数:%-10d",p-sum);
printf("用餐时间:%-10s",p-time);
printf("编号:%-10d
",p-number);
p=p-next;
}*/
/*
void Sort(Pointer Head)
{
Pointer p;
p=Head;
GuestLink temp;
count=0;
while(p!=NULL)
{p=p-next;
count;
}
p=Head;
while(p!=NULL)
{for(i=0;icount;i)
{
stu[i].number=p-number;
strcpy(stu[i].name,p-name);
stu[i].sum=p-sum;
strcpy(stu[i].time,p-time);
}
p=p-next;
}
for(i=0;icount-1;i)
{
k=i;
for(j=0;jcount;j)
{if(strcmp(stu[j].time,stu[k].time)0)k=j;
if(k!=i)
{temp=stu[k];stu[k]=stu[i];temp=stu[i];}
}
}
}
*/
void Save(Pointer Head)
{
Pointer p;
FILE *fp;
p=Head;
for(i=0;p!=NULL;i)
{
strcpy(p-name,stu[i].name);
p-number=stu[i].number;
p-sum=stu[i].sum;
strcpy(p-time,stu[i].time);
p=p-next;
}
if((fp=fopen("stud","w"))==NULL)
{printf("can't open !");}
p=Head;
while(p!=NULL)
{
if(fwrite(p,sizeof(GuestLink),1,fp)!=1)
printf("can't write!
");
p=p-next;
}
fclose(fp);
}
/*
void Save(Pointer Head)
{
FILE *fp;
Pointer p;
p=Head;
for(i=0;p!=NULL;i)
{
stu[i].number=p-number;
strcpy(stu[i].name,p-name);
stu[i].sum=p-sum;
strcpy(stu[i].time,p-time);
p=p-next;
}
p=Head;
if((fp=fopen("stud","w"))==NULL)
{
printf("cam't open the file");
}
for(i=0;icount;i)
if(fwrite(p,sizeof(GuestLink),1,fp)!=1)
{
printf("cant write");
}
fclose(fp);
}
*/
void Put(Pointer Head)
{
FILE *fp;
Pointer p;
p=Head;
if((fp=fopen("stud","r"))==NULL)
{printf("can't open the File
");}
printf("编号\t姓名\t人数\t用餐时间
");
while(p!=NULL)
{
if(fread(p,sizeof(GuestLink),1,fp)!=1)
{printf("can't read!");}
printf("%d\t",p-number);
printf("%s\t",p-name);
printf("%d\t",p-sum);
printf("%s\t
",p-time);
p=p-next;
}
fclose(fp);
}
采纳哦~
C语言课程设计:编写一个函数 , 判断一个整数是不是4位数,再利用该函数编程,如果是4位数,则输出是四#include stdio.h
int is_four_digit(int value)
{
return ((value = https://www.04ip.com/post/1000value = 9999) || (value = -9999value = -1000));
}
int main()
{
if (is_four_digit(1000)) {
printf("是四位数\n");
} else {
printf("不是四位数\n");
}
return 0;
}
c语言课程设计#includestdio.h
#include stdlib.h
#include string.h
typedef struct
{
long class_1; //班级
long number; //学号
char name[20]; //姓名
float math; //数学
float c_program; //C语言
float physics; //大学物理
float english; //大学英语
float polity; //政治
float sport; //体育
float summary; //总分
float average; //平均分
}Student;
Student stud[100]; //定义结构体数组变量的大小
int i=0; //i用于记录输入的学生的个数
int menu() //菜单函数
{
int a;
printf("***********************学生信息管理系统*************************\n");
//菜单选择
printf("\t\t【1】输入学生信息\n");
printf("\t\t【2】显示所有学生的信息\n");
printf("\t\t【3】按平均分升降排序\n");
printf("\t\t【4】根据学生的学号查找学生的信息\n");
printf("\t\t【5】插入学生的信息\n");
printf("\t\t【6】删除学生的信息\n");
printf("\t\t【7】修改学生的信息\n");
printf("\t\t【8】从文件中读入数据\n");
printf("\t\t【9】将所有记录写入文件\n");
printf("\t\t【0】退出本系统\n");
printf("***********************学生信息管理系统*************************\n");
printf("请选择你要的操作【0-9】:");
scanf("%d",a); //读入一个数
while(a0 || a9)
{
printf("输入错误!请重新输入 。\n");
scanf("%d",a); //输入错误就一直循环!^_^
}
system("cls"); //清屏
return(a); //返回a的值
}
int input(Student stud[]) //输入学生信息
{
char flag='Y';
while(flag=='y' || flag=='Y') //判断
{
printf("请输入该学生的班别:"); //交互输入学生信息
scanf("%ld",stud[i].class_1);
printf("请输入该学生的学号:");
scanf("%ld",stud[i].number);
printf("请输入该学生的姓名:");
scanf("%s",stud[i].name);
printf("请输入该学生的“数学”分数:");
scanf("%f",stud[i].math);
printf("请输入该学生的“C程序设计语言”分数:");
scanf("%f",stud[i].c_program);
printf("请输入该学生的“大学物理”分数:");
scanf("%f",stud[i].physics);
printf("请输入该学生的“大学英语”分数:");
scanf("%f",stud[i].english);
printf("请输入该学生的“体育”分数:");
scanf("%f",stud[i].sport);
printf("请输入该学生的“政治”分数:");
scanf("%f",stud[i].polity);
getchar(); //用于消除回车键
stud[i].summary=stud[i].math stud[i].c_program stud[i]. physics
stud[i].english stud[i].sport stud[i].polity;
stud[i].average=stud[i].summary/6;
printf("该学生的总分为:%6.2f\t平均分为:%6.2f\n",stud[i].summary,stud[i].average);
i;
printf("继续输入学生信息请按:Y or y,退出请按:N or n.\n");
scanf("%c",flag); //判断是否继续输入
}
printf("按任意键回主菜单\n");
getchar();
system("cls");
return(i);
}
void Display(Student stud[],int n) //显示所有记录
{
int k;
if(n==0)
printf("暂无学生记录!\n");
else
{
printf(" 班别 学号 姓名 数学 C语言 物理 英语 体育 政治 总分 平均分\n");
for(k=0;kn;k) //循环输出
{
printf("%7ld",stud[k].class_1);
printf("%7ld",stud[k].number);
printf("%9s",stud[k].name);
printf("%7.2f",stud[k].math);
printf("%7.2f",stud[k].c_program);
printf("%7.2f",stud[k].physics);
printf("%7.2f",stud[k].english);
printf("%7.2f",stud[k].sport);
printf("%7.2f",stud[k].polity);
printf("%7.2f",stud[k].summary);
printf("%8.2f\n",stud[k].average);
}
}
system("pause");
system("cls");
}
void Sort(Student stud[],int i) //按平均分排序
{
int m,n,k; //m,n为循环变量
Student t;
for(m=0;mi-1;m) //排序
for(n=m 1;ni;n)
if(stud[m].averagestud[n].average)
{
t=stud[m];
stud[m]=stud[n];
stud[n]=t;
}
printf("排序后的顺序为:\n");
printf(" 班别 学号 姓名 数学 C语言 物理 英语 体育 政治 总分 平均分\n");
for(k=0;ki;k) //循环输出
{
printf("%7ld",stud[k].class_1);
printf("}",stud[k].number);
printf("%9s",stud[k].name);
printf("%7.2f",stud[k].math);
printf("%7.2f",stud[k].c_program);
printf("%7.2f",stud[k].physics);
printf("%7.2f",stud[k].english);
printf("%7.2f",stud[k].sport);
printf("%7.2f",stud[k].polity);
printf("%7.2f",stud[k].summary);
printf("%8.2f\n",stud[k].average);
}
system("pause");
system("cls");
}
void Search(Student stud[],int i) //查找并显示一个记录
{
int p,k; //p为要查找的学生学号,t为循环节,s用来判断循环是否结束
char flag='y';
while(flag=='y' || flag=='Y')
{
printf("请输入要查找的学生学号:");
scanf("%d",p);
getchar();
for(k=0;p!=stud[k].numberki;k);
if(k==i)printf("该学号不存在!\n");
else {
printf("该学生的信息为:\n");
printf(" 班别 学号 姓名 数学 C语言 物理 英语 体育 政治 总分 平均分\n");
printf("%7ld",stud[k].class_1);
printf("%7ld",stud[k].number);
printf("%9s",stud[k].name);
printf("%7.2f",stud[k].math);
printf("%7.2f",stud[k].c_program);
printf("%7.2f",stud[k].physics);
printf("%7.2f",stud[k].english);
printf("%7.2f",stud[k].sport);
printf("%7.2f",stud[k].polity);
printf("%7.2f",stud[k].summary);
printf("%8.2f\n",stud[k].average);
}
printf("继续查找学生信息请输入:Y or y,退出输入:N or n\n");
scanf("%c",flag); //判断是否继续输入
}
system("cls");
}
int Insert(Student stud[],int i) //插入学生的信息
{
char flag='Y';
while(flag=='y' || flag=='Y')
{
printf("请输入要插入学生的班别:"); //交互输入学生信息
scanf("%ld",stud[i].class_1);
printf("请输入要插入学生的学号:");
scanf("%ld",stud[i].number);
printf("请输入要插入学生的姓名:");
scanf("%s",stud[i].name);
printf("请输入要插入学生的“数学”分数:");
scanf("%f",stud[i].math);
printf("请输入要插入学生的“C程序设计语言”分数:");
scanf("%f",stud[i].c_program);
printf("请输入要插入学生的“大学物理”分数:");
scanf("%f",stud[i].physics);
printf("请输入要插入学生的“大学英语”分数:");
scanf("%f",stud[i].english);
printf("请输入要插入学生的“体育”分数:");
scanf("%f",stud[i].sport);
printf("请输入要插入学生的“政治”分数:");
scanf("%f",stud[i].polity);
getchar();
stud[i].summary=stud[i].math stud[i].c_program stud[i]. physics
stud[i].english stud[i].sport stud[i].polity;
stud[i].average=stud[i].summary/6;
printf("该学生的总分为:%6.2f\n",stud[i].summary);
printf("该学生的平均分为:%6.2f\n",stud[i].average);
i;
printf("继续输入学生信息请输入:Y or y,退出输入:N or n\n");
scanf("%c",flag); //判断是否继续输入
}
getchar();
printf("是否需要排序,需要请按‘Y’或‘y’;不需要请按‘N’或‘n’.\n");
flag=getchar();
if(flag=='y' || flag=='Y')Sort(stud,i);
system("cls");
return(i);
}
int Delete(Student stud[],int i) //根据输入的学号删除学生的信息
{
long s;
int t,p;
char a='Y'; //判断循环是否继续
while(a=='y' || a=='Y')
{
printf("请输入需要删除学生的学号:\n"); //采用交互式删除
scanf("%ld",s);
getchar(); //消除回车键的影响
for(t=0;tis!=stud[t].number;t);
if(s==stud[t].number)
{
for(p=t;pi;p)
stud[p]=stud[p 1];
i=i-1;
printf("删除成功!\n");
}
else printf("没有找到要删除的学号!\n");
printf("是否继续删除,继续请按'Y'或'y',退出请按'N'或'n'.\n");
a=getchar(); //判断是否继续
getchar(); //消除回车键的影响
}
system("cls");
return(i);
}
void change(Student stud[],int i) //修改学生的信息
{
long p=0; //p用来表示要删除的学生的学号
int k; //k为循环变量
char a='y';
while(a=='y' || a=='Y')
{
printf("\t\t学生信息修改:\n");
printf("请输入要修改的学生的学号:\n");
scanf("%ld",p);
for(k=0;p!=stud[k].numberki;k);
if(k==i)printf("无法找到该学生的信息\n");
else {
printf("该学生的信息为:\n");
printf(" 班别 学号 姓名 数学 C语言 物理 英语 体育 政治 总分 平均分\n");
printf("%7ld",stud[k].class_1);
printf("%7ld",stud[k].number);
printf("%9s",stud[k].name);
printf("%7.2f",stud[k].math);
printf("%7.2f",stud[k].c_program);
printf("%7.2f",stud[k].physics);
printf("%7.2f",stud[k].english);
printf("%7.2f",stud[k].sport);
printf("%7.2f",stud[k].polity);
printf("%7.2f",stud[k].summary);
printf("%8.2f\n",stud[k].average);
printf("请输入该学生的新信息:\n");
printf("请输入该学生的班级:"); //交互输入学生信息
scanf("%d",stud[k].class_1);
printf("请输入该学生的学号:");
scanf("%d",stud[k].number);
printf("请输入该学生的姓名:");
scanf("%s",stud[k].name);
printf("请输入该学生的“数学”分数:");
scanf("%f",stud[k].math);
printf("请输入该学生的“C程序设计语言”分数:");
scanf("%f",stud[k].c_program);
printf("请输入该学生的“大学物理”分数:");
scanf("%f",stud[k].physics);
printf("请输入该学生的“大学英语”分数:");
scanf("%f",stud[k].english);
printf("请输入该学生的“体育”分数:");
scanf("%f",stud[k].sport);
printf("请输入该学生的“政治”分数:");
scanf("%f",stud[k].polity);
getchar();
stud[k].summary=stud[k].math stud[k].c_program stud[k]. physics
stud[k].english stud[k].sport stud[k].polity;
stud[k].average=stud[k].summary/6;
printf("修改成功!\n");
}
printf("是否继续修改,继续请按'Y'或'y',退出请按'N'或'n'.\n");
a=getchar(); //判断是否继续
}
system("pause");
system("cls");
}
int Read(Student stud[],int i) //从文件中读入学生信息
{
int k=i;
FILE *fp; //定义一个文件类型的指针
char filename[20]; //定义文件名
printf("请输入文件名:\n");
scanf("%s",filename); //输入文件名
if((fp=fopen(filename,"rb"))==NULL) //打开文件
{
printf("无法打开该文件!\n"); //打开失败信息
return 0;
}
printf("从文件%s中读入的数据为:\n",filename);
printf(" 班别 学号 姓名 数学 C语言 物理 英语 体育 政治 总分 平均分\n");
while(!feof(fp))
{
fread(stud[k],sizeof(Student),1,fp);
printf("%7ld",stud[k].class_1);
printf("%7ld",stud[k].number);
printf("%9s",stud[k].name);
printf("%7.2f",stud[k].math);
printf("%7.2f",stud[k].c_program);
printf("%7.2f",stud[k].physics);
printf("%7.2f",stud[k].english);
printf("%7.2f",stud[k].sport);
printf("%7.2f",stud[k].polity);
printf("%7.2f",stud[k].summary);
printf("%8.2f\n",stud[k].average);
k;
}
fclose(fp);
printf("读入成功,\n");
system("pause");
system("cls");
return(k);
}
void Save(Student stud[],int i) //将所有记录写入文件
{
int k=0;
FILE *fp; //定义文件指针
char filename[20]; //定义文件名
printf("请输入你要存储学生信息的文件名:"); //输入文件名
scanf("%s",filename);
if((fp=fopen(filename,"wb"))==NULL) //打开文件
{
printf("无法打开该文件!\n"); //打开失败信息
return;
}
printf("保存到文件%s里的信息为:\n",filename);
while(ki)
{
fwrite(stud[k],sizeof(Student),1,fp);
printf("%7ld",stud[k].class_1);
printf("}",stud[k].number);
printf("%9s",stud[k].name);
printf("%7.2f",stud[k].math);
printf("%7.2f",stud[k].c_program);
printf("%7.2f",stud[k].physics);
printf("%7.2f",stud[k].english);
printf("%7.2f",stud[k].sport);
printf("%7.2f",stud[k].polity);
printf("%7.2f",stud[k].summary);
printf("%8.2f\n",stud[k].average);
k;
}
fclose(fp);
printf("信息保存成功 , ");
system("pause");
system("cls");
}
int main() //主函数
{
int n=0;
while(1)
{
switch(menu()) //选择判断要执行的语句
{
case 1:
printf("\n*******输入学生信息*******\n");
//输入学生信息
n=input(stud);break;
case 2:
printf("\n*******显示所有学生的信息*******\n");
//显示所有学生的信息
Display(stud,n);break;
case 3:
printf("\n*******按平均分升降排序*******\n");
//给学生成绩排序
Sort(stud,n);break;
case 4:
printf("\n*******根据学生的学号查找学生的信息*******\n");
//根据输入的学号查找学生的信息
Search(stud,n);break;
case 5:
printf("\n*******插入学生的信息*******\n");
//插入学生的信息
n=Insert(stud,n);break;
case 6:
printf("\n*******删除学生的信息*******\n");
//删除学生的信息
n=Delete(stud,n);break;
case 7:
printf("\n*******修改学生的信息*******\n");
//修改学生的信息
change(stud,n);break;
case 8:
printf("\n*******从文件中读入数据*******\n");
//从文件中读入数据
n=Read(stud,n);break;
case 9:
printf("\n*******将所有记录写入文件*******\n");
//将所有记录写入文件
Save(stud,n);break;
case 0:
printf("\n*******感谢您的使用*******\n");
//结束程序
exit(0);
}
}
return 0;
}
c语言函数课程设计的介绍就聊到这里吧 , 感谢你花时间阅读本站内容,更多关于c语言程序设计数学函数、c语言函数课程设计的信息别忘了在本站进行查找喔 。

    推荐阅读