欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

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

一 .課題設計內容與主要功能

1.1問題描述:

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

2.1功能要求:

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

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

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

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

3、執(zhí)行一個具體的功能之后,程序將重新顯示菜單。

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== '\0')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請輸入要添加的專業(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("請輸入要刪除的學號:\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請輸入要查詢的學號: ");
? ? 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學號:%-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入學日期:%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學號:%-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入學日期:%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請輸入要修改記錄的學號:");
? ? 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請輸入修改后的專業(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學號:%-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入學日期:%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請輸入要插入的學號(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請輸入要插入的專業(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 ? ? ? ? ? * ? ? ? ? ? ? ?歡迎使用學生學籍管理系統(tǒng) ? ? ? ? ? ? *");
? ? PF("\n ? ? ? ? ? * ? ? ? ? ? ? ? ? ?制作人:胡彬 ? ? ? ? ? ? ? ? ? ? *");
? ? PF("\n ? ? ? ? ? * ? ? ? ? ? ? ? ? ? 2020年1月 ? ? ? ? ? ? ? ? ? ? ? *");
? ? PF("\n ? ? ? ? ? * ? ? ? ? ? ? ? 按回車鍵進入主菜單: ? ? ? ? ? ? ? ? *");
? ? PF("\n ? ? ? ? ? * * * * * * * * * * * * * * * * * * * * * * * * * * *");

? ? if(( fp = fopen("student.txt","r")) == NULL)//載入已保存的學籍信息
? ? {
? ? ? ? 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.學生學籍信息錄入\n\n");
? ? PF("\t\t2.學生學籍信息刪除\n\n");
? ? PF("\t\t3.學生學籍信息查詢\n\n");
? ? PF("\t\t4.學生學籍信息排序\n\n");
? ? PF("\t\t5.學生學籍信息修改\n\n");
? ? PF("\t\t6.學生學籍信息保存\n\n");
? ? PF("\t\t7.退出系統(tǒng)\n\n");
? ? PF("\t\t8.學生學籍信息顯示\n\n");
? ? PF("\t\t9.學生學籍信息插入\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;
? ? }
}

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

相關文章

  • 完美解決QT?QGraphicsView提升到QChartView報錯的問題

    完美解決QT?QGraphicsView提升到QChartView報錯的問題

    使用QT提供的QChartView來繪制圖表,提升QGraphicsView控件繼承QChartView后,然后將QGraphicsView提升到我們自己寫的類,怎么才能確保提升后編譯不報錯呢,下面小編給大家?guī)砹薗T QGraphicsView 提升到QChartView報錯解決方案,感興趣的朋友一起看看吧
    2023-05-05
  • 詳解C++編程中運算符的使用

    詳解C++編程中運算符的使用

    這篇文章主要介紹了詳解C++編程中運算符的使用,是C++入門學習中的基礎知識,需要的朋友可以參考下
    2015-09-09
  • (C和指針) #if 0/#if 1...#end if

    (C和指針) #if 0/#if 1...#end if

    #if 0還有一個重要的用途就是用來當成注釋,如果你想要注釋的程序很長,這個時候#if 0是最好的,保證不會犯錯誤
    2013-09-09
  • C語言實現(xiàn)快速排序

    C語言實現(xiàn)快速排序

    快速排序不一定是穩(wěn)定排序,這篇文章主要為大家詳細介紹了C語言實現(xiàn)快速排序算法,具有一定的參考價值,感興趣的同學可以借鑒閱讀
    2023-03-03
  • 字典樹的基本知識及使用C語言的相關實現(xiàn)

    字典樹的基本知識及使用C語言的相關實現(xiàn)

    這篇文章主要介紹了字典樹的基本知識及使用C語言的相關實現(xiàn),這也是ACM等計算機考試和競賽題目的基本知識,需要的朋友可以參考下
    2015-08-08
  • C++繼承和動態(tài)內存分配

    C++繼承和動態(tài)內存分配

    這篇文章主要介紹了C++繼承和動態(tài)內存分配,當我們的基類使用動態(tài)內存分配,并且重新定義賦值和復制構造函數(shù),這會對派生類的實現(xiàn)有什么影響呢?我們帶罩疑問倆姐下面文章內容吧
    2022-01-01
  • 二叉搜索樹的插入與刪除(詳細解析)

    二叉搜索樹的插入與刪除(詳細解析)

    添加結點其實很容易,我們只需要找到結點所行對應的位置就可以了,而且沒有要求是平衡的二叉搜索樹,因此每次添加結點都是在葉子結點上操作,不需要修改二叉搜索樹整體的結構
    2013-09-09
  • C語言算法練習之佩奇存錢方案

    C語言算法練習之佩奇存錢方案

    這篇文章主要該大家分享C語言算法佩奇存錢的練習,文章主要通過描述佩奇存錢的問題然后確定程序框架將結果運算出來,下面來看詳細內容吧,需要的朋友可以參考一下
    2022-04-04
  • MFC實現(xiàn)學生選課系統(tǒng)

    MFC實現(xiàn)學生選課系統(tǒng)

    這篇文章主要為大家詳細介紹了MFC實現(xiàn)學生選課系統(tǒng),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-02-02
  • C++深入探究引用的本質與意義

    C++深入探究引用的本質與意義

    引用是C++一個很重要的特性,顧名思義是某一個變量或對象的別名,對引用的操作與對其所綁定的變量或對象的操作完全等價,這篇文章主要給大家總結介紹了C++中引用的相關知識點,需要的朋友可以參考下
    2022-04-04

最新評論