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

C語言實現(xiàn)簡單的學(xué)生學(xué)籍管理系統(tǒng)

 更新時間:2022年07月25日 08:41:03   作者:電信-HUBIN  
這篇文章主要為大家詳細(xì)介紹了C語言實現(xiàn)簡單的學(xué)生學(xué)籍管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下

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

一 .課題設(shè)計內(nèi)容與主要功能

1.1問題描述:

通過該系統(tǒng)實現(xiàn)對學(xué)生學(xué)籍信息進(jìn)行錄入、顯示、修改、插入、刪除、排序、保存等操作的管理。

2.1功能要求:

1、本系統(tǒng)采用一個包含N個數(shù)據(jù)的結(jié)構(gòu)體數(shù)組,每個數(shù)據(jù)的結(jié)構(gòu)應(yīng)當(dāng)包括:學(xué)號、姓名、性別、出生日期、入學(xué)時間、專業(yè)、班級、備注。

2、本系統(tǒng)顯示這樣的菜單:

請選擇系統(tǒng)功能項:

j.學(xué)生學(xué)籍信息錄入
k.學(xué)生學(xué)籍信息顯示
l.學(xué)生學(xué)籍信息保存
m.學(xué)生學(xué)籍信息修改
n.學(xué)生學(xué)籍信息插入
o.學(xué)生學(xué)籍信息刪除
p.學(xué)生學(xué)籍信息排序
q.學(xué)生學(xué)籍信息查詢
r.退出系統(tǒng)

3、執(zhí)行一個具體的功能之后,程序?qū)⒅匦嘛@示菜單。

4、將學(xué)生學(xué)籍信息保存到文件中。

二.代碼

#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== '\0')break;
? ? n = m;

?? ?system("cls"); ?/*清屏*/

? ? PF("\n");
? ? PF("\n請輸入要添加的姓名:");
? ? SF("%s",stud[n].name);
? ? PF("\n請輸入要添加的學(xué)號(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請輸入要添加的入學(xué)日期:");
? ? SF("%s",&stud[n].time);
? ? PF("\n請輸入要添加的專業(yè):");
? ? SF("%s",&stud[n].specialit);
? ? PF("\n請輸入要添加的備注:");
? ? SF("%s",stud[n].remark);
? ? getchar();
? ? n++;
? ? PF("是否繼續(xù)(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 == '\0')
? ? ? ? ? ? break;
? ? n = m;

? ? system("cls"); ?/*清屏*/

? ? PF("請輸入要刪除的學(xué)號:\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 = '\0';
? ? ? ? ? ? *stud[0].num = '\0';
? ? ? ? ? ? *stud[0].sex = '\0';
? ? ? ? ? ? *stud[0].clas = '\0';
? ? ? ? ? ? *stud[0].birth.year = '\0';
? ? ? ? ? ? *stud[0].birth.month = '\0';
? ? ? ? ? ? *stud[0].birth.day = '\0';
? ? ? ? ? ? *stud[0].time = '\0';
? ? ? ? ? ? *stud[0].specialit = '\0';
? ? ? ? ? ? *stud[0].remark = '\0';
? ? ? ? }
? ? ? ? else
? ? ? ? {
? ? ? ? ? ? for(k = i;k < n - 1; k++)
? ? ? ? ? ? {
? ? ? ? ? ? ? ? stud[k] = stud[k+1];
? ? ? ? ? ? }
? ? ? ? ? ? *stud[n - 1].name = '\0';
? ? ? ? ? ? *stud[n - 1].num = '\0';
? ? ? ? ? ? *stud[n - 1].sex = '\0';
? ? ? ? ? ? *stud[n - 1].clas = '\0';
? ? ? ? ? ? *stud[n - 1].birth.year = '\0';
? ? ? ? ? ? *stud[n - 1].birth.month = '\0';
? ? ? ? ? ? *stud[n - 1].birth.day = '\0';
? ? ? ? ? ? *stud[n - 1].time = '\0';
? ? ? ? ? ? *stud[n - 1].specialit = '\0';
? ? ? ? ? ? *stud[n - 1].remark = '\0';
? ? ? ? }

? ? ? ? PF("已刪除\n\n");
? ? }
? ? else
? ? {
? ? ? ? ?PF("找不到要刪除的記錄!\n");
? ? ? ? ?PF("按回車鍵返回:");
? ? ? ? ?getchar();
? ? }
? ? PF("是否繼續(xù)(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== '\0')break;
? ? n = m;
? ? front3:
? ? s=0;
? ? system("cls"); ?/*清屏*/

? ? PF("\n請輸入要查詢的學(xué)號: ");
? ? getchar();
? ? gets(k);
? ? for(i = 0;i <= n; i++)
? ? if(strcmp(k,stud[i].num) == 0)
? ? {
? ? PF("\t\t姓名:%-10s\n",stud[i].name);
? ? PF("\t\t學(xué)號:%-10s\n",stud[i].num);
? ? PF("\t\t性別:%s\n",stud[i].sex);
? ? PF("\t\t班級:%-12s\n",stud[i].clas);
? ? PF("\t\t出生日期:%-4s 年 %-2s 月 %-2s 日\n",stud[i].birth.year,stud[i].birth.month,stud[i].birth.day);
? ? PF("\t\t入學(xué)日期:%s\n",stud[i].time);
? ? PF("\t\t專業(yè):%s\n",stud[i].specialit);
? ? PF("\t\t備注:%s\n",stud[i].remark);

? ? s=1;
? ? }
? ? if(s==0)
? ? PF("查無此人!\n");
? ? getchar();
? ? PF("是否繼續(xù)查詢(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== '\0')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("\t\t姓名:%-10s\n",stud[i].name);
? ? ? ? PF("\t\t學(xué)號:%-10s\n",stud[i].num);
? ? ? ? PF("\t\t性別:%s\n",stud[i].sex);
? ? ? ? PF("\t\t班級:%-12s\n",stud[i].clas);
? ? ? ? PF("\t\t出生日期:%-4s 年 %-2s 月 %-2s 日\n",stud[i].birth.year,stud[i].birth.month,stud[i].birth.day);
? ? ? ? PF("\t\t入學(xué)日期:%s\n",stud[i].time);
? ? ? ? PF("\t\t專業(yè):%s\n",stud[i].specialit);
? ? ? ? PF("\t\t備注:%s\n\n",stud[i].remark);
? ? }
? ? PF("\t\t輸入回車返回主菜單");

? ? getchar();
? ? getchar();

}


void change()
{
? ? int ?k = 0;
? ? char j, s[20];
? ? front5:
? ? system("cls"); ?/*清屏*/
? ? for(m = 0;; m++)
? ? ? ? if(*stud[m].num== '\0')break;
? ? n = m;
? ? PF("\n請輸入要修改記錄的學(xué)號:");
? ? 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請輸入修改后的學(xué)號:");
? ? ? ? ? ? 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請輸入修改后的入學(xué)日期:");
? ? ? ? ? ? SF("%s",&stud[n].time);
? ? ? ? ? ? PF("\n請輸入修改后的專業(yè):");
? ? ? ? ? ? SF("%s",&stud[n].specialit);
? ? ? ? ? ? PF("\n請輸入修改后的備注:");
? ? ? ? ? ? SF("%s",stud[i].remark);
? ? ? ? ? ? PF("修改成功\n");
? ? ? ? ? ? getchar();
? ? ?}
? ? ?if(k==0)
? ? ?{
? ? ? ? PF("找不到要修改的記錄!\n");
? ? ? ? PF("按回車鍵返回:");
? ? ? ? getchar();
? ? ?}
? ? getchar();
? ? PF("是否繼續(xù)(Y/N)?:");
? ? j=getchar(); getchar();
? ? if(j=='y'||j=='Y') goto front5;
}

void show()
{
? ? int s;
? ? for(m = 0;; m++)
? ? ? ? if(*stud[m].num== '\0')break;
? ? n = m;

? ? for(s = 0;s < n;s++)
? ? {
? ? ? ? PF("\t\t姓名:%-10s\n",stud[s].name);
? ? ? ? PF("\t\t學(xué)號:%-10s\n",stud[s].num);
? ? ? ? PF("\t\t性別:%s\n",stud[s].sex);
? ? ? ? PF("\t\t班級:%-12s\n",stud[s].clas);
? ? ? ? PF("\t\t出生日期:%-4s 年 %-2s 月 %-2s 日\n",stud[s].birth.year,stud[s].birth.month,stud[s].birth.day);
? ? ? ? PF("\t\t入學(xué)日期:%s\n",stud[s].time);
? ? ? ? PF("\t\t專業(yè):%s\n",stud[s].specialit);
? ? ? ? PF("\t\t備注:%s\n\n",stud[s].remark);
? ? }
? ? PF("\t\t按回車鍵返回主菜單");
? ? getchar();
? ? getchar();
}

void insert()
{
? ? front9:;
? ? char j;

? ? for(m = 0;; m++)
? ? ? ? if(*stud[m].num== '\0')break;
? ? n = m;

?? ?system("cls"); ?/*清屏*/

? ? PF("\n");
? ? PF("\n請輸入要插入的姓名:");
? ? SF("%s",stud[n].name);
? ? PF("\n請輸入要插入的學(xué)號(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請輸入要插入的入學(xué)日期:");
? ? SF("%s",&stud[n].time);
? ? PF("\n請輸入要插入的專業(yè):");
? ? SF("%s",&stud[n].specialit);
? ? PF("\n請輸入要插入的備注:");
? ? SF("%s",stud[n].remark);
? ? getchar();
? ? arrange();
? ? front10:;
? ? PF("是否繼續(xù)(Y/N)?:");
? ? j=getchar(); getchar();
? ? if(j=='y'||j=='Y')
? ? {
? ? ? ? n++;
? ? ? ? goto front9;
? ? }
}

void main()
{
?? ?char j;
?? ?PF("\n ? ? ? ? ? * * * * * * * * * * * * * * * * * * * * * * * * * * *");
? ? PF("\n ? ? ? ? ? * ? ? ? ? ? ? ?歡迎使用學(xué)生學(xué)籍管理系統(tǒng) ? ? ? ? ? ? *");
? ? PF("\n ? ? ? ? ? * ? ? ? ? ? ? ? ? ?制作人:胡彬 ? ? ? ? ? ? ? ? ? ? *");
? ? PF("\n ? ? ? ? ? * ? ? ? ? ? ? ? ? ? 2020年1月 ? ? ? ? ? ? ? ? ? ? ? *");
? ? PF("\n ? ? ? ? ? * ? ? ? ? ? ? ? 按回車鍵進(jìn)入主菜單: ? ? ? ? ? ? ? ? *");
? ? PF("\n ? ? ? ? ? * * * * * * * * * * * * * * * * * * * * * * * * * * *");

? ? if(( fp = fopen("student.txt","r")) == NULL)//載入已保存的學(xué)籍信息
? ? {
? ? ? ? PF("\n ? ? ? ? ? 數(shù)據(jù)加載失??!");
? ? }
? ? else
? ? {

? ? ? ? fread(stud, sizeof(struct classmate), N, fp);
? ? ? ? fclose(fp);
? ? ? ? PF("\n ? ? ? ? ? 數(shù)據(jù)加載成功");
? ? }

? ? getchar();
? ? loop:
? ? system("cls");
? ? PF("\n");
? ? PF("\t\t ? ************\n");
? ? PF("\t\t ? * ?主菜單 ?*\n");
? ? PF("\t\t ? ************\n");
? ? PF("\t\t1.學(xué)生學(xué)籍信息錄入\n\n");
? ? PF("\t\t2.學(xué)生學(xué)籍信息刪除\n\n");
? ? PF("\t\t3.學(xué)生學(xué)籍信息查詢\n\n");
? ? PF("\t\t4.學(xué)生學(xué)籍信息排序\n\n");
? ? PF("\t\t5.學(xué)生學(xué)籍信息修改\n\n");
? ? PF("\t\t6.學(xué)生學(xué)籍信息保存\n\n");
? ? PF("\t\t7.退出系統(tǒng)\n\n");
? ? PF("\t\t8.學(xué)生學(xué)籍信息顯示\n\n");
? ? PF("\t\t9.學(xué)生學(xué)籍信息插入\n\n");
? ? PF("\t\t請選擇[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;
? ? }
}

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

相關(guān)文章

  • 簡單講解C語言中宏的定義與使用

    簡單講解C語言中宏的定義與使用

    這篇文章主要介紹了C語言中宏的定義與使用,是C語言入門學(xué)習(xí)中的基礎(chǔ)知識,需要的朋友可以參考下
    2016-05-05
  • C++使用jsoncpp庫解析Json

    C++使用jsoncpp庫解析Json

    對json的解析操作是我們?nèi)粘i_發(fā)中經(jīng)常會遇到的一個需求,下面這篇文章主要給大家介紹了關(guān)于C++使用jsoncpp庫解析Json的相關(guān)資料,需要的朋友可以參考下
    2021-06-06
  • C++錯誤使用迭代器超出引用范圍問題及解決方案

    C++錯誤使用迭代器超出引用范圍問題及解決方案

    這篇文章主要介紹了C++錯誤使用迭代器超出引用范圍分析與解決,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-03-03
  • C++中獲取隨機數(shù)的常用方法小結(jié)

    C++中獲取隨機數(shù)的常用方法小結(jié)

    這篇文章主要為大家詳細(xì)介紹了C++中獲取隨機數(shù)的幾種常用方法,文中的示例代碼講解詳細(xì),具有一定的借鑒價值,感興趣的小伙伴可以了解下
    2025-01-01
  • Cocos2d-x UI開發(fā)之CCControlSlider控件類使用實例

    Cocos2d-x UI開發(fā)之CCControlSlider控件類使用實例

    這篇文章主要介紹了Cocos2d-x UI開發(fā)之CCControlSlider控件類使用實例,本文代碼中包含大量注釋講解了CCControlSlider控件類的使用,需要的朋友可以參考下
    2014-09-09
  • C++實踐數(shù)組作數(shù)據(jù)成員的參考

    C++實踐數(shù)組作數(shù)據(jù)成員的參考

    今天小編就為大家分享一篇關(guān)于C++實踐數(shù)組作數(shù)據(jù)成員的參考,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-02-02
  • C++中declspec(dllexport)和declspec(dllimport)?的用法介紹

    C++中declspec(dllexport)和declspec(dllimport)?的用法介紹

    這篇文章介紹了C++中declspec(dllexport)和declspec(dllimport)?的用法,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-04-04
  • C++獲取內(nèi)存使用情況小結(jié)

    C++獲取內(nèi)存使用情況小結(jié)

    在程序編程過程中,為了防止出現(xiàn)內(nèi)存泄漏情況出現(xiàn),需要持續(xù)關(guān)注內(nèi)存程序內(nèi)存占用情況,本文主要介紹了C++獲取內(nèi)存使用情況小結(jié),具有一定的參考價值,感興趣的可以了解一下
    2024-01-01
  • 詳解windows下C/C++的內(nèi)存泄露檢測

    詳解windows下C/C++的內(nèi)存泄露檢測

    C/C++由于其沒有垃圾回收機制,所以內(nèi)存的釋放一直以來都依靠于程序員的手工釋放,因此極其容易出現(xiàn)內(nèi)存泄露的問題,而在比較大的程序之中,查找內(nèi)存泄露是一件比較困難的事情,所以我們需要一些簡便的方法來檢測內(nèi)存泄露,避免內(nèi)存泄露導(dǎo)致設(shè)備崩潰
    2021-06-06
  • 使用C++實現(xiàn)單鏈表的操作與實踐

    使用C++實現(xiàn)單鏈表的操作與實踐

    在程序設(shè)計中,鏈表是一種常見的數(shù)據(jù)結(jié)構(gòu),特別是在動態(tài)數(shù)據(jù)管理、頻繁插入和刪除元素的場景中,鏈表相比于數(shù)組,具有更高的靈活性和高效性,尤其是在需要頻繁修改數(shù)據(jù)結(jié)構(gòu)的應(yīng)用中,本文將詳細(xì)介紹如何用C++語言實現(xiàn)一個面向?qū)ο蟮膯捂湵?并展示完整的代碼示例
    2025-02-02

最新評論

达日县| 满城县| 安乡县| 太湖县| 武平县| 巨鹿县| 弋阳县| 三原县| 嘉禾县| 周至县| 乌拉特前旗| 新河县| 永修县| 紫阳县| 肥乡县| 南昌市| 青川县| 石泉县| 太谷县| 长治县| 土默特右旗| 腾冲县| 澎湖县| 忻州市| 九台市| 万年县| 兖州市| 玉溪市| 手机| 延长县| 蒲江县| 盐津县| 遵义县| 吴旗县| 布尔津县| 集安市| 晋中市| 申扎县| 博兴县| 宿松县| 南宫市|