(高分) 求大家帮我解一道c语言的题

这道题是我们计算机专业的一到期末考试题 要求答辩 同时老师说还要对比 这样就不能百度一篇粘上了 所以在这里恳求各位 帮我完成这道题 千万别去哪个地方去抄一道 这样小弟就完了 明年就得交钱补考了 我是真的不会 所以恳求大家了 我要是过了会给最佳答案再外加一百分 题目是这样的
救灾帐篷信息管理系统
1、系统基本信息表:
(1)各省帐篷调出基本信息参考:
中文字段名 类型及长度 举例
省编号 char[3] 028
省名 char[20] 四川省
国家分配帐篷总数 int 367500
国家分配总金额 float 526570000
已调出帐篷数量 int 52600
已调出帐篷金额 float 94526425
统计日期 char[11] 2008/05/21
统计员 char[10]
(2)省属企业帐篷生产调出汇总基本信息参考:
中文字段名 类型及长度 举例
企业编号 char[12] 028-1234567
企业名称 char[30] 四川省攀登者公司
省分配帐篷总数 int 367500
已生产帐篷数量 int 13200
已生产帐篷金额 float 21052455
已调出帐篷数量 int 11000
已调出帐篷金额 float 18253275
统计日期 char[11] 2008/05/21
统计员 char[10]
(3)企业帐篷调出明细基本信息参考:
中文字段名 类型及长度 举例
企业编号 char[12] 028-1234567
调出帐篷批次 int 1
调出帐篷品种 char[30] 绿色20平方米帆布帐篷
调出帐篷数量 int 1000
调出帐篷金额 float 2532750
调出日期 char[11] 2008/05/21
统计员 char[10]
2、系统功能:
(1)信息录入功能:
 各省帐篷调出基本信息录入;
 省属企业帐篷生产调出汇总基本信息;
 企业帐篷调出明细基本信息录入;
(2)信息修改功能:
 各种基本数据的修改。即:允许对以及录入的数据重新进行编辑、修改。
(3)查询功能:
 查询全部省份中每个省的国家分配帐篷总数。
 查询全部省份中某个省(如:四川省)的已调出帐篷金额。
 查询某省某省属企业(如:四川省攀登者公司)帐篷生产调出汇总基本信息。
 查询某省属企业(如:四川省攀登者公司)是否调出了某种帐篷(如:绿色20平方
米帆布帐篷)的信息。
(4)统计功能:
 统计并输全部省份的国家分配帐篷总数、国家分配总金额、已采购帐篷数量、已采
西南科技大学计算机科学与技术学院 C 语言程序设计实验指导书
103
购帐篷金额。
 统计并输出省的全部省属企业已生产帐篷数量、已生产帐篷金额。
 统计并输出省属企业(四川省攀登者公司)某种帐篷(如:绿色20平方米帆布帐篷)
的已调出帐篷数量、已调出帐篷金额。
 统计并输出某省的某种帐篷(如:绿色20平方米帆布帐篷)的已调出帐篷数量、已
调出帐篷金额。

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<malloc.h>
#include<windows.h>
#include<conio.h>

struct geshen_info
{
char shen_number[4];
char shen_name[20];
int guojia_number;
float guojia_jine;
int yidiao_number;
float yidiao_jie;
char tongji_date[11];
char tongji_name[10];
};

struct inc_zhangpeng_info
{
char shen_name[20];
char inc_number[12];
char inc_name[30];
int shen_number;
int inc_add_number;
float inc_add_jine;
int inc_diaochu_number;
float inc_diaochu_jine;
char tongji_date[11];
char tongji_name[10];
};

struct inc_mingxi_info
{
char inc_number[12];
int pici;
char diaochu_pinzhong[30];

int diaochu_number;
float diaochu_jine;
char diaochu_date[11];
char tongji_name[10];
};

void geshen_info_luru()
{
system("cls");
FILE *pf;
char flag='y';
struct geshen_info info;
pf=fopen("c:\\各省帐篷调出基本信息.txt","a");

while(flag=='y')
{
memset(info.shen_name,0,20);
memset(info.tongji_date,0,11);
memset(info.tongji_name,0,10);
printf("请输入省编号(三位):\n");
fflush(stdin);
fgets(info.shen_number,5,stdin);
printf("请输入省份名称:\n");
fflush(stdin);
fgets(info.shen_name,20,stdin);
printf("请输入国家分配帐篷总数:\n");
fscanf(stdin,"%d",&info.guojia_number);
printf("请输入国家分配总金额:\n");
fscanf(stdin,"%f",&info.guojia_jine);
printf("请输入已调出帐篷数量:\n");
fscanf(stdin,"%d",&info.yidiao_number);
printf("请输入已调出帐篷金额:\n");
fscanf(stdin,"%f",&info.yidiao_jie);
printf("请输入统计日期(年/月/日):\n");
fflush(stdin);
fgets(info.tongji_date,11,stdin);
printf("请输入统计员:\n");
fflush(stdin);
fgets(info.tongji_name,10,stdin);
fwrite(&info,sizeof(struct geshen_info),1,pf);

printf("是否继续[y/n]:\n");
fflush(stdin);
flag=getchar();
}
fclose(pf);
}

void inc_zhangpeng_info_luru()
{
system("cls");
FILE *pf;
char flag='y';

struct inc_zhangpeng_info info;
pf=fopen("c:\\省属企业帐篷生产调出汇总基本信息.txt","a");
while(flag=='y')
{
memset(info.inc_name,0,30);
memset(info.tongji_date,0,11);
memset(info.tongji_name,0,10);
memset(info.shen_name,0,20);
printf("请输入该企业所属省份:\n");
fflush(stdin);
fgets(info.shen_name,20,stdin);
printf("请输入企业编号\n");
fflush(stdin);
fgets(info.inc_number,12,stdin);
printf("请输入企业名称\n");
fflush(stdin);
fgets(info.inc_name,30,stdin);
printf("请输入省分配帐篷总数\n");
fscanf(stdin,"%d",&info.shen_number);
printf("请输入已生产帐篷数量\n");
fscanf(stdin,"%d",&info.inc_add_number);
printf("请输入已生产帐篷金额\n");
fscanf(stdin,"%f",&info.inc_add_jine);
printf("请输入已调出帐篷数量\n");
fscanf(stdin,"%d",&info.inc_diaochu_number);
printf("请输入已调出帐篷金额\n");
fscanf(stdin,"%f",&info.inc_diaochu_jine);
printf("请输入统计日期\n");
fflush(stdin);
fgets(info.tongji_date,11,stdin);
printf("请输入统计员\n");
fflush(stdin);
fgets(info.tongji_name,10,stdin);
fwrite(&info,sizeof(struct inc_zhangpeng_info),1,pf);

printf("是否继续[y/n]:\n");
fflush(stdin);
flag=getchar();

}
fclose(pf);
}

void inc_mingxi_info_luru()
{
system("cls");
FILE *pf;
char flag='y';

struct inc_mingxi_info info;
pf=fopen("c:\\企业帐篷调出明细基本信息.txt","a");

while(flag=='y')
{
memset(info.diaochu_pinzhong,0,30);
memset(info.diaochu_date,0,11);
memset(info.tongji_name,0,10);
printf("请输入企业编号\n");
fflush(stdin);
fgets(info.inc_number,12,stdin);
printf("请输入调出帐篷批次\n");
fscanf(stdin,"%d",&info.pici);
printf("请输入调出帐篷品种\n");
fflush(stdin);
fgets(info.diaochu_pinzhong,30,stdin);
printf("请输入调出帐篷数量\n");
fscanf(stdin,"%d",&info.diaochu_number);
printf("请输入调出帐篷金额\n");
fscanf(stdin,"%f",&info.diaochu_jine);
printf("请输入统计日期\n");
fflush(stdin);
fgets(info.diaochu_date,11,stdin);
printf("请输入统计员\n");
fflush(stdin);
fgets(info.tongji_name,10,stdin);
fwrite(&info,sizeof(struct inc_mingxi_info),1,pf);

printf("是否继续[y/n]:\n");
fflush(stdin);
flag=getchar();

}
fclose(pf);
}

void change_geshen_info()
{
system("cls");
printf("**********修改各省信息:**********\n");
struct geshen_info info[100];
FILE *pf;
int i=0;
int length;
int choose;
char flag='n';
memset(info,0,sizeof(info));
pf=fopen("c:\\各省帐篷调出基本信息.txt","r");
if(!pf)
{
printf("打开信息库失败!\n");
Sleep(1000);
return;
}
while(!feof(pf))
{
fread(&info[i],sizeof(struct geshen_info),1,pf);
i++;
}
length=i-1;
if(length==0)
{
printf("无信息:\n");
Sleep(1500);
return;
}
printf("共有%d条信息\n",length);
for(i=0;i<length;i++)
{
printf(" 省编号: %s 省名: %s\n 国家分配帐篷总数: %d\n 国家分配总金额: %10.3f\n 已调出帐篷数量: %d\n 已调出帐篷金额: %10.3f\n 统计日期: %s\n 统计员: %s\n ",
info[i].shen_number,info[i].shen_name,info[i].guojia_number,info[i].guojia_jine,info[i].yidiao_number,info[i].yidiao_jie,info[i].tongji_date,info[i].tongji_name);
}
fclose(pf);
FILE *changef;
changef=fopen("c:\\各省帐篷调出基本信息.txt","w");
while(flag=='n')
{
printf("请选择你要对那个信息进行修改:\n");
scanf("%d",&choose);
printf("你要修改的是否为[y/n]");
printf(" 省编号: %s 省名: %s\n 国家分配帐篷总数: %d\n 国家分配总金额: %10.3f\n 已调出帐篷数量: %d\n 已调出帐篷金额: %10.3f\n 统计日期: %s\n 统计员: %s\n ",
info[choose-1].shen_number,info[choose-1].shen_name,info[choose-1].guojia_number,info[choose-1].guojia_jine,info[choose-1].yidiao_number,info[choose-1].yidiao_jie,info[choose-1].tongji_date,info[choose-1].tongji_name);
fflush(stdin);
flag=getchar();
}
printf("进行修改:\n");
printf("请输入省编号(三位):\n");
fflush(stdin);
fgets(info[choose-1].shen_number,5,stdin);
printf("请输入省份名称:\n");
fflush(stdin);
fgets(info[choose-1].shen_name,20,stdin);
printf("请输入国家分配帐篷总数:\n");
fscanf(stdin,"%d",&info[choose-1].guojia_number);
printf("请输入国家分配总金额:\n");
fscanf(stdin,"%f",&info[choose-1].guojia_jine);
printf("请输入已调出帐篷数量:\n");
fscanf(stdin,"%d",&info[choose-1].yidiao_number);
printf("请输入已调出帐篷金额:\n");
fscanf(stdin,"%f",&info[choose-1].yidiao_jie);
printf("请输入统计日期(年/月/日):\n");
fflush(stdin);
fgets(info[choose-1].tongji_date,11,stdin);
printf("请输入统计员:\n");
fflush(stdin);
fgets(info[choose-1].tongji_name,10,stdin);
printf("修改成功\n");
printf("对文件进行写入:\n");
for(i=0;i<length;i++)
{
fwrite(&info[i],sizeof(struct geshen_info),1,changef);
}
fclose(changef);

}

void change_inc_zhangpeng_info()
{
system("cls");
printf("**********修改各省属企业信息:**********\n");
struct inc_zhangpeng_info info[100];
FILE *pf;
int length;
int i=0;
int choose;
char flag='n';
memset(info,0,sizeof(info));
pf=fopen("c:\\省属企业帐篷生产调出汇总基本信息.txt","r");
if(!pf)
{
printf("打开信息库失败!\n");
Sleep(1000);
return;
}
while(!feof(pf))
{
fread(&info[i],sizeof(struct inc_zhangpeng_info),1,pf);
i++;
}
length=i-1;
if(length==0)
{
printf("无信息:\n");
Sleep(1500);
return;
}
printf("共有%d条信息\n",length);
for(i=0;i<length;i++)
{
printf(" 企业编号: %s 企业名称: %s\n 省分配帐篷总数: %d\n 已生产帐篷总数: %d\n 已生产帐篷金额: %10.3f 已调出帐篷数量: %d\n 已调出帐篷金额: %10.3f\n 统计日期: %s\n 统计员: %s\n ",
info[i].inc_number,info[i].inc_name,info[i].shen_number,info[i].inc_add_number,info[i].inc_add_jine,info[i].inc_diaochu_number,info[i].inc_diaochu_jine,info[i].tongji_date,info[i].tongji_name);
}
fclose(pf);
FILE *changef;
changef=fopen("c:\\省属企业帐篷生产调出汇总基本信息.txt","w");
while(flag=='n')
{
printf("请选择你要对那个信息进行修改:\n");
scanf("%d",&choose);
printf("你要修改的是否为[y/n]");
printf(" 省名: %s 企业编号: %s 企业名称: %s\n 省分配帐篷总数: %d\n 已生产帐篷总数: %d\n 已生产帐篷金额: %10.3f 已调出帐篷数量: %d\n 已调出帐篷金额: %10.3f\n 统计日期: %s\n 统计员: %s\n ",
info[choose-1].shen_name,info[choose-1].inc_number,info[choose-1].inc_name,info[choose-1].shen_number,info[choose-1].inc_add_number,info[choose-1].inc_add_jine,info[choose-1].inc_diaochu_number,info[choose-1].inc_diaochu_jine,info[choose-1].tongji_date,info[choose-1].tongji_name);
fflush(stdin);
flag=getchar();
}
printf("进行修改:\n");
memset(info[choose-1].inc_name,0,30);
memset(info[choose-1].tongji_date,0,11);
memset(info[choose-1].tongji_name,0,10);
memset(info[choose-1].shen_name,0,20);
printf("请输入该企业所属省份:\n");
fflush(stdin);
printf("请输入企业编号\n");
fflush(stdin);
fgets(info[choose-1].inc_number,12,stdin);
printf("请输入企业名称\n");
fflush(stdin);
fgets(info[choose-1].inc_name,30,stdin);
printf("请输入省分配帐篷总数\n");
fscanf(stdin,"%d",&info[choose-1].shen_number);
printf("请输入已生产帐篷数量\n");
fscanf(stdin,"%d",&info[choose-1].inc_add_number);
printf("请输入已生产帐篷金额\n");
fscanf(stdin,"%f",&info[choose-1].inc_add_jine);
printf("请输入已调出帐篷数量\n");
fscanf(stdin,"%d",&info[choose-1].inc_diaochu_number);
printf("请输入已调出帐篷金额\n");
fscanf(stdin,"%f",&info[choose-1].inc_diaochu_jine);
printf("请输入统计日期\n");
fflush(stdin);
fgets(info[choose-1].tongji_date,11,stdin);
printf("请输入统计员\n");
fflush(stdin);
fgets(info[choose-1].tongji_name,10,stdin);
printf("修改成功\n");
printf("对文件进行写入:\n");
for(i=0;i<length;i++)
{
fwrite(&info[i],sizeof(struct geshen_info),1,changef);
}
fclose(changef);

}

下面的发布上来了,给我邮箱,我发给你
温馨提示:内容为网友见解,仅供参考
第1个回答  2010-06-16
恩,朋友,我这里有一个学生成绩链表,

基本上你要的功能全有

你去只要修改一些输入输出,以及结构体就可以了

http://wenku.baidu.com/view/dc69e8ef5ef7ba0d4a733bff.html

我自己修改了把数据写入文件,由于有很多朋友要排序,麻烦...还没写,最近学习忙死了,...还没上传文库,你要的话可以留下邮箱,

这个链表可真是帮了很多朋友的忙啊,O(∩_∩)O哈哈~...
第2个回答  2010-06-16
很繁琐、、、
先定义一个记录信息内嵌
(1)各省帐篷调出基本信息参考:
(2)省属企业帐篷生产调出汇总基本信息参考:
(3)企业帐篷调出明细基本信息参考:
的结构体、、
然后创建动态链表、、实现那些功能咯、、
第3个回答  2010-06-19
到底是要做系统还是要写论文就可以啊
第4个回答  2010-06-16
确实很难的啊

帮忙解一道C语言题!谢!
define M(x,y,z) x*y+z main(){ int a=1,b=2, c=3;printf(“%d\\n”, M(a+b,b+c, c+a));} 作相应代换就可以了 最后答案应该是 1+2*2+3+3+1=12 选D

C语言问题,大家帮个忙谢谢
解题思路(不考虑负数):根据数字大小判断是几位数。如果输入的是 0,则是 1 位数,正序、逆序都为 0。如果不是0,可以根据该数是几位数进行循环输出。这里提供了一种扩展性较强的算法,可以参考。代码中,k = 1000 表示当该数是 4 位数,然后通过循环来缩减 k 的值,从而从高到低输出每一位...

一道c语言选择题,大家能帮我解释一下吗
所以printf("%d,%d",(a,b),(b,a));相当于printf("%d,%d",b,a);在例如,这个题如果是这样的话,设inta=3,b=4;执行printf("%d,%d",(a+b,b),(b,a+b));后的输出结果就是4(b的值),7(a+b的值)。不懂可追问哦!

一道c语言问题,请各位高手们帮帮忙,谢谢
char p[][20]={“get”,”put”,”out”};p是一个有3个元素的数组,数组中的每个元素都是一个char[20]类型的数组。也就是说,p是一个二维数组。strlen(p[0])+strlen(p[1])+ strlen(p[2])即计算p中的三个字符串的长度总和,为3+3+3=9。

求大家帮忙看看这个C语言题目啊,蟹蟹蟹蟹~
0相等)所以,就会发生“死循环”了。所以,通常情况下,要避免直接比较二个实型量x,y是否相等,而是改为比较二个实型量之差的绝对值是否小于允许的误差。例如10的-8次方等等。避免使用if(x==y)...或if(x!=y)...而是改用if(fabs(x-y)<1e-8)...或if(abs(x-y)>1e-8)......

有几道C语言题请大家帮我解答一下,各位哥哥姐姐帮帮忙啊!小弟感激不...
1. 变量名 2. 逗号表达式,其值取最后一项。78\/5 = 15(小数部分不要)3.选A,--x相当于x=x-1;4.321。求余运算 5.printf("格式控制", [输出参数1,...])scanf("格式控制", [&输入参数1,...])6.没题目

C语言问题,求大神
10进制数18在书写成16进制数时写作0x12,在程序中写成\\x12是字符写法,你可以将\\xhh中的hh两位看成两位16进制数,换算成10进制数就是ASCII码。ascii码66就是A。

c语言问题,不懂,请大家帮助,谢谢.
p是一个指针,next可能表示的是p指向的下一个元素,有可能p代表的是一个链表的某个节点 如果以上猜测正确的话,p->next = h的意思是让p的下一个节点指针指向h,这样h就加入了链表 而p->next = h->next的意思是,让h的下一个节点成为p的下一个节点,如果这两个语句是先后执行的话,意思就...

C语言题求解啊,,,完全没思路TT
你学了几年的编程。。以下给出思路:因为他可选择的是连续的,所以可以得到贪心策略:f[i]=max(f[i-1],0)+a[i],其中f[i]表示从第1道菜到第i道菜所获得的最大愉快度。注意:别以为这是DP,它其实就是贪心!因为这题的普遍无后效性,所以贪心也可以对。如果想要具体程序,请继续追问。

一道相当棘手的C语言题目,希望朋友们帮帮我
简单的递归问题。第一层:x=3 if 语句成立,进入第二层 第二层:x=1 if 语句不成立 输出 x=1 第二层结束,返回第一层 输出x=3 第一层结束,放回主函数

相似回答