① c語言酒店管理系統
20分?我倒
給個建構你,至於怎麼實現自己想辦法了
struct Hotel
{
int index;//客房編號;
int type;//客房類型;
int position;//客房位置;
int area;//面積;
int bedsOfRoom;//床位數;
int price;//價格
Hotel*next;
};
② 請高手幫忙用C語言做一個酒店管理系統
在這個經濟社會里誰還會免費的幫人家出這么大的力啊?你那酒店管理系統要求再簡單也要花時間啊!再說你要它的原理,這不是要人家的知識產權嗎?也許人家開發出來把軟體打包給你還有可能。
③ 求C語言程序設計—宿舍信息管理系統。調研宿舍樓的住房基本信息管理案例,實現各個宿舍樓的宿舍信息管理
哈哈 我今天也開始課程設計了 也在到處找答案
④ 請問高手 用C語言怎樣編程酒店管理系統!
留個EMAIL,發一個VC做的完整項目讓你參考下.
⑤ c語言 商品管理系統
#include"stdio.h"
#include <conio.h>
#include <stdlib.h>
//#include"FILE.h"
typedef struct shangpin
{
char name[20];
int biaohao;
int shuliang;
double jiage;
}Node;
typedef struct list
{
Node data;
struct list *next;
}List ,*Slist;
void charu(Slist &s,Node x);
int caidan()
{
int i;
while(1)
{
system("cls");
printf("\n\t\t\t 商店銷售管理系統\n\n");
printf("\t\t **********************************************\n\n");
printf("\t\t 1--添加商品 2--出售商品\n\n");
printf("\t\t 3--刪除商品 4--顯示商品\n\n");
printf("\t\t 5--查找商品 0--退出系統\n\n");
printf("\t\t **********************************************\n\n");
printf("請選擇(0-5): ");
scanf("%d",&i);
if(i<6&&i>=0)break;
}
return i;
}
void chushihua(Slist &s)
{
Slist head=new List;
head->next=NULL;
s=head;
}
void tianjia(Slist &s)
{
Node x;
Slist r,p,q;
int i=0;
r=new List;
r->next=NULL;
q=p=s->next;
while(q)
{
i++;
q=q->next;
}
printf("請輸入商品名稱、數量以及價格: ");
scanf("%s%d%lf",x.name,&x.shuliang,&x.jiage);
x.biaohao=i+1;
r->data=x;
s->next=r;
r->next=p;
}
void chu(Slist &s)
{
FILE *cp;//定義文件指針
int i=0;
Node x;
if((cp=fopen("shangpin.txt","a+"))==NULL)//打開文件
{printf("文件打開失敗!");return ;}
fseek(cp,0L,SEEK_SET);//將文件指針移動到文件開頭
while(!feof(cp))
{
fscanf(cp,"%s%d%lf",x.name,&x.shuliang,&x.jiage);//讀取文件的內容
x.biaohao=++i;
charu(s,x);//把讀到的數據插入到鏈表上
}
fclose(cp);//關閉文件
}
void charu(Slist &s,Node x)
{
Slist r,p=s->next;
r=new List;
r->next=NULL;
r->data=x;
s->next=r;
r->next=p;
}
void xieru(Slist s)
{
FILE *cp;//同上
Slist p=s->next;
if((cp=fopen("shangpin.txt","w+"))==NULL)
{printf("文件打開失敗!");return ;}//同上
while(p)
{
fprintf(cp,"%s %d %.2lf ",p->data.name,p->data.shuliang,p->data.jiage);//寫入文件中,並且以空格隔開
p=p->next;
}
fclose(cp);//關閉文件
}
Slist chazhao(Slist s,int m)
{
Slist p=s->next;
if(p==0)return 0;
if(p->next==0)return p;
if(p->data.biaohao==m)return p;
while(p->next)
{
if(p->next->data.biaohao==m)return p;
p=p->next;
}
return 0;
}
void xianshi(Slist s)
{
Slist p;
p=s->next;
printf("%10s%20s%10s%10s\n","商品編號","商品名稱","商品數量","商品價格");
while(p)
{
printf("%10d%20s%10d%10.2f\n",p->data.biaohao,p->data.name,p->data.shuliang,p->data.jiage);
p=p->next;
}
}
void shanchu(Slist &s)
{
}
void chushou(Slist &s)
{
}
void main()
{
int num;
Slist s;
chushihua(s);
chu(s);
num=caidan();
while(1)
{
switch(num)
{
case 0:exit(0);break;
case 1:tianjia(s);break;
case 2:chushou(s);break;
case 3:shanchu(s);break;
case 4:xianshi(s);break;
case 5:chazhao(s,1);break;
}
printf("按任意鍵繼續!");
getch();
num=caidan();
}
xieru(s);
}
//有些函數我在沒寫啊,你自己寫寫吧,文件的讀取和寫入,還有鏈表的創建我都給你寫好了,也就是上面的1,4我都寫好了,
//包括了文件,剩下的2,3,5,你自己試試,並且我也給你寫了一個查找函數,你看看能用不!
⑥ 求C語言的大項目
朋友我這有幾個哈。你可以看看 一. 設計題目: 圖書管理系統 1. 新書入庫: 圖書信息包括書名, 書號, 庫存量, 現存量共4項. 首先輸入3本書的信息, 並將其存入文件 」book.dat」 中. 當有新書入庫時, 先判斷文件中是否有此書( 即比較書名 ), 若有則修改庫存量, 現存量的信息; 若無此書, 則將該書的信息添加到文件中. 2. 圖書查詢: 輸入一個書號, 在文件中查找此書, 若找到則輸出此書的全部信息; 若找不到則輸出查找失敗的信息. 3. 借閱管理 (1) 每個讀者的信息包括姓名, 編號, 1張借書卡( 限借一本書 ), 輸入3個讀者的信息存入文件 「reader . dat」 中. (2) 借書登記: 輸入讀者的姓名, 所借圖書的書號, 先判斷姓名是否在文件」reader.dat」 中, 若有則將書號存入一張借書卡上( 注: 初始時借書卡的信息都為零, 借書後借書卡的信息改為所借書的書號), 並修改文件」reader.dat」的相應內容, 同時修改文件」book.dat」中此書的現存量. 若」reader.dat」無此姓名, 則應提示錯誤 (3) 還書管理: 輸入讀者的姓名, 所還圖書的書號, 將借書卡的信息置為零, 並修改文件」reader.dat」的相應內容, 同時修改文件」book.dat」中此書的現存量. 4. 輸出全部圖書信息和全部讀者信息 5. 退出系統. 二. 設計題目: 航空訂票系統 1. 航線信息: 每條航線信息包括航班號, 飛機號, 目的地, 訂票數, 余票數共5項. 假設現在有3條航線, 目的地分別是北京, 上海, 廣州, 飛機上可乘坐100人( 即初始訂票數為0, 余票數為100) , 將這3條航線信息存入文件」airline.dat」 中. 2. 訂票業務 (1) 客戶信息包括姓名, 航班號, 座位號(初始為0), 假設已有3個客戶信息存入文件」customer.dat」中. (2) 有新客戶訂票時, 先輸入客戶的姓名和他提出的航班號, 查詢該航線的訂票情況, 若有餘票, 則為客戶辦理訂票手續, 分配給客戶一個座位號, 然後將新客戶的信息添加到文件」customer.dat」中, 並修改文件」airline.dat」中該航線的訂票數和余票數. 若無余票, 則輸出客滿信息. 3. 退票業務: 根據客戶提出的航班號, 辦理退票, 從文件」customer.dat」中刪除該客戶的信息, 並修改文件」airline.dat」中相應航線的訂票數和余票數. 4. 輸出全部航線信息和全部客戶信息. 5. 退出系統. 三. 設計題目: 銷售管理系統 1. 銷售員信息: 每個銷售員包括姓名, 編號, 產品1銷售額, 產品2銷售額, 總銷售額共5項信息. 首先輸入3個銷售員的信息存入文件」sailer.dat」中. 2. 排序: 按產品1的銷售額進行排序, 將排序後的信息存入文件 」sailer1.dat」中, 按產品2的銷售額進行排序, 將排序後的信息存入文件」sailer2.dat」中, 按總銷售額進行排序, 將排序後的信息存入文件 」sailer3.dat」 中 3. 統計: 分別統計產品1的總銷售額和產品2的總銷售額並進行輸出 4. 銷售員的增加: 增加一個銷售員的信息, 先將其添加到文件」sailer.dat」中, 然後按其總銷售額進行插入排序, 排序後的信息仍存入文件」sailer3.dat」中. 5. 銷售員的減少: 輸入一個銷售員的姓名, 從文件」sailer.dat」中將其刪除. 6. 輸出全部銷售員的信息 7. 退出系統 四. 設計題目: 停車場管理 1.有一個兩層的停車場, 每層有6個車位, 當第一層車停滿後才允許使用第二層. ( 停車場可用一個二維數組實現, 每個數組元素存放一個車牌號 ) 每輛車的信息包括車牌號, 層號, 車位號, 停車時間共4項. 其中停車時間按分鍾計算 2. 假設停車場初始狀態為第一層已經停有4輛車, 其車位號依次為1—4 , 停車時間依次為20, 15, 10 , 5 . 即先將這四輛車的信息存入文件」car.dat」中( 數組的對應元素也要進行賦值 ) 3. 停車操作: 當一輛車進入停車場時, 先輸入其車牌號, 再為它分配一個層號和一個車位號(分配前先查詢車位的使用情況, 如果第一層有空則必須停在第一層), 停車時間設為5 , 最後將新停入的汽車的信息添加文件」car.dat」中, 並將在此之前的所有車的停車時間加5. 4. 收費管理(取車): 當有車離開時, 輸入其車牌號, 先按其停車時間計算費用, 每5分鍾0.2元. (停車費用可設置一個變數進行保存), 同時從文件」car.dat」中刪除該車的信息, 並將該車對應的車位設置為可使用狀態(即二維數組對應元素清零). 按用戶的選擇來判斷是否要輸出停車收費的總計. 5. 輸出停車場中全部車輛的信息. 6. 退出系統. 五. 為小型會議設計一個參會人員管理程序。 要求: (1)登錄參會人員的下列信息: ·姓名(name); ·性別(sex); ·年齡(age); ·單位(department) ·房間號(room-num)(設每個房間只住一人,房間號為101#—120#,…..,501#—520#)。 (2)主菜單應至少包括以下幾個菜單項: 人員登錄、顯示報到人員信息、查詢、統計、修改、刪除 (3)程序應分別用幾個個函數實現以上功能: ·隨時對報到人員進行登錄(login),來客登記的房間是根據客人要求分配的;如果客人申請的房間已有人登記了,可以讓客人重新申請;如果所有的房間都已經住滿,則拒絕再進行人員登錄; ·隨時按所住房間號(由小到大)輸出(print)已報到人員信息; ·能夠根據姓名實現對人員信息的查詢; ·能夠根據單位對與會人員進行分類統計,並輸出統計結果; ·能夠修改與會人員的信息; ·能夠刪除某個參會人員,並清空其所住房間; (4)程序中的變數要使用題中給定的英文名詞。 六、 設計題目:建通訊錄,並對它進行增加、查詢、修改、刪除、顯示記錄等操作。 第一個模塊——主函數main()的功能是:根據選單的選項調用各函數,並完成相應的功能。 第二個模塊——Menu()的功能是:顯示英文提示選單。 第三個模塊——Quit()的功能是:退出選單。 第四個模塊——Create()的功能是:創建新的通訊錄。 第五個模塊——Add()的功能是:在通訊錄的末尾,寫入新的信息,並返回選單。 第六個模塊——Find()的功能是:查詢某人的信息,如果找到了,則顯示該人的信息,如果未找到,則提示通訊錄中沒有此人的信息,並返回選單。 第七個模塊——Alter()的功能是:修改某人的信息,如果未找到要修改的人,則提示通訊錄中沒有此人的信息,並返回選單。 第八個模塊——Delete()的功能是:刪除某人的信息,如果未找到要刪除的人,則提示通訊錄中沒有此人的信息,並返回選單。 第九個模塊——List()的功能是:顯示通訊錄中的所有記錄。 七、設計題目:動態演示漢諾塔問題的解決過程。(或用C語言設計一個動畫程序) 要求:在圖形模式下,能將每一次盤子的移動用動畫演示出來。 八、設計題目:迷宮問題。 要求: (1) 用戶可以自己建立一個大小隨意的迷宮。 (2) 從入口出發,找出所有出路。(最好用圖形化的方式演示) 九、題目:設計一個摸擬時鍾轉動的程序。 (一)、基本要求:設計的時鍾要美觀大方,既能摸擬機械鍾錶行走(有時針、分針和秒針),還要准確地利用數字顯示日期和時間。 (三)、創新要求:在基本要求達到後,進行創新設計,如增加整點報時功能,定時功能等。 (四)、設計方法 基本原理:在圖形模式下繪出時鍾的外表,利用dos.h中的gettime和getdate得到系統的時間和日期,然後利用繪圖函數顯示在屏幕上。 十、設計題目:編寫一個文本編輯器(記事本)。 要求:要有文本編輯器的基本功能,如打開、編輯、保存、修改等。 十一、設計題目:俄羅斯方塊游戲實現。 用戶的鍵盤控制如下: 左右箭頭(「<」和「>」:控制方塊的左右運動。 向下方的箭頭:控制方塊的加速運動,可以使方塊迅速下落到底部。 空格鍵:控制方塊的旋轉變換。 Esc鍵:退出遊戲。 設計總要求: 1. 有些題目要製作字元形式的菜單. 2. 不同的功能使用不同的函數實現. 3. 對程序進行必要的注釋. 4. 按下列要求書寫課程設計報告(必須要有) (1) 給出相關數據結構及說明; (2) 給出程序的結構流程; (3) 調試過程中出現的問題和解決方法; (4) 編程體會。 (5) 要有磁碟稿。
⑦ 銷售系統C語言程序設計那個菜單怎麼做
如果只是要菜單不要真實功能的話,下面的應該是我認為最簡單的了!
#include<stdio.h>
void main()
{
int i;
printf(" ******************************************\n\n");
printf(" 請選擇業務\n");
printf(" 1.進貨\n");
printf(" 2.銷售\n");
printf(" 3.統計\n");
printf(" 4.退出\n\n\n");
printf(" 請選擇:");
scanf("%d",&i);
fflush(stdin);
switch(i)
{
case 1:printf("進貨\n");break;
case 2:printf("銷售\n");break;
case 3:printf("統計\n");break;
case 4:printf("退出\n");break;
default:printf("輸入錯誤\n");break;
}
}
⑧ 房屋銷售管理信息系統(C語言)
#include
#include
#include
void frist_print()
{
printf("\t\t********************************\n\n"); //歡迎信息
printf("\t\t\t歡迎進入學生成績系統\n");
}
void menu()
{
printf("\n\t\t********************************\n"); //管理菜單
printf("\t\t==\t1.錄入學生成績\n\t\t+\n");
printf("\t\t==\t2.顯示學生成績\n\t\t+\n");
printf("\t\t==\t3.查詢學生成績\n\t\t+\n");
printf("\t\t==\t4.添加學生成績\n\t\t+\n");
printf("\t\t==\t5.修改學生成績\n\t\t+\n");
printf("\t\t==\t6.刪除學生成績\n\t\t+\n");
printf("\t\t==\t7.清空頁面\n\t\t+\n");
printf("\t\t==\t8.退出系統\n");
printf("\t\t********************************\n");
printf("please choise 1--8:\t");
putchar(10);
}
struct MM // 結構體定義變數
{
char num[20];
char name[10];
float pay;
int many;
}mm;
void scanf_1() //第一次輸入信息並保存在文件中
{
char ch;
FILE *fp;
if((fp=fopen("dd.dat","wb+"))==NULL)
{
printf("cannot open file\n");
exit(0);
}
do
{
printf("請輸入成績的--編號:\t");
getchar();
gets(mm.num);
printf("姓名:\t");
gets(mm.name);
printf("成績:\t");
scanf("%f",&mm.pay);
printf("學號:\t");
scanf("%d",&mm.many);
if(fwrite(&mm,sizeof(struct MM),1,fp)!=1)
{
printf("file write error\n");
exit(0);
}
printf("是否繼續輸入y or n ?\t");
getchar();
ch=getchar();
}while(ch=='y'||ch=='Y');
fclose(fp);
}
void find() //查詢成績的信息
{ int a,b=0;
char ch[20];
FILE *fp;
if((fp=fopen("dd.dat","rb"))==NULL)
{
printf("cannot open file\n");
exit(0);
}
printf("請輸入要查詢的成績的方式\n\t1.編號 2.姓名:\n\t請選擇 1 or 2 \t");
scanf("%d",&a);
if(a==1)
{ getchar();
printf("請輸入成績的編號:\t");
gets(ch);
while(fread(&mm,sizeof(struct MM),1,fp)==1)
if(strcmp(mm.num,ch)==0)
{
b++;
printf("編號\t姓名\t價格\t\t學號\n");
printf("%s\t%s\t%.3f\t\t%d\n",mm.num,mm.name,mm.pay,mm.many);
}
if(b==0) printf("對不起!沒有找到相關信息:\n");
}
else if(a==2)
{ printf("請輸入成績的姓名:\t");
getchar();
gets(ch);
while(fread(&mm,sizeof(struct MM),1,fp)==1)
if(strcmp(mm.name,ch)==0)
{
b++;
printf("編號\t姓名\t價格\t\t學號\n");
printf("%s\t%s\t%.3f\t\t%d\n",mm.num,mm.name,mm.pay,mm.many);
}
if(b==0) printf("input error!\n");
}
fclose(fp);
}
void scanf_2() //第二次輸入信息並保存在文件中
{
char ch;
FILE *fp;
if((fp=fopen("dd.dat","ab"))==NULL)
{
printf("cannot open file\n");
exit(0);
}
do
{
printf("請輸入要添加成績的--編號:\t");
getchar();
gets(mm.num);
printf("姓名:\t");
gets(mm.name);
printf("價格:\t");
scanf("%f",&mm.pay);
printf("學號:\t");
scanf("%d",&mm.many);
if(fwrite(&mm,sizeof(struct MM),1,fp)!=1)
{
printf("file write error\n");
exit(0);
}
printf("是否繼續輸入y or n ?\t");
getchar();
ch=getchar();
}while(ch=='y'||ch=='Y');
fclose(fp);
}
void print() //輸出文檔中的信息
{
FILE *fp;
if((fp=fopen("dd.dat","rb"))==NULL)
{
printf("cannot open file\n");
return ;
}
printf("編號\t姓名\t價格\t\t學號\n");
while(fread(&mm,sizeof(struct MM),1,fp)==1)
printf("%s\t%s\t%.3f\t\t%d\n",mm.num,mm.name,mm.pay,mm.many);
fclose(fp);
}
void change()
{ //修改信息的函數,定義另一個文件,把要修改的信息放到該文件中
struct XX //然後把其餘的信息復制到該文件中;並把該文件從新命名為原來的名
{ //把原來的文件移除;
char num[20];
char name[10];
float pay;
int many;
}xx;
FILE *fp2;
int a,b=0,c=0,n=0;
char ch[20],ck;
FILE *fp;
do{
if((fp=fopen("dd.dat","rb"))==NULL)
{
printf("cannot open file\n");
exit(0);
}
if((fp2=fopen("temp.dat","wb"))==NULL)
{
printf("cannot open file\n");
exit(0);
}
printf("請輸入要修改成績的編號:\t");
scanf("%s",ch);
n++;
while(fread(&mm,sizeof(struct MM),1,fp)==1)
{
if((strcmp(mm.num,ch)==0))
{
b++; //b的值如果一直沒有改變說明,沒有找到相關的信息;
printf("編號\t姓名\t價格\t\t學號\n");
printf("%s\t%s\t%.3f\t\t%d\n",mm.num,mm.name,mm.pay,mm.many);
getchar();
printf("請輸入成績的新編號:\t");
gets(xx.num);
printf("請輸入成績的新姓名:\t");
gets(xx.name);
printf("請輸入成績的新價格:\t");
scanf("%f",&xx.pay);
printf("請輸入成績新學號:\t");
scanf("%d",&xx.many);
getchar();
fwrite(&xx,sizeof(struct XX),1,fp2);
}
if(strcmp(mm.num,ch)!=0)
fwrite(&mm,sizeof(struct MM),1,fp2);
}
if(b==0)
{
printf("\t沒有找到相關信息!\n");
getchar();
}
rewind(fp); //如果要繼續修改的話,要把標記返回到文件的開頭;
printf("是否繼續修改?enter 'y' or 'n' \t");
ck=getchar();
fclose(fp);
fclose(fp2);
remove("dd.dat");
rename("temp.dat","dd.dat");
}while(ck=='y'||ck=='Y');
if(b!=0) //如果沒有找到相關信息就不能輸出
printf("\t修改成功:\n");
}
void del()
{ //刪除函數和修改很相似
FILE *fp2;
int a,b=0,c=0,n=0;
char ch[20],ck;
FILE *fp;
do {
if((fp=fopen("dd.dat","rb"))==NULL)
{
printf("cannot open file\n");
exit(0);
}
if((fp2=fopen("temp.dat","wb"))==NULL)
{
printf("cannot open file\n");
exit(0);
}
printf("請輸入要刪除成績的編號:\t");
scanf("%s",ch);
n++;
while(fread(&mm,sizeof(struct MM),1,fp)==1)
{
if((strcmp(mm.num,ch)==0))
{
b++; //b的值如果一直沒有改變說明,沒有找到相關的信息;
printf("編號\t姓名\t價格\t\t學號\n");
printf("%s\t%s\t%.3f\t\t%d\n",mm.num,mm.name,mm.pay,mm.many);
}
else if(strcmp(mm.num,ch)!=0)
fwrite(&mm,sizeof(struct MM),1,fp2);
}
if(b==0)
{
printf("\t沒有找到相關信息!\n");
getchar();
}
rewind(fp);
getchar();
getchar();
printf("刪除成功!");
getchar(); //如果要繼續修改的話,要把標記返回到文件的開頭;
printf("是否繼續刪除?enter 'y' or 'n' \t");
ck=getchar();
fclose(fp);
fclose(fp2);
remove("dd.dat");
rename("temp.dat","dd.dat");
}while(ck=='y'||ck=='Y');
if(b!=0) //如果沒有找到相關信息就不能輸出
printf("\t保存成功:\n");
}
void myexit()
{
int a;
char ch;
printf("\t是否確定退出?請選擇 y or n: ");
getchar();
ch=getchar();
if(ch=='y'||ch=='Y') exit(0);
else
menu();
}
int main()
{
int a;
frist_print();
menu();
while(1)
{
scanf("%d",&a);
if(a==1)
scanf_1();
else if(a==2)
print();
else if(a==3)
find();
else if(a==4)
scanf_2();
else if(a==5)
change();
else if(a==6)
del();
else if(a==7)
system("cls");
else if(a==8)
myexit();
else printf("輸入錯誤!!!請重新輸入:\t");
printf("\t按任意鍵繼續!\n");
getch();
menu();
}
getch();
}
一個成績管理系統,注釋不是太多,寫的不太好,能運行,符合你初級水平。
滿意請採納。
⑨ C語言做個小型商品銷售管理系統
我這里有一個!
具體的,稍微改一下就可以了!
#include "stdio.h" /*I/O函數*/
#include "stdlib.h" /*其它說明*/
#include "string.h" /*字元串函數*/
#include "conio.h" /*屏幕操作函數*/
#include "mem.h" /*內存操作函數*/
#include "ctype.h" /*字元操作函數*/
#include "alloc.h" /*動態地址分配函數*/
struct score
{
int mingci;
char xuehao[8];
char mingzi[20];
float score[6];
}data,info[1000];
int i,j,k=0;
char temp[20],ch;
FILE *fp,*fp1;
void shuru()
{
if((fp=fopen("s_score.txt","ab+"))==NULL)
{
printf("cannot open this file.\n");
getch();exit(0);
}
for(i=0;i<=1000;i++)
{
printf("\nPlease shuru xuehao:");
gets(data.xuehao);
printf("Please shuru mingzi:");
gets(data.mingzi);
printf("Please shuru yuwen score:");
gets(temp);data.score[0]=atof(temp);
printf("Please shuru shuxue score:");
gets(temp);data.score[1]=atof(temp);
printf("Please input yingyu score:");
gets(temp);data.score[2]=atof(temp);
printf("Please shuru wuli score:");
gets(temp);data.score[3]=atof(temp);
printf("Please shur huaxue score:");
gets(temp);data.score[4]=atof(temp);
data.score[5]=data.score[0]+data.score[1]+data.score[2]+data.score[3]+data.score[4];
fwrite(&data,sizeof(data),1,fp);
printf("another?y/n");
ch=getch();
if(ch=='n'||ch=='N')
break;
} fclose(fp);
}
void xianshi()
{
float s;int n;
if((fp=fopen("s_score.txt","rb+"))==NULL)
{
printf("Cannot reading this file.\n");
exit(0);
}
for(i=0;i<=1000;i++)
{
if((fread(&info[i],sizeof(info[i]),1,fp))!=1)
break;
}
printf("\nxuehao mingzi yuwen shuxue yingyu wuli huauxue zhongfen\n");
for(j=0,k=1;j<i;j++,k++)
{
info[j].mingci=k;
printf("%6s %8s %3.1f %3.1f %3.1f %3.1f %3.1f %3.1f\n",info[j].xuehao,info[j].mingzi,info[j].score[0],info[j].score[1],info[j].score[2],info[j].score[3],info[j].score[4],
info[j].score[5]);
}
getch();
fclose(fp);
}
void xiugai()
{
if((fp=fopen("s_score.txt","rb+"))==NULL||(fp1=fopen("temp.txt","wb+"))==NULL)
{
printf("Cannot open this file.\n");
exit(0);
}
printf("\nPLease shuru xiugai xuehao:");
scanf("%d",&i); getchar();
while((fread(&data,sizeof(data),1,fp))==1)
{
j=atoi(data.xuehao);
if(j==i)
{
printf("xuehao:%s\nmingzi:%s\n",data.xuehao,data.mingzi);
printf("Please shuru mingzi:");
gets(data.mingzi);
printf("Please shuru yuwen score:");
gets(temp);data.score[0]=atof(temp);
printf("Please shuru shuxue score:");
gets(temp);data.score[1]=atof(temp);
printf("Please input yingyu score:");
gets(temp);data.score[2]=atof(temp);
printf("Please input wuli score:");
gets(temp);data.score[3]=atof(temp);
printf("Please input huaxue score:");
gets(temp);data.score[4]=atof(temp);
data.score[5]=data.score[0]+data.score[1]+data.score[2]+data.score[3]+data.score[4];
} fwrite(&data,sizeof(data),1,fp1);
}
fseek(fp,0L,0);
fseek(fp1,0L,0);
while((fread(&data,sizeof(data),1,fp1))==1)
{
fwrite(&data,sizeof(data),1,fp);
}
fclose(fp);
fclose(fp1);
}
void chazhao()
{
if((fp=fopen("s_score.txt","rb"))==NULL)
{
printf("\nCannot open this file.\n");
exit(0);
}
printf("\nPLease shuru xuehao chakan:");
scanf("%d",&i);
while(fread(&data,sizeof(data),1,fp)==1)
{
j=atoi(data.xuehao);
if(i==j)
{
printf("xuehao:%s mingzi:%s\nyuwen:%f\n shuxue:%f\n yingyu:%f\n wuli:%f\n huaxue:%f\n ",data.xuehao,data.mingzi,data.score[0],data.score[1],data.score[2],data.score[3],data.score[4],data.score[5]);
}getch();
}
}
void shanchu()
{
if((fp=fopen("s_score.txt","rb+"))==NULL||(fp1=fopen("temp.txt","wb+"))==NULL)
{
printf("\nopen score.txt was failed!");
getch();
exit(0);
}
printf("\nPlease input ID which you want to del:");
scanf("%d",&i);getchar();
while((fread(&data,sizeof(data),1,fp))==1)
{
j=atoi(data.xuehao);
if(j==i)
{
printf("Anykey will delet it.\n");
getch();
continue;
}
fwrite(&data,sizeof(data),1,fp1);
}
fclose(fp);
fclose(fp1);
remove("s_score.txt");
rename("temp.txt","s_score.txt");
printf("Data delet was succesful!\n");
printf("Anykey will return to main.");
getch();
}
main()
{
while(1)
{
clrscr(); /*清屏幕*/
gotoxy(1,1); /*移動游標*/
textcolor(YELLOW); /*設置文本顯示顏色為黃色*/
textbackground(BLUE); /*設置背景顏色為藍色*/
window(1,1,99,99); /* 製作顯示菜單的窗口,大小根據菜單條數設計*/
clrscr();
printf("*************welcome to use student manage******************\n");
printf("*************************menu********************************\n");
printf("* ========================================================= * \n");
printf("* 1>shuru 2>xiugai * \n");
printf("* 3>shanchu 4>chazhao * \n");
printf("* 5>xianshi 6>exit * \n");
printf("* * \n");
printf("* --------------------------------------------------------- * \n");
printf(" Please input which you want(1-6):");
ch=getch();
switch(ch)
{
case '1':shuru();break;
case '2':xiugai(); break;
case '3':shanchu(); break;
case '4':chazhao(); break;
case '5':xianshi(); break;
case '6':exit(0);
default: continue;
}
}
}
⑩ 求幫助!!C語言 賓館客房管理系統!!!!高分懸賞!!!!緊急!!緊急!!!!!!!
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
//***********************************************************************************
void initial_room(); //初始化80個房間信息
void welcome(); //驗證用戶登陸,登陸成功顯示歡迎信息
void enter();
void book_room();
void check_in();
void check_out();
void inquire();
int i=0;
//***********************************************************************************
struct Room
{
int number;
int dank;
int price;
int state;
};
struct Customer
{
char name[10],ID[19];
int room_number;
int prepaid;
int change;
int day;
};
void set_name(struct Customer *cs, char *n)
{
strcpy(cs->name,n);
}
void set_ID(struct Customer *cs, char *p)
{
strcpy(cs->ID,p);
}
void set_room_number(struct Customer *cs, int n)
{
cs->room_number=n;
}
void set_day(struct Customer *cs, int d)
{
cs->day=d;
}
void set_prepaid(struct Customer *cs, int p)
{
cs->prepaid=p;
}
char *get_name(struct Customer *cs)
{
return cs->name;
}
char *get_ID(struct Customer *cs)
{
return cs->ID;
}
int get_room_number(struct Customer *cs)
{
return cs->room_number;
}
int get_day(struct Customer *cs)
{
return cs->day;
}
int get_prepaid(struct Customer *cs)
{
return cs->prepaid;
}
//***********************************************************************************
struct Room room[80];
struct Customer *customer[80];
void CCustomer(struct Customer *cs)
{
printf("請您輸入顧客的姓名\n");
scanf("%s",&cs->name);
printf("請您輸入顧客的身份證號碼\n");
scanf("%s",&cs->ID);
cs->prepaid = cs->change = cs->day = 0;
}
void FCustomer()
{
printf("該顧客退房成功!");
}
int main(void) //程序入口從這里開始運行
{
char choice='1';
initial_room(); //初始化80個房間的信息,分四個等級
welcome(); //驗證用戶登陸,登陸成功顯示歡迎信息
while(choice=='1')
{
enter(); //根據用戶的選擇執行不同的功能
printf("\n");
printf("繼續使用本系統請按\"1\",退出請按\"2\"! ");
fflush(stdin);
scanf("%c",&choice);
printf("\n");
}
return 0;
}
//系統登陸界面***********************************************************************
void welcome() //驗證用戶登陸,登陸成功顯示歡迎信息
{
char name[4],code[7];
printf("請輸入用戶名和密碼(以空格隔開):\n");
scanf("%s%s",&name,&code);
while((strcmp(name,"000")!=0)||(strcmp(code,"666666")!=0))
{
printf("用戶名或密碼輸入有誤,請重新輸入!\n");
scanf("%s%s",&name,&code);
}
printf("\n");
printf("\n");
printf(" ▲***************************▲\n");
printf(" △ 歡迎使用賓館客房管理系統! △\n");
printf(" ▲***************************▲\n");
printf("\n");
}
//系統入口***************************************************************************
void enter()
{
int kind_of_service;
printf("請選擇服務類別:訂房、入住、退房還是查詢? \n");
printf(" 1->定房 2->入住 3->退房 4->查詢: ");
scanf("%d",&kind_of_service);
if((kind_of_service>4) || (kind_of_service<1))
{
printf("您的輸入有誤,請重試!\n");
scanf("%d",&kind_of_service);
}
else
{
switch(kind_of_service)
{
case 1: book_room();
break;
case 2: check_in();
break;
case 3: check_out();
break;
case 4: inquire();
break;
}
}
}
//訂房實現***************************************************************************
void book_room()
{
int room_standard,day;
customer[i] = (struct Customer*)malloc(sizeof(struct Customer));
CCustomer(customer[i]);
printf("請您選擇預定房間的標准:\n");
printf("1.單人間/天150元\n2.雙人間/天200元\n3.標准間/天300元\n4.總統套房/天600元\n");
scanf("%d",&room_standard);
printf("請輸入預定天數\n");
scanf("%d",&day);
set_day(customer[i],day);
switch(room_standard)
{
int n;
case 1:
printf("住房費用總共為: %d 元\n",day*150); //計算住房費用
for(n=0;n<20;n++) //從第一個級別的房間中查找一個空閑的房間
{
if(room[n].state==0) //state=0表示該住房沒有被預定的
{
printf("預定成功★房間號碼為: %d\n",room[n].number);
room[n].state=1;
set_room_number(customer[i],room[n].number);
break;
}
}
break;
case 2:
printf("住房費用總共為: %d 元\n",day*200);
for(n=20;n<40;n++)
{
if(room[n].state==0)
{
printf("預定成功★房間號碼為: %d\n",room[n].number);
room[n].state=1;
set_room_number(customer[i],room[n].number);
break;
}
}
break;
case 3:
printf("住房費用總共為: %d 元\n",day*300);
for(n=40;n<60;n++)
{
if(room[n].state==0)
{
printf("預定成功★房間號碼為: %d\n",room[n].number);
room[n].state=1;
set_room_number(customer[i],room[n].number);
break;
}
}
break;
case 4:
printf("住房費用總共為: %d 元\n",day*600);
for(n=60;n<80;n++)
{
if(room[n].state==0)
{
printf("預定成功★房間號碼為: %d\n",room[n].number);
room[n].state=1;
set_room_number(customer[i],room[n].number);
break;
}
}
break;
}
i++; //住房的顧客數加1
}
//入住登記***************************************************************************
void check_in()
{
char name1[10],id1[19];
int ding_or_no,prepaid;
int j;
printf("該顧客訂房了嗎? (1->訂了 2->沒訂) ");
scanf("%d",&ding_or_no);
if(ding_or_no==1)
{
printf("請輸入顧客的姓名:\n");
scanf("%s",&name1);
printf("請輸入顧客的身份證號碼:\n");
scanf("%s",&id1);
for(j=0;j<i;j++)
{
if((strcmp(get_name(customer[j]),name1)==0)&&(strcmp(get_ID(customer[j]),id1)==0)) //查找該顧客的定房信息
{
int num=get_room_number(customer[j]); //取得定房的房間號
printf("顧客 %s 今天入住本賓館! 房間號碼為: %d\n",name1,num);
switch(num/100)
{
case 6:
prepaid=get_day(customer[j])*150;
set_prepaid(customer[j],prepaid);
printf("請收房費 %d元整!\n",prepaid); //開始收費
room[num%100-1].state=2; //修改房間狀態為入住狀態
break;
case 7:
prepaid=get_day(customer[j])*200;
set_prepaid(customer[j],prepaid);
printf("請收房費 %d元整!\n",prepaid);
room[19+num%100].state=2;
break;
case 8:
prepaid=get_day(customer[j])*300;
set_prepaid(customer[j],prepaid);
printf("請收房費 %d元整!\n",prepaid);
room[39+num%100].state=2;
break;
case 9:
prepaid=get_day(customer[j])*600;
set_prepaid(customer[j],prepaid);
printf("請收房費 %d元整!\n",prepaid);
room[59+num%100].state=2;
break;
}
break;
}
}
}
else
{
int room_standard,day;
customer[i] = (struct Customer*)malloc(sizeof(struct Customer));
CCustomer(customer[i]);
printf("請您選擇預定房間的標准:\n");
printf("1.單人間/天150元\n2.雙人間/天200元\n3.標准間/天300元\n4.總統套房/天600元\n");
scanf("%d",&room_standard);
printf("請輸入住宿天數\n");
scanf("%d",&day);
set_day(customer[i],day);
switch(room_standard)
{
int n;
case 1:
prepaid=day*150;
set_prepaid(customer[i],prepaid);
printf("請收房費 %d元整!\n",prepaid);
for(n=0;n<20;n++)
{
if(room[n].state==0)
{
printf("入住房間號碼為: %d\n",room[n].number);
room[n].state=2;
set_room_number(customer[i],room[n].number);
break;
}
}
break;
case 2:
prepaid=day*200;
set_prepaid(customer[i],prepaid);
printf("請收房費 %d元整!\n",prepaid);
for(n=20;n<40;n++)
{
if(room[n].state==0)
{
printf("入住房間號碼為: %d\n",room[n].number);
room[n].state=2;
set_room_number(customer[i],room[n].number);
break;
}
}
break;
case 3:
prepaid=day*300;
set_prepaid(customer[i],prepaid);
printf("請收房費 %d元整!\n",prepaid);
for(n=40;n<60;n++)
{
if(room[n].state==0)
{
printf("入住房間號碼為: %d\n",room[n].number);
room[n].state=2;
set_room_number(customer[i],room[n].number);
break;
}
}
break;
case 4:
prepaid=day*600;
set_prepaid(customer[i],prepaid);
printf("請收房費 %d元整!\n",prepaid);
for(n=60;n<80;n++)
{
if(room[n].state==0)
{
printf("入住房間號碼為: %d\n",room[n].number);
room[n].state=2;
set_room_number(customer[i],room[n].number);
break;
}
}
break;
}
i++;
}
}
//退房結算***************************************************************************
void check_out()
{
char name2[10],id2[19];
int standard,j,room_number,day1,day2,day;
printf("請輸入要退房的顧客姓名和身份證號碼:\n");
scanf("%s%s",&name2,&id2);
printf("請輸入該顧客實住天數:\n");
scanf("%d",&day2);
for(j=0;j<i;j++)
{
if((strcmp(get_name(customer[j]),name2)==0)&&(strcmp(get_ID(customer[j]),id2)==0))
{
char account;
room_number=get_room_number(customer[j]);
standard=room_number/100;
day1=get_day(customer[j]);
day=day1-day2;
switch(standard)
{
case 6:
printf("顧客的房間號是%d :為單人間,每天150元\n",room_number);
printf("該顧客預付了房費 %d元, 實際消費 %d元整!\n",get_prepaid(customer[j]),day2*150);
printf("\n");
if(day>0)
printf("請退給該顧客 %d 元整!\n",day*150);
if(day<0)
printf("請補收該顧客住房費 %d 元整!\n",-day*150);
break;
case 7:
printf("顧客的房間號是%d :為單人間,每天200元\n",room_number);
printf("該顧客預付了房費 %d元, 實際消費 %d元整!\n",get_prepaid(customer[j]),day2*200);
printf("\n");
if(day>0)
printf("請退給該顧客 %d 元整!\n",day*200);
if(day<0)
printf("請補收該顧客住房費 %d 元整!\n",-day*200);
break;
case 8:
printf("顧客的房間號是%d :為單人間,每天300元\n",room_number);
printf("該顧客預付了房費 %d元, 實際消費 %d元整!\n",get_prepaid(customer[j]),day2*300);
printf("\n");
if(day>0)
printf("請退給該顧客 %d 元整!\n",day*300);
if(day<0)
printf("請補收該顧客住房費 %d 元整!\n",-day*300);
break;
case 9:
printf("顧客的房間號是%d :為單人間,每天600元\n",room_number);
printf("該顧客預付了房費 %d元, 實際消費 %d元整!\n",get_prepaid(customer[j]),day2*600);
printf("\n");
if(day>0)
printf("請退給該顧客 %d 元整!\n",day*600);
if(day<0)
printf("請補收該顧客住房費 %d 元整!\n",-day*600);
break;
}
printf("\n");
printf("退房核算清楚,請按1: ");
fflush(stdin);
scanf("%c",&account);
if(account=='1')
{
int k;
for(k=0;k<80;k++)
{
if(room[k].number==get_room_number(customer[j]))
room[k].state=0;
}
i--;
for(;j<i;j++)
{
customer[j]=customer[j+1];
}
free(customer[i]);
FCustomer();
}
}
}
}
//信息查詢***************************************************************************
void inquire()
{
char inquire_choice;
printf("房間信息查詢請按1, 顧客信息查詢請按2: ");
fflush(stdin);
scanf("%c",&inquire_choice);
if(inquire_choice=='1')
{
int j,k=0;
printf("\n");
printf("下列房間還沒人預訂,也沒人入住:\n");
for(j=0;j<80;j++)
{
if(room[j].state==0)
{
if(k%10==0)
printf("\n");
printf("%d\t",room[j].number);
k++;
}
}
printf("\n");
printf("\n");
k=0;
printf("下列房間已預訂:\n");
for(j=0;j<80;j++)
{
if(room[j].state==1)
{
if(k%10==0)
printf("\n");
printf("%d\t",room[j].number);
k++;
}
}
k=0;
printf("\n");
printf("\n");
printf("下列房間有人入住:\n");
for(j=0;j<80;j++)
{
if(room[j].state==2)
{
if(k%10==0)
printf("\n");
printf("%d\t",room[j].number);
k++;
}
}
printf("\n");
printf("\n");
}
else if(inquire_choice=='2')
{
char inquire_choice;
int j;
printf("按姓名查詢請按1, 按身份證查詢請按2: \n");
fflush(stdin);
scanf("%c",&inquire_choice);
if(inquire_choice=='1')
{
char name3[10];
printf("請輸入顧客的姓名: \n");
scanf("%s",&name3);
for(j=0;j<i;j++)
{
if(strcmp(get_name(customer[j]),name3)==0)
{
printf("%s的住房信息如下:\n",name3);
printf("\t房間號為: %d\n",get_room_number(customer[j]));
printf("\t預付房費為: %d\n",get_prepaid(customer[j]));
}
}
}
if(inquire_choice=='2')
{
char id3[10];
int j;
printf("請輸入顧客的身份證: \n");
scanf("%s",&id3);
for(j=0;j<i;j++)
{
if(strcmp(get_ID(customer[j]),id3)==0)
{
printf("%s的住房信息如下:\n",get_name(customer[j]));
printf("\t房間號為: %d\n",get_room_number(customer[j]));
printf("\t預付房費為: %d\n",get_prepaid(customer[j]));
}
}
}
}
}
//房間信息初始化*********************************************************************
void initial_room() //對80個房間進行初始化,分4個等級
{
int j,k=601;
for(j=0;j<20;j++)
{
room[j].number=k++;
room[j].dank=1;
room[j].price=150;
room[j].state=0;
}
k=701;
for(j=20;j<40;j++)
{
room[j].number=k++;
room[j].dank=2;
room[j].price=200;
room[j].state=0;
}
k=801;
for(j=40;j<60;j++)
{
room[j].number=k++;
room[j].dank=3;
room[j].price=300;
room[j].state=0;
}
k=901;
for(j=60;j<80;j++)
{
room[j].number=k++;
room[j].dank=4;
room[j].price=600;
room[j].state=0;
}
}