第一篇:c語言課程設(shè)計案例精編第八章酒店客房管理系統(tǒng)vc實現(xiàn)
演講稿 工作總結(jié) 調(diào)研報告 講話稿 事跡材料 心得體會 策劃方案
c語言課程設(shè)計案例精編第八章酒店客房管理系統(tǒng)vc
實現(xiàn)
#include
#define TRUE 1 #define FALSE 0
#define N 200
/*定義酒店客房的最大數(shù)量,用戶可自行設(shè)置*/
/*與room記錄格式化輸出有關(guān)的宏定義*/ #define HEADER1 “| Number |Price| E_F| C_Name |
C_IC
|
Date
|CNum|C_AP| n” #define FORMAT1
“|%-10s|%5d|%4d|%-10s|%10s|%4d-%2d-%2d|%4d|%4d|n” #define DATA1
lll->num,lll->price,lll->empty_flag,lll->client_name,lll->client_ic,lll->client_date.da_year,lll->client_date.da_mon,lll->client_date.da_day,lll->client_
精心收集
精心編輯
精致閱讀
如需請下載!
演講稿 工作總結(jié) 調(diào)研報告 講話稿 事跡材料 心得體會 策劃方案
numdays,lll->client_ap
/*與member記錄格式輸出有關(guān)的宏定義*/ #define HEADER2 “|
Number
|
Name
| Sex|Age |
IC
|
Tele
| n” #define FORMAT2 “|%-12s|%-10s|%-4s|%4d|%15s|%15s|n” #define DATA2
lll->data.num,lll->data.name,lll->data.sex,lll->data.age,lll->data.ic,lll->data.tele
int saveflag=0;
//是否需要存盤的全局標志變量
//分別保存客房文件或會員文件中的記錄條int count1=0, count2;數(shù)
struct date {
int da_year;int da_mon;int da_day;}sysTime;int currentYear;/*保存當前年份*/
精心收集
精心編輯
精致閱讀
如需請下載!
演講稿 工作總結(jié) 調(diào)研報告 講話稿 事跡材料 心得體會 策劃方案
int currentMonth;/*保存當前月份*/ int currentDay;/*保存當前日期*/
/*定義與客房有關(guān)的數(shù)據(jù)結(jié)構(gòu)*/ typedef struct room
/*標記為room*/ { char
num[15];
/*客房編號*/ int
price;
/*客房價格*/ int
empty_flag;
/*客房空閑標記,1表示空閑,0表示未空閑*/ char
client_name[15];/*顧客姓名*/ char
client_ic[20];
/*顧客身份證號*/ struct date client_date;/*顧客入住日期*/ int
client_numdays;
/*顧客入住天數(shù)*/ int
client_ap;
/*顧客預付款advance payment(ap)入住時,除了房費,另收壓金至少100元,即ap>=price*client_numdays+100*/ }ROOM;ROOM GR[N];
//定義客房結(jié)構(gòu)數(shù)組
/*定義與會員有關(guān)的數(shù)據(jù)結(jié)構(gòu)*/
精心收集
精心編輯
精致閱讀
如需請下載!
演講稿 工作總結(jié) 調(diào)研報告 講話稿 事跡材料 心得體會 策劃方案
typedef struct member
/*標記為member*/ { char num[15];
/*會員編號*/ char name[15];
/*會員姓名*/ char sex[4];
/*會員性別M或F,Male:男性,F(xiàn)emale:女性*/ int age;
/*會員年齡*/ char ic[20];
/*會員身份證號*/ char tele[15];
/*會員聯(lián)系電話*/ };
/*定義每條會員記錄的數(shù)據(jù)結(jié)構(gòu),標記為:member_node*/ typedef struct member_node { struct member data;
/*數(shù)據(jù)域*/ struct member_node *next;
/*指針域*/ }Member_Node,*Member_Link;
/*Member_Node為member_node類型的結(jié)構(gòu)變量,*Member_Link為member_node類型的指針變量*/ Member_Node *p2,*r2;//定義會員記錄指針變量 Member_Link ll;//定義會員指針鏈表
精心收集
精心編輯
精致閱讀
如需請下載!
演講稿 工作總結(jié) 調(diào)研報告 講話稿 事跡材料 心得體會 策劃方案
/******************************↓函數(shù)聲明↓******************************/
//room相關(guān)
int AddRoom(ROOM tp[],int n);
//fucntion1 void QueryRoom(ROOM tp[],int n);//fucntion2 void ModifyRoom(ROOM tp[],int n);//fucntion3 int DelRoom(ROOM tp[],int n);void SortRoom(ROOM tp[],int n);
//function4 //function5 void CountRoom(ROOM tp[],int n);//function6 void SaveRoom(ROOM tp[],int n);
//member相關(guān)
void AddMember(Member_Link l);
//function7 void QueryMember(Member_Link l);//function8 void ModifyMember(Member_Link l);//function9 void DelMember(Member_Link l);void SortMember(Member_Link l);
//function10 //function11 void CountMember(Member_Link l);//function12 void SaveMember(Member_Link l);//R&R
精心收集
精心編輯
精致閱讀
如需請下載!
演講稿 工作總結(jié) 調(diào)研報告 講話稿 事跡材料 心得體會 策劃方案
void RegisterRoom(ROOM tp[],int n,Member_Link ll);void ReturnRoom(ROOM tp[],int n,Member_Link ll);
/******************************↑函數(shù)聲明↑******************************/
//function13 //function14 /******************************************************************* 作用:用于定位數(shù)組中符合要求的記錄,并返回保存該記錄的數(shù)組元素下標值
參數(shù):findmess[]保存要查找的具體內(nèi)容;nameornum[]保存按什么在數(shù)組中查找;********************************************************************/ int LocateRoom(ROOM tp[],int n,char findmess[],char nameornum[]){ int i=0;if(strcmp(nameornum,“num”)==0)/*按客房編號查詢*/ {
while(i { if(strcmp(tp[i].num,findmess)==0)/*若找到findmess客房編號的客 精心收集 精心編輯 精致閱讀 如需請下載! 演講稿 工作總結(jié) 調(diào)研報告 講話稿 事跡材料 心得體會 策劃方案 房記錄*/ return i; i++; } } else if(strcmp(nameornum,“name”)==0)/*按顧客姓名查詢已入住客房*/ { while(i { if(strcmp(tp[i].client_name,findmess)==0)/*若找到findmess 顧客姓名的客房記錄*/ return i; i++; } } return-1;/*若未找到,返回一個整數(shù)-1*/ } /************************************************************* 作用:用于定位會員鏈表中符合要求的節(jié)點,并返回指向該節(jié)點的指 精心收集 精心編輯 精致閱讀 如需請下載! 演講稿 工作總結(jié) 調(diào)研報告 講話稿 事跡材料 心得體會 策劃方案 針 參數(shù):findmess[]保存要查找的具體內(nèi)容;nameornum[]保存按什么查找; 在單鏈表l中查找;**************************************************************/ Member_Node* LocateMember(Member_Link l,char findmess[],char nameornum[]) { Member_Node *r; if(strcmp(nameornum,“num”)==0)/*按會員編號查詢*/ { r=l->next; while(r) { if(strcmp(r->data.num,findmess)==0)/*若找到findmess值的會員編號*/ return r; r=r->next; } } else if(strcmp(nameornum,“name”)==0)/*按會員姓名查詢*/ 精心收集 精心編輯 精致閱讀 如需請下載! 演講稿 工作總結(jié) 調(diào)研報告 講話稿 事跡材料 心得體會 策劃方案 { r=l->next; while(r) { if(strcmp(r->data.name,findmess)==0) /*若找到findmess值的會員姓名*/ return r; r=r->next; } } return 0;/*若未找到,返回一個空指針*/ } /***********倒計時函數(shù)***********/ void countdown(int i){ for(;i>0;i--){ Sleep(1000);printf(“bb”); 精心收集 精心編輯 精致閱讀 如需請下載! 演講稿 工作總結(jié) 調(diào)研報告 講話稿 事跡材料 心得體會 策劃方案 } } printf(“%d”,i);Sleep(1000);printf(“n”);/*輸入字符串,并進行長度驗證(長度 char n[255]; do{ printf(notice);/*顯示提示信息*/ scanf(“%s”,n);/*輸入字符串*/ if(strlen(n)>(size_t)lens) { printf(“exceed the required length!n”); } /*進行長度校驗,超過lens值重新輸入*/ 精心收集 精心編輯 精致閱讀 如需請下載! 演講稿 工作總結(jié) 調(diào)研報告 講話稿 事跡材料 心得體會 策劃方案 }while(strlen(n)>(size_t)lens); strcpy(t,n);/*將輸入的字符串拷貝到字符串t中*/ } /*判斷是否是閏年函數(shù)*/ int isLeapyear(int year){ /*閏年的判斷:(1)year被4整除,并且year不被100整除 或(2)year被4整除,并且year被400整除*/ if(year%4==0&&year%100||year%400==0) return 1; else return 0;} unsigned char* GetPassword(unsigned char*pw){ unsigned char ch;int i=0, hx_flag; 精心收集 精心編輯 精致閱讀 如需請下載! 演講稿 工作總結(jié) 調(diào)研報告 講話稿 事跡材料 心得體會 策劃方案 while(i < 30){ ch =(unsigned char)getch();hx_flag =TRUE; if(ch == 'r') //ch == 'r' <==> ch == 13 我說老是實現(xiàn)不了回車結(jié)束, == 用成 = 了 =_=|| { pw[i++]=0; //0-->null......p[0]=null; break; } else if(ch >= 32 && ch <= 126)/*所有可打印字符*/ { pw[i++]=ch; } else if(ch == 8 && i> 0)/*退格鍵*/ { pw[i--] = 0; hx_flag = FALSE; 精心收集 精心編輯 精致閱讀 如需請下載! // 演講稿 工作總結(jié) 調(diào)研報告 講話稿 事跡材料 心得體會 策劃方案 putchar(ch);putchar(' ');putchar(ch); } else hx_flag = FALSE;if(hx_flag)putchar('*');} pw[i]=0; //?-->解決數(shù)組顯示亂碼問題,MS注釋掉依舊不亂碼, 可能在判斷回車時, 已經(jīng)用了該語句 } void menu(){ char ch;//function15中 保存y,Y,n,N return pw;int selectNum; 精心收集 精心編輯 精致閱讀 如需請下載! 演講稿 工作總結(jié) 調(diào)研報告 講話稿 事跡材料 心得體會 策劃方案 ROOM GR[N]; /*定義客房結(jié)構(gòu)數(shù)組*/ //printf(“n”);system(“cls”);printf(“[ROOM] [Member] [R&R] //用笨方法:space, 不用tab printf(”1.Add 7.Add 13.Register printf(“2.Query 8.Query 14.Return printf(”3.Modify 9.Modify 15.Exit printf(“4.Delete 10.Delete printf(”5.Sort 11.Sort printf(“6.Count 12.Count //system(”pause“); //暫停, 并顯示”按任意鍵繼續(xù)“ //Sleep(1000);loop: printf(”n“);printf(”enter a number to selcet the function: “);scanf(”%d“,&selectNum); 精心收集 精心編輯 精致閱讀 如需請下載! n”);n“);n”);n“);n”);n“);n”); 演講稿 工作總結(jié) 調(diào)研報告 講話稿 事跡材料 心得體會 策劃方案 if(selectNum >15){ } switch(selectNum){ case 1: count1=AddRoom(GR,count1);break;case 2: QueryRoom(GR,count1);break;case 3: ModifyRoom(GR,count1);break; //增加客房記錄 printf(“no such a function, please try again!”);goto loop; //查詢客房服務(wù) //修改客房記錄 case 4: count1=DelRoom(GR,count1);break;//刪除客房記錄 case 5: SortRoom(GR,count1);break; case 7: AddMember(ll);break; //增加會員記錄 //查詢會員記錄 //修改會員記錄 case 6: CountRoom(GR,count1);break; //排序客房記錄 //統(tǒng)計客房記錄 case 8: QueryMember(ll);break; case 9: ModifyMember(ll);break; case 10:DelMember(ll);break; case 11:SortMember(ll);break; case 12:CountMember(ll);break; //刪除會員記錄 //排序會員記錄 //統(tǒng)計會員記錄 精心收集 精心編輯 精致閱讀 如需請下載! 演講稿 工作總結(jié) 調(diào)研報告 講話稿 事跡材料 心得體會 策劃方案 case 13:RegisterRoom(GR,count1,ll);break;case 14:ReturnRoom(GR,count1,ll);break;case 15: //登記住宿 //退宿 { system(“cls”); printf(“n=====>Are you really exit the Hotel Guest Room Management System?(y/n):n”); scanf(“%c”,&ch); printf(“testn”); if(ch=='y'||ch=='Y'){SaveRoom(GR,count1);SaveMember(ll);exit(0);} } 精心收集 精心編輯 精致閱讀 如需請下載! } 演講稿 工作總結(jié) 調(diào)研報告 講話稿 事跡材料 心得體會 策劃方案 } /***************與客房相關(guān)的函數(shù)*******************/ /************** 1.增加客房記錄 **************/ int AddRoom(ROOM tp[],int n){ char ch,flag=0,num[15]; int i; system(“cls”); while(1)/*一次可輸入多條記錄,直至輸入客房編號為0的記錄結(jié)點添加操作*/ { while(1)/*輸入客房編號,保證該客房編號沒有被使用,若輸入客房編號為00,則退出添加記錄操作*/ { 精心收集 精心編輯 精致閱讀 如需請下載! 演講稿 工作總結(jié) 調(diào)研報告 講話稿 事跡材料 心得體會 策劃方案 stringinput(num,15,“input room number(press '00'return menu):”);/*格式化輸入客房編號并檢驗*/ flag=0; if(strcmp(num,“00”)==0)/*輸入為00,則退出添加操作,返回主界面*/ {menu();} i=0; while(i { if(strcmp(tp[i].num,num)==0) { flag=1; break; } i++; } if(flag==1)/*提示用戶是否重新輸入*/ 精心收集 精心編輯 精致閱讀 如需請下載! 演講稿 工作總結(jié) 調(diào)研報告 講話稿 事跡材料 心得體會 策劃方案 { getchar(); printf(“=====>The number %s is existing,please try again(y/n)?”,num); scanf(“%c”,&ch); if(ch=='y'||ch=='Y') continue; else return n; } else {break;} } /*給客房記錄賦值*/ strcpy(tp[n].num,num);/*將字符串num拷貝到tp[n].num中*/ printf(“Room Price:”);scanf(“%d”,&tp[n].price); tp[n].empty_flag=1;/*客房空閑標記,1表示空閑,0表示未空閑*/ strcpy(tp[n].client_name,“");/*顧客姓名*/ strcpy(tp[n].client_ic,”“);/*顧客身份證號*/ tp[n].client_date.da_year=0;/*顧客入住日期*/ tp[n].client_date.da_mon=0; 精心收集 精心編輯 精致閱讀 如需請下載! 演講稿 工作總結(jié) 調(diào)研報告 講話稿 事跡材料 心得體會 策劃方案 tp[n].client_date.da_day=0; tp[n].client_numdays=0;/*顧客入住天數(shù)*/ tp[n].client_ap=0;/*顧客預付款初始為0,ap>=price*client_numdays+100*/ saveflag=1; n++; printf(”>>>>press any key to start next record!“); getchar();getchar(); } return n;} /************** 2.查詢客房記錄 **************/ void QueryRoom(ROOM tp[],int n)/*按客房編號或入住顧客姓名查詢*/ { int select;/*1:按客房編號查,2:按入住顧客姓名查,其他:返回主界面(菜單)*/ char searchinput[20];/*保存用戶輸入的查詢內(nèi)容*/ int p=0; 精心收集 精心編輯 精致閱讀 如需請下載! 演講稿 工作總結(jié) 調(diào)研報告 講話稿 事跡材料 心得體會 策劃方案 if(n<=0)/*若客房記錄為空*/ { system(”cls“); printf(”=====>No Room Record!n“); getchar();getchar(); return; } system(”cls“); cprintf(”=====>1 Search by room number =====>2 Search by client name“); cprintf(”please choice[1,2]:“); scanf(”%d“,&select); if(select==1) /*按客房編號查詢*/ { stringinput(searchinput,15,”input the existing room number:“); p=LocateRoom(tp,n,searchinput,”num“);/*在數(shù)組tp中查找編號為searchinput值的元素,并返回該數(shù)組元素的下標值*/ if(p!=-1)/*若p!=-1*/ {printf(”--------------“); printf(”Room Number:%s“,tp[p].num); printf(”Room Price:%d“,tp[p].price); 精心收集 精心編輯 精致閱讀 如需請下載! 演講稿 工作總結(jié) 調(diào)研報告 講話稿 事跡材料 心得體會 策劃方案 printf(”Room Empty_flag(1:Empty):%d“,tp[p].empty_flag); printf(”Client_name:%s“,tp[p].client_name); printf(”Client_ic:%s“,tp[p].client_ic); printf(”Client_date:%d-%d-%d“,tp[p].client_date.da_year,tp[p].client_date.da_mon,tp[p].client_date.da_day); printf(”Client_numdays:%d“,tp[p].client_numdays); printf(”Client_ap:%d“,tp[p].client_ap); printf(”--------------“); printf(”press any key to return“); getchar();getchar(); } else {printf(”=====>Not find this room!n“);getchar();getchar();} } else if(select==2)/*按入住顧客姓名查詢*/ { stringinput(searchinput,15,”input the existing client name:“); p=LocateRoom(tp,n,searchinput,”name“); if(p!=-1) { printf(”--------------“); 精心收集 精心編輯 精致閱讀 如需請下載! 演講稿 工作總結(jié) 調(diào)研報告 講話稿 事跡材料 心得體會 策劃方案 printf(”Room Number:%s“,tp[p].num); printf(”Room Price:%d“,tp[p].price); printf(”Room Empty_flag(1:Empty):%d“,tp[p].empty_flag); printf(”Client_name:%s“,tp[p].client_name); printf(”Client_ic:%s“,tp[p].client_ic); printf(”Client_date,%d-%d-%d“,tp[p].client_date.da_year,tp[p].client_date.da_mon,tp[p].client_date.da_day); printf(”Client_numdays:%d“,tp[p].client_numdays); printf(”Client_ap:%d“,tp[p].client_ap); printf(”------------ 精心收集 精心編輯 精致閱讀 如需請下載! 一、實踐的目的和要求 加深對《C語言》課程所學知識的理解,進一步鞏固C語言語法規(guī)則。學會編制結(jié)構(gòu)清晰、風格良好、數(shù)據(jù)結(jié)構(gòu)適當?shù)模谜Z言程序,從而具備解決綜合性實際問題的能力。 二、實踐內(nèi)容 在熟練掌握C語言的基本知識:數(shù)據(jù)類型(整形、實型、字符型、指針、數(shù)組、結(jié)構(gòu)等);運算類型(算術(shù)運算、邏輯運算、自增自減運算、賦值運算等);程序結(jié)構(gòu)(順序結(jié)構(gòu)、判斷選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu));大程序的功能分解方法(即函數(shù)的使用)等。進一步掌握各種函數(shù)的應(yīng)用,包括時間函數(shù)、繪圖函數(shù),以及文件的讀寫操作等。 三、實踐任務(wù) 1.歡迎畫面 2.學生成績管理系統(tǒng)(自己設(shè)計界面)3.異或加密與解密 (1)文件加密 (2)文件解密 說明:將某一已知文件的內(nèi)容以字符形式讀出,與密鑰(用戶從鍵盤輸入)的對應(yīng)字符進行異或操作即可,解密同樣如此。如:設(shè)原文為ab1234,密鑰為56,則有 ab1234 565656 按二進制進行異或操作即可得到密文(亂碼)。4.移位加密與解密(1)文件加密(2)文件解密 說明:將某一已知文件的內(nèi)容(限于英文字母)以字符形式讀出,根據(jù)密鑰k(用戶從鍵盤輸入)將對應(yīng)字符進行移位操作即可,解密時移動方向相反。 如:設(shè)原文為abcdef,密鑰為5,則有 abcdef 每個字母按字母表向后移動位(注:z后接a)fghijkl 可得到密文(亂碼)。5.輔助運算(1)整數(shù)N模m的乘法逆t 要求:輸入整數(shù)N和m,求出t,若t不存在,給出信息。提示:這三個數(shù)滿足:N*t%m=1,使用窮舉法。 例如:當N為11,m為26時,由于(11×19)%26=1,所以11模26的乘法逆為19。(2)統(tǒng)計字母個數(shù) 要求:輸入一段英文字母,統(tǒng)計各個字母的個數(shù),并按個數(shù)從大到小排序輸出。 提示:字母大小寫等價。輸出格式為:字母:個數(shù)。(3)OTP加密 要求:輸入同等長度的原文x和密鑰k(英文字母),根據(jù)公式 c=(x+k)%26 得到密文,并輸出。 提示:將26個字母按0~25編號,將原文字母和對應(yīng)位置的密鑰字母的編號按上述公式進行計算后得到一個新的字母。 四、設(shè)計流程圖 流程圖另附! 五、相關(guān)程序 1 歡迎畫面 #include initgraph(&gd,&gm,“c: urboc2”);Copy();DrawSnow();getch();closegraph();} void Copy(){ setcolor(0); setfillstyle(SOLID_FILL,15);fillellipse(200,200,4,4);size=imagesize(196,196,204,204);save1=malloc(size);save2=malloc(size); getimage(196,196,204,204,save1);getimage(96,96,104,104,save2);} void Pr(){ int s[15]={0,100,150,200,150,200,250,150,250,300,250,150,100,250,350};setcolor(change/10);settextstyle(0,0,4); outtextxy(150,200,“Welcome!!”);sound(s[change/10]);}void DrawSnow(){int i;int sx[62];randomize();for(i=0;i<62;i++)sx[i]=(i+2)*10;cleardevice();while(!kbhit()){ Pr(); if(snownum!=100){ snow[snownum].speed=2+random(5);i=random(62); snow[snownum].x=sx[i]; snow[snownum].y=10-random(100);} for(i=0;i putimage(snow[i].x,snow[i].y,save2,COPY_PUT);Pr(); if(snownum!=100)snownum++;/*delay(300);*/ setfillstyle(SOLID_FILL,15);for(i=0;i snow[i].y+=snow[i].speed; putimage(snow[i].x,snow[i].y,save1,COPY_PUT);if(snow[i].y>500) snow[i].y=10-random(200);} change++;if(change==140)change=10;} nosound();} 2學生成績管理系統(tǒng)(自己設(shè)計界面)#define N 1 struct student {char num[10];char name[10];int score[4];float ave;}stu[N];main() {int i,j,max,maxi,sum;float average;for(i=0;i {printf(“Please input scores of student %d :n”,i+1);printf(“NO.:”); scanf(“%s”,stu[i].num);printf(“name:”); scanf(“%s”,stu[i].name);for(j=0;j<3;j++) {printf(“score %d :”,j+1);scanf(“%d”,&stu[i].score[j]);} } average=0;max=0;maxi=0;for(i=0;i for(j=0;j<3;j++)sum+=stu[i].score[j];stu[i].ave=sum/3.0;average+=stu[i].ave;if(sum>max){max=sum;maxi=i;} } average/=N; printf(“ NO.name score1 score2 score3 averagen”);for(i=0;i {printf(“%5s”,stu[i].num); printf(“%10s”,stu[i].name);for(j=0;j<3;j++) printf(“%9d”,stu[i].score[j]);printf(“%8.2fn”,stu[i].ave);} printf(“average=%6.2fn”,average); printf(“The highest score is : %s,score total :%dn”,stu[maxi].name,max);getch();} 3.異或加密與解密 #include void jiami(char *in,char *pwd,char *out);void main(int argc,char *argv[]){ char in[30];char out[30];char pwd[8];if(argc!=4){ printf(“Input file name:n”);gets(in); printf(“Please enter password:n”);gets(pwd); printf(“Output file name:n”);gets(out); jiami(in,pwd,out);} else { strcpy(in,argv[1]);strcpy(pwd,argv[2]);strcpy(out,argv[3]);jiami(in,pwd,out);} } void jiami(char *in,char *pwd,char *out_file){ FILE *fp1,*fp2;register char ch;int j=0;int k=0; fp1=fopen(in,“rb”);if(fp1==NULL){ printf(“Cannot open in-file!n”);exit(1);} fp2=fopen(out_file,“wb”);if(fp2==NULL){ printf(“Cannot open or create output-file!n”);exit(1);} while(pwd[++k]);ch=fgetc(fp1);while(!feof(fp1)){ fputc(ch^pwd[j>=k?j=0:j++],fp2);ch=fgetc(fp1);} fclose(fp1);fclose(fp2);} 4.移位加密與解密 #include“stdio.h” main(){ int choice=0,k;FILE *fp1,*fp2; char c,filename1[30],filename2[30]; printf(“Please input two deferent filename:”);scanf(“%s%s”,filename1,filename2);printf(“Please input the password :n”);scanf(“%d”,&k); if((fp1=fopen(filename1,“r”))==NULL) printf(“nERROR!CAN NOT OPEN THE FILEn”);else{ fp2=fopen(filename2,“w”); printf(“nChoose:(1-jiami 2-jiemi)”);scanf(“%d”, &choice);switch(choice){ case 1: do{ c=getc(fp1); if(((c>='a')&&(c<='z'-k))||((c>='A')&&(c<='Z'-k)))putc(c+k,fp2); else if(((c>'z'-k)&&(c<='z'))||((c>'Z'-k)&&(c<='Z')))putc(c-(26-k),fp2);else putc(c,fp2);}while(c!=EOF);break;case 2: do{ c=getc(fp1); if(((c>='a'+k)&&(c<='z'))||((c>='A'+k)&&(c<='Z')))putc(c-k,fp2); else if(((c>='a')&&(c<'a'+k))||((c>='A')&&(c<'A'+k)))putc(c+(26-k),fp2);else putc(c,fp2);}while(c!=EOF);break; default: printf(“nYou have choose a wrong number!Please choose again!”);} } fclose(fp1);fclose(fp2);} 5.輔助運算 (1)整數(shù)N模m的乘法逆t main(){ unsigned n,m,t=1;int c; printf(“Please enter the number:n”);scanf(“%d,%d”,&n,&m);while(t<65535){ c=n*t%m;if(c==1||c==0)break;t++;} if(t==65535||c==0) printf(“Nicheng number is not exited!n”);if(c==1) printf(“T is : %dn”,t);getch();} (2)統(tǒng)計字母個數(shù) #include “string.h” main(){ int i,j,t; char a[80],b[26];int c[26];char e; printf(“Please enter the letters:n”);gets(a); for(i=0;i<26;i++)b[i]='A'+i;for(i=0;i<26;i++)c[i]=0; for(j=0;j<80;j++){for(i=0;i<26;i++){ if(a[j]==b[i]||a[j]==b[i]+32)c[i]++;} if(a[j]=='
第二篇:C語言課程設(shè)計報告-學生成績管理系統(tǒng)(vc)