高手们:这道程序怎么编啊?请尽快帮助我完成这道C++的作业啊!

到百度贴吧首页
新闻   网页   贴吧   知道   MP3   图片   视频   百科
    吧内搜索 | 帮助

高手们:这道程序怎么编啊?请尽快帮助我完成这道C++的作业啊!

61.149.15.*

1楼

销售监控程序
要求和实现
第一部分:需求概述
每个组织都相信应当计划当年的销售目标,并达到这些目标,定期地进行检查来监控目标与实际销售额的对比情况,检查依赖于保存的有关销售项目和销售详细信息的数据,除了数据查询,还可以进行添加、删除和修改操作。 
第二部分:整体设计
销售项目的详细信息应保存在一个名为 item.dat 的文件中,该文件应包含下列详细信息:
项目代码(从 1 开始按顺序编码);
名称(最多 20 个字符);
目标销售额(数字);
年初至今销售额(数字);
销售的详细信息应保存在一个名为 sales.dat 的文件中,该文件应包含下列详细信息:
项目代码;
已销售数量(数字);
第三部分:实现说明
销售监控系统应以下列菜单开始:

SALES MONITORING SYSTEM

1. Add new item details 
2. Record Sale details 
3. Delete existing Item details 
4. Display Sale details based on Item number 
5. Display Report on Sales Target Achieved Items 
6. Quit 

Enter choice:

根据用户的选择,将执行下列操作:下面显示了相应的图示:
图 1:主屏幕
         SALES MONITORING SYSTEM
1. Add new item details 
2. Record Sale details 
3. Delete existing Item details 
4. Display Sale details based on Item number 
5. Display Report on Sales Target Achieved Items 
6. Quit 

Enter choice:

Add new item details(添加新项目的详细信息)
通过从文件中访问最后一个项目的代码并加 1 来生成新项目代码,接受新项目的详细信息,确保名称不为空,不应接受年初至今销售额,而应将其设为 0,将该记录保存到 item.dat 文件中。
图 2 显示了“Add New Item screen”屏幕
图 2:添加新项目
      ADD NEW ITEM DETAILE
Item code:1
ENTER item name (up to 20 chars):bags
enter targeted salse:200
record writtem to item file

Record Sale details(记录销售详细信息)

接受项目代码,并确保 item.dat 文件中存在该代码,确保输入的销售数量大于 0,接受有效的详细信息后,将记录保存到 sales.dat 文件中,通过添加销售数量更新 item.dat 文件中年初至今相应的销售额。
图 3 显示了“Add Item Sale Details”的屏幕。
图 3:销售详细信息
      Add Item Sale Details
enter item code:1
enter quantity sold:120
record updated in item file
record written to sales file
Delete existing Item details(删除现有项目的详细信息)
接受项目代码,并检查 item.dat 文件中是否存在该代码,如果存在该代码,则删除 item.dat 和 sales.dat 文件中的相应详细信息。
删除项目的屏幕如下所示,其中根据输入的项目代码,在 item.dat和sales.dat 文件中搜索并删除该项目。
图 4:删除项目的详细信息
     delete item details
enter item code:1
1 record deleted from item file
1 record deleted from sales file

Display Sale details based on Item number(显示根据项目号查出的销售详细信息)
接受项目代码,并显示 sales.dat 中所有相应的销售详细信息。
图 5 所示为项目已销售数量的屏幕。 
图 5:查询销售详细信息
      query sales details
enter item code:1
item 1 quantity sold:120
Display Report on Sales Target Achieved Items(显示已达到销售目标的项目的报告)
显示 item.dat 文件中所有已达到目标销售额的项目的详细信息。
图 6 所示的屏幕表示没有项目达到目标销售额,如果有项目达到了目标,就会如图 7 所示显示该项目的详细信息。
图 6:销售目标报告
     report no sales traget achieved items
on item has achieved the targeted sales

图 7:销售目标报告
     report no sales traget achieved items
27   pen    20    20

Quit(退出)
关闭程序,并退出销售监控系统。
在系统的所有功能点处显示相应的消息。
 第四部分:对应的章节内容
第四章:C 语言中的输入和输出
使用 printf () 显示菜单,要接受菜单选择,请使用 scanf (),如图 1 所示。
第五章:条件
要检查所选的菜单项是否有效,请使用条件语句(if 或 switch),如果用户所选的菜单项无效,则显示相应的错误消息。
第六章:循环
该菜单必须包括在一个循环中,这样用户才能执行多个操作。 
第七章:数组
要接受多个项目和多条销售详细信息,请使用数组,为新项目详细信息生成并显示新项目代码,接受详细信息后,使用户能根据项目代码查询项目和销售详细信息。
第九章:函数
根据输入的菜单选择,调用相应的函数来执行各个操作。 
创建函数来执行下列操作:
将新项目详细信息添加到 item.dat 文件中
将新项目销售详细信息添加到 sales.dat 文件中
从 item.dat 文件中删除项目并从 sales.dat 文件中删除相应的销售详细信息
显示特定项目的销售详细信息
显示已达到目标销售额的项目的报告
第十章:字符串
本工程中在必须输入字符串的所有地方都使用了字符串函数。
第十一章:复杂数据类型及排序
定义两个结构,一个用于项目 (item),另一个用于销售 (sales)。 
item 结构包含下列数据成员:
Item Code
Item Name
Targeted sales
Year to Date Sales
sales 结构包含下列数据成员:
Item Code
Quantity Sold
第十二章:文件操作
记录应保存在 item.dat 和 sales.dat 文件中,添加新项目时,记录被保存在 item.dat 中,销售出一个项目时,记录被保存在 sales.dat 中,与此同时将更新 item.dat 文件,选择删除一个项目时,将分别从 item.dat 和 sales.dat 文件中删除该项目及其相应销售详细信息。
本工程中将使用下列与文件相关的函数:

fopen – 打开文件;
fwrite – 将数据添加到文件中;
fread – 从文件中读取数据;
fclose – 关闭文件。

2楼

头晕。
222.38.152.*

3楼

靠,怎么跟我们留的作业一样?你是不是秦皇岛人啊?
61.149.15.*

4楼

不是的,偶是首都的
61.149.15.*

5楼

请问3楼的你会做这个项目吗?可以和你交流一下吗?
202.116.24.*

6楼

#include <stdio.h>
struct item
{
int code;
char name[21];
int psale;
int asale;
struct item * next;
}item1[1];

struct sales
{
int code;
char imag;
int num;
struct sales * next;
}sales1[1];

int main()
{
int choice;
struct item *ip1,*ip2,*ihead;
struct sales *sp1,*sp2,*shead;
FILE *fp1,*fp2;
fp1=fopen("item.dat","wb");
fp2=fopen("sales.dat","wb");
fclose(fp1);
fclose(fp2);
printf("SALES MONITORING SYSTEM\n\n");
printf("1. Add new item details\n");
printf("2. Record Sale details \n");
printf("3. Delete existing Item details \n");
printf("4. Display Sale details based on Item number \n");
printf("5. Display Report on Sales Target Achieved Items \n");
printf("6. Quit \n\n");
printf("Enter choice:\n");
scanf("%d",&choice);
switch(choice)
{
case 1: 
printf(" ADD NEW ITEM DETAILE\n);
printf("Item code:\n");
scanf("%d",item1[0].code);
printf("ENTER item name (up to 20 chars):\n");
scanf("%s",item1[0].name);
printf("enter targeted salse:\n");
scanf("%d",item1[0].psale);
printf("enter Year to Date Sales:\n");
scanf("%d",item1[0].asale);
fp1=fopen("item.dat","wa");
fwrite(&item1[0],sizeof(struct item),1,fp1);
fclose(fp1);
printf("record writtem to item file\n");
case 2:

待续.......

202.116.24.*

7楼

#include <stdio.h>
struct item
{
int code;
char name[21];
int psale;
int asale;
struct item * next;
}item1[1];

struct sales
{
int code;
int num;
struct sales * next;
}sales1[1];

int main()
{
int choice,n=0,m=0,del_num;
struct item *ip1,*ip2,*ip3,*ihead;
struct sales *sp1,*sp2,*sp3,*shead;
FILE *fp1,*fp2;
fp1=fopen("item.dat","wb");
fp2=fopen("sales.dat","wb");
fclose(fp1);
fclose(fp2);
printf("SALES MONITORING SYSTEM\n\n");
printf("1. Add new item details\n");
printf("2. Record Sale details \n");
printf("3. Delete existing Item details \n");
printf("4. Display Sale details based on Item number \n");
printf("5. Display Report on Sales Target Achieved Items \n");
printf("6. Quit \n\n");
printf("Enter choice:\n");
scanf("%d",&choice);
switch(choice)
{
case 1: 
ip1=(struct item *)malloc(sizeof(struct item));
ip1=&item1[0];
n++; if (n==1) ihead=ip1;
printf(" ADD NEW ITEM DETAILE\n);
printf("Item code:n\n");
item1[0].code=n;
printf("ENTER item name (up to 20 chars):\n");
scanf("%s",item1[0].name);
printf("enter targeted salse:\n");
scanf("%d",item1[0].psale);
item1[0].asale=0;
fp1=fopen("item.dat","wa");
fwrite(&item1[0],sizeof(struct item),1,fp1);
fclose(fp1);
printf("record writtem to item file\n");
ip1->next=NULL;
case 2:
sp1=(struct sales *)malloc(sizeof(struct sales));
sp1=&sales1[0]
m++; if (m==1) shead=sp1;
printf(" Add Item Sale Details\n");
printf("enter item code:\n")
scanf("%d",sales1[0].code);
printf("enter quantity sold:\n);
scanf("%d",&sp1->num);
ip2=ihead;
while(ip2!=NULL)
{
if (ip2->code==sales1[0].code)
{
ip2->asales+=sp1->num;
break;
}
ip2=ip2->next;
}
fp1=fopen("item.dat","wb");
ip2=ihead;
while(ip2!=NULL)
{
fwrite(ip2,sizeof(struct item),1,fp1);
ip2=ip2->next;
}
fclose(fp1);
fp2=fopen("sales.dat","wa");
fwrite(sp1,sizeof(struct sales),1,fp2);
fclose(fp2);
sp1->next=NULL;
printf("record updated in item file\n");
printf("record written to sales file\n");
case 3:
printf(" delete item details\n");
printf("enter item code:\n");
scanf("%d",&del_num);
ip2=ihead;
while(ip2!=NULL)
{
ip3=ip2->next;
if (ip2->code==del_num)
{
ip2->next=ip3->next;
break;
}
ip2=ip2->next;
}
fp1=fopen("item.dat","wb");
ip2=ihead;
while(ip2!=NULL)
{
fwrite(ip2,sizeof(struct item),1,fp1);
ip2=ip2->next;
}
fclose(fp1);
printf("1 record deleted from item file\n");
sp2=shead;
while(sp2!=NULL)
{
sp3=sp2->next;
if (sp2->code==del_num)
{
sp2->next=sp3->next;
break;
}
sp2=sp2->next;
}
fp2=fopen("sales.dat","wb");
sp2=shead;
while(sp2!=NULL)
{
fwrite(sp2,sizeof(struct sales),1,fp2);
sp2=sp2->next;
}
fclose(fp2);
printf("1 record deleted from sales file\n");
case 4:
待续.......

8楼

你就不能用个Financial.dat文件.
202.116.24.*

11楼

#include <stdio.h>
struct item
{
int code;
char name[21];
int psale;
int asale;
struct item * next;
};

struct sales
{
int code;
int num;
struct sales * next;
};

int main()
{
int choice,n=0,m=0,del_num,que_num,good,f_num,i;
struct item *ip1,*ip2,*ip3,*ihead;
struct sales *sp1,*sp2,*sp3,*shead;
FILE *fp1,*fp2;
fp1=fopen("item.dat","wb");
fp2=fopen("sales.dat","wb");
fclose(fp1);
fclose(fp2);
while(1)\*本程序在按6键才可以退出*\
{
printf("SALES MONITORING SYSTEM\n\n");
printf("1. Add new item details\n");
printf("2. Record Sale details \n");
printf("3. Delete existing Item details \n");
printf("4. Display Sale details based on Item number \n");
printf("5. Display Report on Sales Target Achieved Items \n");
printf("6. Quit \n\n");
loop : printf("Enter choice:\n");
scanf("%d",&choice);
switch(choice)
{
case 1: 
f_num=0
fp1=fopen("item.dat","rb");
for (i=0;i<n;i++)
{
fp1=fread(ip1,sizeof(struct item),1,fp1);
f_num++; if (f_num==1) ihead=ip1;
ip1=ip1->next;
}
fclose(fp1);
ip1=(struct item *)malloc(sizeof(struct item));
n++; if (f_num==0 && n==1) ihead=ip1;\*f_num==0表示文件中没有数据*\
printf(" ADD NEW ITEM DETAILE\n);
printf("Item code:n\n");
ip1->code=n;
printf("ENTER item name (up to 20 chars):\n");
scanf("%s",ip1->name);
printf("enter targeted salse:\n");
scanf("%d",ip1->psale);
ip1->asale=0;
fp1=fopen("item.dat","wa");
fwrite(ip1,sizeof(struct item),1,fp1);
fclose(fp1);
printf("record writtem to item file\n");
ip1->next=NULL;
case 2:
good=0;
f_num=0
fp1=fopen("item.dat","rb");
for (i=0;i<n;i++)
{
fp1=fread(ip1,sizeof(struct item),1,fp1);
f_num++; if (f_num==1) ihead=ip1;
ip1=ip1->next;
}
fclose(fp1);
f_num=0
fp1=fopen("sales.dat","rb");
for (i=0;i<m;i++)
{
fp1=fread(sp1,sizeof(struct sale),1,fp1);
f_num++; if (f_num==1) shead=sp1;
sp1=sp1->next;
}
fclose(fp1);
sp1=(struct sales *)malloc(sizeof(struct sales));
m++; if (f_num==0 && m==1) shead=sp1;\*f_num==0表示文件中没有数据*\
printf(" Add Item Sale Details\n");
printf("enter item code:\n")
scanf("%d",sp1->code);
printf("enter quantity sold:\n);
scanf("%d",&sp1->num);
ip2=ihead;
while(ip2!=NULL)
{
if (ip2->code==sp1->code)
{
good=1;\*判断输入的code是否在item中*\
ip2->asales+=sp1->num;
break;
}
ip2=ip2->next;
}
if (good==0) {printf("sorry,can't find code %d in item\n",sp1->code); goto loop;}
fp1=fopen("item.dat","wb");
ip2=ihead;
while(ip2!=NULL)
{
fwrite(ip2,sizeof(struct item),1,fp1);
ip2=ip2->next;
}
fclose(fp1);
fp2=fopen("sales.dat","wa");
fwrite(sp1,sizeof(struct sales),1,fp2);
fclose(fp2);
sp1->next=NULL;
printf("record updated in item file\n");
printf("record written to sales file\n");
case 3:
good=0;
f_num=0
fp1=fopen("item.dat","rb");
for (i=0;i<n;i++)
{
fp1=fread(ip1,sizeof(struct item),1,fp1);
f_num++; if (f_num==1) ihead=ip1;
ip1=ip1->next;
}
fclose(fp1);
f_num=0
fp1=fopen("sales.dat","rb");
for (i=0;i<m;i++)
{
fp1=fread(sp1,sizeof(struct sale),1,fp1);

202.116.24.*

12楼

f_num++; if (f_num==1) shead=sp1;
sp1=sp1->next;
}
fclose(fp1);
printf(" delete item details\n");
printf("enter item code:\n");
scanf("%d",&del_num);
ip2=ihead;
while(ip2!=NULL)
{
ip3=ip2->next;
if (ip2->code==del_num)
{
good=1
if(ip2==ihead) ihead=ihead->next; \*要找的数据在文件头*\
if(ip2->next==NULL) ip2->next=NULL;\*要找的数据在文件尾*\
else ip2->next=ip3->next;
break;
}
ip2=ip2->next;
}
if (good==0) {printf("sorry,can't find code %d in item\n",sp1->code); goto loop;}
fp1=fopen("item.dat","wb");
ip2=ihead;
while(ip2!=NULL)
{
fwrite(ip2,sizeof(struct item),1,fp1);
ip2=ip2->next;
}
fclose(fp1);
printf("1 record deleted from item file\n");
sp2=shead;
while(sp2!=NULL)
{
sp3=sp2->next;
if (sp2->code==del_num)
{
if(sp2==shead) shead=shead->next; \*要找的数据在文件头*\
if(sp2->next==NULL) sp2->next=NULL;\*要找的数据在文件尾*\
else sp2->next=sp3->next;
break;
}
sp2=sp2->next;
}
fp2=fopen("sales.dat","wb");
sp2=shead;
while(sp2!=NULL)
{
fwrite(sp2,sizeof(struct sales),1,fp2);
sp2=sp2->next;
}
fclose(fp2);
printf("1 record deleted from sales file\n");
case 4:
good=0;
f_num=0
fp1=fopen("item.dat","rb");
for (i=0;i<n;i++)
{
fp1=fread(ip1,sizeof(struct item),1,fp1);
f_num++; if (f_num==1) ihead=ip1;
ip1=ip1->next;
}
fclose(fp1);
f_num=0
fp1=fopen("sales.dat","rb");
for (i=0;i<m;i++)
{
fp1=fread(sp1,sizeof(struct sale),1,fp1);
f_num++; if (f_num==1) shead=sp1;
sp1=sp1->next;
}
fclose(fp1);
printf("query sales details\n");
printf("enter item code:\n);
scanf("%d",&que_num);
ip2=ihead;
while(ip2!=NULL)
{
if (ip2->code==que_num)
{
good=1;ip3=ip2;
printf("item %d quantity sold:%d\n",ip2->code,ip2->psale);
break;
}
ip2=ip2->next;
}
if (good==0) {printf("sorry,can't find code %d in item\n",sp1->code); goto loop;}
printf("item %d quantity sold:%d\n",ip3->code,ip3->asale);
case 5:
good=0;
  f_num=0
fp1=fopen("item.dat","rb");
for (i=0;i<n;i++)
{
fp1=fread(ip1,sizeof(struct item),1,fp1);
f_num++; if (f_num==1) ihead=ip1;
ip1=ip1->next;
}
fclose(fp1);
f_num=0
fp1=fopen("sales.dat","rb");
for (i=0;i<m;i++)
{
fp1=fread(sp1,sizeof(struct sale),1,fp1);
f_num++; if (f_num==1) shead=sp1;
sp1=sp1->next;
}
fclose(fp1);
printf("Display Report on Sales Target Achieved Items\n");
ip2=ihead;
while(ip2!=NULL)
{
if (ip2->asale>=ip2->psale)
{
good=1;
printf("report no sales traget achieved items\n");
printf("%d %s %d %d\n",ip2->code,ip2->name,ip2->psale,ip2->asale);
}
ip2=ip2->next;
}
if (good==0) 
{
printf(" report no sales traget achieved items\n");
printf("on item has achieved the targeted sales\n");
case 6:
return 0;

}
}


\*本程序主要是在每个case下都把文件的数据都读到两个链表中*\
\*write by暨南大学珠海学院张星标,写了一个下午。呵呵。 *\

202.116.24.*

13楼

写完了这个程序,我好憔悴啊。也没有编译过,不知道有多少错误,呵呵。
61.149.15.*

14楼

嗨,楼上的谢谢你啊!辛苦了!
可是我怎么运行不了啊?
错误很多的啊!
你是用Microsoft Visual C++ 6.0编的吗?

202.116.24.*

15楼

tc
61.149.15.*

16楼

哦,TC和VC++有什么区别吗?
我们是叫用VC++编的。

202.116.24.*

17楼

没有办法了,我用的是c语言写的。在tc下可能可以吧。吃饭了,饿!
61.149.15.*

18楼

要是把你所写的移植到VC里是不是要改很多的地方啊?
218.77.8.*

19楼

用C++编程象这样的题目不难
是一个动态连接访问数据库的问题
先用Foxro 或是其他的的做好一个表格
在用C++中的CListView来进行连接和显示
连接的具体步骤都是有库函数建议你看看动态连接库与访问数据库的基础知识
C++是除了代码外还有先把外型设计好
找到各个部门连接的接口函数调用库函数

202.116.24.*

20楼

fopen – 打开文件;
fwrite – 将数据添加到文件中;
fread – 从文件中读取数据;
fclose – 关闭文件。
你的题目有这个,应该不是c++了,这是c语言的文件操作方式了。

221.12.10.*

21楼

辛苦了
218.25.78.*

22楼

小学的时候好象做过这道题,你等一下,我给你找找小学时候的作业本.........................................................................呼...呼...呼...呼...呼......
203.118.204.*

23楼

晕哪,我也要做这道题目阿!但楼上几都没有写出函数来啊!还有数组定义应该为20吧!
221.232.106.*

24楼

他不是没编译过~而是他可能都不知道自己错在哪里了~改不了了~
我晕~!!!!!!!!

221.10.25.*

25楼

只是我们要用函数,还有些小地方上更复杂些~~
58.60.105.*

26楼

你发的是什么啊! 我怎么一样要做这道题目!!!!!!啊哭......................
202.196.16.*

27楼

5555 哎也不会啊~~^_^
221.233.24.*

28楼

C题目五:销售管理系统 (限最多2人完成)
 某公司有四个销售员(编号:1-4),负责销售五种产品(编号:1-5)。每个销售员都将当天出售的每种产品各写一张便条交上来。每张便条包含内容: 
1)销售员的代号 
2)产品的代号 
3)这种产品的当天的销售额 
 每位销售员每天可能上缴0-5张便条。假设,收集到了上个月的所有便条,编写一个处理系统,读取上个月的销售情况(自己设定),进行如下处理。 
1)计算上个月每个人每种产品的销售额。 
2)按销售额对销售员进行排序,输出排序结果(销售员代号) 
3)统计每种产品的总销售额,对这些产品按从高到底的顺序,输出排序结果(需输出产品的代号和销售额) 
4)输出统计报表 
 销售统计报表 
 产品代号 销售之和 
销售员代号 1 2 3 4 5 
 1 
 2 
 3 
 4 
每种产品之和 总和 
[em24][em24][em24][em25][em25][em25][em27][em27][em27]

61.187.64.*

29楼

这个很容易啊
小儿科

59.41.188.*

30楼

#include "stdio.h"
#include "malloc.h"
#define LEN sizeof(struct student)
struct student
{
long num;
int score;
struct student*next;

};
struct student*creat(int n)
{
 struct student *head=NULL,*p1=NULL,*p2=NULL;
int i;
for(i=1;i<=n;i++)
{
p1=(struct student*)malloc(LEN);
scanf("%ld",&p1->num);
scanf("%ld",&p1->score);
p1->next=NULL;
if(i==1)head=p1;
else p2->next=p1;
p2=p1;
}
 return (head);
}


void print(struct student*head)
{
struct student*p;
p =head;
 while(p!=NULL)
{
printf("%8ld%8d",p->num,p->score);
p=p->next;
printf("\n");
}
}
struct student *insert(struct student*head,struct student*stud)
{
struct student*p0,*p1,*p2;
p1=head; p0=stud;
if(head==NULL)
{
head=p0;
}
else
{
while((p0->num>p1->num)&&(p1->next!=NULL))
{p2=p1; p1=p1->next;}
if(p0->num<p1->num)
{
 if(head=p1)head=p0;
 else p2->next=p0;
 p0->next=p1;
}
else 
{
 p1->next=p0;
}
}
return (head);
}
main()
{
struct student*head,*stu;
int n;
scanf("%d",&n);
head=creat(n);
print(head);
stu=(struct student *)malloc(LEN);
scanf("%ld",&stu->num);
scanf("%ld",&stu->score );
stu->next=NULL;
head=insert(head,stu);
print(head);

}

221.216.153.*

31楼

我班(共25名学生)进行结业考试,一共有两科,分别为C语言和网页设计.现在要求我们输入本班实际参加考试的人数,然后按编号从小到大的顺序依次输入每个学生的成绩.
 要求:1)将每名学生的两门成绩分别打印输出
    2)统计每个学生的课程总成绩和平均成绩
    3)统计每门课程的全班总成绩和平均成绩
    4)找出全班是否有考试成绩为100分的,出现了多少次
    5)将全班学生的C语言成绩进行升序输出
!! !用函数!!!

221.216.153.*

32楼

我班(共25名学生)进行结业考试,一共有两科,分别为C语言和网页设计.现在要求我们输入本班实际参加考试的人数,然后按编号从小到大的顺序依次输入每个学生的成绩.
 要求:1)将每名学生的两门成绩分别打印输出
    2)统计每个学生的课程总成绩和平均成绩
    3)统计每门课程的全班总成绩和平均成绩
    4)找出全班是否有考试成绩为100分的,出现了多少次
    5)将全班学生的C语言成绩进行升序输出
!! !用函数!!!

发表回复

内 容:
用户名:
  
©2010 Baidu 贴吧协议  意见反馈