簡易客房管理系統課程設計報告
① 急需 一個簡單的商品管理系統課程設計報告
#include "stdio.h"
#include "string.h"
#include "stdlib.h"
#define PR printf
#define SC scanf
struct goods
{ long int num;
char name[20];
char sort[20];
long int count;
long int price;
}goods[200];
int k,n,i;
void main ()
{
void input();
void sequence();
void purchase();
void sell();
void edit();
void correct();
void search();
void scan();
void reserve();
void exit();
PR("\n ******************************************************************\n *\t\t\t\t\t\t\t\t *\n");
PR(" * ▏▎▍ ▌ ▋ ▊ █ ▇ ▆ ▅ ▄ ▃ ▂ ▁ *");
PR("\n *\t\t\t\t\t\t\t\t *\n * Welcome\t\t\t\t\t\t *\n *\t\t\t\t\t\t\t\t *\n");
PR(" *\t\t to go into ....\t\t\t\t * ");
PR("\n *\t\t\t\t\t\t\t\t *\n");
PR(" * -the Goods Information Manageaent System- *\n *\t\t\t\t\t\t\t\t *\n ");
PR(" * ▁ ▂ ▃ ▄ ▅ ▆ ▇ █ ▉ ▊ ▋ ▌ ▍▏ *\n");
PR(" *\t\t\t\t\t\t\t\t *\n ******************************************************************");
PR("\n\n\tPlease press any key to continue:");
getch();
system("cls");
PR("\n\n ---$-----$--------$----------$-----------$---------$-------$------$-----$---");
PR("\n 系統使用--溫馨提示:\n\n →貨品編號、數量、單價:採用十進制數,規定長度最長為8位;\n\n →貨品名稱為26位字母組成字元串,長度最長為20位;\n\n\t →貨品類別:以26個小寫字母分別代表著26種貨品類別;\n\n\t →該貨品需要進貨的庫存量:count<50;\n");
PR(" ---$-----$--------$----------$-----------$---------$-------$------$-----$---");
PR(" \nplease press any key to continue");
getch();
system("cls"); /*清屏*/
lp: for(i=0;i<1;i++)
PR("\n\n——★—☆——★—☆——☆—★——☆—★——☆—☆——★—\n");
PR("\n\t\t\t 貨品信息管理系統\t\n\n");
PR("\t 1 →輸入貨品信息\n\n");
PR("\t 2 →排序貨品信息\n\n");
PR("\t 3 →輸入進貨信息\t\t6 →修改貨品信息\n\n");
PR("\t 4 →輸入銷售信息\t\t7 →查詢貨品信息\n\n");
PR("\t 5 →增加/刪除貨品\t\t8 →瀏覽貨品信息\n\n");
PR("\t\t\t\t\t9 →保存貨品信息\n\n");
PR(" \t\t ——☆—★——☆—★——☆—☆——★—☆——★—☆——★—");/*菜單選擇界面*/
PR("\n\n");
PR("\t請選擇您所要的操作(或選擇(0)退出):");
SC("%d",&k);
system("cls");
switch(k) /*用switch語句實現功能選擇*/
{
case 1: input();break;
case 2: sequence();break;
case 3: purchase();break;
case 4: sell();break;
case 5: edit();break;
case 6: correct();break;
case 7: search();break;
case 8: scan();break;
case 9: reserve();break;
case 0: PR("\n\n\t / / / / / ^_^ \\ \\ \\ \\ \\ \n\n\t…………謝謝使用,歡迎再來,再見O(∩_∩)O…………");exit(0); /*退出系統*/
default: puts("輸入錯誤,請按任意健返回主菜單:\n"); break;
}
system("cls"); /*清屏*/
goto lp; /*返回主界面*/
}
void input() /*功能1:輸入貨品信息*/
{
PR("\n 請輸入需要建立新庫存的貨品種類數量:");
SC("%d",&n);
system("cls");
PR("\n …………………………………………………………………………………………………\n");
for(i=0;i<n;i++) /*用循環實現輸入n個貨品*/
{
PR("\n\t*請輸入貨品的編號:");
SC("%ld",&goods[i].num);
PR("\n\t 請輸入貨品的名稱:");
SC("%s",goods[i].name);
PR("\n\t 請輸入貨品的種類:");
SC("%s",goods[i].sort);
PR("\n\t 請輸入貨品的數量:");
SC("%d",&goods[i].count);
PR("\n\t 請輸入貨品的單價:");
SC("%d",&goods[i].price);
PR("\n …………………………………………………………………………………………………\n");
}
PR("\tPlease press any key to continue:");
getch();
return; /*返回主界面*/
}
void sequence() /*功能2:排序貨品信息*/
{
long temp;
char p1[30],p2[30];
for(k=0;k<n-1;k++) /*(1): 按編號排序*/
for(i=0;i<n-k-1;i++) /*用起泡法排序*/
if(goods[i].num>goods[i+1].num) /*按編號由小到大排序*/
{
temp=goods[i].num;
goods[i].num=goods[i+1].num;
goods[i+1].num=temp;
strcpy(p1,goods[i].name);
strcpy(goods[i].name,goods[i+1].name);
strcpy(goods[i+1].name,p1);
strcpy(p2,goods[i].sort);
strcpy(goods[i].sort,goods[i+1].sort);
strcpy(goods[i+1].sort,p2);
}
PR("--------------------------------------------------------------------------------");
PR("\n\t\t按貨品編號排序後的貨品信息\n\n");
PR("\t貨品編號 貨品名稱 貨品類別 貨品數量 貨品單價\n"); /*輸出排序後貨品信息*/
for(i=0;i<n;i++)
{
PR("\t %5ld %5s %5s %5ld %5ld\n",goods[i].num,goods[i].name,goods[i].sort,goods[i].count,goods[i].price);
}
for(k=0;k<n-1;k++) /*(2): 按貨品名稱排序*/
for(i=0;i<n-k-1;i++)
if(strcmp(goods[i].name,goods[i+1].name)>0)
{
strcpy(p1,goods[i].name);
strcpy(goods[i].name,goods[i+1].name);
strcpy(goods[i+1].name,p1);
temp=goods[i].num;
goods[i].num=goods[i+1].num;
goods[i+1].num=temp;
strcpy(p2,goods[i].sort);
strcpy(goods[i].sort,goods[i+1].sort);
strcpy(goods[i+1].sort,p2);
}
PR("--------------------------------------------------------------------------------");
PR("\n\t\t按貨品名稱排序後的貨品信息\n");
PR("\n\t貨品名稱 貨品編號 貨品類別 貨品數量 貨品單價\n"); /*輸出排序後貨品信息*/
for(i=0;i<n;i++)
{
PR("\t %5s %5ld %5s %5ld %5ld\n",goods[i].name,goods[i].num,goods[i].sort,goods[i].count,goods[i].price);
}
for(k=0;k<n-1;k++) /*(3): 按貨品類別排序*/
for(i=0;i<n-k-1;i++) /*用起泡法排序*/
if(strcmp(goods[i].sort,goods[i+1].sort)>0)
{
strcpy(p2,goods[i].sort);
strcpy(goods[i].sort,goods[i+1].sort);
strcpy(goods[i+1].sort,p2);
temp=goods[i].num;
goods[i].num=goods[i+1].num;
goods[i+1].num=temp;
strcpy(p1,goods[i].name);
strcpy(goods[i].name,goods[i+1].name);
strcpy(goods[i+1].name,p1);
}
PR("--------------------------------------------------------------------------------");
PR("\n\t\t按貨品類別排序後的貨品信息\n\n");
PR("\t貨品類別 貨品編號 貨品名稱 貨品數量 貨品單價\n"); /*輸出排序後貨品信息*/
for(i=0;i<n;i++)
{
PR("\t %5s %5ld %5s %5ld %5ld\n",goods[i].sort,goods[i].num,goods[i].name,goods[i].count,goods[i].price);
}
PR("--------------------------------------------------------------------------------");
PR("please press any key to continue:");
getch();
return; /*返回主界面*/
}
void purchase() /*功能3:進貨貨品信息*/
{
long temp; /*定義臨時變數表示剛進貨的貨品編號*/
int j;
PR("\n\t\5請輸入剛進貨的貨品編號:");
SC("%ld",&temp);
PR("\n\t\5請輸入剛進貨的貨品數量:");
SC("%d",&j);
PR("\n\n\n\tpress any key to contiue:");
getch();
system("cls");
PR("\n\t輸出進貨後的貨品信息:");
for(i=0;i<n;i++) /*循環,尋找與進貨相同的貨品信息*/
if(temp==goods[i].num)
goods[i].count=goods[i].count+j; /*自動更改貨品數量*/
PR("\n\t貨品編號 貨品名 貨品類別 貨品數量 貨品價格");
for(i=0;i<n;i++) /*循環,輸出進貨後的貨品信息*/
{
PR("\n\t %4ld %4s %4s %ld %4ld",goods[i].num,goods[i].name,goods[i].sort,goods[i].count,goods[i].price);
}
PR("\n\n\t\tPress any key to enter menu:");
getch(); /*返回功能選擇界面*/
return;
}
void sell() /*功能4:銷售貨品信息*/
{
long temp; /*定義臨時變數temp表示剛銷售的貨品編號*/
int j;
PR("\n\t\5請輸入剛銷售的貨品編號:");
SC("%ld",&temp);
PR("\n\t\5請輸入剛銷售的貨品數量:");
SC("%d",&j);
for(i=0;i<n;i++) /*循環,找到剛銷售的貨品信息*/
{
if(temp==goods[i].num)
{
for(;j>goods[i].count;) /*如果銷售額大於庫存量,則出現錯誤提示*/
{
PR("\n\t售出數量大於貨品原有數量,出現錯誤,請重新輸入:");
SC("%d",&j);
}
goods[i].count=goods[i].count-j; /*完成自動更改貨品數量的功能*/
}
}
PR("\n\tpress any key to contiue:");
getch();
system("cls"); /*清屏*/
PR("\n\n *銷售後貨品信息:");
PR("\n\t貨品類別 貨品編號 貨品名稱 貨品數量 貨品單價\n");
for(i=0;i<n;i++) /*循環,輸出銷售後貨品信息*/
{
PR("\t %4s %4ld %4s %4ld %4ld\n",goods[i].sort,goods[i].num,goods[i].name,goods[i].count,goods[i].price);
}
PR("\n\tPress any key to enter menu:");
getch();
return; /*返回功能選擇界面*/
}
void edit() /*功能5:添加或刪除貨品信息*/
{
void add(); /*聲明子函數*/
void dele();
PR("\n\t請選擇:1.添加貨品信息; 2.刪除貨品信息;");
PR("\t*請輸入 1或2 繼續:");
SC("%d",&k);
switch(k) /*用switch語句實現功能選擇*/
{
case 1: add();break;
case 2: dele();break;
}
getch();
return; /*返回主菜單*/
}
void add() /*添加貨品信息*/
{ /*定義子函數*/
PR("\t*請輸入所添加貨品的貨品編號:");
SC("%ld",&goods[n].num);
PR("\n\t請輸入所添加貨品的名稱:");
SC("%s",goods[n].name);
PR("\n\t請輸入所添加貨品的類別:");
SC("%s",goods[n].sort);
PR("\n\t請輸入所添加貨品的數量:");
SC("%d",&goods[n].count);
PR("\n\t請輸入所添加貨品的價格:");
SC("%d",&goods[n].price);
n=n+1;
PR("\n");
}
void dele() /*刪除貨品信息*/
{ /*定義子函數*/
int temp; /*定義局部變數*/
int j;
for(i=0;i<n;i++)
{
PR("\n\t貨品編號 貨品名 貨品類別 貨品數量 貨品價格");
PR("\n\t %5ld %5s %5s %5ld %5ld",goods[i].num,goods[i].name,goods[i].sort,goods[i].count,goods[i].price);
PR("\n");
}
PR("\n");
PR("\n*請輸入要刪除的貨品編號:");
SC("%ld",&temp);
PR("\n\n");
for(i=0;i<n;i++)
{
if(temp==goods[i].num)
{
for(j=i;j<n;j++)
{
goods[j].num=goods[j+1].num;
strcpy(goods[j].name,goods[j+1].name);
strcpy(goods[j].sort,goods[j+1].sort);
goods[j].count=goods[j+1].count;
goods[j].price=goods[j+1].price;
}
n=n-1; /*貨品總庫存量減少*/
}
}
for(i=0;i<n;i++)
{
PR("\n\t貨品編號 貨品名 貨品類別 貨品數量 貨品價格"); /*輸出刪除後的貨品信息*/
PR("\n\t %5ld %5s %5s %5ld %5ld",goods[i].num,goods[i].name,goods[i].sort,goods[i].count,goods[i].price);
PR("\n");
}
PR("Please press any key to continue:");
getch();
return; /*返回主界面*/
}
void correct() /*功能6:修改貨品信息*/
{
long temp; /*定義局部變數*/
PR("\n\t請輸入要修改的貨品的編號:");
SC("%ld",&temp); /*輸入新的貨品信息*/
PR("\n");
for(i=0;i<n;i++) /*保存新的貨品信息*/
{
if(temp==goods[i].num)
{
PR("\t請輸入一個新的的貨品編號:");
SC("%ld",&goods[i].num);
PR("\n\t請輸入新的貨品的名稱:");
SC("%s",goods[i].name);
PR("\n\t請輸入新的貨品的類別:");
SC("%s",goods[i].sort);
PR("\n\t請輸入新的貨品的數量:");
SC("%d",&goods[i].count);
PR("\n\t請輸入新的貨品價格:");
SC("%d",&goods[i].price);
PR("\n");
}
}
for(i=0;i<n;i++)
{
PR("\n\t新的貨品名稱 貨品編號 貨品類別 貨品數量 貨品單價\n");
PR("\t %4s %4ld %4s %4ld %4ld",goods[i].name,goods[i].num,goods[i].sort,goods[i].count,goods[i].price);
PR("\n");
}
PR("Please press any key to continue:"); /*返回功能選擇界面*/
getch();
return; /*返回主菜單*/
}
void search() /*功能7:查詢貨品信息*/
{
int k; /*定義局部變數*/
long temp1;
char temp2[30],temp3[20];
PR("\n\t\5按貨品編號查詢,請按1\t\t\t\5按貨品名查詢,請按2\n\t\5按貨品類別查詢,請按3\t\t\t\5查需要進貨的貨品,請按4\n");
PR("\n\n\n\t\t\t請輸入數字確定查詢方式:");
SC("%d",&k);
PR("\n");
PR("Press any key to continue:");
getch();
system("cls");
switch(k) /*實現查詢方式的選擇*/
{
case 1:
{ PR("\n\n\n\n\n\t\t請輸入要查詢的貨品的編號:"); /*按貨品編號查詢*/
SC("%ld",&temp1);
system("cls"); /*清屏*/
for(i=0;i<n;i++)
{
if(temp1==goods[i].num)
{
PR("\n");
PR("\n\t貨品編號 貨品名 貨品類別 貨品數量 貨品價格");
PR("\n\t %5ld %5s %5s %5ld %5ld",goods[i].num,goods[i].name,goods[i].sort,goods[i].count,goods[i].price);
}
}
}break; /*跳出switch語句*/
case 2:
{ PR("\n\n\n\n\n\t\t請輸入要查詢的貨品名:"); /*按貨品名查詢數據*/
SC("%s",temp2);
system("cls");
for(i=0;i<n;i++)
{
if(strcmp(temp2,goods[i].name)==0)
{
PR("\n");
PR("\n\t貨品編號 貨品名 貨品類別 貨品數量 貨品價格");
PR("\n\t %5ld %5s %5s %5ld %5ld",goods[i].num,goods[i].name,goods[i].sort,goods[i].count,goods[i].price);
}
}
}break; /*跳出switch語句*/
case 3:
{ PR("\n\n\n\n\n\t\t請輸入要查詢的貨品類別:"); /*按貨品類別查詢數據*/
SC("%s",temp3);
system("cls");
for(i=0;i<n;i++)
{
if(strcmp(temp3,goods[i].sort)==0)
{
PR("\n");
PR("\n\t貨品編號 貨品名 貨品類別 貨品數量 貨品價格");
PR("\n\t %5ld %5s %5s %5ld %5ld",goods[i].num,goods[i].name,goods[i].sort,goods[i].count,goods[i].price);
}
}
}break; /*跳出switch語句*/
case 4:
{ int a=50;
for(i=0;i<n;i++) /*查詢需要進貨的貨品名*/
{
if(goods[i].count<a)
PR("\n\t\t\4需要進貨的貨品名:%s 現有庫存量:%ld\n",goods[i].name,goods[i].count);
}
}break; /*跳出switch語句*/
}
PR("\n\n\t\tPress any key to enter menu:");
getch();
return; /*返回主界面*/
}
void scan() /*功能8:瀏覽貨品信息*/
{
PR("\n\t瀏覽輸入的貨品信息,請按1\n\n\t瀏覽查詢的貨品信息,請按2\n\n\t瀏覽排序後貨品信息,請按3\n");
PR("請選擇:");
SC("%d",&k);
switch(k)
{
case 1:
{ PR("\t\t\t瀏覽輸入的貨品信息\n");
PR("\t貨品編號 貨品名 貨品類別 貨品數量 貨品價格\n");/*輸出瀏覽貨品信息*/
for(i=0;i<n;i++)
{
PR("\t%5ld %5s %5s %5ld %ld",goods[i].num,goods[i].name,goods[i].sort,goods[i].count,goods[i].price);
PR("\n");
}
PR("Press any key to enter menu:");
getch();
return;
} break; /*跳出switch語句*/
case 2:
{ PR("\t\t\t瀏覽查詢的貨品信息\n");
PR("\t貨品編號 貨品名 貨品類別 貨品數量 貨品價格\n");/*輸出瀏覽貨品信息*/
for(i=0;i<n;i++)
{
PR("\t%5ld %5s %5s %5ld %ld",goods[i].num,goods[i].name,goods[i].sort,goods[i].count,goods[i].price);
PR("\n");
}
PR("\nPress any key to enter menu:");
getch();
return;
} break; /*跳出switch語句*/
case 3:
{ PR("\t\t\t瀏覽按貨品編號排序的貨品信息\n");
PR("\t貨品編號 貨品名 貨品類別 貨品數量 貨品價格\n");/*輸出瀏覽貨品信息*/
for(i=0;i<n;i++)
{
PR("\t%5ld %5s %5s %5ld %ld",goods[i].num,goods[i].name,goods[i].sort,goods[i].count,goods[i].price);
PR("\n");
}
PR("\nPress any key to enter menu:");
getch();
return; /*返回主界面*/
} break; /*跳出switch語句*/
}
}
void reserve() /*功能9:保存文件*/
{
FILE *fp;
char file[15]; /*用來存放文件保存路徑以及文件名*/
system("cls"); /*清屏*/
PR("\n\t*請輸入文件路徑及文件名:");
SC("%s",file);
fp=fopen("file","w+"); /*創建並打開一個文件,並得到該文件的地址*/
fprintf(fp,"貨品編號\t貨品名 \t貨品類別\t貨品數量\t貨品價格\n");
PR("貨品編號\t貨品名 \t 貨品類別\t 貨品數量\t 貨品價格\n");
for(i=0;i<n;i++)
{
fprintf(fp,"%ld\t\t%s\t\t%s\t\t%d\t\t%d\n",goods[i].num,goods[i].name,goods[i].sort,goods[i].count,goods[i].price);
PR("%ld\t\t%s\t\t%s\t\t%d\t\t%d\n",goods[i].num,goods[i].name,goods[i].sort,goods[i].count,goods[i].price);
}
fclose(fp); /*關閉文件*/
PR("文件已經保存!\n");
getch();
system("cls"); /*清屏*/
}
void quit() /*退出系統*/
{
exit(0);
}
② 賓館客房管理系統 資料庫的課程設計
For your question 賓館客房管理系統 資料庫的課程設計,
告訴我你的問題和Email,
有別的要求也可以聯系我們,
有可能幫你,
使用網路_Hi給我留言,
此回復對於所有需求和和來訪者有效,
ES:\\
③ 求一個完整的《賓館客房管理系統》的課程設計報告,同時帶有資料庫和完整的代碼。
VB可以幫你做。
資料庫可以訪問(MDB)。
如果您希望SQL操作麻煩,當然,你需要有一定的深入了解SQL。