c语言word源码,c语言源代码

c语言

#include

#include

#include

#include

#define MAX 200

struct student

{

char no[10]; // 学号

char name[50]; // 姓名

int sum; // 次数

float score; // 分数

};

struct data

{

int count; // 当前学生数组中学生的个数

struct student stu[MAX]; // 学生数组

} dd;

// 显示主菜单

void menu()

{

system("cls");//清屏

printf("\n");

printf("\t\t\t********************************\n");

printf("\t\t\t* *\n");

printf("\t\t\t* 健身跑学分管理系统 *\n");

printf("\t\t\t* *\n");

printf("\t\t\t* [0] 退出 *\n");

printf("\t\t\t* [1] 查看所有学生信息 *\n");

printf("\t\t\t* [2] 输入学生记录 *\n");

printf("\t\t\t* [3] 删除学生记录 *\n");

printf("\t\t\t* [4] 编辑学生记录 *\n");

printf("\t\t\t* [5] 查询(学号) *\n");

printf("\t\t\t* [6] 查询(姓名) *\n");

printf("\t\t\t* [7] 排序(学号) *\n");

printf("\t\t\t* [8] 跑步签到 *\n");

printf("\t\t\t* *\n");

printf("\t\t\t********************************\n");

}

// 等待用户按回车后回到主菜单

void to_menu()

{

char c1,c2;

printf("\n\n\n按回车键返回主菜单...");

scanf("%c%c",&c1,&c2);//第一个字符吸收上次的确认回车键

menu();

}

// 查看所有学生信息

void view_data()

{

int i;

printf("学号\t姓名\t次数\t学分");

printf("\n-------------------------------------------------------------------\n");

for(i=0;i

printf("%s\t%s\t%d\t%-7.1f\n",dd.stu[i].no,dd.stu[i].name,dd.stu[i].sum,dd.stu[i].score);

}

// 将数据从结构体数组保存到文件中

void save_data()

{

FILE *fp;//文件指针

int i,k;

k=dd.count;

fp=fopen("dada.txt","w");//文件存储位置:当前文件夹

fwrite(&k,sizeof(int),1,fp);

for(i=0;i

fwrite(&dd.stu[i],sizeof(struct student),1,fp);

fclose(fp);

}

// 输入学生记录

void add_data()

{

struct student st;

int b;

int k;

while(1)

{

printf("\n请输入学生信息:");

printf("\n学号\t姓名");

printf("\n---------------------------------------------------------------\n");

scanf("%s%s",st.no,http://www.wendangwang.com);

k = dd.count;

strcpy(dd.stu[k].no,st.no);

strcpy(dd.stu[k].name,http://www.wendangwang.com);

dd.stu[k].sum=0;

dd.stu[k].score=0;

dd.count++;

printf("\n\n继续添加学生信息[1-yes 0-no]:");

scanf("%d",&b);

if(b==0) break;

}

save_data();

}

// 将数据从文件读到结构体数组中

void read_data()

{

FILE *fp;

int i,k;

struct student st;

k=0;

if(access("dada.txt",0)==-1) // 如果文件不存在

{

fp=fopen("dad

a.txt","w");

fwrite(&k,sizeof(int),1,fp);

fclose(fp);

}

fp=fopen("dada.txt","r");

fread(&k,si

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: trunc()函数是C语言中math.h库中自带的一个函数,函数的作用是截取一个浮点数的整数部分。 其标准源代码如下: ```c #include <math.h> double trunc(double x); ``` 这是一个非常简单的函数,只需要一个参数即可完成整数部分的截取操作。 具体实现细节如下: ```c double trunc(double x) { if (x < 0) { // 对于负数,向下取整的结果应该为比当前值小的最大的整数 return ceil(x); } else { // 对于正数,向下取整的结果应该为比当前值小的最小的整数 return floor(x); } } ``` 这里使用了C语言math.h库中的两个函数:ceil()和floor(),分别用于向上取整和向下取整。 需要注意的是,如果x是正数的话,向下取整的结果应该是比x小的最小整数,而不是比x小的最接近的整数。这一点需要特别注意。 总体来说,trunc()函数虽然非常简单,但是在数值计算中却是一个非常常用的函数。 ### 回答2: trunc函数是C语言标准库中的数学函数,用于将浮点数向零取整,即舍弃小数部分,只保留整数部分。其源代码如下: ```c double trunc(double x) { if (isnan(x)) return x; if (x == 0.0) return x; if (ceil(x) == x && x < 0.0) return x; return (x < 0.0) ? ceil(x) : floor(x); } ``` 函数接受一个浮点数x作为参数,返回一个双精度浮点数。该函数的实现分为四个步骤: 1. 如果x是NaN(不是数字),则函数直接返回x。 2. 如果x等于0.0(零),则函数直接返回x。 3. 如果x的向上取整等于x且x小于零,则函数直接返回x。这是为了处理一些浮点数可能存在的精度误差问题。 4. 否则,函数利用内置的取整函数ceil和floor将x向上取整或者向下取整,从而实现将x向零取整的效果。如果x小于零,则向上取整;否则向下取整。 上述代码中使用了浮点数比较时的一些技巧,如不直接使用==运算符判断两个浮点数是否相等,而是使用ceil函数。这是因为浮点数在计算机内部采用二进制表示,存在精度问题,直接进行比较可能会失败。因此,在实现数学函数时必须考虑这些特殊情况。 ### 回答3: C语言的标准trunc函数的码如下: ```c #include <math.h> double trunc(double x) { if (isnan(x) || isinf(x)) { return x; } double integer_part; modf(x, &integer_part); return integer_part; } ``` trunc函数需要引用math.h头文件,它的作用是将一个double类型的数值x截取为整数部分。如果x为NaN(not a number)或者无穷大(infinity),那么直接返回x,否则调用modf函数截取整数部分并返回。在实现中,调用了modf函数,它的作用是将一个double类型的数值分解为整数部分和小数部分。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值