




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、.課 程 設 計 報 告 課程名稱:面向對象程序設計C+ 設計題目: 銷售管理系統 專 業: 計算機科學與技術 姓 名: 學 號: 指導教師: 李 曉 虹 2016 年 1 月 6 日目錄1.系統需求分析32.總體設計32.1設計題目32.2設計要求33.詳細設計33.1銷售管理系統設計34.系統調試44.1 頭文件Sale.h44.2 Sale.cpp文件64.3 main.cpp文件165.結果分析176.實驗總結201.系統需求分析 做這次設計是為了進一步鞏固C+程序設計所學的知識,特別加強類,對象,指針,引用,文件數據類型等的應用,熟悉從面向過程逐漸轉變成面向對象程序設計的方法,培養面
2、向對象程序設計的思想,加深對高級語言基本語言要素和控制結構的理解,鍛煉程序設計的能力,以用C+ 語言解決實際問題的能力,為后續課程的學習打好基礎。2.總體設計2.1設計題目我的課程設計題目為銷售管理系統。2.2設計要求要求為輸入銷售信息、存儲銷售信息、刪除銷售信息、添加銷售信息、查找銷售信息、將銷售信息寫入文件、從文件讀出銷售信息。假設有5個銷售員,銷售10種產品,每個銷售員將每天銷售的產品都用一條便條錄入:銷售員代號、所賣產品代號、這種產品當天銷售額。3.詳細設計3.1銷售管理系統設計功能模塊文件輸入輸出記錄維護退出系統瀏覽文件輸入文件輸出查找保存刪除插入功能模塊文件輸入輸出記錄維護退出系統
3、瀏覽文件輸入文件輸出查找保存刪除插入表3.14.系統調試 下面是以文件為單位給出相應的源程序代碼。4.1 頭文件Sale.h#if ! defined(SALE_H)#define SALE_H/預處理#include<fstream.h>#include<stdlib.h>#include<stdio.h>#include<string.h>#include<iostream.h>/*/* 銷售類 */*class Saleprivate:int SalerNum; /銷售員代號int ProductNum; /銷售產品代碼floa
4、t SaleNum; /銷售額public:Sale *Next;Sale *Head;Sale();Sale(const Sale &s);void InputData(Sale *s);/輸入便條void Add();/是否繼續錄入銷售信息void DisplayInfo();/顯示所有銷售信息void Delete(Sale *head,int num);void ReadFile();/從文件中讀數據 void Find();/用銷售員的代號查找銷售記錄void WriteFile();/將數據寫入文件Sale();friend void Hand_menu();#endif/
5、此外,還可以用鏈表結點的方式定義銷售類。如下:/*struct Nodeint SalerNum; /銷售員代號int ProductNum; /銷售產品代碼float SaleNum; /銷售額Node *next;/定義一個結點class Saleprivate:Node *head;public:Sale();Sale(const Sale &s);void InputData(Sale *s);void Add();void DisplayInfo();void Delete(Sale *head,int num);void ReadFile(); void Find();vo
6、id WriteFile();Sale();friend void Hand_menu();*/4.2 Sale.cpp文件#include "Sale.h"/*/* 菜單顯示函數 */* 函數原型:void Hand_Menu() */* 功 能:處理選擇的菜單命令 */* 工作方式:根據命令,顯示相應操作 */*void Hand_Menu()cout<<endl;cout<<("t*歡迎查詢銷售管理系統*n");cout<<("t*1 添加銷售記錄 *n");cout<<(&quo
7、t;t*2 從文件讀數據 *n");cout<<("t*3 把數據寫入文件 *n");cout<<("t*4 查找銷售記錄 *n"); cout<<("t*5 顯示所有銷售記錄 *n");cout<<("t*6 刪除銷售記錄 *n");cout<<("t*7 退出系統 *n");cout<<("t*n");Sale:Sale()SalerNum=0; ProductNum=0; SaleNum=
8、0;Next=NULL;Head=NULL;/構造函數Sale:Sale(const Sale &s) SalerNum=s.SalerNum; ProductNum=s.ProductNum; SaleNum=s.SaleNum; Next=s.Next; Head=s.Head;/拷貝構造函數Sale:Sale()if(Next != NULL)delete Next;if(Head !=NULL)delete Head;/析構函數/*/* 輸入銷售信息InputData函數 */* 函數原型:void InputData(Sale *s) */* 功 能:輸入便條 */*void
9、 Sale:InputData(Sale *s)cout<<"請輸入銷售員的代號:" cin>>s->SalerNum;cout<<endl;cout<<"請輸入銷售產品的代號:" cin>>s->ProductNum; cout<<endl; cout<<"請輸入銷售員的銷售額:" cin>>s->SaleNum; cout<<endl;/*/* 添加銷售記錄 */* 函數原型:void Add() */*
10、功 能:確定是否繼續錄入銷售記錄 */*void Sale:Add()Sale *p1, *p2;char cChoose;/輸入y/n進行下一步操作p1=new Sale;/申請內存p1->Next=NULL;/置為空if(!Head)Head = p1;else/找到最后的鏈接列表p2 = Head;while(p2->Next) p2=p2->Next; p2->Next=p1; /添加一個記錄到鏈表的末尾while(1)InputData(p1);cout<<"還想繼續添加數據?(y/n)"cin>>cChoose;/
11、輸入的y/n進行操作if('n'=cChoose|'N'=cChoose)/不進行操作p1->Next=NULL;/將p1的下一個節點置為空Hand_Menu();/返回主界面return;else/輸入y繼續添加信息的情況p2=p1;p1=new Sale;/分配一個內存空間給p1p2->Next=p1;/將p1指向p2的下一個節點/*/* 輸出銷售信息DisplayInfo函數 */* 函數原型:void DisplayInfo() */* 功 能:顯示所有的銷售信息 */*void Sale:DisplayInfo()Sale *p;if(!H
12、ead)/頭指針為空,沒有任何數據cout<<"沒有任何銷售信息n"system("pause");/暫停,使用戶能看到上一句話的顯示Hand_Menu();/返回到主界面return;else/頭結點不為空的情況cout<<"tt顯示所有銷售信息n"cout<<"SalerNumttProductNumttSaleNumn"p=Head;while(p)/循環,直到結點不為空cout<<p->SalerNum<<"ttt"/將銷
13、售員的代號錄入到SalerNumcout<<p->ProductNum<<"ttt"/將銷售產品代碼錄入到ProductNumcout<<p->SaleNum<<"ttt"/將銷售額錄入到SaleNump=p->Next; /指向下一個節點cout<<endl;/*/* 刪除銷售信息Delete函數 */* 函數原型:void Delete(Sale *head,int num) */* 功 能:刪除指定的銷售記錄 */*void Sale:Delete(Sale *head,
14、int num)Sale *p,*p1;p=head;if(head=NULL)/判斷頭結點是否為空,為空就沒有課刪除的銷售記錄cout<<"*友情提示,沒有可刪除的銷售記錄!* nn"while(p->SalerNum!=num&&p->Next!=NULL)/循環。輸入的銷售員代號是否和已輸入的銷售員代號相匹配而且p的下一個節點不為空p1=p;p=p->Next;if(p->SalerNum=num)/當用戶輸入銷售員的代號與已存在的銷售員代號相匹配if(p=head)head=p->Next;/將p的下一個節點
15、與head鏈接elsep1->Next=p->Next;/將p的下一個節點與p1的下一個節點相鏈接cout<<"*被刪除銷售員的銷售信息*nn"cout<<"-"cout<<"銷售員代號tt銷售產品代碼tt銷售額nn"cout<<p->SalerNum<<"ttt"cout<<p->ProductNum<<"ttt"cout<<p->SaleNum<<&quo
16、t;ttt"cout<<endl;cout<<"-"delete p;/釋放p節點,p節點里面的數據被刪除elsecout<<"*對不起,找不到該銷售員的銷售記錄!*nn"/*/* 從文件中讀取銷售信息 */* 函數原型:void Delete(Sale *head,int num) */* 功 能:從文件中讀取數據 */*void Sale:ReadFile()Sale *p=NULL;Sale *p1,*p2;char filename50,ch;FILE *fr;/文件指針cout<<&qu
17、ot;請輸入要讀入的文件名:"cin>>filename;p=new Sale;/分配一個內存空間Head=p1=p;/讓p1和head都指向pch=fgetc(fr); while(ch != EOF)/讀取數據fscanf(fr,"%dtt",&p->SalerNum);/讀取銷售員代號到SalerNumfscanf(fr,"%dtt",&p->ProductNum);/讀取銷售產品代號到ProductNumfscanf(fr,"%ftt",&p->SaleNum);
18、/讀取銷售額到SaleNump=new Sale;/再為p分配一個內存空間p1->Next=p;p2=p1;p1=p;p->Next=NULL;p2->Next=NULL;delete p;/釋放p節點fclose(fr);/關閉文件/*/* 查找指定的銷售記錄 */* 函數原型:void Find() */* 功 能:用銷售員的代號查找該銷售記錄 */*void Sale:Find()int SalerNum;Sale *p; cout<<"請輸入要查找的銷售員的代號:"cin>>SalerNum;cout<<endl
19、;p=Head;while(p)/循環if(p->SalerNum=SalerNum)/輸入的數字是在銷售員的代號范圍內,執行以下程序cout<<"此銷售員銷售產品代號為:"<<p->ProductNum<<endl;cout<<endl;cout<<"此銷售員銷售額為:"<<p->SaleNum<<endl;cout<<endl;cout<<"恭喜您,查找成功!n"cout<<endl;retur
20、n; p=p->Next;/p指向p的下一個節點 cout<<"查找失敗!n"/輸入的數字不在銷售員代號范圍內,退出程序 /*/* 將銷售信息存入到文件 */* 函數原型:void WriteFile() */* 功 能:將數據寫入文件 */*void Sale:WriteFile()Sale *p;char filename50;FILE *fw;/文件指針if(Head)/判斷頭結點是否為空cout<<"沒有數據被寫入文件!n"return;cout<<"請輸入文件的名稱:" cin>
21、;>filename;if(fw=fopen(filename,"wt")=NULL)/判斷文件名是否有效cout<<"無法創建"<<filename<<"文件n"Hand_Menu();/返回主界面return;p=Head;fprintf(fw,"n");fprintf(fw,"銷售員代號tt銷售產品代號tt銷售額ttn");while(p)fprintf(fw,"%dttt",p->SalerNum);/將數據寫入SalerNum中fprintf(fw,"%dttt",p->ProductNum);/將數據寫入ProductNum中fprintf(fw,"%fttt",p->SaleNum);/將數據寫入SaleNum中fprintf(fw,"n");p=p->Next;/將p指向下一個節點cout<<"數據寫入文件成功!n"cout<<endl;fclose(fw);/關閉文件4.3 main.cpp文件#include"Sale.h"i
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年潛水及水下救撈裝備項目建議書
- 2025版清晰易懂的房屋租賃合同
- 2025年抗艾滋病用藥合作協議書
- 2025年大直徑硅單晶及新型半導體材料項目合作計劃書
- 2025年人工智能AI芯片項目建議書
- 線路樁施工方案
- 工序承包條款解讀3篇
- 度假村安全監管合同3篇
- 工期延誤導致的合同違約處理3篇
- 會計賬目清晰承諾書加強財務監督3篇
- 【MOOC】國際交流英文演講與辯論-湖南大學 中國大學慕課MOOC答案
- 【MOOC】旅游學概論-中國地質大學(武漢) 中國大學慕課MOOC答案
- 【MOOC】地學景觀探秘·審美·文化-重慶大學 中國大學慕課MOOC答案
- 【MOOC】地下鐵道-中南大學 中國大學慕課MOOC答案
- 病變糖尿病視網膜
- 正規完整版授課合同標準版可打印
- 工程款結算合同書
- 中央空調系統維保服務報價清單
- 數字化轉型對企業財務績效影響研究
- 公路養護施工組織設計 公路設施、交安設施、公路綠化日常維護管理施工方案
- 軟瓷產品原材料供應與需求分析
評論
0/150
提交評論