欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C語(yǔ)言實(shí)現(xiàn)銷售管理系統(tǒng)設(shè)計(jì)

 更新時(shí)間:2022年03月22日 11:18:22   作者:涼哈哈  
這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言實(shí)現(xiàn)銷售管理系統(tǒng)設(shè)計(jì),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

本文實(shí)例為大家分享了C語(yǔ)言實(shí)現(xiàn)銷售管理系統(tǒng)設(shè)計(jì)的具體代碼,供大家參考,具體內(nèi)容如下

某公司有四個(gè)銷售員(編號(hào): 1-4), 負(fù)責(zé)銷售五種產(chǎn)品(編號(hào): 1-5)。 每個(gè)銷售員都將當(dāng)天出售的每種產(chǎn)品各寫(xiě)一 張便條交上來(lái)。每張便條包含內(nèi)容:銷售員的代號(hào)、產(chǎn)品的代號(hào)、這種產(chǎn)品的當(dāng)天的銷售額。每位銷售員每天上繳1張便條。

試設(shè)計(jì)一個(gè)便條管理系統(tǒng),使之能提供以下功能:

1、系統(tǒng)以菜單方式工作

2、便條信息錄入功能——輸入(支持便條信息文件導(dǎo)入)

3、便條信息修改功能

4、便條信息刪除功能

5、收集到了上個(gè)月的所有便條后,讀取銷售情況

      1)計(jì)算每個(gè)人每種產(chǎn)品的銷售額。

      2)按銷售額對(duì)銷售員進(jìn)行排序,輸出排序結(jié)果(銷售員代號(hào))

      3)統(tǒng)計(jì)每種產(chǎn)品的總銷售額,對(duì)這些產(chǎn)品按從高到底的順序,輸出排序結(jié)果(需輸出產(chǎn)品的代號(hào)和銷售額)

詳情請(qǐng)參考代碼,注釋寫(xiě)的很詳細(xì),希望能給你幫助.

最后的最后有截圖展示效果.

#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <stdlib.h>
#define M 155
?
///這些函數(shù)下面會(huì)詳細(xì)的介紹的滴!
void detail();
void foreach();
void menu();
void product();
void readdata();
void seller();
void total();
void choice();
void add();
void deleteing();
void update();
void clearing();
?
?
struct ss{
? ? int sid;///銷售代碼
? ? int pid;///產(chǎn)品代號(hào)
? ? int sn;///銷售額
}ss[M];
int n;///便條數(shù)目
int s[4][5]={{0,0,0,0,0},{0,0,0,0,0},{0,0,0,0,0},{0,0,0,0,0}};///用戶保存員工和產(chǎn)品信息
?
///從文件讀取數(shù)據(jù)
void readdata()
{
? ? FILE *fp;///定義文件指針
? ? ///調(diào)用fopen函數(shù),以只讀模式打開(kāi)d:\list.txt文件,并驗(yàn)證返回值是否為空
? ? if((fp=fopen("d:\\list.txt","r"))==NULL)
?
? ? {
? ? ? ? printf("文件打開(kāi)失??!\n");
? ? ? ? exit(0);///表示正常的退出
? ? }
? ? else
? ? /**feof是輸入輸出函數(shù),檢查文件是否結(jié)束,如結(jié)束,則返回非零值,
? ? 否則返回0 .函數(shù)原型為:int feof(FILE *fp)**/
? ? ? ? for(n=0;!feof(fp);n++)
? ? ? ? {
? ? ? ? ? ? fscanf(fp,"%d %d %d\n",&ss[n].sid,&ss[n].pid,&ss[n].sn);
? ? ? ? } ///保存文件數(shù)據(jù)到結(jié)構(gòu)體
? ? ?fclose(fp);///關(guān)閉文件
}
?
///從便條讀到的數(shù)據(jù)分類整理統(tǒng)計(jì)
void foreach()
{
? ? int i;
? ? for(i=0;i<n;i++)///遍歷所有紙條
? ? {
? ? ? ? switch(ss[i].pid)///按產(chǎn)品分類,再按銷售員分類,累加各人各產(chǎn)品銷售額
? ? ? ? {
? ? ? ? ? ? case 1:///當(dāng)ss[i].pid為1的時(shí)候,也就是當(dāng)產(chǎn)品代號(hào)為1的時(shí)候
? ? ? ? ? ? switch(ss[i].sid)///查看銷售代碼
? ? ? ? ? ? {
? ? ? ? ? ? ? ? ///當(dāng)銷售代碼為1的時(shí)候,累加1號(hào)銷售員編號(hào)為1的產(chǎn)品的銷售額
? ? ? ? ? ? ? ? case 1:s[0][0]+=ss[i].sn;break;
? ? ? ? ? ? ? ? ///當(dāng)銷售代碼為2的時(shí)候,累加2號(hào)銷售員編號(hào)為1的產(chǎn)品的銷售額
? ? ? ? ? ? ? ? case 2:s[1][0]+=ss[i].sn;break;
? ? ? ? ? ? ? ? ///當(dāng)銷售代碼為3的時(shí)候,累加3號(hào)銷售員編號(hào)為1的產(chǎn)品的銷售額
? ? ? ? ? ? ? ? case 3:s[2][0]+=ss[i].sn;break;
? ? ? ? ? ? ? ? ///當(dāng)銷售代碼為4的時(shí)候,累加4號(hào)銷售員編號(hào)為1的產(chǎn)品的銷售額
? ? ? ? ? ? ? ? case 4:s[3][0]+=ss[i].sn;break;
? ? ? ? ? ? }
? ? ? ? ? ? break;
? ? ? ? ? ? ///以下代碼同理可得
? ? ? ? ? ? case 2:
? ? ? ? ? ? switch(ss[i].sid)
? ? ? ? ? ? {
? ? ? ? ? ? ? ? case 1:s[0][1]+=ss[i].sn;break;
? ? ? ? ? ? ? ? case 2:s[1][1]+=ss[i].sn;break;
? ? ? ? ? ? ? ? case 3:s[2][1]+=ss[i].sn;break;
? ? ? ? ? ? ? ? case 4:s[3][1]+=ss[i].sn;break;
? ? ? ? ? ? }
? ? ? ? ? ? break;
?
? ? ? ? ? ? case 3:
? ? ? ? ? ? switch(ss[i].sid)
? ? ? ? ? ? {
? ? ? ? ? ? ? ? case 1:s[0][2]+=ss[i].sn;break;
? ? ? ? ? ? ? ? case 2:s[1][2]+=ss[i].sn;break;
? ? ? ? ? ? ? ? case 3:s[2][2]+=ss[i].sn;break;
? ? ? ? ? ? ? ? case 4:s[3][2]+=ss[i].sn;break;
? ? ? ? ? ? }
? ? ? ? ? ? break;
?
? ? ? ? ? ? case 4:
? ? ? ? ? ? switch(ss[i].sid)
? ? ? ? ? ? {
? ? ? ? ? ? ? ? case 1:s[0][3]+=ss[i].sn;break;
? ? ? ? ? ? ? ? case 2:s[1][3]+=ss[i].sn;break;
? ? ? ? ? ? ? ? case 3:s[2][3]+=ss[i].sn;break;
? ? ? ? ? ? ? ? case 4:s[3][3]+=ss[i].sn;break;
? ? ? ? ? ? }
? ? ? ? ? ? break;
?
? ? ? ? ? ? case 5:
? ? ? ? ? ? switch(ss[i].sid)
? ? ? ? ? ? {
? ? ? ? ? ? ? ? case 1:s[0][4]+=ss[i].sn;break;
? ? ? ? ? ? ? ? case 2:s[1][4]+=ss[i].sn;break;
? ? ? ? ? ? ? ? case 3:s[2][4]+=ss[i].sn;break;
? ? ? ? ? ? ? ? case 4:s[3][4]+=ss[i].sn;break;
? ? ? ? ? ? };
? ? ? ? ? ? break;
? ? ? ? }
? ? }
}
?
///菜單選項(xiàng)
void menu()
{
? ? int c;
? ? puts("\t\t*********菜單*********************\n\n");
? ? puts("\t\t 1.查看每人每種產(chǎn)品的銷售額\n");
? ? puts("\t\t 2.按銷售額對(duì)銷售員排序(銷售員代號(hào))\n");
? ? puts("\t\t 3.對(duì)每種產(chǎn)品總銷售額從高到低排序(產(chǎn)品代號(hào)和銷售額)\n");
? ? puts("\t\t 4.輸出統(tǒng)計(jì)報(bào)表\n");
? ? puts("\t\t 5.錄入一條便條信息\n");
? ? puts("\t\t 6.修改一條便條信息\n");
? ? puts("\t\t 7.刪除一條便條信息\n");
? ? puts("\t\t 8.退出\n");
? ? puts("\n\n\t\t*********************************************\n");
? ? printf("請(qǐng)選擇(1-8):[ ]\b\b");
? ? scanf("%d",&c);
? ? if(c<1||c>8)///錯(cuò)誤輸入,重新獲取輸入
? ? {
? ? ? ? printf("您輸入的選項(xiàng)不在我們服務(wù)范圍之內(nèi)\請(qǐng)確定好您要選擇的服務(wù),重新輸入?。?!\n");
? ? ? ? menu();
? ? }
? ? else///正確輸入
? ? switch(c)///根據(jù)輸入實(shí)現(xiàn)相應(yīng)函數(shù)調(diào)用
? ? {
? ? ? ? case 1:detail();
? ? ? ? break;
?
? ? ? ? case 2:seller();
? ? ? ? break;
?
? ? ? ? case 3:product();
? ? ? ? break;
?
? ? ? ? case 4:total();
? ? ? ? break;
?
? ? ? ? case 5:add();
? ? ? ? break;
?
? ? ? ? case 6:update();
? ? ? ? break;
?
? ? ? ? case 7:deleteing();
? ? ? ? break;
?
? ? ? ? case 8:exit(0);
? ? }
}
?
///計(jì)算上個(gè)月每個(gè)人每種產(chǎn)品的銷售額
void detail()
{
? ? int i,j;
? ? for(i=0;i<4;i++)
? ? {
? ? ? ? printf("\n\t\t%d 號(hào)銷售員銷售情況:\n",i+1);
? ? ? ? for(j=0;j<5;j++)
? ? ? ? ? ? ?printf("\t\t%d 號(hào)產(chǎn)品銷售額:%d\n",j+1,s[i][j]);
? ? }
? ? choice();
}
?
///按銷售額對(duì)銷售員進(jìn)行排序,輸出排序結(jié)果(銷售員代號(hào))
void seller()
{
? ? int i,j,k;
? ? int sp[4]={0,0,0,0};///存銷售員的銷售額
? ? for(i=0;i<4;i++)///統(tǒng)計(jì)銷售員的銷售額
? ? ? ? for(j=0;j<5;j++)
? ? ? ? ? ? sp[i]+=s[i][j];
?
? ? for(i=0;i<4;i++)///排序
? ? {
? ? ? ? k=0;
? ? ? ? for(j=0;j<4;j++)
? ? ? ? {
? ? ? ? ? ? if(sp[k]<sp[j])
? ? ? ? ? ? ? ? k=j;
? ? ? ? }
? ? ? ? printf("\t\t第%d名是%d號(hào)銷售員!\n",i+1,k+1);
? ? ? ? sp[k]=-1;
? ? }
? ? choice();
}
?
///對(duì)每種產(chǎn)品總銷售額從高到低排序(產(chǎn)品代號(hào)和銷售額)
void product()
{
? ? int i,j,k;
? ? int p[5]={0,0,0,0,0};///存每種產(chǎn)品的銷售額
? ? for(i=0;i<5;i++)///統(tǒng)計(jì)每種產(chǎn)品的銷售額
? ? ? ? for(j=0;j<4;j++)
? ? ? ? ? ? p[i]+=s[j][i];
?
? ? for(i=0;i<5;i++)///將產(chǎn)品的銷售額進(jìn)行排序
? ? {
? ? ? ? k=0;
? ? ? ? for(j=0;j<5;j++)
? ? ? ? {
? ? ? ? ? ? if(p[k]<p[j])
? ? ? ? ? ? ? ? k=j;
? ? ? ? }
? ? ? ? printf("\t\t第%d名是%d號(hào)產(chǎn)品!\銷售額為%d!\n",i+1,k+1,p[k]);
? ? ? ? p[k]=-1;
? ? }
? ? choice();
}
?
///輸出統(tǒng)計(jì)報(bào)表(輸出銷售代號(hào),產(chǎn)品代號(hào)和銷售額)
void total()
{
? ? int i,j;
? ? printf("\n\t銷售員\t產(chǎn)品\t銷售額\n");
? ? for(i=0;i<4;i++)
? ? ? ? for(j=0;j<5;j++)
? ? ? ? ? ? printf("\t%d\t%d\t%d\n",i+1,j+1,s[i][j]);
? ? choice();
}
?
///選擇退出系統(tǒng)或返回主菜單
void choice()
{
? ? int c;
? ? printf("請(qǐng)選擇接下來(lái)想做什么:\n1.返回菜單\n2.退出系統(tǒng)\n");
? ? scanf("%d",&c);
? ? if(c==1)
? ? ? ? menu();
? ? else
? ? ? ? exit(0);
}
?
///錄入一條便條信息
void add()
{
? ? printf("請(qǐng)?zhí)顚?xiě)您要錄入的便條的信息:銷售代碼,產(chǎn)品代碼,銷售額\n");
? ? /**接著readdata()統(tǒng)計(jì)的文本中便條的信息到結(jié)構(gòu)體數(shù)組里,
? ? 將添加的信息首先保存在那些信息的后面**/
? ? scanf("%d %d %d",&ss[n].sid,&ss[n].pid,&ss[n].sn);
? ? FILE *fp;///定義文件指針
? ? char *str="d:\\list.txt";
? ? printf("該條記錄正在寫(xiě)入文件 list.txt~~~~\n");
? ? fp=fopen(str,"a");///參數(shù)"a"意思是說(shuō)將新添加的數(shù)據(jù)接著文本里的數(shù)據(jù)寫(xiě),不會(huì)覆蓋文本里的內(nèi)容
? ? fprintf(fp,"\n%d\t%d\t%d",ss[n].sid,ss[n].pid,ss[n].sn);///將結(jié)構(gòu)體里的信息寫(xiě)入文本
? ? fclose(fp);///關(guān)閉文件
? ? printf("\n該條記錄已經(jīng)寫(xiě)入文件 list.txt,請(qǐng)前往查看!\n");
? ? switch(ss[n].pid)///借用foreach()函數(shù)里的代碼,詳情請(qǐng)參考foreach()函數(shù)
? ? {
? ? ? ? case 1:///當(dāng)ss[i].pid為1的時(shí)候,也就是當(dāng)產(chǎn)品代號(hào)為1的時(shí)候
? ? ? ? switch(ss[n].sid)///查看銷售代碼
? ? ? ? {
? ? ? ? ? ? ///當(dāng)銷售代碼為1的時(shí)候,累加1號(hào)銷售員編號(hào)為1的產(chǎn)品的銷售額
? ? ? ? ? ? case 1:s[0][0]+=ss[n].sn;break;
? ? ? ? ? ? ///當(dāng)銷售代碼為2的時(shí)候,累加2號(hào)銷售員編號(hào)為1的產(chǎn)品的銷售額
? ? ? ? ? ? case 2:s[1][0]+=ss[n].sn;break;
? ? ? ? ? ? ///當(dāng)銷售代碼為3的時(shí)候,累加3號(hào)銷售員編號(hào)為1的產(chǎn)品的銷售額
? ? ? ? ? ? case 3:s[2][0]+=ss[n].sn;break;
? ? ? ? ? ? ///當(dāng)銷售代碼為4的時(shí)候,累加4號(hào)銷售員編號(hào)為1的產(chǎn)品的銷售額
? ? ? ? ? ? case 4:s[3][0]+=ss[n].sn;break;
? ? ? ? }
? ? ? ? break;
? ? ? ? ///以下代碼同理可得
? ? ? ? case 2:
? ? ? ? switch(ss[n].sid)
? ? ? ? {
? ? ? ? ? ? case 1:s[0][1]+=ss[n].sn;break;
? ? ? ? ? ? case 2:s[1][1]+=ss[n].sn;break;
? ? ? ? ? ? case 3:s[2][1]+=ss[n].sn;break;
? ? ? ? ? ? case 4:s[3][1]+=ss[n].sn;break;
? ? ? ? }
? ? ? ? break;
?
? ? ? ? case 3:
? ? ? ? switch(ss[n].sid)
? ? ? ? {
? ? ? ? ? ? case 1:s[0][2]+=ss[n].sn;break;
? ? ? ? ? ? case 2:s[1][2]+=ss[n].sn;break;
? ? ? ? ? ? case 3:s[2][2]+=ss[n].sn;break;
? ? ? ? ? ? case 4:s[3][2]+=ss[n].sn;break;
? ? ? ? }
? ? ? ? break;
?
? ? ? ? case 4:
? ? ? ? switch(ss[n].sid)
? ? ? ? {
? ? ? ? ? ? case 1:s[0][3]+=ss[n].sn;break;
? ? ? ? ? ? case 2:s[1][3]+=ss[n].sn;break;
? ? ? ? ? ? case 3:s[2][3]+=ss[n].sn;break;
? ? ? ? ? ? case 4:s[3][3]+=ss[n].sn;break;
? ? ? ? }
? ? ? ? break;
?
? ? ? ? case 5:
? ? ? ? switch(ss[n].sid)
? ? ? ? {
? ? ? ? ? ? case 1:s[0][4]+=ss[n].sn;break;
? ? ? ? ? ? case 2:s[1][4]+=ss[n].sn;break;
? ? ? ? ? ? case 3:s[2][4]+=ss[n].sn;break;
? ? ? ? ? ? case 4:s[3][4]+=ss[n].sn;break;
? ? ? ? };
? ? ? ? break;
? ? }
? ? n++;
? ? choice();
}
?
/**刪除便條信息流程:新建一個(gè)臨時(shí)文件,將不被刪除的便條信息存到臨時(shí)文件里,
然后刪除原文件,再將臨時(shí)文件改名為原文件的文件名**/
void deleteing()
{
? ? printf("請(qǐng)輸入您要?jiǎng)h除的便條的信息:銷售代碼,產(chǎn)品代碼,銷售額\n");
? ? int a,b,c;///存用戶需要?jiǎng)h除的便條的信息
? ? scanf("%d %d %d",&a,&b,&c);
? ? printf("請(qǐng)稍等,您選擇的便條正在刪除~~~\n");
? ? FILE *fin,*ftp;
? ? int x,y,z;
? ? fin=fopen("d:\\list.txt","r");///讀打開(kāi)原文件list.txt
? ? ftp=fopen("d:\\tmp.txt","w");///寫(xiě)打開(kāi)臨時(shí)文件tmp.txt
? ? if(fin==NULL || ftp==NULL){
? ? ? ? printf("文件打開(kāi)失敗!\n");
? ? ? ? exit(0);
? ? }
? ? int m=0;///該變量是控制寫(xiě)入文本是首行不自動(dòng)換行
? ? for(int i=0;!feof(fin);i++)
? ? {
? ? ? ? fscanf(fin,"%d %d %d\n",&x,&y,&z);///從原文件讀取到的一行數(shù)據(jù)放到x,y,z三個(gè)變量中
? ? ? ? if(x==a&&y==b&&z==c)///所有的數(shù)據(jù)相等,說(shuō)明是要?jiǎng)h除的便條,則不寫(xiě)入臨時(shí)文件
? ? ? ? ? ? continue;
? ? ? ? else///將不是要?jiǎng)h除的其他便條信息寫(xiě)入臨時(shí)文件
? ? ? ? {
? ? ? ? ? ? if(m==0)
? ? ? ? ? ? {
? ? ? ? ? ? ? ? fprintf(ftp,"%d\t%d\t%d",x,y,z);///不是則將這一行寫(xiě)入臨時(shí)文件tmp.txt
? ? ? ? ? ? ? ? m++;
? ? ? ? ? ? }
? ? ? ? ? ? else
? ? ? ? ? ? ? ? fprintf(ftp,"\n%d\t%d\t%d",x,y,z);///不是則將這一行寫(xiě)入臨時(shí)文件tmp.txt
? ? ? ? }
? ? }
? ? fclose(fin);
? ? fclose(ftp);
? ? system("DEL/f d:\\list.txt");///刪除原文件,如果刪除錯(cuò)誤,會(huì)報(bào)原因
? ? ///unlink("d:\\list.txt");///刪除原文件
? ? rename("d:\\tmp.txt","d:\\list.txt");///將臨時(shí)文件名改為原文件名
? ? printf("您選擇的便條已經(jīng)刪除,請(qǐng)打開(kāi)文件查看!\n");
? ? clearing();
? ? readdata();
? ? foreach();
? ? choice();
}
?
///清空之前所統(tǒng)計(jì)的原文件里的銷售員和銷售產(chǎn)品所對(duì)應(yīng)的銷售額
void clearing()
{
? ? for(int i=0;i<4;i++)
? ? {
? ? ? ? for(int j=0;j<5;j++)
? ? ? ? ? ? s[i][j]=0;
? ? }
}
?
/**更新便條信息流程:新建一個(gè)臨時(shí)文件,將原文件里的東西復(fù)制到臨時(shí)文件中,在復(fù)制的過(guò)程中,
需要修改的東西修改之后再放入臨時(shí)文件,然后刪除原文件,將臨時(shí)文件改名為原文件的名字**/
void update()
{
? ? printf("請(qǐng)輸入您要修改的便條的信息:銷售代碼,產(chǎn)品代碼,銷售額\n");
? ? int a,b,c,d,e,x,y,z;
? ? scanf("%d %d %d",&a,&b,&c);
? ? printf("請(qǐng)問(wèn)您要修改該便條中那一項(xiàng)信息:\n(1)銷售代碼\n(2)產(chǎn)品代碼\n(3)銷售額\n");
? ? scanf("%d",&d);
? ? printf("請(qǐng)問(wèn)您要將該項(xiàng)信息修改成什么(請(qǐng)輸入數(shù)字):\n");
? ? scanf("%d",&e);
? ? printf("您選擇的便條正在修改中~~~~~\n");
? ? FILE *fin=fopen("d:\\list.txt","r");
? ? FILE *ftp=fopen("d:\\tmp.txt","w"); ?///是充當(dāng)臨時(shí)文件作用
? ? if(!fin)
? ? {
? ? ? ? printf("不能打開(kāi)list.txt文件\n");
? ? ? ? exit(1);
? ? }
? ? if(!ftp)
? ? {
? ? ? ? printf("不能打開(kāi)tmp.txt文件\n");
? ? ? ? exit(1);
? ? }
? ? int m=0;///該變量是控制寫(xiě)入文本時(shí)首行不自動(dòng)換行
? ? ///開(kāi)始復(fù)制
? ? switch(d)///根據(jù)選項(xiàng)修改(1)銷售代碼 (2)產(chǎn)品代碼 (3)銷售額
? ? {
? ? ? ? case 1:///(1)銷售代碼
? ? ? ? {
? ? ? ? ? ? ? ?for(int i=0;!feof(fin);i++)
? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? fscanf(fin,"%d %d %d\n",&x,&y,&z);
? ? ? ? ? ? ? ? ? ? if(x==a&&y==b&&z==c)///檢驗(yàn)是要修改的行嗎
? ? ? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? ? ? x=e;
? ? ? ? ? ? ? ? ? ? ? ? if(m==0)
? ? ? ? ? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? ? ? ? ? fprintf(ftp,"%d\t%d\t%d",x,y,z);///將修改過(guò)的數(shù)據(jù)寫(xiě)入臨時(shí)文件
? ? ? ? ? ? ? ? ? ? ? ? ? ? m++;
? ? ? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? ? ? ? ? else
? ? ? ? ? ? ? ? ? ? ? ? ? ? fprintf(ftp,"\n%d\t%d\t%d",x,y,z);///將修改過(guò)的數(shù)據(jù)寫(xiě)入臨時(shí)文件
? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? ? ? else
? ? ? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? ? ? if(m==0)
? ? ? ? ? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? ? ? ? ? fprintf(ftp,"%d\t%d\t%d",x,y,z);///將原本的數(shù)據(jù)寫(xiě)入臨時(shí)文件
? ? ? ? ? ? ? ? ? ? ? ? ? ? m++;
? ? ? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? ? ? ? ? else
? ? ? ? ? ? ? ? ? ? ? ? ? ? fprintf(ftp,"\n%d\t%d\t%d",x,y,z);///將原本過(guò)的數(shù)據(jù)寫(xiě)入臨時(shí)文件
? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? }
? ? ? ? ? ? }
? ? ? ? ? ? break;
?
? ? ? ? ///以下代碼同理可得
? ? ? ? case 2:
? ? ? ? {
? ? ? ? ? ? for(int i=0;!feof(fin);i++)
? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? fscanf(fin,"%d %d %d\n",&x,&y,&z);
? ? ? ? ? ? ? ? ? ? if(x==a&&y==b&&z==c)///檢驗(yàn)是要修改的行嗎
? ? ? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? ? ? y=e;
? ? ? ? ? ? ? ? ? ? ? ? if(m==0)
? ? ? ? ? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? ? ? ? ? fprintf(ftp,"%d\t%d\t%d",x,y,z);///將修改過(guò)的數(shù)據(jù)寫(xiě)入臨時(shí)文件
? ? ? ? ? ? ? ? ? ? ? ? ? ? m++;
? ? ? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? ? ? ? ? else
? ? ? ? ? ? ? ? ? ? ? ? ? ? fprintf(ftp,"\n%d\t%d\t%d",x,y,z);///將修改過(guò)的數(shù)據(jù)寫(xiě)入臨時(shí)文件
? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? ? ? else
? ? ? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? ? ? if(m==0)
? ? ? ? ? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? ? ? ? ? fprintf(ftp,"%d\t%d\t%d",x,y,z);///將原本的數(shù)據(jù)寫(xiě)入臨時(shí)文件
? ? ? ? ? ? ? ? ? ? ? ? ? ? m++;
? ? ? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? ? ? ? ? else
? ? ? ? ? ? ? ? ? ? ? ? ? ? fprintf(ftp,"\n%d\t%d\t%d",x,y,z);///將原本過(guò)的數(shù)據(jù)寫(xiě)入臨時(shí)文件
? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? }
? ? ? ? }
? ? ? ? break;
?
? ? ? ? case 3:
? ? ? ? {
? ? ? ? ? ? for(int i=0;!feof(fin);i++)
? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? fscanf(fin,"%d %d %d\n",&x,&y,&z);
? ? ? ? ? ? ? ? ? ? if(x==a&&y==b&&z==c)///檢驗(yàn)是要修改的行嗎
? ? ? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? ? ? z=e;
? ? ? ? ? ? ? ? ? ? ? ? if(m==0)
? ? ? ? ? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? ? ? ? ? fprintf(ftp,"%d\t%d\t%d",x,y,z);///將修改過(guò)的數(shù)據(jù)寫(xiě)入臨時(shí)文件
? ? ? ? ? ? ? ? ? ? ? ? ? ? m++;
? ? ? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? ? ? ? ? else
? ? ? ? ? ? ? ? ? ? ? ? ? ? fprintf(ftp,"\n%d\t%d\t%d",x,y,z);///將修改過(guò)的數(shù)據(jù)寫(xiě)入臨時(shí)文件
? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? ? ? else
? ? ? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? ? ? if(m==0)
? ? ? ? ? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? ? ? ? ? fprintf(ftp,"%d\t%d\t%d",x,y,z);///將原本的數(shù)據(jù)寫(xiě)入臨時(shí)文件
? ? ? ? ? ? ? ? ? ? ? ? ? ? m++;
? ? ? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? ? ? ? ? else
? ? ? ? ? ? ? ? ? ? ? ? ? ? fprintf(ftp,"\n%d\t%d\t%d",x,y,z);///將原本過(guò)的數(shù)據(jù)寫(xiě)入臨時(shí)文件
? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? }
? ? ? ? }
? ? ? ? break;
? ? }
? ? fclose(fin);
? ? fclose(ftp);
? ? ?printf("您選擇的便條已經(jīng)修改完畢,請(qǐng)打開(kāi)文件查看!\n");
? ? system("DEL/f d:\\list.txt");///刪除原文件,刪除錯(cuò)誤的時(shí)候會(huì)報(bào)提示信息
? ? ///unlink("d:\\list.txt");///刪除原文件
? ? rename("d:\\tmp.txt","d:\\list.txt");///改名
? ? clearing();
? ? readdata();
? ? foreach();
? ? choice();
}
?
int main()
{
? ? readdata();///讀取文件數(shù)據(jù)
? ? foreach();///初始化數(shù)組
? ? menu();///顯示主菜單
}

首先在D盤(pán)下新建一個(gè)文本文檔 ,名為 list.txt,在文本文檔里存入的數(shù)據(jù)如下(數(shù)據(jù)僅供參考):

然后我們開(kāi)始運(yùn)行該程序:

對(duì)于上圖第五項(xiàng)添加便條信息的操作,我們 來(lái)看一看文本里的內(nèi)容(最后一行就是新添的數(shù)據(jù))

在我們執(zhí)行第六個(gè)選項(xiàng)的時(shí)候,首先需要在D盤(pán)下新建一個(gè)文本文檔  tmp.txt,至于為啥,詳情請(qǐng)參考代碼,代碼里面有詳細(xì)的解釋

我們?cè)偃ゲ榭碊盤(pán)里的文件,這時(shí)tmp.txt不見(jiàn)了,只剩下  list.txt,里面的內(nèi)容如下(為什么會(huì)醬紫呢?快去查看代碼吧):

在我們執(zhí)行第七個(gè)選項(xiàng)的時(shí)候,需要在D盤(pán)下重新新建一個(gè)文本文檔  tmp.txt,至于為啥,詳情請(qǐng)參考代碼,代碼里面有詳細(xì)的解釋

我們?cè)偃ゲ榭碊盤(pán)里的文件,這時(shí)tmp.txt不見(jiàn)了,只剩下  list.txt,里面的內(nèi)容如下(為什么會(huì)醬紫呢?快去查看代碼吧):

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • C++中l(wèi)ist容器的實(shí)現(xiàn)

    C++中l(wèi)ist容器的實(shí)現(xiàn)

    本文主要介紹了C++中l(wèi)ist容器的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-03-03
  • C語(yǔ)言實(shí)現(xiàn)查看進(jìn)程是否存在的方法示例

    C語(yǔ)言實(shí)現(xiàn)查看進(jìn)程是否存在的方法示例

    這篇文章主要介紹了C語(yǔ)言實(shí)現(xiàn)查看進(jìn)程是否存在的方法,涉及C語(yǔ)言針對(duì)進(jìn)程操作的相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2017-07-07
  • C語(yǔ)言中指針和數(shù)組試題詳解分析

    C語(yǔ)言中指針和數(shù)組試題詳解分析

    變量存放在內(nèi)存中,內(nèi)存其實(shí)就是一組有序字節(jié)組成的數(shù)組,每個(gè)字節(jié)有唯一的內(nèi)存地址。CPU 通過(guò)內(nèi)存尋址對(duì)存儲(chǔ)在內(nèi)存中的某個(gè)指定數(shù)據(jù)對(duì)象的地址進(jìn)行定位。數(shù)據(jù)對(duì)象是指存儲(chǔ)在內(nèi)存中的一個(gè)指定數(shù)據(jù)類型的數(shù)值或字符串,它們都有一個(gè)自己的地址,指針是保存這個(gè)地址的變量
    2021-10-10
  • C++中隊(duì)列queue的用法實(shí)例詳解

    C++中隊(duì)列queue的用法實(shí)例詳解

    隊(duì)列先進(jìn)先出,即只能在容器的末尾添加新元素,只能從頭部移除元素,下面這篇文章主要給大家介紹了關(guān)于C++中隊(duì)列queue用法的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-04-04
  • 使用QGraphicsView實(shí)現(xiàn)氣泡聊天窗口+排雷功能

    使用QGraphicsView實(shí)現(xiàn)氣泡聊天窗口+排雷功能

    這篇文章主要介紹了使用QGraphicsView實(shí)現(xiàn)氣泡聊天窗口+排雷,重點(diǎn)給大家介紹使用QWebEngineView控件內(nèi)嵌html+CSS的實(shí)現(xiàn)方式,需要的朋友可以參考下
    2022-04-04
  • C++操作.json文件的超詳細(xì)新手教程

    C++操作.json文件的超詳細(xì)新手教程

    最近因?yàn)轫?xiàng)目原因需要解析JSON格式數(shù)據(jù),所以這篇文章主要給大家介紹了關(guān)于C++操作.json文件的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-08-08
  • C++ 虛函數(shù)表圖文解析

    C++ 虛函數(shù)表圖文解析

    最近學(xué)了設(shè)計(jì)模式中的簡(jiǎn)單工廠模式,對(duì)多態(tài)有了具體的認(rèn)識(shí)。于是補(bǔ)了補(bǔ)多態(tài)、虛函數(shù)、虛函數(shù)表相關(guān)的知識(shí),本文介紹了C++ 虛函數(shù)表,感興趣的了解一下
    2021-05-05
  • 一文帶你掌握C語(yǔ)言中的文件操作

    一文帶你掌握C語(yǔ)言中的文件操作

    文件通常是駐留在外部介質(zhì)(如磁盤(pán)等)上的,在使用時(shí)才調(diào)入內(nèi)存中來(lái),本文主要來(lái)和大家介紹一下C語(yǔ)言中的文件操作,有需要的可以了解下
    2024-02-02
  • C++實(shí)現(xiàn)LeetCode(86.劃分鏈表)

    C++實(shí)現(xiàn)LeetCode(86.劃分鏈表)

    這篇文章主要介紹了C++實(shí)現(xiàn)LeetCode(86.劃分鏈表),本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-07-07
  • VC讀配置文件實(shí)例

    VC讀配置文件實(shí)例

    這篇文章主要介紹了VC讀配置文件的方法,實(shí)例講述了VC針對(duì)文件操作的技巧,需要的朋友可以參考下
    2014-10-10

最新評(píng)論