基于C語(yǔ)言實(shí)現(xiàn)簡(jiǎn)單學(xué)生成績(jī)管理系統(tǒng)
本文實(shí)例為大家分享了C語(yǔ)言實(shí)現(xiàn)簡(jiǎn)單學(xué)生成績(jī)管理系統(tǒng)的具體代碼,供大家參考,具體內(nèi)容如下
一、系統(tǒng)主要功能
1、密碼登錄
2、輸入數(shù)據(jù)
3、查詢成績(jī)
4、修改成績(jī)
5、輸出所有學(xué)生成績(jī)
6、退出系統(tǒng)
二、代碼實(shí)現(xiàn)
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define N 10
struct student
{
?? ?char num[10];
? ? char name[20];
?? ?int old;
?? ?char add[30];
?? ?char xb[5];
?? ?char mc[5];
? ? int ds;
?? ?int eng;
?? ?int math;
?? ?int lan;
};
struct student stu[N];
int count=0;
void insert(int i) //輸入學(xué)生的具體信息
{
?? ?printf("第%d個(gè)學(xué)生的姓名:",i);
? ? scanf("%s",stu[i].name);
?? ?printf("第%d個(gè)學(xué)生的年齡:",i);
? ? scanf("%d",&stu[i].old);
?? ?printf("第%d個(gè)學(xué)生的住址:",i);
? ? scanf("%s",stu[i].add);
?? ?printf("第%d個(gè)學(xué)生的性別:",i);
? ? scanf("%s",stu[i].xb);
?? ?printf("第%d個(gè)學(xué)生的民簇:",i);
? ? scanf("%s",stu[i].mc);
? ? printf("第%d個(gè)學(xué)生的線性代數(shù)分?jǐn)?shù):",i);
? ? scanf("%d",&stu[i].ds);
? ? printf("第%d個(gè)學(xué)生的英語(yǔ)分?jǐn)?shù):",i);
? ? scanf("%d",&stu[i].eng);
? ? printf("第%d個(gè)學(xué)生的高等數(shù)學(xué)分?jǐn)?shù):",i);
? ? scanf("%d",&stu[i].math);
? ? printf("第%d個(gè)學(xué)生的C語(yǔ)言分?jǐn)?shù):",i);
? ? scanf("%d",&stu[i].lan);
? ? count++;
? ? sprintf(stu[i].num,"%d",count);
}
void input() //輸入數(shù)據(jù)
{
? ? system("color 3e");
? ? void menu();
? ? void insert(int i);
? ? int i,k,l,u;
? ? printf("請(qǐng)?jiān)O(shè)定輸入的學(xué)生人數(shù):");
?? ?scanf("%d",&u);
?? ?while(u<1||u>10)
?? ?{
?? ??? ?printf("超出數(shù)據(jù)范圍請(qǐng)重輸:");
?? ??? ?scanf("%d",&u);
?? ?}
? ? for(i=1;i<u+1;i++)
? ? {
? ? ? ? printf("\n請(qǐng)輸入第%d個(gè)學(xué)生的信息!\n",i);
? ? ? ? insert(i);
? ? }
? ? do
? ? {
? ? ? ? printf("請(qǐng)按0返回菜單:");
? ? ? ? scanf("%d",&k);
? ? ? ? if (k==0)
? ? ? ? {
? ? ? ? ? ? system("cls");
? ? ? ? ? ? menu();
? ? ? ? }
? ? ? ? else
? ? ? ? ? ? l=0;
? ? }while(l==0);
}
void search() //查詢成績(jī)
{
? ? system("color 3f");
?? ?void menu();
? ? void printf_one(int k);
? ? struct student s;
? ? int i,k,w0,w1,w2;
? ? do
? ? {
? ? ? ? printf("1.姓名 ?2.學(xué)號(hào) \n請(qǐng)選擇查找的類別:");
? ? ? ? scanf("%d",&w1);
? ? ? ? if (w1<1||w1>2)
? ? ? ? {
? ? ? ? ? ? printf("輸入錯(cuò)誤!請(qǐng)重輸:\n");
? ? ? ? ? ? w2 = 1;
? ? ? ? }
? ? ? ? else
? ? ? ? ? ? w2 = 0;
? ? }while(w2 == 1);
? ? if(w1==1) //按姓名查找
? ? {
?? ??? ?do
? ? ? ? {
? ? ? ? ? ? k=-1;
? ? ? ? ? ? do
? ? ? ? ? ? {
? ? ? ? ? ? ? ? printf("請(qǐng)輸入您想查找的學(xué)生的姓名:");
? ? ? ? ? ? ? ? scanf("%s",s.name);
? ? ? ? ? ? ? ? for(i= 1;i<N;i++)
? ? ? ? ? ? ? ? ? ? if(strcmp(s.name,stu[i].name)==0)
? ? ? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? ? ? k=i;
? ? ? ? ? ? ? ? ? ? ? ? s=stu[i];
? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? if(k==-1) //沒有找到
? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? int o;
? ? ? ? ? ? ? ? ? ? printf("\n沒有這個(gè)學(xué)生的信息!\n");
? ? ? ? ? ? ? ? ? ? printf("\n 1.繼續(xù) ?2.返回菜單 \n請(qǐng)選擇進(jìn)行下一個(gè)操作;");
? ? ? ? ? ? ? ? ? ? scanf("%d",&o);
? ? ? ? ? ? ? ? ? ? if (o==1)
? ? ? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? ? ? system("cls");
? ? ? ? ? ? ? ? ? ? ? ? search(); //繼續(xù)查找
? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? ? ? if(o==2)
? ? ? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? ? ? system("cls");
? ? ? ? ? ? ? ? ? ? ? ? menu(); //返回菜單
? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? }
? ? ? ? ? ? }while(k==-1);
? ? ? ? ? ? system("cls");
? ? ? ? ? ? printf_one(k); //查找到以后輸出這個(gè)學(xué)生的信息
? ? ? ? ? ? printf("\n 1.繼續(xù) ?2.返回菜單 \n請(qǐng)選擇進(jìn)行下一個(gè)操作:");
? ? ? ? ? ? scanf("%d",&w0);
? ? ? ? }while(w0==1);
? ? ? ? system("cls");
? ? ? ? menu(); //不再查找時(shí)返回菜單
? ? }
? ? else //按學(xué)號(hào)查找
? ? {
? ? ? ? do
? ? ? ? {
? ? ? ? ? ? k=-1;
? ? ? ? ? ? do
? ? ? ? ? ? {
? ? ? ? ? ? ? ? printf("請(qǐng)輸入您想查找的學(xué)生的學(xué)號(hào):");
? ? ? ? ? ? ? ? scanf("%s",s.num);
? ? ? ? ? ? ? ? for(i=0;i<N;i++)
? ? ? ? ? ? ? ? ? ? if(strcmp(s.num,stu[i].num)==0) //找到了
? ? ? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? ? ? k=i;
? ? ? ? ? ? ? ? ? ? ? ? s=stu[i];
? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? if(k==-1) ? ?//沒有找到
? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? int o;
? ? ? ? ? ? ? ? ? ? printf("\n沒有這個(gè)學(xué)生的信息!\n");
? ? ? ? ? ? ? ? ? ? printf("\n 1.繼續(xù) ?2.返回菜單 \n請(qǐng)選擇進(jìn)行下一個(gè)操作:");
? ? ? ? ? ? ? ? ? ? scanf("%d",&o);
? ? ? ? ? ? ? ? ? ? if(o==1)
? ? ? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? ? ? system("cls");
?? ??? ??? ??? ??? ??? ?search();
? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? ? ? if(o==2)
? ? ? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? ? ? system("cls");
? ? ? ? ? ? ? ? ? ? ? ? menu(); //返回菜單
? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? }
? ? ? ? ? ? }while(k==-1);
? ? ? ? ? ? system("cls");
? ? ? ? ? ? printf_one(k); //找到后輸出這個(gè)學(xué)生的信息
? ? ? ? ? ? printf("\n 1.繼續(xù) ?2.返回菜單 \n請(qǐng)選擇進(jìn)行下一個(gè)操作:");
? ? ? ? ? ? scanf("%d",&w0);
? ? ? ? }while(w0==1);
? ? ? ? system("cls");
? ? ? ? menu(); //不再查找時(shí)返回菜單
? ? }
}
void xiugai() //修改學(xué)生信息的函數(shù)
{
? ? system("color 1a");
?? ?void menu();
? ? void printf_one(int k);
? ? void xiugai_2();
? ? struct student s;
? ? int i,n,k,w0=1,w1,w2=0,o;
? ? do
? ? {
? ? ? ? k=-1;
? ? ? ? do
? ? ? ? {
? ? ? ? ? ? printf("請(qǐng)輸入您想要修改的學(xué)生的姓名:");
? ? ? ? ? ? scanf("%s",s.name);
? ? ? ? ? ? for(i=0;i<N;i++)
? ? ? ? ? ? if(strcmp(s.name,stu[i].name)==0) //與其中一個(gè)學(xué)生匹配
? ? ? ? ? ? {
? ? ? ? ? ? ? ? k=i;
? ? ? ? ? ? ? ? s=stu[i];
? ? ? ? ? ? }
? ? ? ? ? ? if(k==-1) //沒有找到輸入的學(xué)生
? ? ? ? ? ? { ? ? ? ? ? ? ? ?
? ? ? ? ? ? ? ? printf("沒有這個(gè)學(xué)生的信息!\n");
? ? ? ? ? ? ? ? printf("\n 1.繼續(xù) ?2.返回菜單 \n請(qǐng)選擇進(jìn)行下一個(gè)操作:");
? ? ? ? ? ? ? ? scanf("%d",&o);
? ? ? ? ? ? ? ? if(o==1)
? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? system("cls");
?? ??? ??? ??? ??? ?xiugai();
? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? if(o==2)
? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? system("cls");
? ? ? ? ? ? ? ? ? ? menu(); //返回菜單
? ? ? ? ? ? ? ? }
? ? ? ? ? ? }
? ? ? ? }while(k==-1);
? ? ? ? system("cls");
?? ??? ?printf("請(qǐng)輸入修改后的線性代數(shù)分?jǐn)?shù):");
?? ??? ?scanf("%d",&stu[k].ds);
?? ??? ?printf("請(qǐng)輸入修改后的英語(yǔ)分?jǐn)?shù):");
?? ??? ?scanf("%d",&stu[k].eng);
?? ??? ?printf("請(qǐng)輸入修改后的高等數(shù)學(xué)分?jǐn)?shù):");
?? ??? ?scanf("%d",&stu[k].math);
?? ??? ?printf("請(qǐng)輸入修改后的C語(yǔ)言分?jǐn)?shù):");
?? ??? ?scanf("%d",&stu[k].lan);
? ? ? ? printf("\n");
?? ??? ?printf("\n該生修改后的信息如下:\n");
? ? ? ? printf_one(k); //輸出這個(gè)學(xué)生的信息
? ? ? ? printf("\n請(qǐng)按0返回菜單:");
? ? ? ? scanf("%d",&o);
? ? ? ? if(o==0)
? ? ? ? {
? ? ? ? ? ? system("cls");
? ? ? ? ? ? menu(); //返回菜單
? ? ? ? }
? ? }while(1);
}
void printf_all() //輸出所有學(xué)生成績(jī)的函數(shù)
{
? ? void menu();
? ? system("color 9e");
? ? int i,j,k;
? ? for (i=1;i<3;i++)
? ? {
? ? ? ? printf("\n學(xué)號(hào):%s \n姓名:%s \n性別:%s \n民簇:%s \n年齡:%d \n地址:%s \n線性代數(shù)分?jǐn)?shù):%d \n英語(yǔ)分?jǐn)?shù):%d \n高等數(shù)學(xué)分?jǐn)?shù):%d \nC語(yǔ)言分?jǐn)?shù):%d \n",stu[i].num,stu[i].name,stu[i].xb,stu[i].mc,stu[i].old,stu[i].add,stu[i].ds,stu[i].eng,stu[i].math,stu[i].lan);
? ? }
? ? do
? ? {
? ? ? ? printf("請(qǐng)按0返回菜單:");
? ? ? ? scanf("%d",&j);
? ? ? ? if(j==0)
? ? ? ? {
? ? ? ? ? ? system("cls");
? ? ? ? ? ? menu();
? ? ? ? }
? ? ? ? else
? ? ? ? {
? ? ? ? ? ? k = 0;
? ? ? ? }
? ? } while (k == 0);
}
void printf_one(int k) ?//輸出某一個(gè)學(xué)生的信息的函數(shù)
{
?? ?printf("\n學(xué)號(hào):%s \n姓名:%s \n性別:%s \n民簇:%s \n年齡:%d \n地址:%s \n線性代數(shù)分?jǐn)?shù):%d \n英語(yǔ)分?jǐn)?shù):%d \n高等數(shù)學(xué)分?jǐn)?shù):%d \nC語(yǔ)言分?jǐn)?shù):%d \n",stu[k].num,stu[k].name,stu[k].xb,stu[k].mc,stu[k].old,stu[k].add,stu[k].ds,stu[k].eng,stu[k].math,stu[k].lan);
}
void Exit() //退出系統(tǒng)的函數(shù)
{
? ? system("cls");
?? ?system("color 2e");
?? ?printf("\n祝您生活愉快!\n");
?? ?exit(0);
}
void menu() //菜單函數(shù)
{
? ? system("color 1e");
? ? printf("\n\t\t\t歡迎使用學(xué)生學(xué)籍管理系統(tǒng)!\n");
? ? printf("\n");
? ? int n,m;
? ? do
? ? {
? ? ? ? puts("\t\t********************菜單*********************");
? ? ? ? puts("\t\t**************學(xué)生學(xué)籍管理系統(tǒng)***************");
? ? ? ? puts("\t\t*********************************************");
? ? ? ? puts("\t\t******* ? ? ? ?1--輸入數(shù)據(jù) ? ? ? ? ? ? ? ****");
? ? ? ? puts("\t\t******* ? ? ? ?2--查詢成績(jī) ? ? ? ? ? ? ? ****");
? ? ? ? puts("\t\t******* ? ? ? ?3--修改成績(jī) ? ? ? ? ? ? ? ****");
? ? ? ? puts("\t\t******* ? ? ? ?4--輸出所有學(xué)生成績(jī) ? ? ? ****");
? ? ? ? puts("\t\t******* ? ? ? ?5--退出系統(tǒng) ? ? ? ? ? ? ? ****");
? ? ? ? puts("\t\t*********************************************");
? ? ? ? printf("\t\t*************請(qǐng)選擇服務(wù)種類(1~5):");
? ? ? ? scanf("%d",&n);
? ? ? ? if(n<1||n>5)
? ? ? ? {
? ? ? ? ? ? system("cls");
? ? ? ? ? ? printf("\n\t\t*************選擇錯(cuò)誤! 請(qǐng)重新選擇!\n");
? ? ? ? ? ? m=1;
? ? ? ? }
? ? ? ? else
? ? ? ? {
? ? ? ? ? ? m = 0;
? ? ? ? }
? ? }while(m==1);
? ? switch(n)
? ? {
?? ??? ?case 1:system("cls");input();break;
?? ??? ?case 2:system("cls");search();break;
?? ??? ?case 3:system("cls");xiugai();break;
?? ??? ?case 4:system("cls");printf_all();break;
?? ??? ?case 5:Exit();break;
? ? }
}
int main()
{
?? ?int c;
?? ?printf("請(qǐng)輸入密碼:");
?? ?scanf("%d",&c);
?? ?while(c!=12345)
?? ?{
?? ??? ?printf("密碼錯(cuò)誤,請(qǐng)重輸:");
?? ??? ?scanf("%d",&c);
?? ?}
?? ?system("cls");
?? ?menu();
? ? return 0;
}三、效果演示
輸入登入密碼:

輸入數(shù)據(jù):


查詢成績(jī):


修改成績(jī):

輸出所有學(xué)生成績(jī):

退出系統(tǒng):

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- C語(yǔ)言編寫學(xué)生成績(jī)管理系統(tǒng)
- 學(xué)生成績(jī)管理系統(tǒng)C語(yǔ)言代碼實(shí)現(xiàn)
- C語(yǔ)言利用結(jié)構(gòu)體數(shù)組實(shí)現(xiàn)學(xué)生成績(jī)管理系統(tǒng)
- C語(yǔ)言學(xué)生成績(jī)管理系統(tǒng)源代碼
- C語(yǔ)言實(shí)現(xiàn)學(xué)生成績(jī)管理系統(tǒng)實(shí)戰(zhàn)教學(xué)
- C語(yǔ)言實(shí)現(xiàn)簡(jiǎn)單學(xué)生成績(jī)管理系統(tǒng)
- C語(yǔ)言結(jié)構(gòu)體版學(xué)生成績(jī)管理系統(tǒng)
- 使用C語(yǔ)言實(shí)現(xiàn)學(xué)生成績(jī)管理系統(tǒng)
- C語(yǔ)言實(shí)現(xiàn)學(xué)生成績(jī)管理系統(tǒng)
- C語(yǔ)言學(xué)生成績(jī)管理系統(tǒng)課程設(shè)計(jì)
相關(guān)文章
C語(yǔ)言實(shí)現(xiàn)企業(yè)員工管理系統(tǒng)開發(fā)
這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言實(shí)現(xiàn)企業(yè)員工管理系統(tǒng)開發(fā),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-08-08
C語(yǔ)言與C++項(xiàng)目實(shí)現(xiàn)相互調(diào)用
extern?“c”的作用可以實(shí)現(xiàn)c語(yǔ)言和c++相互調(diào)用,本文就詳細(xì)的介紹一下C語(yǔ)言與C++項(xiàng)目實(shí)現(xiàn)相互調(diào)用,感興趣的可以了解一下2022-01-01
C語(yǔ)言鏈表實(shí)現(xiàn)圖書管理系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言鏈表實(shí)現(xiàn)圖書管理系統(tǒng),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-01-01
如何用C++求兩個(gè)數(shù)的最大公約數(shù)和最小公倍數(shù)
最大公約數(shù)是指兩個(gè)或多個(gè)整數(shù)共有約數(shù)中,最大的一個(gè)約數(shù),常用的方法是歐幾里得算法,也叫輾轉(zhuǎn)相除法,下面這篇文章主要給大家介紹了關(guān)于如何用C++求兩個(gè)數(shù)的最大公約數(shù)和最小公倍數(shù)的相關(guān)資料,需要的朋友可以參考下2023-01-01
QT使用共享內(nèi)存實(shí)現(xiàn)進(jìn)程間通訊
這篇文章主要為大家詳細(xì)介紹了QT如何使用共享內(nèi)存實(shí)現(xiàn)進(jìn)程間通訊,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2024-12-12
C++實(shí)現(xiàn)類似延時(shí)停頓的打字效果
這篇文章主要介紹的是使用C++實(shí)現(xiàn)類似延時(shí)停頓的打字效果的代碼,非常的簡(jiǎn)單,推薦給大家,有需要的小伙伴可以參考下。2015-03-03

