亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

C語(yǔ)言實(shí)現(xiàn)學(xué)生學(xué)籍管理系統(tǒng)程序設(shè)計(jì)

 更新時(shí)間:2022年07月22日 09:25:32   作者:E×H  
這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言實(shí)現(xiàn)學(xué)生學(xué)籍管理系統(tǒng)程序設(shè)計(jì),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

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

一、題目設(shè)計(jì)及其要求

1、題目:學(xué)生學(xué)籍管理系統(tǒng)

用數(shù)據(jù)文件存放學(xué)生的學(xué)籍,可對(duì)學(xué)生學(xué)籍進(jìn)行注冊(cè)、修改、查找、統(tǒng)計(jì)、學(xué)籍變化等操作。(用文件保存)

2、功能要求:

(1)系統(tǒng)以菜單方式工作;

(2)登記學(xué)生的學(xué)號(hào),姓名,性別,年齡,籍貫,學(xué)院,專業(yè),班級(jí);

(3)修改已知學(xué)號(hào)的學(xué)生信息;

(4)查找已知學(xué)號(hào)的學(xué)生信息;

(5)按學(xué)號(hào)和專業(yè)輸出學(xué)生籍貫表;

(6)查詢學(xué)生學(xué)籍變化,比如入學(xué),轉(zhuǎn)專業(yè),退學(xué),降級(jí),休學(xué),畢業(yè)。

二、設(shè)計(jì)平臺(tái)

Visual C++ 6.0

三、設(shè)計(jì)思路及過(guò)程

1、初步完成總體結(jié)構(gòu)設(shè)計(jì),主要運(yùn)用結(jié)構(gòu)體及函數(shù)調(diào)用的知識(shí)設(shè)計(jì)程序框架,根據(jù)功能確定函數(shù)個(gè)數(shù)及儲(chǔ)備每個(gè)功能所需的知識(shí);

2、創(chuàng)建工程,同時(shí)在工程路徑下創(chuàng)建記事本保存文件數(shù)據(jù),寫出程序的主要框架;

3、寫主函數(shù)以及被調(diào)用函數(shù),完成上述登記、修改、查找、輸出學(xué)生信息等功能;

4、調(diào)試代碼,不斷修改以達(dá)到運(yùn)行成功和取得最佳效果。

四、運(yùn)行結(jié)果

(1)系統(tǒng)以菜單方式工作

(2)登記學(xué)生的學(xué)號(hào)、姓名、性別、年齡、籍貫、學(xué)院、專業(yè)、班級(jí),并用文件保存

 (3)修改已知學(xué)號(hào)的學(xué)生信息

 (4)查找已知學(xué)號(hào)的學(xué)生信息

 (5)按學(xué)號(hào)和專業(yè)輸出學(xué)生籍貫表

 (6)查詢學(xué)生學(xué)籍變化,比如入學(xué)、轉(zhuǎn)專業(yè)、退學(xué)、降級(jí)、休學(xué)、畢業(yè)

 (7)退出系統(tǒng)

 五、程序代碼

#include<stdio.h>?? ?
#include<stdlib.h>?? ?
#include<string.h>?? ?//頭文件
?
#define LEN 20?? ??? ?//學(xué)號(hào)和姓名最大字符數(shù),20
#define N 50?? ??? ?//最大的學(xué)生人數(shù)
?
int M = 0;//當(dāng)前已經(jīng)有的學(xué)生數(shù)量
?
//函數(shù)聲明
?
void insert(); ?//錄入學(xué)生信息
void modify(); ?//修改學(xué)生信息
void search(); ?//查詢學(xué)生信息
void menu(); ? ?//主菜單函數(shù)
void save(); ? ?//保存學(xué)生信息
void jiguanbiao(); ?//輸出學(xué)生籍貫信息
void xueji(); ? //查詢學(xué)生學(xué)籍變化信息
?
//結(jié)構(gòu)體保存學(xué)生信息
struct student{
? ? long int Id; ?//學(xué)號(hào)
? ? char Name[LEN+1]; ? ?//姓名
? ? char Sex[LEN+1]; ? ?//性別
? ? int ?Age; ? ? //年齡
? ? char BirthPlace[LEN+1]; ? ?//籍貫
? ? char YuanXi[LEN+1]; ? ? ? ? ?//院系
? ? char ZhuanYe[LEN+1]; ? ? ? ?//專業(yè)
? ? int ?BanJi; ? ? ?//班級(jí)
? ? char xueji[LEN+1];//學(xué)籍變化信息
?
}stu[N];
?
//主函數(shù)
int main()
{
?? ?
?? ?while (1)
?? ?{
?? ??? ?menu();
?? ?}
?? ?system("pause");
?? ?return 0;
?
}
?
?
void menu()//菜單函數(shù)
{
?
?? ?int num;
?? ?printf("\n");
?? ?printf("——————————————————————————\n");
?? ?printf("*************歡迎使用學(xué)生信息管理系統(tǒng)***************\n");
?? ?printf("* ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?*\n");
?? ?printf("********************系統(tǒng)功能菜單********************\n");
?? ?printf("* ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?*\n");
?? ?printf("* ? ? ? ? ? ? ? ? 1.添加學(xué)生信息 ? ? ? ? ? ? ? ? ? *\n");
?? ?printf("* ? ? ? ? ? ? ? ? 2.修改學(xué)生信息 ? ? ? ? ? ? ? ? ? *\n");
?? ?printf("* ? ? ? ? ? ? ? ? 3.查找學(xué)生信息 ? ? ? ? ? ? ? ? ? *\n");
?? ?printf("* ? ? ? ? ? ? ? ? 4.輸出學(xué)生籍貫表 ? ? ? ? ? ? ? ? *\n");
?? ?printf("* ? ? ? ? ? ? ? ? 5.保存信息到文件 ? ? ? ? ? ? ? ? *\n");
?? ?printf("* ? ? ? ? ? ? ? ? 6.查看學(xué)生學(xué)籍變化 ? ? ? ? ? ? ? *\n");
?? ?printf("* ? ? ? ? ? ? ? ? 7.退出系統(tǒng) ? ? ? ? ? ? ? ? ? ? ? *\n");
?? ?printf("——————————————————————————\n");
?? ?printf("請(qǐng)選擇菜單編號(hào):");
?? ?scanf("%d", &num);
?? ?switch (num)
?? ?{
? ? ? ??
? ? ? ? case 1:
? ? ? ? ? ? printf("Input student number(M<=50):\n");
?? ??? ??? ?scanf("%d", &M);
?? ??? ??? ?insert();
? ? ? ? ? ? break;
? ? ? ? case 2:
? ? ? ? ? ? modify();
? ? ? ? ? ? break;
? ? ? ? case 3:
? ? ? ? ? ? search();
? ? ? ? ? ? break;
? ? ? ? case 4:
? ? ? ? ? ? jiguanbiao();
? ? ? ? ? ? break;
? ? ? ? case 5:
? ? ? ? ? ? save();
? ? ? ? ? ? break;
? ? ? ? case 6:
? ? ? ? ? ? xueji();
? ? ? ? ? ? break;
? ? ? ? case 7:
? ? ? ? ? ? printf("退出程序成功!\n");
? ? ? ? ? ? exit(0);
? ? ? ? default:
? ? ? ? ? ? printf("請(qǐng)?jiān)?-8之間選擇\n");
? ? ? ? ? ? system("pause");//提示完成之后顯示按任意鍵繼續(xù)
?? ?}
?
}
void insert()//添加學(xué)生信息
?? ?{?? ?int i;
?? ??? ?for(i=1;i<=M;i++)
?? ??? ?{
?? ??? ??? ?printf("請(qǐng)輸入第%d個(gè)學(xué)生的學(xué)號(hào):",i);
?? ??? ??? ?scanf("%ld",&stu[i].Id);
?? ??? ??? ?printf("請(qǐng)輸入第%d個(gè)學(xué)生的姓名:",i);
?? ??? ??? ?scanf("%s",&stu[i].Name);
?? ??? ??? ?printf("請(qǐng)輸入第%d個(gè)學(xué)生的性別:",i);
?? ??? ??? ?scanf("%s",&stu[i].Sex);
?? ??? ??? ?printf("請(qǐng)輸入第%d個(gè)學(xué)生的年齡:",i);
?? ??? ??? ?scanf("%d",&stu[i].Age);
?? ??? ??? ?printf("請(qǐng)輸入第%d個(gè)學(xué)生的籍貫:",i);
?? ??? ??? ?scanf("%s",&stu[i].BirthPlace);
?? ??? ??? ?printf("請(qǐng)輸入第%d個(gè)學(xué)生的學(xué)院:",i);
?? ??? ??? ?scanf("%s",&stu[i].YuanXi);
?? ??? ??? ?printf("請(qǐng)輸入第%d個(gè)學(xué)生的專業(yè):",i);
?? ??? ??? ?scanf("%s",&stu[i].ZhuanYe);
?? ??? ??? ?printf("請(qǐng)輸入第%d個(gè)學(xué)生的班級(jí):",i);
?? ??? ??? ?scanf("%d",&stu[i].BanJi);
?? ??? ??? ?printf("請(qǐng)輸入第%d個(gè)學(xué)生的學(xué)籍(如入學(xué)、轉(zhuǎn)專業(yè)、退學(xué)、降級(jí)、休學(xué)、畢業(yè)):",i);
?? ??? ??? ?scanf("%s",&stu[i].xueji);
?? ??? ?}
?? ??? ?printf("學(xué)生信息添加完畢!請(qǐng)立即保存數(shù)據(jù)信息到文件!");
?? ??? ?
?? ?}
void modify()//修改學(xué)生信息
?? ?{
?? ??? ?
?? ?int i, item;
?? ?long int a;
?? ?printf("請(qǐng)輸入要修改學(xué)生的學(xué)號(hào):\n");
?? ?scanf("%ld",&a);
?? ?for (i=1; i<=M; i++)
?? ?{
?? ??? ?if (stu[i].Id==a)
?? ??? ?{
?? ??? ??? ?printf("1.修改名字:\n");
?? ??? ??? ?printf("2.修改性別:\n");
?? ??? ??? ?printf("3.修改年齡:\n");
?? ??? ??? ?printf("4.修改籍貫:\n");
?? ??? ??? ?printf("5.修改學(xué)院:\n");
?? ??? ??? ?printf("6.修改專業(yè):\n");
?? ??? ??? ?printf("7.修改班級(jí):\n");
?? ??? ??? ?printf("8.修改學(xué)籍\n");
?? ??? ??? ?printf("0.End of program!\n");
?? ??? ??? ?while (1)
?? ??? ??? ?{
?? ??? ??? ??? ?printf("please choose:");
?? ??? ??? ??? ?scanf("%d", &item);
?? ??? ??? ??? ?switch (item)
?? ??? ??? ??? ?{
?? ??? ??? ??? ?case 1:
?? ??? ??? ??? ??? ?printf("Please input new name:\n");
?? ??? ??? ??? ??? ?scanf("%s", &stu[i].Name);
?? ??? ??? ??? ??? ?break;
?? ??? ??? ??? ?case 2:
?? ??? ??? ??? ??? ?printf("Please input sex:\n ");
?? ??? ??? ??? ??? ?scanf("%s", &stu[i].Sex);
?? ??? ??? ??? ??? ?break;
?? ??? ??? ??? ?case 3:
?? ??? ??? ??? ??? ?printf("Please input new age:\n");
?? ??? ??? ??? ??? ?scanf("%d", &stu[i].Age);
?? ??? ??? ??? ??? ?break;
?? ??? ??? ??? ?case 4:
?? ??? ??? ??? ??? ?printf("Please input BirthPlace:\n");
?? ??? ??? ??? ??? ?scanf("%s", &stu[i].BirthPlace);
?? ??? ??? ??? ??? ?break;
?? ??? ??? ??? ?case 5:
?? ??? ??? ??? ??? ?printf("Please input new yuanxi:\n");
?? ??? ??? ??? ??? ?scanf("%s", &stu[i].YuanXi);
?? ??? ??? ??? ??? ?break;
?? ??? ??? ??? ?case 6:
?? ??? ??? ??? ??? ?printf("Please input new zhuanye:\n");
?? ??? ??? ??? ??? ?scanf("%s", &stu[i].ZhuanYe);
?? ??? ??? ??? ??? ?break;
?? ??? ??? ??? ?case 7:
?? ??? ??? ??? ??? ?printf("Please input new banji:\n ");
?? ??? ??? ??? ??? ?scanf("%d", &stu[i].BanJi);
?? ??? ??? ??? ??? ?break;
?? ??? ??? ??? ?case 8:
?? ??? ??? ??? ??? ?printf("Please input new xueji:\n");
?? ??? ??? ??? ??? ?scanf("%s", &stu[i].xueji);
?? ??? ??? ??? ??? ?break;
?? ??? ??? ??? ?default: printf("Input error!\n");
?? ??? ??? ??? ?}
?? ??? ??? ??? ?if (item == 0)
?? ??? ??? ??? ??? ?break;
?? ??? ??? ?}
?? ??? ?}
?? ?}
?
}?
void search() ?//查找已知學(xué)號(hào)的學(xué)生信息
{
?? ?long int b,term=-1;
?? ?int i;
? ? printf("請(qǐng)輸入要查找學(xué)生的學(xué)號(hào):");
?? ?scanf("%ld",&b);
?? ?for (i=1; i<=M; i++)
?? ?{
?? ??? ?if (stu[i].Id==b)
?? ??? ?{
?? ??? ??? ?
?? ??? ??? ?printf("學(xué)號(hào):%ld ?姓名:%s ?性別:%s ?年齡:%d ?籍貫:%s ?學(xué)院:%s ?專業(yè):%s ?班級(jí):%d ?學(xué)籍:%s ?\n",stu[i].Id,stu[i].Name,stu[i].Sex,stu[i].Age,stu[i].BirthPlace,stu[i].YuanXi,stu[i].ZhuanYe,stu[i].BanJi,stu[i].xueji);
?? ??? ??? ?term=-2;
?? ??? ?}
?? ?}
?? ?if(term!=-2)
?? ?{
?? ??? ?printf("Not found!\n");
?? ?}
?? ?
}
void jiguanbiao()//按學(xué)號(hào)和專業(yè)輸出學(xué)生籍貫表
?? ?{
?? ?int i;
?
?? ?FILE *fp;
?? ?fp=fopen("student.txt","r");
?? ?printf("********************學(xué)生籍貫表*********************\n");
?? ?printf("學(xué)號(hào) ? ? ?姓名 ? ? ? 籍貫\n");
?? ?for(i=1;i<=M;i++)
?? ?{ ?
?? ??? ?printf("%ld ? ? ? ?%s ? ? ? ? %s\n",stu[i].Id,stu[i].Name,stu[i].BirthPlace);
?? ?}
?? ?fclose(fp);
?? ?}
void save()//保存學(xué)生信息到文件
?? ?{
?? ??? ?int i;
?? ?
?? ??? ?FILE *fp;
?? ??? ?fp=fopen("student.txt","w");//在工程路徑下創(chuàng)建名為“student.txt”的記事本
?
?? ? ? ?for(i=1;i<=M;i++)
?? ??? ?{
?? ??? ??? ?fprintf(fp,"%ld ? ? ? ? %s ? ? ? ? %s ? ? ? ? %d ? ? ? ?%s ? ? ? ? %s ? ? ? ? %s ? ? ? ? %d ? ? ? %s ?\n",stu[i].Id,stu[i].Name,stu[i].Sex,stu[i].Age,stu[i].BirthPlace,stu[i].YuanXi,stu[i].ZhuanYe,stu[i].BanJi,stu[i].xueji);
?
?? ??? ?}
?? ??? ?fclose(fp);
?? ??? ?printf("學(xué)生信息保存成功!");
?? ?}
void xueji() ? //查詢學(xué)生學(xué)籍變化信息
?
?? ?{
?? ??? ?long int c,t=-1;
?? ??? ?int i;
?? ??? ?printf("請(qǐng)輸入要查詢學(xué)生的學(xué)號(hào):");
?? ??? ?scanf("%ld",&c);
?? ??? ?for (i=1; i<=M; i++)
?? ??? ?{
?? ??? ??? ?if (c==stu[i].Id)
?? ??? ??? ?{
?? ??? ??? ?printf("學(xué)號(hào):%ld ?姓名:%s ? 學(xué)籍:%s ?\n",stu[i].Id,stu[i].Name,stu[i].xueji);?? ??? ?
?? ??? ??? ?t=-2;
?? ??? ??? ?}?? ?
?? ??? ?}
?? ??? ?
?? ??? ?if(t!=-2)?? ?
?? ??? ?printf("Not found!\n");
?}

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

相關(guān)文章

  • C語(yǔ)言 function recursion函數(shù)遞歸詳解

    C語(yǔ)言 function recursion函數(shù)遞歸詳解

    遞歸指的是在函數(shù)的定義中使用函數(shù)自身的方法,舉個(gè)例子: 從前有座山,山里有座廟,廟里有個(gè)老和尚,正在給小和尚講故事呢!故事是什么呢?"從前有座山,山里有座廟,廟里有個(gè)老和尚,正在給小和尚講故事呢!故事是什么呢?"從前有座山,山里有座廟,循環(huán)下去
    2021-10-10
  • C++ 如何將string轉(zhuǎn)換成全小寫

    C++ 如何將string轉(zhuǎn)換成全小寫

    這篇文章主要介紹了C++ 如何將string轉(zhuǎn)換成全小寫問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。
    2022-11-11
  • VC++ 獲取系統(tǒng)時(shí)間的方法匯總

    VC++ 獲取系統(tǒng)時(shí)間的方法匯總

    本文給大家匯總介紹了5種VC++中獲取系統(tǒng)時(shí)間的方法,十分的簡(jiǎn)單實(shí)用,有需要的小伙伴可以參考下。
    2015-07-07
  • 函數(shù)指針的一些概念詳解

    函數(shù)指針的一些概念詳解

    首先看函數(shù)指針的語(yǔ)法,舉一個(gè)最簡(jiǎn)單的例子,要?jiǎng)?chuàng)建一個(gè)函數(shù)指針,則它與它指向的函數(shù),在參數(shù)個(gè)數(shù)類型以及返回值上都保持一致,跟重載的要求應(yīng)該是一樣的
    2013-09-09
  • C語(yǔ)言在輸入輸出時(shí)遇到的常見問(wèn)題總結(jié)

    C語(yǔ)言在輸入輸出時(shí)遇到的常見問(wèn)題總結(jié)

    大家在平時(shí)的做題中是否會(huì)遇到和我一樣的煩惱,題目的代碼已經(jīng)基本完成,但是在輸出時(shí)候,總是和題目給出的樣例輸出格式不同?,導(dǎo)致題目不能通過(guò)。為了解決這一煩惱,我總結(jié)了以下幾點(diǎn),需要的可以參考一下
    2022-09-09
  • C語(yǔ)言超詳細(xì)講解指針的使用

    C語(yǔ)言超詳細(xì)講解指針的使用

    C語(yǔ)言這門課程在計(jì)算機(jī)的基礎(chǔ)教學(xué)中一直占有比較重要的地位,然而要想突破C語(yǔ)言的學(xué)習(xí),對(duì)指針的掌握是非常重要的,本文將具體針對(duì)指針的基礎(chǔ)做詳盡的介紹
    2022-05-05
  • C++賦值函數(shù)+移動(dòng)賦值函數(shù)+移動(dòng)構(gòu)造函數(shù)詳解

    C++賦值函數(shù)+移動(dòng)賦值函數(shù)+移動(dòng)構(gòu)造函數(shù)詳解

    這篇文章主要介紹了C++賦值函數(shù)+移動(dòng)賦值函數(shù)+移動(dòng)構(gòu)造函數(shù)詳解,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-08-08
  • C++內(nèi)存分布及用法

    C++內(nèi)存分布及用法

    這篇文章主要介紹了C++內(nèi)存分布及用法,從內(nèi)存的基礎(chǔ)概念到內(nèi)存分配進(jìn)行了講解,內(nèi)存是我們開發(fā)中最重要的一部分,往往邏輯上的錯(cuò)誤就會(huì)造成內(nèi)存泄漏,導(dǎo)致程序無(wú)法運(yùn)行,下面我們就來(lái)了解文章對(duì)該內(nèi)容的詳細(xì)介紹
    2021-12-12
  • C++中關(guān)于getchar()的使用方法

    C++中關(guān)于getchar()的使用方法

    這篇文章主要介紹了C++中關(guān)于getchar()的使用方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • C語(yǔ)言實(shí)例講解四大循環(huán)語(yǔ)句的使用

    C語(yǔ)言實(shí)例講解四大循環(huán)語(yǔ)句的使用

    C語(yǔ)言有四大循環(huán)語(yǔ)句,他們之間可以進(jìn)行任意轉(zhuǎn)換。本文將首先對(duì)其語(yǔ)法進(jìn)行講解,然后通過(guò)一個(gè)實(shí)例用四種循環(huán)來(lái)實(shí)現(xiàn)。相信通過(guò)本文的學(xué)習(xí),大家都能夠?qū)語(yǔ)言循環(huán)語(yǔ)句有著熟練的掌握
    2022-05-05

最新評(píng)論