<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
本文範例為大家分享了C語言實現學生學籍管理系統的具體程式碼,供大家參考,具體內容如下
1.1問題描述:
通過該系統實現對學生學籍資訊進行錄入、顯示、修改、插入、刪除、排序、儲存等操作的管理。
2.1功能要求:
1、本系統採用一個包含N個資料的結構體陣列,每個資料的結構應當包括:學號、姓名、性別、出生日期、入學時間、專業、班級、備註。
2、本系統顯示這樣的選單:
請選擇系統功能項:
j.學生學籍資訊錄入
k.學生學籍資訊顯示
l.學生學籍資訊儲存
m.學生學籍資訊修改
n.學生學籍資訊插入
o.學生學籍資訊刪除
p.學生學籍資訊排序
q.學生學籍資訊查詢
r.退出系統
3、執行一個具體的功能之後,程式將重新顯示選單。
4、將學生學籍資訊儲存到檔案中。
#include "stdio.h" #include "string.h" #include "stdlib.h" #define PF printf #define SF scanf #define N 20 FILE *fp; static int n = 0, i, m; struct date { char year[10]; char month[10]; char day[10]; }; struct classmate { char name[20]; char num[20]; char sex[10]; char clas[40]; struct date birth; char time[20]; char specialit[20]; char remark[40]; }stud[N] = {NULL}; void add() { char j; front1: for(m = 0;; m++) if(*stud[m].num== ' ')break; n = m; system("cls"); /*清屏*/ PF("n"); PF("n請輸入要新增的姓名:"); SF("%s",stud[n].name); PF("n請輸入要新增的學號(12位元):"); SF("%s",&stud[n].num); PF("n請輸入要新增的性別(男/女):"); SF("n%s",&stud[n].sex); PF("n請輸入要新增的班級:"); SF("%s",&stud[n].clas); PF("n請輸入要新增的出生年份:"); SF("%s",&stud[n].birth.year); PF("n請輸入要新增的出生月份:"); SF("%s",&stud[n].birth.month); PF("n請輸入要新增的出生日子:"); SF("%s",&stud[n].birth.day); PF("n請輸入要新增的入學日期:"); SF("%s",&stud[n].time); PF("n請輸入要新增的專業:"); SF("%s",&stud[n].specialit); PF("n請輸入要新增的備註:"); SF("%s",stud[n].remark); getchar(); n++; PF("是否繼續(Y/N)?:"); j=getchar(); getchar(); if(j=='y'||j=='Y') { n++; goto front1; } /*再輸入記錄*/ } void del() { int k = 0; char j, s[20]; front2:; for(m = 0;; m++) if(*stud[m].num == ' ') break; n = m; system("cls"); /*清屏*/ PF("請輸入要刪除的學號:n"); getchar(); gets(s); for(i = 0; i < n; i++) if(strcmp(s , stud[i].num) == 0) { k=1;break; } /*查詢記錄*/ if(k == 1) /*刪除記錄*/ { if(n == 1) { *stud[0].name = ' '; *stud[0].num = ' '; *stud[0].sex = ' '; *stud[0].clas = ' '; *stud[0].birth.year = ' '; *stud[0].birth.month = ' '; *stud[0].birth.day = ' '; *stud[0].time = ' '; *stud[0].specialit = ' '; *stud[0].remark = ' '; } else { for(k = i;k < n - 1; k++) { stud[k] = stud[k+1]; } *stud[n - 1].name = ' '; *stud[n - 1].num = ' '; *stud[n - 1].sex = ' '; *stud[n - 1].clas = ' '; *stud[n - 1].birth.year = ' '; *stud[n - 1].birth.month = ' '; *stud[n - 1].birth.day = ' '; *stud[n - 1].time = ' '; *stud[n - 1].specialit = ' '; *stud[n - 1].remark = ' '; } PF("已刪除nn"); } else { PF("找不到要刪除的記錄!n"); PF("按確認鍵返回:"); getchar(); } PF("是否繼續(Y/N)?:"); j = getchar(); getchar(); if(j=='y'||j=='Y') goto front2; } void find() { int i,s = 0; char j,k[20]; for(m = 0;; m++) if(*stud[m].num== ' ')break; n = m; front3: s=0; system("cls"); /*清屏*/ PF("n請輸入要查詢的學號: "); getchar(); gets(k); for(i = 0;i <= n; i++) if(strcmp(k,stud[i].num) == 0) { PF("tt姓名:%-10sn",stud[i].name); PF("tt學號:%-10sn",stud[i].num); PF("tt性別:%sn",stud[i].sex); PF("tt班級:%-12sn",stud[i].clas); PF("tt出生日期:%-4s 年 %-2s 月 %-2s 日n",stud[i].birth.year,stud[i].birth.month,stud[i].birth.day); PF("tt入學日期:%sn",stud[i].time); PF("tt專業:%sn",stud[i].specialit); PF("tt備註:%sn",stud[i].remark); s=1; } if(s==0) PF("查無此人!n"); getchar(); PF("是否繼續查詢(Y/N)?:"); j=getchar();getchar(); if(j=='y'||j=='Y') goto front3; getchar(); } void arrange() { int k,i; struct classmate t; system("cls"); /*清屏*/ FILE *fp; int s; for(m = 0;; m++) if(*stud[m].num== ' ')break; n = m; for(k = 0;k < n - 1; k++) for(i = 0;i < n - k - 1; i++) if(strcmp(stud[i].num,stud[i+1].num) > 0) { t = stud[i]; stud[i] = stud[i+1]; stud[i+1] = t; } else continue; for(i=0;i<=n-1;i++) if(stud[k].num != 0) { PF("tt姓名:%-10sn",stud[i].name); PF("tt學號:%-10sn",stud[i].num); PF("tt性別:%sn",stud[i].sex); PF("tt班級:%-12sn",stud[i].clas); PF("tt出生日期:%-4s 年 %-2s 月 %-2s 日n",stud[i].birth.year,stud[i].birth.month,stud[i].birth.day); PF("tt入學日期:%sn",stud[i].time); PF("tt專業:%sn",stud[i].specialit); PF("tt備註:%snn",stud[i].remark); } PF("tt輸入回車返回主選單"); getchar(); getchar(); } void change() { int k = 0; char j, s[20]; front5: system("cls"); /*清屏*/ for(m = 0;; m++) if(*stud[m].num== ' ')break; n = m; PF("n請輸入要修改記錄的學號:"); getchar(); gets(s); for(i = 0;i < n; i++) if(strcmp(s , stud[i].num) == 0) { k = 1;break; } /*查詢*/ if(k == 1) /*修改*/ { PF("n"); PF("n請輸入修改後的姓名:"); SF("%s",stud[i].name); PF("n請輸入修改後的學號:"); SF("%s",&stud[i].num); PF("n請輸入修改後的性別:"); SF("n%s",&stud[i].sex); PF("n請輸入修改後的班級:"); SF("%s",&stud[i].clas); PF("n請輸入修改後的出生年:"); SF("%s",&stud[i].birth.year); PF("n請輸入修改後的出生月:"); SF("%s",&stud[i].birth.month); PF("n請輸入修改後的出生日:"); SF("%s",&stud[i].birth.day); PF("n請輸入修改後的入學日期:"); SF("%s",&stud[n].time); PF("n請輸入修改後的專業:"); SF("%s",&stud[n].specialit); PF("n請輸入修改後的備註:"); SF("%s",stud[i].remark); PF("修改成功n"); getchar(); } if(k==0) { PF("找不到要修改的記錄!n"); PF("按確認鍵返回:"); getchar(); } getchar(); PF("是否繼續(Y/N)?:"); j=getchar(); getchar(); if(j=='y'||j=='Y') goto front5; } void show() { int s; for(m = 0;; m++) if(*stud[m].num== ' ')break; n = m; for(s = 0;s < n;s++) { PF("tt姓名:%-10sn",stud[s].name); PF("tt學號:%-10sn",stud[s].num); PF("tt性別:%sn",stud[s].sex); PF("tt班級:%-12sn",stud[s].clas); PF("tt出生日期:%-4s 年 %-2s 月 %-2s 日n",stud[s].birth.year,stud[s].birth.month,stud[s].birth.day); PF("tt入學日期:%sn",stud[s].time); PF("tt專業:%sn",stud[s].specialit); PF("tt備註:%snn",stud[s].remark); } PF("tt按確認鍵返回主選單"); getchar(); getchar(); } void insert() { front9:; char j; for(m = 0;; m++) if(*stud[m].num== ' ')break; n = m; system("cls"); /*清屏*/ PF("n"); PF("n請輸入要插入的姓名:"); SF("%s",stud[n].name); PF("n請輸入要插入的學號(12位元):"); SF("%s",&stud[n].num); PF("n請輸入要插入的性別(男/女):"); SF("n%s",&stud[n].sex); PF("n請輸入要插入的班級:"); SF("%s",&stud[n].clas); PF("n請輸入要插入的出生年份:"); SF("%s",&stud[n].birth.year); PF("n請輸入要插入的出生月份:"); SF("%s",&stud[n].birth.month); PF("n請輸入要插入的出生日子:"); SF("%s",&stud[n].birth.day); PF("n請輸入要插入的入學日期:"); SF("%s",&stud[n].time); PF("n請輸入要插入的專業:"); SF("%s",&stud[n].specialit); PF("n請輸入要插入的備註:"); SF("%s",stud[n].remark); getchar(); arrange(); front10:; PF("是否繼續(Y/N)?:"); j=getchar(); getchar(); if(j=='y'||j=='Y') { n++; goto front9; } } void main() { char j; PF("n * * * * * * * * * * * * * * * * * * * * * * * * * * *"); PF("n * 歡迎使用學生學籍管理系統 *"); PF("n * 製作人:胡彬 *"); PF("n * 2020年1月 *"); PF("n * 按確認鍵進入主選單: *"); PF("n * * * * * * * * * * * * * * * * * * * * * * * * * * *"); if(( fp = fopen("student.txt","r")) == NULL)//載入已儲存的學籍資訊 { PF("n 資料載入失敗!"); } else { fread(stud, sizeof(struct classmate), N, fp); fclose(fp); PF("n 資料載入成功"); } getchar(); loop: system("cls"); PF("n"); PF("tt ************n"); PF("tt * 主選單 *n"); PF("tt ************n"); PF("tt1.學生學籍資訊錄入nn"); PF("tt2.學生學籍資訊刪除nn"); PF("tt3.學生學籍資訊查詢nn"); PF("tt4.學生學籍資訊排序nn"); PF("tt5.學生學籍資訊修改nn"); PF("tt6.學生學籍資訊儲存nn"); PF("tt7.退出系統nn"); PF("tt8.學生學籍資訊顯示nn"); PF("tt9.學生學籍資訊插入nn"); PF("tt請選擇[1/2/3/4/5/6/7/8]: "); j=getchar(); if(j=='n') goto loop; /*返回主選單*/ switch(j) { case '1': add(); goto loop; /*返回主選單*/ case '2': del(); goto loop; case '3': find(); goto loop; case '4': arrange(); goto loop; case '5': change(); goto loop; case '6': { FILE *fp; fp=fopen("student.txt","w"); fwrite(stud,n*sizeof(struct classmate),1,fp); fclose(fp); goto loop; } case '7': exit(0); case '8': show(); goto loop; case '9': insert();goto loop; default: goto loop; } }
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援it145.com。
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45