這個(gè)項(xiàng)目是我今年的C語(yǔ)言課設(shè)。做這個(gè)項(xiàng)目一個(gè)人大概用了一天的時(shí)間來(lái)完成,整體將近700行,量不是很多,所以也沒用多文件什么的,當(dāng)然也是采用了模塊化設(shè)計(jì)的思路,在代碼中寫了幾個(gè)函數(shù)來(lái)實(shí)現(xiàn)特定的功能。
成都創(chuàng)新互聯(lián)公司公司2013年成立,先為陜西等服務(wù)建站,陜西等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為陜西企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。
以下是這個(gè)項(xiàng)目的一些要求和全部源碼。
一、軟件開發(fā)目的
該軟件主要是使用C語(yǔ)言設(shè)計(jì)開發(fā)一個(gè)簡(jiǎn)單的車輛租賃管理系統(tǒng),實(shí)現(xiàn)租賃信息的查詢、修改、刪除、添加以及訂單的查詢等功能。
二、數(shù)據(jù)結(jié)構(gòu)
程序中采用結(jié)構(gòu)體數(shù)組存儲(chǔ)租賃信息。租賃結(jié)構(gòu)體成員包括:訂單號(hào)、身份證號(hào)、車牌號(hào)、費(fèi)用。數(shù)組的長(zhǎng)度不超過(guò)100。
三、軟件功能說(shuō)明
1.租賃信息的錄入和保存:
輸入租賃信息包括:訂單號(hào)、身份證號(hào)、車牌號(hào)、費(fèi)用。還車前費(fèi)用為0。在錄入數(shù)據(jù)的同時(shí),系統(tǒng)將對(duì)信息的合法性進(jìn)行檢驗(yàn),若錄入了不合法的數(shù)據(jù)系統(tǒng)應(yīng)作出提示,并且要求重新輸入。
2.顯示單條租賃信息:
將租賃信息在屏幕上列表輸出。要求先顯示提示信息“訂單號(hào)、身份證號(hào)、車牌號(hào)、費(fèi)用”,然后再顯示租賃信息,每行顯示一條租賃信息。
3.查詢單條租賃信息
輸入身份證號(hào)進(jìn)行查詢,輸出符合條件的租賃信息,輸出訂單號(hào)、身份證號(hào)、車牌號(hào)、費(fèi)用。
4.查詢每輛車的租賃費(fèi)用:
輸入車牌號(hào)進(jìn)行查詢,輸出該車所有租賃的總費(fèi)用。輸出車牌號(hào)、總費(fèi)用。
5.添加租賃信息
輸入新的租賃信息,將新的信息插入原租賃信息清單中,并將新的列表輸出,以方便用戶確認(rèn)。
6.修改、刪除租賃信息
通過(guò)身份證號(hào)對(duì)某條租賃信息進(jìn)行進(jìn)行修改和刪除,并將租賃信息列表輸出,以方便用戶確認(rèn)。
7.統(tǒng)計(jì):
(1)統(tǒng)計(jì)輸出當(dāng)月訂單總金額
(2)統(tǒng)計(jì)輸出訂單金額最高的車牌號(hào)
8.退出系統(tǒng),結(jié)束任務(wù)。
以下是該程序的全部代碼
#include#include #include #include #include HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE); int loop = 0; int menu(); int menu_2(); int menu_3(); void gotoxy(); void HideCursor(); void InsertInformation(); void PrintInformation(); void IdSearch(); void PlateNumber(); void ExitSystem(); void ReviseInformation(); void DeleteInformation(); void AddInformation(); void MoneySum(); void ChampionCar(); struct information{ int theOrderNumber; char IdNumber[20]; char PlateNumber[10]; double Cost; }car[999999]; int key; int main(){ HideCursor(); menu(); key = menu(); switch(key){ case 1: InsertInformation(); break; case 2: PrintInformation(); break; case 3: menu_2(); switch(menu_2()){ case 1: MoneySum(); break; case 2: ChampionCar(); break; case 3: system("cls"); main(); break; case 4: ExitSystem(); break; } break; case 4: ReviseInformation(); break; case 5: DeleteInformation(); break; case 6: AddInformation(); break; case 7: menu_3(); switch(menu_3()){ case 1: MoneySum(); break; case 2: ChampionCar(); break; case 3: system("cls"); main(); break; case 4: ExitSystem(); break; } break; case 8: ExitSystem(); break; } return 0; } void gotoxy(short x, short y) { COORD coord = { x,y };/*定義結(jié)構(gòu)體變量coord*/ SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),coord); } void HideCursor() { CONSOLE_CURSOR_INFO cursor_info = { 1,0 }; SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE),&cursor_info); } int menu(void){ int i,choose; gotoxy(50,5); for(i = 0;i < 20 ; i++){ printf("-"); } for(i = 0;i <5; i++){ gotoxy(49 - 2 * i,6 + i); printf("/"); } for(i = 0;i < 50;i++){ gotoxy(25+i,10); printf("-"); } for(i = 0;i < 5;i++){ gotoxy(25,11+i); printf("|"); } gotoxy(35,13); printf("歡迎使用汽車租賃管理系統(tǒng)"); gotoxy(40,15); printf("[1]信息錄入"); gotoxy(40,16); printf("[2]信息顯示"); gotoxy(40,17); printf("[3]查詢信息"); gotoxy(40,18); printf("[4]修改信息"); gotoxy(40,19); printf("[5]刪除信息"); gotoxy(40,20); printf("[6]追加信息"); gotoxy(40,21); printf("[7]統(tǒng)計(jì)信息"); gotoxy(40,22); printf("[8]退出"); gotoxy(40,26); printf("Zenith 版權(quán)所有"); gotoxy(40,23); printf("請(qǐng)選擇(1-8):"); scanf("%d",&choose); while(choose<1 || choose>8){ printf("請(qǐng)輸入范圍為1-8的整數(shù)"); gotoxy(40,23); printf("請(qǐng)選擇(1-8):"); scanf("%d",&choose); } return choose; } int menu_2(void){ system("cls"); int i,choose; gotoxy(50,5); for(i = 0;i < 20 ; i++){ printf("-"); } for(i = 0;i <5; i++){ gotoxy(49 - 2 * i,6 + i); printf("/"); } for(i = 0;i < 50;i++){ gotoxy(25+i,10); printf("-"); } for(i = 0;i < 5;i++){ gotoxy(25,11+i); printf("|"); } gotoxy(35,13); printf("歡迎使用汽車租賃管理系統(tǒng)"); gotoxy(40,15); printf("[1]按照身份證號(hào)檢索"); gotoxy(40,16); printf("[2]按照車牌號(hào)檢索"); gotoxy(40,17); printf("[3]返回主菜單"); gotoxy(40,18); printf("[4]退出系統(tǒng)"); gotoxy(40,26); printf("Zenith 版權(quán)所有"); gotoxy(40,23); printf("請(qǐng)選擇(1-4):"); scanf("%d",&choose); while(choose<1 || choose>8){ printf("請(qǐng)輸入范圍為1-4的整數(shù)"); gotoxy(40,23); printf("請(qǐng)選擇(1-4):"); scanf("%d",&choose); } return choose; } int menu_3(void){ system("cls"); int i,choose; gotoxy(50,5); for(i = 0;i < 20 ; i++){ printf("-"); } for(i = 0;i <5; i++){ gotoxy(49 - 2 * i,6 + i); printf("/"); } for(i = 0;i < 50;i++){ gotoxy(25+i,10); printf("-"); } for(i = 0;i < 5;i++){ gotoxy(25,11+i); printf("|"); } gotoxy(35,13); printf("歡迎使用汽車租賃管理系統(tǒng)"); gotoxy(40,15); printf("[1]查看車輛總收入"); gotoxy(40,16); printf("[2]查看盈利冠軍車輛"); gotoxy(40,17); printf("[3]返回主菜單"); gotoxy(40,18); printf("[4]退出系統(tǒng)"); gotoxy(40,26); printf("Zenith 版權(quán)所有"); gotoxy(40,23); printf("請(qǐng)選擇(1-4):"); scanf("%d",&choose); while(choose<1 || choose>8){ printf("請(qǐng)輸入范圍為1-4的整數(shù)"); gotoxy(40,23); printf("請(qǐng)選擇(1-4):"); scanf("%d",&choose); } return choose; } void InsertInformation(){ system("cls"); int a,k,j,x,one; double cost; int i = 0; do{ printf("\n----------------------------------------------------\n"); printf("\t ———信息錄入———\n\n"); fflush(stdin); //清空緩沖區(qū) printf("請(qǐng)輸入訂單號(hào)(1-999999):"); scanf("%d", &x); while( x<1 || x>100){ printf("訂單號(hào)范圍為1~100:"); scanf("%d", &x); } one=0; for(j=0;j < loop;j++){ if(x==car[j].theOrderNumber){ one=1; printf("\n記錄中已有!不得重復(fù)添加..."); getch(); system("cls"); menu(); } } if(one==0){ car[loop].theOrderNumber = x; } printf("請(qǐng)輸入身份證號(hào):"); getchar(); gets(car[loop].IdNumber); printf("請(qǐng)輸入車牌號(hào):"); scanf("%s",&car[loop].PlateNumber); printf("請(qǐng)輸入費(fèi)用:"); scanf("%lf", &cost); car[loop].Cost = cost; loop++; printf("\n添加完畢! 目前共有%d輛車!\n按1回到主界面!按2繼續(xù)添加信息!按其他鍵退出程序! ",loop); scanf("%d", &a); }while(a==2); if (a == 1){ system("cls"); main(); } if (a != 1){ ExitSystem(); } } void PrintInformation(){ system("cls"); int a,j; printf("\n----------------------------------------------------\n"); printf("\t ———信息顯示———\n\n"); if(loop == 0){ printf("Error,無(wú)數(shù)據(jù),請(qǐng)?zhí)砑訑?shù)據(jù)后再試\n"); } else{ gotoxy(3,5); printf("訂單號(hào)"); gotoxy(10,5); printf("身份證號(hào)"); gotoxy(32,5); printf("車牌號(hào)"); gotoxy(45,5); printf("費(fèi)用"); for(j = 0;j < loop;j++ ){ gotoxy(3,7+j); printf("%d",car[j].theOrderNumber); gotoxy(10,7+j); printf("%s",car[j].IdNumber); gotoxy(32,7+j); printf("%s",car[j].PlateNumber); gotoxy(45,7+j); printf("%f",car[j].Cost); } } printf("\n顯示完畢! 目前共有%d輛車!\n按1回到主界面!按其他鍵退出程序! ",loop); scanf("%d", &a); if (a == 1){ system("cls"); main(); } if (a != 1){ ExitSystem(); } } void IdSearch(){ char idnumber[20]; int i,j,a; do{ system("cls"); printf("\n----------------------------------------------------\n"); printf("\t ———查詢(按照身份證號(hào))———\n\n"); if(loop == 0){ gotoxy(3,5); printf("無(wú)數(shù)據(jù),請(qǐng)錄入數(shù)據(jù)后查詢,輸入任意鍵返回主菜單"); getch(); system("cls"); main(); } gotoxy(3,5); printf("請(qǐng)輸入需要查詢的身份證號(hào):"); scanf("%s",&idnumber); j = 0; for(i=0;i < loop;i++){ if(strcmp(idnumber,car[i].IdNumber) == 0){ j=1; gotoxy(3,7); printf("訂單號(hào)"); gotoxy(10,7); printf("身份證號(hào)"); gotoxy(32,7); printf("車牌號(hào)"); gotoxy(45,7); printf("費(fèi)用"); gotoxy(3,9); printf("%d",car[i].theOrderNumber); gotoxy(10,9); printf("%s",car[i].IdNumber); gotoxy(32,9); printf("%s",car[i].PlateNumber); gotoxy(45,9); printf("%f",car[i].Cost); break; } if(j == 0){ gotoxy(3,7); printf("對(duì)不起,未查詢到您輸入的身份證號(hào),請(qǐng)核實(shí)后重新輸入"); break; } } gotoxy(3,11); printf("查詢完成,輸入1繼續(xù)查詢,輸入2返回主菜單,按其他鍵退出程序!"); scanf("%d",&a); }while(a == 1); if (a == 2){ system("cls"); main(); } if (a != 1){ ExitSystem(); } } void PlateNumber(){ char platenumber[10]; int i,j,a; do{ system("cls"); printf("\n----------------------------------------------------\n"); printf("\t ———查詢(按照車牌號(hào))———\n\n"); if(loop == 0){ gotoxy(3,5); printf("無(wú)數(shù)據(jù),請(qǐng)錄入數(shù)據(jù)后查詢,輸入任意鍵返回主菜單"); getch(); system("cls"); main(); } gotoxy(3,5); printf("請(qǐng)輸入需要查詢的車牌號(hào):"); scanf("%s",&platenumber); j = 0; for(i=0;i < loop;i++){ if(strcmp(platenumber,car[i].PlateNumber) == 0){ j=1; gotoxy(3,7); printf("訂單號(hào)"); gotoxy(10,7); printf("身份證號(hào)"); gotoxy(32,7); printf("車牌號(hào)"); gotoxy(45,7); printf("費(fèi)用"); gotoxy(3,9); printf("%d",car[i].theOrderNumber); gotoxy(10,9); printf("%s",car[i].IdNumber); gotoxy(32,9); printf("%s",car[i].PlateNumber); gotoxy(45,9); printf("%f",car[i].Cost); break; } if(j == 0){ gotoxy(3,7); printf("對(duì)不起,未查詢到您輸入的車牌號(hào),請(qǐng)核實(shí)后重新輸入"); break; } } gotoxy(3,11); printf("查詢完成,輸入1繼續(xù)查詢,輸入2返回主菜單,按其他鍵退出程序!"); scanf("%d",&a); }while(a == 1); if (a == 2){ system("cls"); main(); } if (a != 1){ ExitSystem(); } } void ReviseInformation(){ char idnumber[20]; int i,j,a,b,c,cost; do{ system("cls"); printf("\n----------------------------------------------------\n"); printf("\t ———信息修改———\n\n"); if(loop == 0){ gotoxy(3,5); printf("無(wú)數(shù)據(jù),請(qǐng)錄入數(shù)據(jù)后查詢,輸入任意鍵返回主菜單"); getch(); system("cls"); main(); } gotoxy(3,5); printf("請(qǐng)輸入需要修改的信息的身份證號(hào):"); scanf("%s",&idnumber); j = 0; for(i=0;i < loop;i++){ if(strcmp(idnumber,car[i].IdNumber) == 0){ j=1; do{ system("cls"); printf("\n----------------------------------------------------\n"); gotoxy(3,6); printf("您想要修改的條目如下"); gotoxy(3,7); printf("訂單號(hào)"); gotoxy(10,7); printf("身份證號(hào)"); gotoxy(32,7); printf("車牌號(hào)"); gotoxy(45,7); printf("費(fèi)用"); gotoxy(3,9); printf("%d",car[i].theOrderNumber); gotoxy(10,9); printf("%s",car[i].IdNumber); gotoxy(32,9); printf("%s",car[i].PlateNumber); gotoxy(45,9); printf("%f",car[i].Cost); printf("\n\n\t ———信息修改———\n\n"); printf("請(qǐng)選擇需要修改的項(xiàng)目\n"); printf("\t[1]身份證號(hào)\n"); printf("\t[2]車牌號(hào)\n"); printf("\t[3]費(fèi)用\n"); scanf("%d",&b); switch(b){ case 1: printf("\n請(qǐng)輸入身份證號(hào):"); getchar(); gets(car[i].IdNumber); break; case 2: printf("\n請(qǐng)輸入車牌號(hào):"); scanf("%s",&car[i].PlateNumber); break; case 3: printf("請(qǐng)輸入費(fèi)用:"); scanf("%lf", &cost); car[i].Cost = cost; break; } printf("修改完成,輸入1繼續(xù)修改,輸入其他鍵結(jié)束對(duì)此條目的修改"); scanf("%d",&c); }while(c == 1); break; } if(j == 0){ gotoxy(3,7); printf("對(duì)不起,未查詢到您輸入的身份證號(hào),請(qǐng)核實(shí)后重新輸入"); break; } } gotoxy(3,15); printf("輸入1繼續(xù)修改其他條目,輸入2返回主菜單,按其他鍵退出程序!"); scanf("%d",&a); }while(a == 1); if (a == 2){ system("cls"); main(); } if (a != 1){ ExitSystem(); } } void DeleteInformation(){ int j,x,k; char idnumber[20]; system("cls"); printf("\n----------------------------------------------------\n"); printf("\t ———信息刪除———\n\n"); printf("\t 請(qǐng)輸入需要?jiǎng)h除的條目的身份證號(hào):"); scanf("%s",idnumber); k=0; for(j=0;j <= loop;j++){ if(strcmp(idnumber,car[j].IdNumber)==0){ k=1; for( x = j; x<=loop ; x++){ car[x]=car[x+1]; } loop--; printf("\n\t 刪除成功!"); break; } } if(k==0){ printf("\t 對(duì)不起,記錄中沒有此條目..."); printf("輸入任意鍵退出"); getch(); system("cls"); main(); } printf("輸入任意鍵退出"); getch(); system("cls"); main(); } void AddInformation(){ int i,x,j,one,row; double cost; loop++; system("cls"); printf("\n----------------------------------------------------\n"); printf("\t ———信息追加———\n\n"); gotoxy(3,5); if(loop == 1){ printf("請(qǐng)?jiān)阡浫胄畔⒑筮x擇此功能,按任意鍵退出!"); getch(); loop--; system("cls"); main(); } printf("請(qǐng)輸入在第幾行增添數(shù)據(jù)"); scanf("%d",&row); if(row >= loop){ do{ printf("輸入的行數(shù)必須小于已有的條目數(shù)!請(qǐng)重新輸入:"); scanf("%d",&row); }while(row<=loop); } for(i = loop;i >= row;i--){ car[i] = car[i - 1]; } printf("請(qǐng)輸入訂單號(hào)(1-100):"); scanf("%d", &x); while( x<1 || x>100){ printf("訂單號(hào)范圍為1~100:"); scanf("%d", &x); } one=0; for(j=0;j < loop;j++){ if(x==car[j].theOrderNumber){ one=1; printf("\n記錄中已有!不得重復(fù)添加..."); getch(); system("cls"); main(); } } if(one==0){ car[row].theOrderNumber = x; } printf("請(qǐng)輸入身份證號(hào):"); getchar(); gets(car[row].IdNumber); printf("請(qǐng)輸入車牌號(hào):"); scanf("%s",&car[row].PlateNumber); printf("請(qǐng)輸入費(fèi)用:"); scanf("%lf", &cost); car[row].Cost = cost; printf("\n\t追加完成,請(qǐng)按任意鍵返回主菜單"); getch(); system("cls"); main(); } void MoneySum(){ int i; double sum = 0; system("cls"); printf("\n----------------------------------------------------\n"); printf("\t ———信息統(tǒng)計(jì)(車輛總收入)———\n\n"); for(i = 0;i <= loop ; i++){ sum = sum + car[i].Cost; } gotoxy(3,5); printf("截至目前所有車輛總收入為%lf",sum); gotoxy(3,6); printf("按任意鍵返回主菜單"); getch(); system("cls"); main(); } void ChampionCar(){ int i,j; double high = 0; system("cls"); printf("\n----------------------------------------------------\n"); printf("\t ———信息統(tǒng)計(jì)(盈利冠軍車輛)———\n\n"); for(i = 0;i < loop;i++){ if(car[i].Cost >= high){ high = car[i].Cost; j = i; } } gotoxy(3,5); printf("截止目前盈利冠軍車輛為收入%lf元的%s",high,car[j].PlateNumber); gotoxy(3,6); printf("按任意鍵返回主菜單"); getch(); system("cls"); main(); } void ExitSystem(){ system("cls"); printf("\n退出系統(tǒng)中..."); Sleep(1000); exit(0); }
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持創(chuàng)新互聯(lián)。