客户消费积分管理系统.docx

上传人:b****6 文档编号:9148868 上传时间:2023-02-03 格式:DOCX 页数:7 大小:27.76KB
下载 相关 举报
客户消费积分管理系统.docx_第1页
第1页 / 共7页
客户消费积分管理系统.docx_第2页
第2页 / 共7页
客户消费积分管理系统.docx_第3页
第3页 / 共7页
客户消费积分管理系统.docx_第4页
第4页 / 共7页
客户消费积分管理系统.docx_第5页
第5页 / 共7页
点击查看更多>>
下载资源
资源描述

客户消费积分管理系统.docx

《客户消费积分管理系统.docx》由会员分享,可在线阅读,更多相关《客户消费积分管理系统.docx(7页珍藏版)》请在冰豆网上搜索。

客户消费积分管理系统.docx

客户消费积分管理系统

中北大学

数据结构

课程设计说明书

学生姓名:

学号:

学院:

电子与计算机科学技术学院

专业:

软件工程?

?

题目:

客户消费积分管理系统

成绩:

指导教师:

秦品乐、梁志剑

2010年6月24日

1.设计目的

数据结构课程设计的目的是,通过设计掌握数据结构课程中学到的基本理论和算法并综合运用于解决实际问题中,它是理论与实践相结合的重要过程。

设计要求学会如何对实际问题定义相关数据结构,并采用恰当的设计方法和算法解决问题,同时训练学生进行复杂程序设计的技能和培养良好的程序设计习惯。

2.设计内容和要求

问题描述:

针对客户的消费情况,进行客户管理,根据客户的消费积分对客户实行不同程度的打折优惠。

基本要求:

1.采用一定的存储结构进行客户信息的存储;

2.对客户的信息可以进行修改、删除、添加;

3.能够根据消费情况进行客户积分的计算;

4.根据积分情况实行不同程度的打折优惠。

3.本设计所采用的数据结构

本系统用到的主要数据结构为数组和文件。

一个数组对应一个客户,里面用3个字符串分别存储着用户的客户号、姓名和消费情况。

然后将数组写入文件,查询时读取文件,提取相应信息。

4.功能模块详细设计

 

4.1详细设计思想

在数组中定义3个字符串gukehao、xingming、xiaofei,分别存储客户的顾客号、姓名、消费额。

通过录入函数对3个字符串循环进行赋值,然后根据消费额使用if语句判断其折扣区间,复制完毕后存入文件s_score.txt。

修改函数首先按照用户输入的客户号找到相应存储文件,然后输出相应信息供客户阅览,最后提供修改命令,修改完毕后删除原文件,用新文件替代原文件。

查找函数首先读取文件,然后根据用户输入客户号找到相应文件输出客户信息(顾客号、姓名、消费额、积分、折扣)。

删除函数根据用户输入客户号找到相应文件进行删除。

主函数为用户界面,1-4分别对应录入、修改、查找、删除函数,5为退出。

4.2源代码

#include"stdio.h"

#include"stdlib.h"

#include"string.h"

#include"conio.h"

#include"mem.h"

#include"ctype.h"

#include"alloc.h"

structscore

{

chargukehao[8];/*定义3个存储客户信息的字符串*/

charmingzi[20];

floatscore[6];

}data,info[1000];/*定义数组*/

inti,j,k=0;

floatn;/*n为折扣值*/

chartemp[20],ch;

FILE*fp,*fp1;

voidluru()

{

if((fp=fopen("s_score.txt","ab+"))==NULL)

{

printf("cannotopenthisfile.\n");

getch();exit(0);

}

for(i=0;i>=0;i++)/*无限循环知道用户选择停止*/

{

printf("Pleaseinputgukehao:

");

gets(data.gukehao);

printf("pleaseinputmingzi:

");

gets(data.mingzi);

printf("Pleaseinputxiaofei:

");

gets(temp);data.score[0]=atof(temp);/*不能直接赋值,采用转换函数*/

if(data.score[0]<=5000)/*判断折扣区间*/

n=1;

else

if(data.score[0]<=10000&&data.score[0]>5000)

n=0.95;

else

n=0.9;

fwrite(&data,sizeof(data),1,fp);/*写入文件*/

printf("another?

(inputntomain/anykeytocontinue)\n");/*循环停止判断*/

ch=getch();

if(ch=='n'||ch=='N')

break;

}fclose(fp);

}

voidxiugai()

{

if((fp=fopen("s_score.txt","rb+"))==NULL||(fp1=fopen("temp.txt","wb+"))==NULL)

{

printf("Cannotopenthisfile.\n");

exit(0);

}

printf("\nPleaseinputshuruxiugaigukehao:

");

scanf("%d",&i);getchar();

while((fread(&data,sizeof(data),1,fp))==1)/*读取文件*/

{

j=atoi(data.gukehao);

if(j==i)/*根据输入数值确定客户号*/

{

printf("gukehao:

%s\nmingzi:

%s\n",data.gukehao,data.mingzi);

printf("Pleaseinputmingzi:

");

gets(data.mingzi);

printf("Pleaseinputxiaofei:

");

gets(temp);data.score[0]=atof(temp);

}fwrite(&data,sizeof(data),1,fp1);

}

fseek(fp,0L,0);/*0位移*/

fseek(fp1,0L,0);

while((fread(&data,sizeof(data),1,fp1))==1)

{

fwrite(&data,sizeof(data),1,fp);/*取代原文件*/

}

fclose(fp);

fclose(fp1);

}

voidchazhao()

{

if((fp=fopen("s_score.txt","rb"))==NULL)

{

printf("\nCannotopenthisfile.\n");

exit(0);

}

printf("\nPleaseinputgukehaochakan:

");

scanf("%d",&i);

while(fread(&data,sizeof(data),1,fp)==1)

{

j=atoi(data.gukehao);

if(i==j)

{

printf("gukehao:

%s\nmingzi:

%s\nxiaofei:

%f\njifen:

%f\nzhekou:

%f\n",data.gukehao,data.mingzi,data.score[0],data.score[0],n);

}

}getch();

}

voidshanchu()

{

if((fp=fopen("s_score.txt","rb+"))==NULL||(fp1=fopen("temp.txt","wb+"))==NULL)

{

printf("\nopenscore.txtwasfailed!

");

getch();

exit(0);

}

printf("\nPleaseinputgukehaowhichyouwanttodel:

");

scanf("%d",&i);getchar();

while((fread(&data,sizeof(data),1,fp))==1)

{

j=atoi(data.gukehao);

if(j==i)

{

printf("Anykeywilldeletit.\n");

getch();

continue;

}

fwrite(&data,sizeof(data),1,fp1);

}

fclose(fp);

fclose(fp1);

remove("s_score.txt");/*删除文件*/

rename("temp.txt","s_score.txt");

printf("Datadeletwassuccesful!

\n");

printf("Anykeywillreturntomain.");

getch();

}

main()

{

while

(1)

{

clrscr();/*清屏*/

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

printf("*1>luru2>xiugai*\n");

printf("*3>shanchu4>chazhao*\n");

printf("*5>exit*\n");

printf("**\n");

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

printf("Pleaseinputwhichyouwant(1-5):

\n");

ch=getch();

switch(ch)

{

case'1':

luru();break;

case'2':

xiugai();break;

case'3':

shanchu();break;

case'4':

chazhao();break;

case'5':

exit(0);

default:

continue;

}

}

}

5.结论

通过对系统的设计,发现文件相对于其他数据结构更便于修改和删除。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 党团工作 > 思想汇报心得体会

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1