C語言實現(xiàn)學(xué)生宿舍信息管理系統(tǒng)
本文實例為大家分享了C語言實現(xiàn)學(xué)生宿舍信息管理系統(tǒng)的具體代碼,供大家參考,具體內(nèi)容如下
功能描述
該學(xué)生宿舍信息管理系統(tǒng)主要實現(xiàn)的功能有:創(chuàng)建學(xué)生宿舍信息,顯示學(xué)生宿舍信息,查詢學(xué)生宿舍信息,修改學(xué)生宿舍信息,刪除學(xué)生宿舍信息,保存學(xué)生宿舍信息,讀取學(xué)生宿舍信息。其系統(tǒng)功能模塊圖如下:
完整代碼如下:
#include<stdio.h> #include<stdlib.h> #include<string.h> #include<conio.h> #include<windows.h> ? #define MAX 1000 int k=0; ? //結(jié)構(gòu)體類型 typedef struct ? { ? ?? ? ? ? char name[20]; ? ?//姓名 ? ? char sex[5]; ? ? ?//性別 ?? ? ? char classs[20]; ?//班級 ?? ?int number; ? ? ? //學(xué)號 ?? ?int age; ? ? ? ? ?//年齡 ? ? int dorm; ? ? ? ? //宿舍號 ?? ?int year; ? ? ? ? //年份 ?? ?int month; ? ? ? ?//月份 }students; ? ? ? //創(chuàng)建學(xué)生宿舍信息 int establish(students stu[]) { ?int i,x; ? ?for(i=0;i<1000;i++) ? ?{ ? ? system("cls"); ? ? ? printf("\n\n ? ? ? ? ? ? ? ? 錄入學(xué)生信息 ?(最多%d個)\n",MAX); ? ? printf(" ? ? ? ? ? ? ? ----------------------------\n"); ? ? ? ? ? ? printf("\n ? ? ? ? ? ? ? ? ? ? 第%d個學(xué)生",k+1); ? ? ? ? printf("\n 請輸入學(xué)生的學(xué)號:"); ? ? ? ? scanf("%d",&stu[k].number); ? ? ? ? printf("\n 請輸入學(xué)生的姓名:"); ? ? ? ? scanf("%s",stu[k].name);? ? ? ? ? printf("\n 請輸入學(xué)生的性別:"); ? ? ? ? scanf("%s",stu[k].sex); ? ? ? ? printf("\n 請輸入學(xué)生的年齡:"); ? ? ? ? scanf("%d",&stu[k].age); ? ? ? ? ? printf("\n 請輸入學(xué)生的班級:"); ? ? ? ? scanf("%s",stu[k].classs); ? ? ? ? ? ? ? ? ?? ??? ?printf("\n 請輸入學(xué)生入住時間(如:2017 9):");?? ??? ? ? ? ?? ??? ?while((scanf("%d %d",&stu[k].year,&stu[k].month))!=EOF) ?? ??? ?{ ?? ??? ??? ?if(stu[k].year<1000||stu[k].year>9999||stu[k].month>12||stu[k].month<1)//限定輸入范圍 ?? ??? ??? ?{ ? ? ? ? ? ? ? ? printf("對不起,輸入錯誤,請重新輸入:"); ?? ??? ??? ?} ?? ??? ??? ?else ?? ??? ??? ??? ?break; ?? ??? ?} ?? ??? ?printf("\n 請輸入學(xué)生的宿舍號:"); ? ? ? ? scanf("%d",&stu[k++].dorm); ?? ??? ?printf("\n 請按 1 鍵返回主菜單或按 0 鍵繼續(xù)創(chuàng)建:"); ? ? ? ? scanf("%d",&x); ? ? ? ? if(x!=0) ?break; ? ?} ? ?? ? ?return k; } ? ? ? //顯示學(xué)生宿舍信息 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? void display(students stu[]) { ? ? ? ? int i; ? ? for(i=0;i<k;i++) ? ? ? { ?? ??? ?printf("學(xué)號:%d ?姓名:%s ?性別:%s ?年齡:%d ?班級:%s ?宿舍號: %d ?入住時間:%d/%d\n",stu[i].number,stu[i].name,stu[i].sex,stu[i].age,stu[i].classs,stu[i].dorm,stu[i].year,stu[i].month); ?? ?} ? ? printf("按任意鍵返回主菜單!"); ? ? getch(); ?? ?system("cls"); ? ? return ; } ? //查詢學(xué)生宿舍信息 void query(students stu[])? {? ?? ?int i,m=0; ? ? int number; ?? ? ? printf("\n\n ? ? ?請輸入您要查找的學(xué)生的學(xué)號: "); ? ? scanf("%d",&number); ?? ?printf(" ? ? 正在查詢,請稍后.....\n"); ?? ?Sleep(1000); ? ? for(i=0;i<k;i++) ?? ?{? ?? ??? ?if(number==stu[i].number) ?? ??? ?{?? ??? ??? ? ? ? ? ? ? ? printf("\n\n學(xué)號:%d ?姓名:%s ?性別:%s ?年齡:%d ?班級:%s ?宿舍號: %d ?入住時間:%d/%d\n",stu[i].number,stu[i].name,stu[i].sex,stu[i].age,stu[i].classs,stu[i].dorm,stu[i].year,stu[i].month); ?? ??? ? ? ?m=1; ?? ??? ?}?? ??? ? ?? ?} ?? ?if(m==0) ?? ?{ ?? ??? ?printf("對不起,此學(xué)生信息不存在!\n"); ?? ?} ?? ?printf("按任意鍵返回主菜單!"); ? ? getch(); ?? ?system("cls"); ? ? return ; } ? ? //修改學(xué)生信息? void modify(students stu[]) { ? ?? ?int number,i,choose,m=0; ? ? system("cls");? ? ? printf("\n\n\n ? ? ?請輸入您要修改的學(xué)生的學(xué)號:"); ? ? scanf("%d",&number); ?? ?printf(" ? ? ?正在查詢,請稍后.....\n"); ? ? Sleep(1000); ? ? for(i=0;i<k;i++) ? ? { ? ? ?? ?? ??? ?if(number==stu[i].number) ? ? ? ? { ?? ??? ??? ?printf("\n\n學(xué)號:%d ?姓名:%s ?性別:%s ?年齡:%d ?班級:%s ?宿舍號: %d ?入住時間:%d/%d\n",stu[i].number,stu[i].name,stu[i].sex,stu[i].age,stu[i].classs,stu[i].dorm,stu[i].year,stu[i].month); ? ? ? ? ? ? ? printf("\n\n ? ? ********請輸入您想要修改的數(shù)據(jù)********\n\n"); ? ? ? ? ? ? printf(" ? ? ? ? ? ? ? ?1. 學(xué)號\n"); ? ? ? ? ? ? printf(" ? ? ? ? ? ? ? ?2. 姓名\n"); ? ? ? ? ? ? printf(" ? ? ? ? ? ? ? ?3. 性別\n"); ? ? ? ? ? ? printf(" ? ? ? ? ? ? ? ?4. 年齡\n"); ? ? ? ? ? ? printf(" ? ? ? ? ? ? ? ?5. 班級\n"); ? ? ? ? ? ? printf(" ? ? ? ? ? ? ? ?6. 宿舍號\n"); ? ? ? ? ? ? printf(" ? ? ? ? ? ? ? ?7. 入住時間\n\n"); ? ? ? ? ? ? printf(" ? ? ? ? ? ? ? ?請選擇(1-7):"); ? ? ? ? ? ? ? while((scanf("%d",&choose))!=EOF) ?? ??? ??? ?{ ?? ??? ??? ??? ?if(choose<1||choose>7) ?? ??? ??? ??? ?{ ?? ??? ??? ??? ??? ?printf("對不起,輸入錯誤,請重新輸入:"); ?? ??? ??? ??? ?} ?? ??? ??? ??? ?else ?? ??? ??? ??? ?{ ? ? ? ? ? ? ? ? ? ? switch(choose) ?? ??? ??? ??? ??? ?{ ?? ??? ??? ??? ??? ?case 1: ?? ??? ??? ??? ??? ??? ?{ ?? ??? ??? ??? ??? ??? ??? ?printf("\n ? 請輸入你改的新學(xué)號:"); ? ? ? ? ? ? ? ? ? ? ? ? ? ? scanf("%d",&stu[i].number);? ? ? ? ? ? ? ? ? ? ? ? ? ? ? break; ?? ??? ??? ??? ??? ??? ?} ? ? ? ? ? ? ? ? ? ? case 2: ?? ??? ??? ??? ??? ??? ?{ ? ? ? ? ? ? ? ? ? ? ? ? ? ? printf("\n ? 請輸入你改的新姓名:"); ? ? ? ? ? ? ? ? ? ? ? ? ? ? scanf("%s",stu[i].name);? ? ? ? ? ? ? ? ? ? ? ? ? ? ? break; ?? ??? ??? ??? ??? ??? ?} ? ? ? ? ? ? ? ? ? ? case 3: ?? ??? ??? ??? ??? ??? ?{ ? ? ? ? ? ? ? ? ? ? ? ? ? ? printf("\n ? 請輸入你改的新性別:"); ? ? ? ? ? ? ? ? ? ? ? ? ? ? scanf("%s",stu[i].sex);? ? ? ? ? ? ? ? ? ? ? ? ? ? ? break; ?? ??? ??? ??? ??? ??? ?} ? ? ? ? ? ? ? ? ? ? case 4: ?? ??? ??? ??? ??? ??? ?{ ? ? ? ? ? ? ? ? ? ? ? ? ? ? printf("\n ? 請輸入你改的新年齡:"); ? ? ? ? ? ? ? ? ? ? ? ? ? ? scanf("%d",&stu[i].age);? ? ? ? ? ? ? ? ? ? ? ? ? ? ? break; ?? ??? ??? ??? ??? ??? ?} ? ? ? ? ? ? ? ? ? ? case 5: ?? ??? ??? ??? ??? ??? ?{ ? ? ? ? ? ? ? ? ? ? ? ? ? ? printf("\n ? 請輸入你改的新班級:"); ? ? ? ? ? ? ? ? ? ? ? ? ? ? scanf("%s",stu[i].classs);? ? ? ? ? ? ? ? ? ? ? ? ? ? ? break; ?? ??? ??? ??? ??? ??? ?} ? ? ? ? ? ? ? ? ? ? case 6: ?? ??? ??? ??? ??? ??? ?{ ? ? ? ? ? ? ? ? ? ? ? ? ? ? printf("\n ? 請輸入你改的新宿舍:"); ? ? ? ? ? ? ? ? ? ? ? ? ? ? scanf("%d",&stu[i].dorm);? ? ? ? ? ? ? ? ? ? ? ? ? ? ? break; ?? ??? ??? ??? ??? ??? ?} ?? ? ? ? ? ? ? ? ? ?case 7: ?? ??? ??? ??? ??? ??? ?{ ?? ? ? ? ? ??? ? ? ? ? ? ? ?printf("\n ? 請輸入你改的新入住時間:"); ?? ??? ? ? ? ? ? ? ? ? ? ? ?scanf("%d %d",&stu[i].year,&stu[i].month); ?? ??? ??? ? ? ? ? ? ? ? ? ?break; ?? ??? ??? ??? ??? ??? ?} ?? ??? ??? ??? ??? ?} ?? ??? ? ? ? ? ??? ?printf("修改成功!"); ?? ??? ? ? ? ? ??? ?Sleep(500); ? ? ? ? ? ? ? ? ? ? printf("\n\n學(xué)號:%d ?姓名:%s ?性別:%s ?年齡:%d ?班級:%s ?宿舍號: %d ?入住時間:%d/%d\n",stu[i].number,stu[i].name,stu[i].sex,stu[i].age,stu[i].classs,stu[i].dorm,stu[i].year,stu[i].month); ?? ??? ? ? ? ? ? ? ?m=1; ?? ??? ??? ??? ??? ?break; ?? ??? ??? ??? ?} ?? ??? ??? ?} ?? ??? ?} ?? ?} ?? ?if(m==0) ?? ?{ ?? ? ? ?printf("對不起,此學(xué)生信息不存在!\n"); ?? ?} ?? ?printf("按任意鍵返回主菜單!"); ? ? getch(); ? ? return ; } ? //刪除學(xué)生信息 void deletee(students stu[]) {? ?? ? ? ? char name1[20]; ? ? int i,j,m=0; ? ? ? printf("請輸入學(xué)生姓名:"); ? ? scanf("%s",name1); ? ? printf("\n"); ?? ?printf("正在查找是否存在此學(xué)生信息.....\n"); ? ? Sleep(1000); ? ? for(i=0;i<k;i++) ?? ?{ ? ? ? ? if(strcmp(stu[i].name,name1)==0) ?? ??? ?{ ?? ??? ??? ?m=1; ?? ??? ??? ?printf("已找到此學(xué)生信息!\n刪除中....\n"); ?? ??? ??? ?Sleep(2000); ? ? ? ? ? ? for(j=i;j<k;j++) ? ? ? ? ? ? { ?? ??? ??? ??? ?strcpy(stu[j].name,stu[j+1].name); ?? ??? ??? ??? ?strcpy(stu[j].sex,stu[j+1].sex); ?? ??? ??? ??? ?strcpy(stu[j].classs,stu[j+1].classs); ?? ??? ??? ? ? ?stu[j].age=stu[j+1].age;?? ??? ??? ? ? ? ?? ??? ??? ? ? ?stu[j].dorm=stu[j+1].dorm; ?? ??? ??? ? ? ?stu[j].number=stu[j+1].number; ?? ??? ??? ? ? ?stu[j].year=stu[j+1].year; ?? ??? ??? ? ? ?stu[j].month=stu[j+1].month; ?? ??? ??? ?} ? ? ? ? ? ? k--; ?? ??? ??? ?printf("刪除成功!\n"); ?? ??? ?}?? ??? ? ?? ?} ?? ?if(m==0) ?? ?{ ?? ??? ?printf("此學(xué)生信息不存在!\n"); ?? ?} ? ?printf("按任意鍵返回主菜單!"); ? ?getch(); ? ?system("cls"); ? ?return ; } ? ? ? ? ? //保存學(xué)生住宿信息 void preservation(students stu[]) { ? ? int i; ?? ?FILE ?*fp; ?? ? ?? ?if((fp=fopen("學(xué)生宿舍信息.txt","w"))==NULL) ?? ?{ ?? ??? ?printf("未發(fā)現(xiàn)學(xué)生宿舍信息!\n"); ?? ??? ?printf("按任意鍵返回...\n"); ?? ??? ?getch(); ?? ??? ?system("cls"); ?? ??? ?return ; ?? ?} ?? ?else ?? ?{ ?? ? ? ?for(i=0;i<k;i++) ?? ??? ?{ ? ? ? ? ? ? ? ? fprintf(fp,"\n\n學(xué)號:%d ?姓名:%s ?性別:%s ?年齡:%d ?班級:%s ?宿舍號: %d ?入住時間:%d/%d\n",stu[i].number,stu[i].name,stu[i].sex,stu[i].age,stu[i].classs,stu[i].dorm,stu[i].year,stu[i].month); ?? ??? ?} ? ? ? ? fclose(fp); ?? ??? ?printf("正在保存文件....\n"); ?? ??? ?Sleep(1000); ? ? ? ? printf("文件保存成功!\n"); ? ? ? ? printf("按任意鍵返回...\n"); ? ? ? ? getch(); ? ? ? ? system("cls"); ? ? ? ? return ; ?? ?} } //讀取學(xué)生住宿信息 void read(students stu[]) { ? ? FILE *fp;? ? ? char ch; ? ? if((fp=fopen("學(xué)生宿舍信息.txt","r"))==NULL) ?? ?{ ? ? ? ? printf("文件無法打開!\n"); ? ? ? ? exit(0); ?? ?} ? ? printf("正在讀入文件...\n"); ? ? Sleep(1000); ?? ?printf("文件讀入成功!\n"); ? ? ch=fgetc(fp); ? ? while(!feof(fp)) ?? ?{ ? ? ? ? putchar(ch); ? ? ? ? ch=fgetc(fp); ?? ?} ? ? printf("\n"); ? ? fclose(fp); ?? ?printf("按任意鍵返回...\n"); ? ? getch(); ? ? system("cls"); ? ? return ; }? ? ? void title() { ? ?printf(" \n\n\n ? ? ? ? ? ? ? ? ? **********************************\n"); ? ?printf(" ? ? ? ? ? ? ? ? ? * ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?*\n"); ? ?printf(" ? ? ? ? ? ? ? ? ? * ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?*\n"); ? ?printf(" ? ? ? ? ? ? ? ? ? * ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?*\n"); ? ?printf(" ? ? ? ? ? ? ? ? ? * ?歡迎進入學(xué)生宿舍信息管理系統(tǒng) ?*\n"); ? ?printf(" ? ? ? ? ? ? ? ? ? * ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?*\n"); ? ?printf(" ? ? ? ? ? ? ? ? ? * ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?*\n"); ? ?printf(" ? ? ? ? ? ? ? ? ? * ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?*\n"); ? ?printf(" ? ? ? ? ? ? ? ? ? **********************************\n"); ? ?printf("\n ? ? ? ? ? ? ? ? ? 按任意鍵進入系統(tǒng)!\n"); ? ?getch(); ? ? } ? void start() { ? ? students stu[20]; ? ? int choose,k; ? ? while(choose!=0) ?? ?{ ?? ??? ?system("cls"); ? ? ? ? ? printf("\n\n\n ? ? ? ? ? ? ? ********學(xué)生宿舍信息管理系統(tǒng)********\n\n"); ? ? ? ? printf(" ? ? ? ? ? ? ? ? ? ? ?1. 創(chuàng)建學(xué)生宿舍信息\n\n"); ? ? ? ? printf(" ? ? ? ? ? ? ? ? ? ? ?2. 顯示學(xué)生宿舍信息\n\n"); ? ? ? ? printf(" ? ? ? ? ? ? ? ? ? ? ?3. 查詢學(xué)生宿舍信息\n\n"); ? ? ? ? printf(" ? ? ? ? ? ? ? ? ? ? ?4. 修改學(xué)生宿舍信息\n\n"); ? ? ? ? printf(" ? ? ? ? ? ? ? ? ? ? ?5. 刪除學(xué)生宿舍信息\n\n"); ?? ??? ?printf(" ? ? ? ? ? ? ? ? ? ? ?6. 保存學(xué)生宿舍信息\n\n"); ?? ??? ?printf(" ? ? ? ? ? ? ? ? ? ? ?7. 讀取學(xué)生宿舍信息\n\n"); ? ? ? ? printf(" ? ? ? ? ? ? ? ? ? ? ?0. 退出系統(tǒng)\n\n"); ? ? ? ? printf(" ? ? ? ? ? ? ? ? ? ? ? 請選擇(0-7):"); ? ? ? ? ? while((scanf("%d",&choose))!=EOF) ?? ??? ?{ ?? ??? ??? ?if(choose<0||choose>7) ?? ??? ??? ?{ ?? ??? ??? ??? ?printf("對不起,輸入錯誤,請重新輸入:"); ?? ??? ??? ?} ?? ??? ??? ?else ?? ??? ??? ?{ ?? ??? ??? ??? ?switch(choose) ?? ??? ??? ??? ?{ ?? ??? ??? ??? ?case 1: k=establish(stu); break;//創(chuàng)建學(xué)生宿舍信息 ? ? ? ? ? ? ? ? case 2: display( stu) ; break;//顯示學(xué)生宿舍信息 ? ? ? ? ? ? ? ? case 3: query(stu); break;//查詢學(xué)生宿舍信息 ? ? ? ? ? ? ? ? case 4: modify(stu); break;//修改學(xué)生宿舍信息 ? ? ? ? ? ? ? ? case 5: deletee(stu); break;//刪除學(xué)生宿舍信息 ?? ??? ??? ? ? ?case 6: preservation(stu); break;//保存學(xué)生宿舍信息 ?? ??? ??? ? ? ?case 7: read(stu);break;//讀取學(xué)生宿舍信息 ? ? ? ? ? ? ? ? case 0: break; ?? ??? ??? ??? ?} ?? ??? ? ? ?break; ?? ??? ??? ?} ?? ??? ?} ?? ?} } int main() { ?? ? ? title(); ? ? start(); ?? ?return 0; }
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
C++設(shè)計模式編程中Facade外觀模式的使用實例解析
這篇文章主要介紹了C++設(shè)計模式編程中Facade外觀模式的使用實例解析,外觀模式的主要用途就是為子系統(tǒng)的復(fù)雜處理過程提供方便的調(diào)用方法,需要的朋友可以參考下2016-03-03C/C++程序開發(fā)中實現(xiàn)信息隱藏的三種類型
這篇文章主要介紹了C/C++程序開發(fā)中實現(xiàn)信息隱藏的三種類型的相關(guān)資料,需要的朋友可以參考下2016-02-02C++實現(xiàn)主機字節(jié)序和網(wǎng)絡(luò)字節(jié)序轉(zhuǎn)換示例
這篇文章主要為大家介紹了C++實現(xiàn)主機字節(jié)序和網(wǎng)絡(luò)字節(jié)序轉(zhuǎn)換示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-11-11Qt學(xué)習(xí)之QListWidget控件的使用教程詳解
這篇文章主要為大家詳細(xì)介紹了Qt中QListWidget控件的使用教程,文中的示例代碼講解詳細(xì),對我們學(xué)習(xí)Qt有一定的幫助,需要的可以參考一下2022-12-12c++實現(xiàn)逐行讀取配置文件寫入內(nèi)存的示例
這篇文章主要介紹了c++實現(xiàn)逐行讀取配置文件寫入內(nèi)存的示例,需要的朋友可以參考下2014-05-05