最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C語言實現(xiàn)宿舍管理系統(tǒng)設(shè)計

 更新時間:2022年03月16日 11:16:26   作者:lzh~  
這篇文章主要為大家詳細介紹了C語言實現(xiàn)宿舍管理系統(tǒng)設(shè)計,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了C語言實現(xiàn)宿舍管理系統(tǒng)的具體代碼,供大家參考,具體內(nèi)容如下

設(shè)計目的

《數(shù)據(jù)結(jié)構(gòu)》課程主要介紹最常用的數(shù)據(jù)結(jié)構(gòu),進行數(shù)據(jù)結(jié)構(gòu)課程設(shè)計要達到以下目的:

(1)了解并掌握數(shù)據(jù)結(jié)構(gòu)與算法的設(shè)計方法,具備初步的獨立分析和設(shè)計能力;
(2)初步掌握軟件開發(fā)過程的問題分析、系統(tǒng)設(shè)計、程序編碼、測試等基本方法和技能;
(3)提高綜合運用所學的理論知識和方法獨立分析和解決問題的能力;
(4)訓練用系統(tǒng)的觀點和軟件開發(fā)一般規(guī)范進行軟件開發(fā),培養(yǎng)軟件工作者所應(yīng)具備的科學的工作方法和作風。

任務(wù)概述

設(shè)計內(nèi)容:

(1)輸入記錄(記錄數(shù)不少于12條)并建立數(shù)據(jù)文件,數(shù)據(jù)文件按關(guān)鍵字(姓名、 學號、房號)進行排序(冒泡、選擇、插入排序等任選兩種),每間房最多6人。
(2)顯示記錄;
(3)查找記錄,用二分法實現(xiàn)按姓名、學號、房號查詢;
(4)打印任一查詢結(jié)果;
(5)刪除記錄;
(6)能夠?qū)崿F(xiàn)連續(xù)操作,直至選擇退出為止。

設(shè)計要求:

(1)符合課題要求,實現(xiàn)相應(yīng)功能;
(2)要求界面友好美觀,操作方便易行;
(3)注意程序的實用性、安全性;

工作任務(wù):

(1) 選擇合適的數(shù)據(jù)結(jié)構(gòu),并定義數(shù)據(jù)結(jié)構(gòu)的結(jié)構(gòu)體;
(2)根據(jù)程序所要完成的基本要求和程序?qū)崿F(xiàn)提示,設(shè)計出完整的算法;
(3) 按格式要求寫出課程設(shè)計說明書。

項目源碼

涉及到的文件操作

文件名稱dorm.txt
luzehua 13 153
zhuyucheng 25 153
heshu 37 153
lijinagyang 19 153
quanghehng 31 153
lujinagbo 43 153
zhangjiatoa 44 155
lirngjie 14 155
qianxin 26 155
fanzijinag 34 175
zhangchengye 35 275

c源碼

#include<stdio.h>
#include<stdlib.h>
#include<string.h> ? ?
?
#define OK ?1
#define ERROR 0
#define OVERFLOW -2
?? ??? ? ? ? ??
#define LIST_INIT_SIZE 100 ? ? ? ? ? ? ? ? ? ? ? ? //線性表存儲空間的初始分配量
#define LISTINCREMENT 10 ? ? ? ? ? ? ? ? ?? ??? ? //線性表存儲空間的分配量增量

typedef int Status;

typedef struct{
?? ?char name[15];?? ??? ??? ??? ??? ?//名字
?? ?int No; ?? ??? ??? ??? ??? ??? ?//學號?
?? ?int Room;?? ??? ??? ??? ??? ??? ?//宿舍號?
}Student;

Student student;

typedef struct{
?? ?int length; ? ? ? ?? ??? ??? ??? ??? ??? ?//長度
?? ?int listsize; ? ? ?? ??? ??? ??? ??? ??? ?//占用內(nèi)存空間
?? ?Student *elem; ? ? ? ? ?? ??? ??? ??? ??? ?//引用對象Student的數(shù)據(jù)成員elem
}Linklist;

int flag=0;

Status init(Linklist &L);?? ??? ??? ??? ??? ?//初始化線性表?
Status create(Linklist &L);?? ??? ??? ??? ??? ?//創(chuàng)建線性表?
//冒泡排序?
Status MSortRoom(Linklist &L);?? ??? ??? ??? ?//按宿舍號排序?
Status MSortNo(Linklist &L);?? ??? ??? ??? ?//按學號排序?
Status MSortName(Linklist & L);?? ??? ??? ??? ?//按姓名排序?
//選擇排序?
Status XSortRoom(Linklist &L);?? ??? ??? ??? ?//按宿舍號排序?
Status XSortNo(Linklist &L);?? ??? ??? ??? ?//按學號排序?
Status XSortName(Linklist & L);?? ??? ??? ??? ?//按姓名排序?
//直接插入排序?
Status CSortRoom(Linklist &L);?? ??? ??? ??? ?//按宿舍號排序?
Status CSortNo(Linklist &L);?? ??? ??? ??? ?//按學號排序?
Status CSortName(Linklist &L);?? ??? ??? ??? ?//按姓名排序?

Status SearchRoom(Linklist &L);?? ??? ??? ? ? ? //按宿舍號查找?
Status SearchNo(Linklist &L);?? ??? ??? ??? ?//按學號查找?
Status SearchName(Linklist &L)?? ?;?? ??? ??? ?//按名字查找?

Status Judge1(char ch);?? ??? ??? ??? ??? ??? ?//判斷學生存在時是否繼續(xù)?
Status Judge2(char ch);?? ??? ??? ??? ??? ??? ?//判斷學生不存在是是否繼續(xù)?
Status Judge3();?? ??? ??? ??? ??? ??? ??? ?//判斷是否有學生記錄?
Status JudgeNO(int NO,Linklist L); ? ? ? ? ?//判斷學號是否重復(fù)?

void input(Linklist L);?? ??? ??? ??? ??? ??? ?//輸入學生信息?
void PrintSort(Linklist &L);?? ??? ??? ??? ?//輸出排序后的信息?
void PrintSearch(Linklist &L,int mid);?? ??? ?//輸出查找的信息 (按學號和姓名)?
void PrintSearch1(Linklist &L,int mid);?? ??? ?//輸出查找的信息(按房號)?

Status DeleteNO(Linklist &L);?? ??? ??? ??? ?//按學號刪除某同學的信息 ?? ?
Status DeleteName(Linklist &L);?? ??? ??? ??? ?//按姓名刪除某同學的信息?
Status DeleteRoom(Linklist &L);?? ??? ??? ??? ?//按宿舍號刪除某同學的信息?

Status insert(Linklist &L);?? ??? ??? ??? ??? ?//插入某同學的信息?

void JudgeSave(Linklist &L,int i);?? ??? ??? ?//文件存儲?
void Save(Linklist &L);
void Load(Linklist &L);?? ??? ??? ??? ??? ??? ?//文件加載?

Status ReturnMenu();?? ??? ??? ??? ??? ??? ?//返回菜單頁面?

//----------------------------------------------------------------菜單操作-------------------------------------------------------
void menu()
{
?? ?printf("\t\t ? ? ? ? ? ? ======================== ? ? ? ?\n");
?? ?printf("\t\t ? ? ? ? ? ?| ? ? ? ? ? ? ? ? ? ? ? | ? ? ? ?\n");
?? ?printf("\t\t ? |--------| ? ? 宿舍管理查詢 ? ? ?|-------|\n");
?? ?printf("\t\t ? | ? ? ? ?| ? ? ? ? ? ? ? ? ? ? ? | ? ? ? |\n");
?? ?printf("\t\t ? | ? ? ? ? ======================== ? ? ? |\n");
?? ?printf("\t\t ? | ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?|\n");
?? ?printf("\t\t ? | ? ? ? ? ? ?請選擇你的操作 : ? ? ? ? ? |\n");
?? ?printf("\t\t ? | ? ? ? ? ? ?[1]創(chuàng)建學生信息 ? ? ? ? ? ? |\n");
?? ?printf("\t\t ? | ? ? ? ? ? ?[2]按姓名排序(插入排序) ? ? |\n");
?? ?printf("\t\t ? | ? ? ? ? ? ?[3]按學號排序(插入排序) ? ? |\n");
?? ?printf("\t\t ? | ? ? ? ? ? ?[4]按房號排序(插入排序) ? ? |\n");
?? ?printf("\t\t ? | ? ? ? ? ? ?[5]按姓名排序(選擇排序) ? ? |\n");
?? ?printf("\t\t ? | ? ? ? ? ? ?[6]按學號排序(選擇排序) ? ? |\n");
?? ?printf("\t\t ? | ? ? ? ? ? ?[7]按房號排序(選擇排序) ? ? |\n");
?? ?printf("\t\t ? | ? ? ? ? ? ?[8]按姓名排序(冒泡排序) ? ? |\n");
?? ?printf("\t\t ? | ? ? ? ? ? ?[9]按學號排序(冒泡排序) ? ? |\n");
?? ?printf("\t\t ? | ? ? ? ? ? ?[10]按房號排序(冒泡排序) ? ?|\n");
?? ?printf("\t\t ? | ? ? ? ? ? ?[11]按姓名查找 ? ? ? ? ? ? ?|\n");
?? ?printf("\t\t ? | ? ? ? ? ? ?[12]按學號查找 ? ? ? ? ? ? ?|\n");
?? ?printf("\t\t ? | ? ? ? ? ? ?[13]按房號查找 ? ? ? ? ? ? ?|\n");
?? ?printf("\t\t ? | ? ? ? ? ? ?[14]插入學生信息 ? ? ? ? ? ?|\n");
?? ?printf("\t\t ? | ? ? ? ? ? ?[15]按學號刪除學生信息 ? ? ?|\n");
?? ?printf("\t\t ? | ? ? ? ? ? ?[16]按姓名刪除學生信息 ? ? ?|\n");
?? ?printf("\t\t ? | ? ? ? ? ? ?[17]按宿舍刪除學生信息 ? ? ?|\n");
?? ?printf("\t\t ? | ? ? ? ? ? ?[18]顯示學生記錄 ? ? ? ? ? ?|\n");
?? ?printf("\t\t ? | ? ? ? ? ? ?[19]文件加載 ? ? ? ? ? ? ? ?|\n");
?? ?printf("\t\t ? | ? ? ? ? ? ?[20]文件保存 ? ? ? ? ? ? ? ?|\n");
?? ?printf("\t\t ? | ? ? ? ? ? ?[21]退出操作 ? ? ? ? ? ? ? ?|\n");
?? ?printf("\t\t ? |-======================================-|\n");
?? ?printf("\t\t ? | ? ? ? ? ? ? ? ? 歡迎查詢 ? ? ? ? ? ? ? |\n");
?? ?printf("\t\t ? |-======================================-|\n");
?? ?printf("請選擇你要進行的操作(1/2/3/4/5/6/7/8/9/10/11/12/13/14/15/16/17/18/19/20/21):\n");
}

int main(int argc,char **argv)
{
?? ?int n;?
?? ?Linklist L; ? ? ? ? ? ??
?? ?init(L);
?? ? ? ? ? ? ? ??
?? ?char ch;
?? ?printf("\t\t歡迎進入宿舍管理查詢界面\n\n\n");
?? ?printf("請按任意鍵進行操作");
?? ?scanf("%c",&ch);
?? ?system("cls");
?? ?
?? ?while(1)
?? ?{ ??
?? ??? ?menu();
?? ??? ?scanf("%d",&n);
?? ??? ?getchar();
?? ??? ?system("cls"); ?
?? ??? ?switch(n) ?
?? ??? ?{
?? ??? ??? ?case 1:
?? ??? ??? ??? ?if(create(L)){
?? ??? ??? ??? ??? ?printf("創(chuàng)建成功!\n");
?? ??? ??? ??? ?}
?? ??? ??? ??? ?ReturnMenu();
?? ??? ??? ??? ?break;
?? ??? ??? ?case 2:
?? ??? ??? ??? ?CSortName(L); ? ? ??
?? ??? ??? ??? ?if(L.length==0) ? ? ?
?? ??? ??? ??? ?{ ? ? ??
?? ??? ??? ??? ??? ?printf("\n已無學生記錄\n"); ? ? ? ? ? ? ? ??
?? ??? ??? ??? ?} ? ? ? ?
?? ??? ??? ??? ?else{
?? ??? ??? ??? ??? ?printf("按姓名排序:\n"); ? ?
?? ??? ??? ??? ??? ?PrintSort(L);
?? ??? ??? ??? ?}?
?? ??? ??? ??? ?ReturnMenu(); ??
?? ??? ??? ??? ?break;
?? ??? ??? ?case 3:
?? ??? ??? ??? ?CSortNo(L); ? ? ??
?? ??? ??? ??? ?if(L.length==0) ? ? ?
?? ??? ??? ??? ?{ ? ? ??
?? ??? ??? ??? ??? ?printf("\n已無學生記錄\n"); ? ? ? ? ? ? ? ??
?? ??? ??? ??? ?} ? ? ? ?
?? ??? ??? ??? ?else{
?? ??? ??? ??? ??? ?printf("按學號排序:\n"); ? ?
?? ??? ??? ??? ??? ?PrintSort(L);
?? ??? ??? ??? ?}?
?? ??? ??? ??? ?ReturnMenu(); ??
?? ??? ??? ??? ?break;
?? ??? ??? ?case 4:
?? ??? ??? ??? ?CSortRoom(L); ? ? ??
?? ??? ??? ??? ?if(L.length==0) ? ? ?
?? ??? ??? ??? ?{ ? ? ??
?? ??? ??? ??? ??? ?printf("\n已無學生記錄\n"); ? ? ? ? ? ? ? ??
?? ??? ??? ??? ?} ? ? ? ?
?? ??? ??? ??? ?else{
?? ??? ??? ??? ??? ?printf("按房號排序:\n"); ? ?
?? ??? ??? ??? ??? ?PrintSort(L);
?? ??? ??? ??? ?}?
?? ??? ??? ??? ?ReturnMenu(); ??
?? ??? ??? ??? ?break; ? ??
?? ??? ??? ?case 5:
?? ??? ??? ??? ?XSortName(L); ? ? ? ? ? ? ? ? ? ??
?? ??? ??? ??? ?printf("\n"); ? ? ??
?? ??? ??? ??? ?if(L.length==0){
?? ??? ??? ??? ??? ?printf("已無學生記錄\n"); ? ??
?? ??? ??? ??? ??? ?printf("\n"); ? ? ? ?
?? ??? ??? ??? ??? ?ReturnMenu(); ? ? ? ?
?? ??? ??? ??? ?} ? ? ? ?
?? ??? ??? ??? ?else{ ? ?
?? ??? ??? ??? ??? ?printf("按姓名排序:\n"); ? ?
?? ??? ??? ??? ??? ?PrintSort(L); ? ?
?? ??? ??? ??? ??? ?ReturnMenu(); ? ? ? ??
?? ??? ??? ??? ?}
?? ??? ??? ??? ?break;?
?? ??? ??? ?case 6:
?? ??? ??? ??? ?XSortNo(L); ? ? ? ? ? ? ? ? ? ??
?? ??? ??? ??? ?printf("\n"); ? ? ??
?? ??? ??? ??? ?if(L.length==0){
?? ??? ??? ??? ??? ?printf("已無學生記錄\n"); ? ??
?? ??? ??? ??? ??? ?printf("\n"); ? ? ? ?
?? ??? ??? ??? ??? ?ReturnMenu(); ? ? ? ?
?? ??? ??? ??? ?} ? ? ? ?
?? ??? ??? ??? ?else{ ? ?
?? ??? ??? ??? ??? ?printf("按學號排序:\n"); ? ?
?? ??? ??? ??? ??? ?PrintSort(L); ? ?
?? ??? ??? ??? ??? ?ReturnMenu(); ? ? ? ??
?? ??? ??? ??? ?}
?? ??? ??? ??? ?break;
?? ??? ??? ?case 7:
?? ??? ??? ??? ?XSortRoom(L); ? ? ? ? ? ? ? ? ? ??
?? ??? ??? ??? ?printf("\n"); ? ? ??
?? ??? ??? ??? ?if(L.length==0){
?? ??? ??? ??? ??? ?printf("已無學生記錄\n"); ? ??
?? ??? ??? ??? ??? ?printf("\n"); ? ? ? ?
?? ??? ??? ??? ??? ?ReturnMenu(); ? ? ? ?
?? ??? ??? ??? ?} ? ? ? ?
?? ??? ??? ??? ?else{ ? ?
?? ??? ??? ??? ??? ?printf("按房號排序:\n"); ? ?
?? ??? ??? ??? ??? ?PrintSort(L); ? ?
?? ??? ??? ??? ??? ?ReturnMenu(); ? ? ? ??
?? ??? ??? ??? ?}
?? ??? ??? ??? ?break;
?? ??? ??? ?case 8:
?? ??? ??? ??? ?MSortName(L); ? ? ? ? ? ? ? ? ? ?
?? ??? ??? ??? ?printf("\n"); ? ??
?? ??? ??? ??? ?if(L.length==0){ ? ? ?
?? ??? ??? ??? ??? ?printf("已無學生記錄\n"); ? ? ? ? ? ?
?? ??? ??? ??? ??? ?ReturnMenu(); ? ? ?
?? ??? ??? ??? ?}
?? ??? ??? ??? ?else{
?? ??? ??? ??? ??? ?printf("按姓名排序:\n"); ?
?? ??? ??? ??? ??? ?PrintSort(L); ?
?? ??? ??? ??? ??? ?ReturnMenu(); ? ?
?? ??? ??? ??? ?}
?? ??? ??? ??? ?break;
?? ??? ??? ?case 9:
?? ??? ??? ??? ?MSortNo(L); ? ? ? ? ? ? ? ? ? ?
?? ??? ??? ??? ?printf("\n"); ? ??
?? ??? ??? ??? ?if(L.length==0){ ? ? ?
?? ??? ??? ??? ??? ?printf("已無學生記錄\n"); ? ? ? ? ? ?
?? ??? ??? ??? ??? ?ReturnMenu(); ? ? ?
?? ??? ??? ??? ?}
?? ??? ??? ??? ?else{
?? ??? ??? ??? ??? ?printf("按學號排序:\n"); ?
?? ??? ??? ??? ??? ?PrintSort(L); ?
?? ??? ??? ??? ??? ?ReturnMenu(); ? ?
?? ??? ??? ??? ?}
?? ??? ??? ??? ?break;
?? ??? ??? ? ? ? ? ?
?? ??? ??? ?case 10:
?? ??? ??? ??? ?MSortRoom(L); ? ? ? ? ? ? ? ? ? ?
?? ??? ??? ??? ?printf("\n"); ? ??
?? ??? ??? ??? ?if(L.length==0){ ? ? ?
?? ??? ??? ??? ??? ?printf("已無學生記錄\n"); ? ? ? ? ? ?
?? ??? ??? ??? ??? ?ReturnMenu(); ? ? ?
?? ??? ??? ??? ?}
?? ??? ??? ??? ?else{
?? ??? ??? ??? ??? ?printf("按房號排序:\n"); ?
?? ??? ??? ??? ??? ?PrintSort(L); ?
?? ??? ??? ??? ??? ?ReturnMenu(); ? ?
?? ??? ??? ??? ?}
?? ??? ??? ??? ?break; ?
?? ??? ??? ?case 11:
?? ??? ??? ??? ?CSortName(L); ? ? ? ? ? ??
?? ??? ??? ??? ?SearchName(L); ? ? ? ? ? ? ?
?? ??? ??? ??? ?break;
?? ??? ??? ?case 12:
?? ??? ??? ??? ?XSortNo(L); ? ? ? ? ? ? ??
?? ??? ??? ??? ?SearchNo(L); ? ? ? ? ? ? ? ?
?? ??? ??? ??? ?break;
?? ??? ??? ?case 13:
?? ??? ??? ??? ?MSortRoom(L); ? ? ? ? ? ? ? ?
?? ??? ??? ??? ?SearchRoom(L); ? ? ? ??
?? ??? ??? ??? ?break;
?? ??? ??? ?case 14:
?? ??? ??? ??? ?insert(L); ? ? ? ? ?
?? ??? ??? ??? ?system("cls"); ?
?? ??? ??? ??? ?printf("顯示插入后的學生信息:\n");
?? ??? ??? ??? ?PrintSort(L); ?
?? ??? ??? ??? ?ReturnMenu(); ? ??
?? ??? ??? ??? ?break;
?? ??? ??? ?case 15:
?? ??? ??? ??? ?DeleteNO(L);
?? ??? ??? ??? ?if(L.length==0){ ??
?? ??? ??? ??? ??? ?printf("\n學生記錄已被刪除完\n\n"); ? ? ? ?
?? ??? ??? ??? ?} ?
?? ??? ??? ??? ?else{ ?
?? ??? ??? ??? ??? ?printf("刪除后的學生信息:\n");
?? ??? ??? ??? ??? ?PrintSort(L); ? ? ?
?? ??? ??? ??? ?}
?? ??? ??? ??? ?ReturnMenu(); ? ??
?? ??? ??? ??? ?break;
?? ??? ??? ?case 16:
?? ??? ??? ??? ?DeleteName(L);
?? ??? ??? ??? ?if(L.length==0){ ??
?? ??? ??? ??? ??? ?printf("\n學生記錄已被刪除完\n\n"); ? ? ? ??
?? ??? ??? ??? ?} ?
?? ??? ??? ??? ?else{ ?
?? ??? ??? ??? ??? ?printf("刪除后的學生信息:\n");
?? ??? ??? ??? ??? ?PrintSort(L); ? ??
?? ??? ??? ??? ?} ? ?
?? ??? ??? ??? ?ReturnMenu();?
?? ??? ??? ??? ?break;
?? ??? ??? ?case 17:
?? ??? ??? ??? ?DeleteRoom(L);
?? ??? ??? ??? ?if(L.length==0){ ??
?? ??? ??? ??? ??? ?printf("\n該房間沒有學生\n\n"); ? ? ? ??
?? ??? ??? ??? ?} ?
?? ??? ??? ??? ?else{ ?
?? ??? ??? ??? ??? ?printf("刪除后的學生信息:\n");
?? ??? ??? ??? ??? ?PrintSort(L); ? ??
?? ??? ??? ??? ?} ? ?
?? ??? ??? ??? ?ReturnMenu();?
?? ??? ??? ??? ?break;
?? ??? ??? ?case 18:
?? ??? ??? ??? ?printf("\n學生信息為:\n");
?? ??? ??? ??? ?PrintSort(L);?
?? ??? ??? ??? ?ReturnMenu(); ? ? ? ?
?? ??? ??? ??? ?break;
?? ??? ??? ?case 19:
?? ??? ??? ? ? ?Load(L);
?? ??? ??? ? ? ?ReturnMenu();
?? ??? ??? ??? ?break;
?? ??? ??? ?case 20:
?? ??? ??? ??? ?JudgeSave(L,flag);
?? ??? ??? ??? ?ReturnMenu();
?? ??? ??? ??? ?break;?
?? ??? ??? ?case 21:
?? ??? ??? ??? ?exit(0);
?? ??? ??? ??? ?break;
?? ??? ??? ?default:
?? ??? ??? ??? ?printf("無此操作\n");
?? ??? ??? ??? ?ReturnMenu();
?? ??? ?}
?? ?}
?? ?return 0;
}

//-----------------------------------------------------------------------返回主界面----------------------------------------------------------------

Status ReturnMenu()?? ??? ??? ??? ??? ?
{
?? ?char c;
?? ?fflush(stdin);
?? ?printf("\n按任意鍵進入主界面:");
?? ?scanf("%c",&c);
?? ?system("cls");
?? ?return OK;
}

//---------------------------------------------------------------線性表初始化---------------------------------------------------

Status init(Linklist &L)
{
?? ?L.elem=(Student*)malloc(LIST_INIT_SIZE*sizeof(Student));
?? ?if(!L.elem)
?? ??? ?exit(OVERFLOW);
?? ?L.length=0;
?? ?L.listsize=LIST_INIT_SIZE;
?? ?return OK;
}


//-------------------------------------------------------------創(chuàng)建學生類信息表--------------------------------------------------

Status create(Linklist &L)
{
?? ?if(L.length>=L.listsize)
?? ?{
?? ??? ?Student *newbase;
?? ??? ?newbase=(Student*)realloc(L.elem,(LIST_INIT_SIZE+LISTINCREMENT)*sizeof(Student));
?? ??? ?L.elem=newbase;
?? ??? ?L.listsize+=LISTINCREMENT;
?? ?}
?? ?char ch='Y';
?? ?int i=0;
?? ?int room[1000]={0};
?? ?while(ch=='Y'){
?? ??? ?printf("請輸入第%d個學生信息\n",i+1);
?? ??? ?input(L);
?? ??? ?if(room[student.Room]+1>6){
?? ??? ??? ?printf("該宿舍已滿員!請重新輸入:\n");
?? ??? ??? ?input(L);?
?? ??? ?}
?? ??? ?strcpy(L.elem[L.length].name,student.name);
?? ??? ?L.elem[L.length].No=student.No;
?? ??? ?L.elem[L.length].Room=student.Room;
?? ??? ?L.length++;
?? ??? ?i++;
?? ??? ?room[student.Room]++;
?? ??? ?ch=getchar();
?? ??? ?printf("\n是否繼續(xù)添加學生:是的話按Y,否則按任意鍵返回:");
?? ??? ?scanf("%c",&ch);
?? ??? ?flag=1;
?? ?}
?? ?if(ch!='Y')
?? ??? ?system("cls");
?? ?return OK;
}

//--------------------------------------------------------------按照宿舍號排序(冒泡排序)--------------------------------------------------------
Status MSortRoom(Linklist & L)?? ??? ?
{
?? ?int i,j;
?? ?Student temp;
?? ?for(i=0;i<L.length-1;i++)
?? ?for(j=i+1;j<L.length;j++)
?? ?if(L.elem[i].Room>L.elem[j].Room)
?? ?{
?? ??? ?temp=L.elem[i];
?? ??? ?L.elem[i]=L.elem[j];
?? ??? ?L.elem[j]=temp;
?? ?}
?? ?return OK;
}
//-------------------------------------------------------------------按照宿舍號排序(選擇排序)-------------------------------------------------------------

Status XSortRoom(Linklist & L)?? ??? ?
{
?? ?int i,j,k;
?? ?Student temp;
?? ?for(i=0;i<L.length-1;i++){
?? ??? ?k=i;
?? ??? ?for(j=i+1;j<L.length;++j)
?? ??? ??? ?if(L.elem[k].Room>L.elem[j].Room)
?? ??? ??? ??? ?k=j;
?? ??? ?if(i!=k){
?? ??? ??? ?temp=L.elem[i];
?? ??? ??? ?L.elem[i]=L.elem[k];
?? ??? ??? ?L.elem[k]=temp;
?? ??? ?}
?? ?}
?? ?
?? ?return OK;
}


//--------------------------------------------------------------------------按照宿舍排序(插入排序)--------------------------------------------------------------
Status CSortRoom(Linklist &L)?? ?
{
?? ?int i,j;
?? ?Student temp;
?? ?for(i=1;i<L.length;++i){
?? ??? ?if(L.elem[i].Room<L.elem[i-1].Room){
?? ??? ??? ?temp=L.elem[i];
?? ??? ??? ?for(j=i-1;temp.Room<L.elem[j].Room;--j)
?? ??? ??? ??? ?L.elem[j+1]=L.elem[j];
?? ??? ??? ?L.elem[j+1]=temp;
?? ??? ?}
?? ?}
?? ?return OK;
}


//--------------------------------------------------------------按照學號排序(冒泡排序)--------------------------------------------------------
Status MSortNo(Linklist & L)?? ??? ?
{
?? ?int i,j;
?? ?Student temp;
?? ?for(i=0;i<L.length-1;i++)
?? ?for(j=i+1;j<L.length;j++)
?? ?if(L.elem[i].No>L.elem[j].No)
?? ?{
?? ??? ?temp=L.elem[i];
?? ??? ?L.elem[i]=L.elem[j];
?? ??? ?L.elem[j]=temp;
?? ?}
?? ?return OK;
}


//-------------------------------------------------------------------按照學號排序(選擇排序)-------------------------------------------------------------

Status XSortNo(Linklist & L)?? ??? ?
{
?? ?int i,j,k;
?? ?Student temp;
?? ?for(i=0;i<L.length-1;i++){
?? ??? ?k=i;
?? ??? ?for(j=i+1;j<L.length;++j)
?? ??? ??? ?if(L.elem[k].No>L.elem[j].No)
?? ??? ??? ??? ?k=j;
?? ??? ?if(i!=k){
?? ??? ??? ?temp=L.elem[i];
?? ??? ??? ?L.elem[i]=L.elem[k];
?? ??? ??? ?L.elem[k]=temp;
?? ??? ?}
?? ?}
?? ?
?? ?return OK;
}

//--------------------------------------------------------------------------按照學號排序(插入排序)--------------------------------------------------------------
Status CSortNo(Linklist &L)?? ?
{
?? ?int i,j;
?? ?Student temp;
?? ?for(i=1;i<L.length;++i){
?? ??? ?if(L.elem[i].No<L.elem[i-1].No){
?? ??? ??? ?temp=L.elem[i];
?? ??? ??? ?for(j=i-1;temp.No<L.elem[j].No;--j)
?? ??? ??? ??? ?L.elem[j+1]=L.elem[j];
?? ??? ??? ?L.elem[j+1]=temp;
?? ??? ?}
?? ?}
?? ?return OK;
}

//--------------------------------------------------------------按照姓名排序(冒泡排序)--------------------------------------------------------
Status MSortName(Linklist & L)?? ??? ?
{
?? ?int i,j;
?? ?Student temp;
?? ?for(i=0;i<L.length-1;i++)
?? ?for(j=i+1;j<L.length;j++)
?? ?if(strcmp(L.elem[i].name,L.elem[j].name)>0)
?? ?{
?? ??? ?temp=L.elem[i];
?? ??? ?L.elem[i]=L.elem[j];
?? ??? ?L.elem[j]=temp;
?? ?}
?? ?return OK;
}


//-------------------------------------------------------------------按照姓名排序(選擇排序)-------------------------------------------------------------

Status XSortName(Linklist & L)?? ??? ?
{
?? ?int i,j,k;
?? ?Student temp;
?? ?for(i=0;i<L.length-1;i++){
?? ??? ?k=i;
?? ??? ?for(j=i+1;j<L.length;++j)
?? ??? ??? ?if(strcmp(L.elem[k].name,L.elem[j].name)>0)
?? ??? ??? ??? ?k=j;
?? ??? ?if(i!=k){
?? ??? ??? ?temp=L.elem[i];
?? ??? ??? ?L.elem[i]=L.elem[k];
?? ??? ??? ?L.elem[k]=temp;
?? ??? ?}
?? ?}
?? ?
?? ?return OK;
}

//--------------------------------------------------------------------------按照姓名排序(插入排序)--------------------------------------------------------------
Status CSortName(Linklist &L)?? ?
{
?? ?int i,j;
?? ?Student temp;
?? ?for(i=1;i<L.length;++i){
?? ??? ?if(strcmp(L.elem[i].name,L.elem[i-1].name)<0){
?? ??? ??? ?temp=L.elem[i];
?? ??? ??? ?for(j=i-1;strcmp(temp.name,L.elem[j].name)<0;--j)
?? ??? ??? ??? ?L.elem[j+1]=L.elem[j];
?? ??? ??? ?L.elem[j+1]=temp;
?? ??? ?}
?? ?}
?? ?return OK;
}

//-------------------------------------------------------------------------按房號查找(折半查找)----------------------------------------------------------

Status SearchRoom(Linklist &L)
{
?? ?if(L.length==0)
?? ??? ?Judge3();
?? ?else
?? ?{
?? ??? ?int low=0,high=L.length,m,temp;
?? ??? ?int r;
?? ??? ?printf("\n按房號查找 ? 輸入房號:");
?? ??? ?scanf("%d",&r);
?? ??? ?printf("\n查找成功 ? 學生信息為\n");
?? ??? ?printf("\t\t姓名 ? ? ? ? ? ? ? ? ? ? ? ?學號 ? ? ? 房號\n");
?? ??? ?while(low<=high)
?? ??? ?{
?? ??? ??? ?m=(low+high)/2;
?? ??? ??? ?if(r==L.elem[m].Room)
?? ??? ??? ?{
?? ??? ??? ??? ?temp=1;
?? ??? ??? ??? ?PrintSearch1(L,m);
?? ??? ??? ??? ?for(int k=m;k>low;k--){
?? ??? ??? ??? ??? ?if(L.elem[k].Room==L.elem[k-1].Room)
?? ??? ??? ??? ??? ??? ?PrintSearch1(L,k-1);
?? ??? ??? ??? ?}
?? ??? ??? ??? ?for(int k=m;k<high;++k){
?? ??? ??? ??? ??? ?if(L.elem[k].Room==L.elem[k+1].Room){
?? ??? ??? ??? ??? ??? ?PrintSearch1(L,k+1);
?? ??? ??? ??? ??? ?}
?? ??? ??? ??? ?}
?? ??? ??? ??? ?break;
?? ??? ??? ?}
?? ??? ??? ?else if(r>L.elem[m].Room)
?? ??? ??? ??? ?low=m+1;
?? ??? ??? ?else
?? ??? ??? ??? ?high=m-1;
?? ??? ?}
?? ??? ?if(temp==1)
?? ??? ?{
?? ??? ??? ?
?? ??? ??? ?if(Judge1(1))?
?? ??? ??? ??? ?SearchRoom(L);
?? ??? ??? ?else
?? ??? ??? ?{
?? ??? ??? ??? ?system("cls");
?? ??? ??? ?}
?? ??? ?}
?? ??? ?else
?? ??? ?{
?? ??? ??? ?if(Judge2(1))
?? ??? ??? ??? ?SearchRoom(L);
?? ??? ??? ?else
?? ??? ??? ?{
?? ??? ??? ??? ?system("cls");
?? ??? ??? ?}
?? ??? ?}
?? ?}
?? ?return OK;
}

//-------------------------------------------------------------------------按學號查找(折半查找)--------------------------------------------------------
Status SearchNo(Linklist &L)
{
?? ?if(L.length==0)
?? ?{
?? ??? ?Judge3();
?? ?}
?? ?else
?? ?{
?? ??? ?int low=0,high=L.length,m,temp=0;?? ??? ??? ??? ??? ?
?? ??? ?int n;
?? ??? ?printf("\n按學號查找 ? 輸入學號:");
?? ??? ?scanf("%d",&n);
?? ??? ?while(low<=high)
?? ??? ?{
?? ??? ??? ?m=(low+high)/2;
?? ??? ??? ?if(n==L.elem[m].No)
?? ??? ??? ?{
?? ??? ??? ??? ?temp=1;
?? ??? ??? ??? ?break;
?? ??? ??? ?}
?? ??? ??? ?else if(n>L.elem[m].No)
?? ??? ??? ??? ?low=m+1;
?? ??? ??? ?else
?? ??? ??? ??? ?high=m-1;
?? ??? ?}
?? ??? ?if(temp==1)
?? ??? ?{
?? ??? ??? ?PrintSearch(L,m);
?? ??? ??? ?if(Judge1(1))
?? ??? ??? ??? ?SearchNo(L);
?? ??? ??? ?else
?? ??? ??? ?{
?? ??? ??? ??? ?system("cls");
?? ??? ??? ?}
?? ??? ?}
?? ??? ?else
?? ??? ?{
?? ??? ??? ?if(Judge2(1))
?? ??? ??? ??? ?SearchNo(L);
?? ??? ??? ?else
?? ??? ??? ?{
?? ??? ??? ??? ?system("cls");
?? ??? ??? ?}?? ?
?? ??? ?}?? ?
?? ?}
?? ?return OK;
}

//-------------------------------------------------------------------------按姓名查找(折半查找)----------------------------------------------------------
Status SearchName(Linklist &L)?? ??? ?
{
?? ?if(L.length==0)
?? ??? ?Judge3();
?? ?else
?? ?{
?? ??? ?int low=0,high=L.length,m,temp=0;?
?? ??? ?printf("\n按姓名查找 ? 輸入姓名:");
?? ??? ?char a[15];
?? ??? ?scanf("%s",a);
?? ??? ?while(low<=high)
?? ??? ?{
?? ??? ??? ?m=(low+high)/2;
?? ??? ??? ?if(strcmp(a,L.elem[m].name)==0)
?? ??? ??? ?{
?? ??? ??? ??? ?temp=1;
?? ??? ??? ??? ?break;
?? ??? ??? ?}
?? ??? ??? ?else if(strcmp(a,L.elem[m].name)>0)
?? ??? ??? ??? ?low=m+1;
?? ??? ??? ?else
?? ??? ??? ??? ?high=m-1;
?? ??? ?}
?? ??? ?if(temp==1)
?? ??? ?{
?? ??? ??? ?PrintSearch(L,m);
?? ??? ??? ?if(Judge1(1))
?? ??? ??? ??? ?SearchName(L);
?? ??? ??? ?else
?? ??? ??? ?{
?? ??? ??? ??? ?system("cls");
?? ??? ??? ?}
?? ??? ?}
?? ??? ?else
?? ??? ?{
?? ??? ??? ?if(Judge2(1))
?? ??? ??? ??? ?SearchName(L);
?? ??? ??? ?else
?? ??? ??? ?{
?? ??? ??? ??? ?system("cls");
?? ??? ??? ?}
?? ??? ?}
?? ?}
?? ?return OK;
}


//------------------------------------------------------------------------判斷是否繼續(xù)查找---------------------------------------------------------
Status Judge1(char ch)?? ??? ??? ?
{
?? ?scanf("%c",&ch);
?? ?printf("是否繼續(xù):是的話按Y,否則按任意鍵返回:");
?? ?scanf("%c",&ch);
?? ?if(ch=='Y')
?? ?{
?? ??? ?system("cls");
?? ??? ?return OK;
?? ?}
?? ?else
?? ??? ?return ERROR;
}

//-----------------------------------------------------------------------判斷不存在是否繼續(xù)查找--------------------------------------------------------

Status Judge2(char ch)
{
?? ?scanf("%c",&ch);
?? ?printf("沒有此學生,是否繼續(xù):是的話按Y,否則按任意鍵返回");
?? ?fflush(stdin);
?? ?scanf("%c",&ch);
?? ?if(ch=='Y')
?? ?{
?? ??? ?system("cls");
?? ??? ?return OK;
?? ?}
?? ?else
?? ??? ?return ERROR;
}

//--------------------------------------------------------------------無學生記錄返回主界面------------------------------------------------------------------

Status Judge3()?? ??? ?
{
?? ?printf("已經(jīng)沒有學生記錄\n");
?? ?ReturnMenu();
?? ?menu();
?? ?return OK;
}

//------------------------------------------------------------------------判斷學生學號是否一樣--------------------------------------------------------------?
Status JudgeNO(int NO,Linklist L)
{
?? ?int j=0;
?? ?for(int i=0;i<L.length;i++){
?? ??? ?if(NO==L.elem[i].No)
?? ??? ??? ?j++;
?? ?}
?? ?if(j==1){
?? ??? ?printf("該學號已經(jīng)存在,請重新輸入!\n");
?? ??? ?input(L);
?? ?}
?? ?return OK;
}?? ?

//------------------------------------------------------------------------輸入學生信息----------------------------------------------------------------?
void input(Linklist L)
{
?? ?printf("輸入學生姓名:\n");
?? ?fflush(stdin);
?? ?gets(student.name);
?? ?printf("輸入學生宿舍號:\n");
?? ?scanf("%d",&student.Room);
?? ?
?? ?printf("輸入學生學號:\n");
?? ?fflush(stdin);
?? ?scanf("%d",&student.No);
?? ?
?? ?JudgeNO(student.No,L);
}

//-----------------------------------------------------------------------輸出學生排序的信息-------------------------------------------------------------

void PrintSort(Linklist & L)?? ??? ?
{
?? ?int i;
?? ?printf("\n");
?? ?printf("\t\t姓名 ? ? ? ? ? ? ? ? ? ? ? ?學號 ? ? ? ? 房號\n");
?? ?for(i=0;i<L.length ;i++)
?? ??? ?printf("\t\t%-20s %10d ? %10d\n",L.elem[i].name,L.elem[i].No,L.elem[i].Room);
}

//-----------------------------------------------------------------輸出查找學生的信息(按學號或姓名)----------------------------------------------------

void PrintSearch(Linklist & L,int mid)?? ?
{
?? ?printf("查找成功 ? 學生信息為\n");
?? ?printf("\t\t姓名 ? ? ? ? ? ? ? ? ? ? ? ?學號 ? ? ? ? 房號\n");
?? ?printf("\t\t%-20s %10d ? %10d\n",L.elem[mid].name,L.elem[mid].No,L.elem[mid].Room);
}

//------------------------------------------------------------------------輸出查找學生的信息(按房號)-------------------------------------------------------------

void PrintSearch1(Linklist & L,int mid)?? ?
{
?? ?printf("\t\t%-20s %10d %10d\n",L.elem[mid].name,L.elem[mid].No,L.elem[mid].Room);
}


//-------------------------------------------------------------------------插入學生信息-------------------------------------------------------------

Status insert(Linklist & L)?? ??? ?
{
?? ?int i,j,k;
?? ?int room[1000]={0};
?? ?char ch;
?? ?printf("\n插入學生信息為:\n");
?? ?input(L);?
?? ?if(room[student.Room]+1>6){
?? ??? ?printf("該宿舍已滿員,請重新輸入:\n");
?? ??? ?input(L);
?? ?}
?? ?if(L.length==0)
?? ?{
?? ??? ?strcpy(L.elem[L.length].name,student.name);
?? ??? ?L.elem[L.length].No=student.No;
?? ??? ?L.elem[L.length].Room=student.Room;
?? ??? ?flag=1;
?? ?}
?? ?for(i=0;i<L.length;i++)
?? ?{
?? ??? ?strcpy(L.elem[L.length].name,student.name);
?? ??? ?L.elem[L.length].No=student.No;
?? ??? ?L.elem[L.length].Room=student.Room;
?? ??? ?room[student.Room]++;
?? ??? ?flag=1;
?? ?}
?? ?L.length++;
?? ?fflush(stdin);
?? ?printf("\n是否繼續(xù)插入:是的話按Y,否則按任意鍵返回");
?? ?scanf("%c",&ch);
?? ?if(ch=='Y')
?? ??? ?insert(L);
?? ?else
?? ??? ?system("cls");
?? ?return OK;
}

//-------------------------------------------------------------------------按學號刪除-------------------------------------------------------

Status DeleteNO(Linklist &L)?? ?
{ ??
?? ?int i,j,k=-1; ??
?? ?char ch; ? ?
?? ?printf("\n\n請輸入要刪除學生的學號:"); ??
?? ?scanf("%d",&student.No); ??
?? ?for(i=0;i<L.length;i++) ??
?? ?{ ? ?
?? ??? ?if(student.No==L.elem[i].No) ? ?
?? ??? ?{ ? ??
?? ??? ??? ?printf("該學生的信息為:\n"); ?
?? ??? ??? ?printf("\t\t姓名 ? ? ? ? ? ? ? ? ? ? ? ?學號 ? ? ? ? 房號\n");
?? ??? ??? ?printf("\t\t%-20s %10d ? %10d\n",L.elem[i].name,L.elem[i].No,L.elem[i].Room); ? ?
?? ??? ??? ?k=i; ? ??
?? ??? ??? ?for(j=k;j<L.length-1;j++) ? ? ?
?? ??? ??? ??? ?L.elem[j]=L.elem[j+1]; ? ? ? ? ? ? ?
?? ??? ??? ?break; ? ?
?? ??? ?} ? ? ? ??
?? ?} ??
?? ?if(i>=L.length)?
?? ??? ?printf("該學生不存在\n"); ??
?? ?if(k>=0)
?? ??? ?L.length--; ??
?? ?fflush(stdin); ? ??
?? ?printf("\n是否繼續(xù)刪除?是的話按Y,否則按任意鍵返回:"); ??
?? ?scanf("%c",&ch); ??
?? ?system("cls"); ??
?? ?if(ch=='Y')?
?? ??? ?DeleteNO(L); ??
?? ?else?
?? ??? ?system("cls");
?? ?return OK;
}

//-------------------------------------------------------------------------按姓名刪除-------------------------------------------------------

Status DeleteName(Linklist &L)?? ?
{ ??
?? ?int i,j,k=-1; ??
?? ?char ch; ? ?
?? ?printf("\n\n請輸入要刪除學生的姓名:"); ??
?? ?gets(student.name); ??
?? ?for(i=0;i<L.length;i++) ??
?? ?{ ? ?
?? ??? ?if(strcmp(student.name,L.elem[i].name)==0) ? ?
?? ??? ?{ ? ??
?? ??? ??? ?printf("該學生的信息為:\n"); ?
?? ??? ??? ?printf("\t\t姓名 ? ? ? ? ? ? ? ? ? ? ? ?學號 ? ? ? ? 房號\n");
?? ??? ??? ?printf("\t\t%-20s %10d ? %10d\n",L.elem[i].name,L.elem[i].No,L.elem[i].Room); ? ??
?? ??? ??? ?k=i; ? ??
?? ??? ??? ?for(j=k;j<L.length-1;j++) ? ? ?
?? ??? ??? ??? ?L.elem[j]=L.elem[j+1]; ? ? ? ? ? ? ?
?? ??? ??? ?break; ? ?
?? ??? ?} ? ? ? ??
?? ?} ??
?? ?if(i>=L.length)?
?? ??? ?printf("該學生不存在\n"); ??
?? ?if(k>=0)
?? ??? ?L.length--; ??
?? ?fflush(stdin); ? ??
?? ?printf("\n是否繼續(xù)刪除?是的話按Y,否則按任意鍵返回:"); ??
?? ?scanf("%c",&ch); ??
?? ?system("cls"); ??
?? ?if(ch=='Y')?
?? ??? ?DeleteName(L); ??
?? ?else?
?? ??? ?system("cls");
?? ?return OK;
}


//-------------------------------------------------------------------------按宿舍號刪除-------------------------------------------------------

Status DeleteRoom(Linklist &L)?? ?
{ ??
?? ?int i,j,k=-1,n=L.length; ??
?? ?char ch; ? ?
?? ?printf("\n\n請輸入要刪除學生的宿舍號:"); ??
?? ?scanf("%d",&student.Room);?
?? ?
?? ?printf("刪除該宿舍學生的信息為:\n");?
?? ?printf("\t\t姓名 ? ? ? ? ? ? ? ? ? ? ? ?學號 ? ? ? ? 房號\n");?
?? ?for(i=0;i<L.length;i++) ??
?? ?{ ? ?
?? ??? ?if(student.Room==L.elem[i].Room) ? ?
?? ??? ?{ ??
?? ??? ??? ?printf("\t\t%-20s %10d ? %10d\n",L.elem[i].name,L.elem[i].No,L.elem[i].Room); ? ??
?? ??? ??? ?k=i; ? ??
?? ??? ??? ?for(j=k;j<L.length-1;j++) ? ? ?
?? ??? ??? ??? ?L.elem[j]=L.elem[j+1];
?? ??? ??? ?if(k>0)?
?? ??? ??? ??? ?n--;?
?? ??? ?}
?? ??? ?if(i==L.length-1){
?? ??? ??? ?break;?
?? ??? ?} ? ? ? ??
?? ?} ??
?? ?if(i>=L.length)?
?? ??? ?printf("此房間沒有學生\n"); ??
?? ?L.length=n;
?? ?fflush(stdin); ? ??
?? ?printf("\n是否繼續(xù)刪除?是的話按Y,否則按任意鍵返回:"); ??
?? ?scanf("%c",&ch); ??
?? ?system("cls"); ??
?? ?if(ch=='Y')?
?? ??? ?DeleteRoom(L); ??
?? ?else?
?? ??? ?system("cls");
?? ?return OK;
}
//--------------------------------------------------------------------------文件加載--------------------------------------------------------------?
void Load(Linklist &L){
?? ?FILE *fp;
?? ?if((fp=fopen("dorm.txt","r"))==NULL)
?? ?{
?? ??? ?printf("打開文件失敗!\n\n");
?? ??? ?exit(0);
?? ?}
?? ?while(!feof(fp))
?? ??? ?fread(&L.elem[L.length],sizeof(Student),1,fp);
?? ?fclose(fp); ? ? ??
? ? printf("加載數(shù)據(jù)成功!\n\n");
}?
//--------------------------------------------------------------------------保存文件 ----------------------------------------------------------------
void JudgeSave(Linklist &L,int i)
{
?? ?char ch;
?? ?if(i){
?? ??? ?
?? ??? ?printf("是否保存(Y/N)?:");
?? ??? ?ch=getchar();
?? ??? ?getchar();
?? ??? ?while(ch!='N'&&ch!='Y')
?? ??? ?{
?? ??? ??? ?printf("請輸入Y或者N:");
?? ??? ??? ?ch=getchar();
?? ??? ??? ?getchar();
?? ??? ?}
?? ??? ?if(ch=='Y')
?? ??? ??? ?Save(L);
?? ?}
}

void Save(Linklist &L){
?? ?int i;
?? ?int flag1=0;
?? ?FILE *fp;
? ? if((fp=fopen("dorm.txt","w"))==NULL)
? ? {
? ? ? ? printf("打開文件失敗!\n\n");
? ? ? ? flag1=1;
? ? ? ? exit(0);
?? ?} ? ? ? ? ? ? ? ? ? ? ? ? ? ??
?? ?for(i=0;i<L.length;i++){
?? ??? ?fprintf(fp,"%s %d %d\n",L.elem[i].name,L.elem[i].No,L.elem[i].Room);
?? ?}
? ? ? ??
? ? if(!flag1)
?? ?{
? ? ? ? printf("數(shù)據(jù)存儲成功!\n\n");
?? ??? ?flag=0;
?? ?}
? ? fclose(fp);
}

項目效果截圖

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 自己模擬寫C++中的String類型實例講解

    自己模擬寫C++中的String類型實例講解

    下面小編就為大家?guī)硪黄约耗M寫C++中的String類型實例講解。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-07-07
  • C++使用遞歸和非遞歸算法實現(xiàn)的二叉樹葉子節(jié)點個數(shù)計算方法

    C++使用遞歸和非遞歸算法實現(xiàn)的二叉樹葉子節(jié)點個數(shù)計算方法

    這篇文章主要介紹了C++使用遞歸和非遞歸算法實現(xiàn)的二叉樹葉子節(jié)點個數(shù)計算方法,涉及C++二叉樹的定義、遍歷、統(tǒng)計相關(guān)操作技巧,需要的朋友可以參考下
    2017-05-05
  • C語言 詳細講解#pragma的使用方法

    C語言 詳細講解#pragma的使用方法

    #pragma 指令對每個編譯器給出了一個方法,在保持與C和C++語言完全兼容的情況下,給出主機或操作系統(tǒng)專有的特征。依據(jù)定義,編譯指示是機器或操作系統(tǒng)專有的, 且對于每個編譯器都是不同的
    2022-04-04
  • 淺談C++變量作用域

    淺談C++變量作用域

    這篇文章主要介紹了C++變量作用域的的相關(guān)資料,文中代碼非常細致,幫助大家更好的理解和學習,感興趣的朋友可以了解下
    2020-06-06
  • C++數(shù)據(jù)結(jié)構(gòu)與算法之反轉(zhuǎn)鏈表的方法詳解

    C++數(shù)據(jù)結(jié)構(gòu)與算法之反轉(zhuǎn)鏈表的方法詳解

    這篇文章主要介紹了C++數(shù)據(jù)結(jié)構(gòu)與算法之反轉(zhuǎn)鏈表的方法,結(jié)合實例形式分析了C++反轉(zhuǎn)鏈表的原理、實現(xiàn)方法及相關(guān)注意事項,需要的朋友可以參考下
    2017-08-08
  • 淺談關(guān)于C語言中#define的副作用

    淺談關(guān)于C語言中#define的副作用

    這篇文章主要介紹了關(guān)于C語言中#define的副作用,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-03-03
  • C語言中的函數(shù)指針基礎(chǔ)學習教程

    C語言中的函數(shù)指針基礎(chǔ)學習教程

    這篇文章主要介紹了C語言中的函數(shù)指針基礎(chǔ)學習教程,包括函數(shù)指針作為參數(shù)來傳遞等重要知識,需要的朋友可以參考下
    2016-04-04
  • c++實現(xiàn)俄羅斯方塊游戲代碼

    c++實現(xiàn)俄羅斯方塊游戲代碼

    大家好,本篇文章主要講的是c++實現(xiàn)俄羅斯方塊游戲代碼,感興趣的同學趕快來看一看吧,對你有幫助的話記得收藏一下
    2022-01-01
  • C語言編程中建立和解除內(nèi)存映射的方法

    C語言編程中建立和解除內(nèi)存映射的方法

    這篇文章主要介紹了C語言編程中建立和解除內(nèi)存映射的方法,分別為mmap()函數(shù)和munmap()函數(shù)的使用,需要的朋友可以參考下
    2015-08-08
  • C語言實現(xiàn)兩個矩陣相乘

    C語言實現(xiàn)兩個矩陣相乘

    這篇文章主要為大家詳細介紹了C語言實現(xiàn)兩個矩陣相乘的程序,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-05-05

最新評論

南昌市| 枣阳市| 沙洋县| 将乐县| 阳谷县| 宾川县| 汝南县| 子洲县| 图片| 崇仁县| 晋宁县| 大厂| 鸡西市| 吴江市| 淮阳县| 化州市| 梁平县| 潮州市| 北安市| 咸宁市| 泰宁县| 凌海市| 玉龙| 深水埗区| 广昌县| 元朗区| 湘潭市| 奈曼旗| 玛纳斯县| 青海省| 安塞县| 射洪县| 西峡县| 任丘市| 西充县| 辽源市| 双辽市| 博白县| 通州区| 鄯善县| 富蕴县|