| 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 – 关闭文件。 |
|
|
| 222.38.152.* |
3楼 |
|
|
| 61.149.15.* |
4楼 |
|
|
| 61.149.15.* |
5楼 |
|
|
| 202.116.24.* |
6楼 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楼 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: 待续....... |
|
|
| 202.116.24.* |
11楼 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楼 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楼 |
|
|
| 61.149.15.* |
16楼 我们是叫用VC++编的。 |
|
|
| 202.116.24.* |
17楼 |
|
|
| 61.149.15.* |
18楼 |
|
|
| 218.77.8.* |
19楼 是一个动态连接访问数据库的问题 先用Foxro 或是其他的的做好一个表格 在用C++中的CListView来进行连接和显示 连接的具体步骤都是有库函数建议你看看动态连接库与访问数据库的基础知识 C++是除了代码外还有先把外型设计好 找到各个部门连接的接口函数调用库函数 |
|
|
| 202.116.24.* |
20楼 fwrite – 将数据添加到文件中; fread – 从文件中读取数据; fclose – 关闭文件。 你的题目有这个,应该不是c++了,这是c语言的文件操作方式了。 |
|
|
| 221.12.10.* |
21楼 |
|
|
| 218.25.78.* |
22楼 |
|
|
| 203.118.204.* |
23楼 |
|
|
| 221.232.106.* |
24楼 我晕~!!!!!!!! |
|
|
| 221.10.25.* |
25楼 |
|
|
| 58.60.105.* |
26楼 |
|
|
| 202.196.16.* |
27楼 |
|
|
| 221.233.24.* |
28楼 某公司有四个销售员(编号: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 "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楼 要求:1)将每名学生的两门成绩分别打印输出 2)统计每个学生的课程总成绩和平均成绩 3)统计每门课程的全班总成绩和平均成绩 4)找出全班是否有考试成绩为100分的,出现了多少次 5)将全班学生的C语言成绩进行升序输出 !! !用函数!!! |
|
|
| 221.216.153.* |
32楼 要求:1)将每名学生的两门成绩分别打印输出 2)统计每个学生的课程总成绩和平均成绩 3)统计每门课程的全班总成绩和平均成绩 4)找出全班是否有考试成绩为100分的,出现了多少次 5)将全班学生的C语言成绩进行升序输出 !! !用函数!!! |
|
|