當前位置:首頁 » 師生師德 » 師生管理系統

師生管理系統

發布時間: 2020-11-20 12:45:50

① 一個學生信息管理系統

import java.awt.BorderLayout;
import java.awt.Checkbox;
import java.awt.CheckboxGroup;
import java.awt.Container;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;

//錄入的信息包括學號、姓名、性別、出生日期、是否聯合培養等
public class 學生信息圖形界面 extends JFrame implements ActionListener {

public 學生信息圖形界面() { //構造方法
//界面顯示問題
super("學生信息圖形界面");
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
setSize(320, 300);
setVisible(true);
Container content = getContentPane();

JPanel jp1 = new JPanel(); //創建一個面板

JLabel label = new JLabel("歡迎使用學生信息管理系統"); //歡迎界面的歡迎語句
label.setFont(new Font("楷體_GB2312", Font.BOLD, 20)); //設置顯示的字體

jp1.add(label); //將標簽添加到面板jp1中

JPanel jp2 = new JPanel(); //創建一個面板,用於擺放提示各種功能的標簽

JLabel label1 = new JLabel("請輸入學生的詳細資料:"); //輸入提示輸入的語言:
label1.setFont(new Font("楷體_GB2312", Font.BOLD, 18)); //設置顯示的字體

JLabel label2 = new JLabel("學 生 學 號:"); //提示各種輸入內容的標簽
label2.setFont(new Font("楷體_GB2312", Font.BOLD, 18)); //設置顯示的字體t
JTextField field1=new JTextField(10); //10為學號長度,可自行設定

JLabel label3 = new JLabel("學 生 姓 名:"); //提示輸入學生姓名的標簽
label3.setFont(new Font("楷體_GB2312", Font.BOLD, 18)); //設置顯示的字體
JTextField field2=new JTextField(10); //10為姓名長度,可自行設定

JLabel label4 = new JLabel("學 生 性 別: "); //提示輸入學生性別的標簽
label4.setFont(new Font("楷體_GB2312", Font.BOLD, 18)); //設置顯示的字體

CheckboxGroup group1 = new CheckboxGroup(); //創建一個復選框用於選擇某一功能

Checkbox check11 = new Checkbox("男",true,group1); //添加選項到復選框中
check11.setFont(new Font("楷體_GB2312", Font.BOLD, 18)); //設置顯示的字體
check11.addItemListener(new CheckHandler1(1)); //給相應復選框添加事件監聽器
Checkbox check12 = new Checkbox("女",false,group1); //添加選項到復選框中
check12.setFont(new Font("楷體_GB2312", Font.BOLD, 18)); //設置顯示的字體
check12.addItemListener(new CheckHandler1(2)); //給相應復選框添加事件監聽器

JLabel label5 = new JLabel("出 生 日 期:"); //提示輸入出生日期的標簽
label5.setFont(new Font("楷體_GB2312", Font.BOLD, 18)); //設置顯示的字體
JTextField field3=new JTextField("2000",3); //3為姓名長度,可自行設定
JLabel label51 = new JLabel("年");
label51.setFont(new Font("楷體_GB2312", Font.BOLD, 18)); //設置顯示的字體
JTextField field4=new JTextField("01",2); //2為姓名長度,可自行設定
JLabel label52 = new JLabel("月");
label52.setFont(new Font("楷體_GB2312", Font.BOLD, 18)); //設置顯示的字體
JTextField field5=new JTextField("01",2); //2為姓名長度,可自行設定
JLabel label53 = new JLabel("日");
label53.setFont(new Font("楷體_GB2312", Font.BOLD, 18)); //設置顯示的字體

JLabel label6 = new JLabel("聯合培養:"); //提示選擇聯合培養與否的標簽
label6.setFont(new Font("楷體_GB2312", Font.BOLD, 18)); //設置顯示的字體
CheckboxGroup group2 = new CheckboxGroup(); //創建一個復選框用於選擇某一功能

Checkbox check21 = new Checkbox("是",true,group2); //添加選項到復選框中
check21.setFont(new Font("楷體_GB2312", Font.BOLD, 18)); //設置顯示的字體
check21.addItemListener(new CheckHandler2(1)); //給相應復選框添加事件監聽器
Checkbox check22 = new Checkbox("否",false,group2); //添加選項到復選框中
check22.setFont(new Font("楷體_GB2312", Font.BOLD, 18)); //設置顯示的字體
check22.addItemListener(new CheckHandler2(2)); //給相應復選框添加事件監聽器
//添加組件到面板容器中
jp2.add(label1);
jp2.add(label2);
jp2.add(field1);
jp2.add(label3);
jp2.add(field2);
jp2.add(label4);
jp2.add(check11); jp2.add(check12);
jp2.add(label5);
jp2.add(field3);jp2.add(label51); jp2.add(field4);jp2.add(label52); jp2.add(field5);jp2.add(label53);
jp2.add(label6);
jp2.add(check21); jp2.add(check22);

content.add(jp1, BorderLayout.NORTH); //分別添加面板到容器中
content.add(jp2, BorderLayout.CENTER); //分別添加面板到容器中

}

public void actionPerformed(ActionEvent e) {
// 事件響應處理
}
class CheckHandler1 implements ItemListener //復選框鍵的事件響應類
{
private int sel;
CheckHandler1(int select)
{
sel = select;
}
public void itemStateChanged(ItemEvent e)
{
switch(sel)
{
case 1:method1();break; //調用選擇的相應功能的方法
case 2:method2();break; //調用選擇的相應功能的方法
}
}

private void method1() { //事件響應方法
}
private void method2() { // 事件響應方法
}
}
class CheckHandler2 implements ItemListener //復選框鍵的事件響應類
{
private int sel;
CheckHandler2(int select)
{
sel = select;
}
public void itemStateChanged(ItemEvent e)
{
switch(sel)
{
case 1:method1();break; //調用選擇的相應功能的方法
case 2:method2();break; //調用選擇的相應功能的方法
}
}

private void method1() { //事件響應方法
}
private void method2() { //事件響應方法
}
}

//測試
public static void main(String[] args) {
學生信息圖形界面 界面 = new 學生信息圖形界面();
界面.setVisible(true);
}
}

② 實現簡單的學生管理系統

該不會是c語言的課程設計吧,現在的教學還真是極端類似,當時學c我的課程設計也是這種,題目文字表述幾乎不變,不過同學如果你是認真想學到c的話,你還是自己認真投入去編寫吧,
這個題目要編寫系統這幾乎是包含C語言最簡單也是最基礎的幾條命令,如果學了c,連最基礎的都寫不出來。那也就白學了

下面是一個當時沒完成的半成品,剛好電腦里還保存這個文件,我不是專業學C的,下面的程序僅供你參考

#define N 2 //N為輸入的學生數量
#include<stdio.h>

struct student
{
int num[10];
char sex[2];
char name[15];
char cla[12];
int score[3];
}stu[N+N+1];

void input(struct student stu[])
{
int i,j;
for(i=0;i<N;i++)
{
printf("\n請輸入第%d個同學的信息:\n",i+1);
printf("\n學號:");
scanf("%d",stu[i].num);
printf("\n性別,男(女)性用b(g)表示:");
scanf("%s",stu[i].sex);
printf("\n姓名:");
scanf("%s",stu[i].name);
printf("\n班級:");
scanf("%s",stu[i].cla);
for(j=0;j<3;j++)
{
printf("\nscore %d:",j+1);
scanf("%d",&stu[i].score[j]);
}
printf("\n該學生輸入完成!\n");
}
printf("\n 全部輸入結束!\n");
}

void main()
{
void pp();
void input();
void xg();
void print();
void cl();
pp();
printf("\n");
printf("\n 操作完成,關閉窗口退出!\n\n");
}

void print(struct student stu[])
{
int i,j;
printf("\n學號 姓名 性別 班級 score1 score2 score3\n");
for(i=0;i<N;i++)
{
printf("%-15d%-15s%-10s%-10s",*stu[i].num,stu[i].name,stu[i].sex,stu[i].cla);
for(j=0;j<3;j++)
printf("%-9d",stu[i].score[j]);
printf("\n");
}
}

void pp()
{
int s ;
printf(" ★小型學生信息管理系統★\n");
do
{
printf("\n 主菜單\n");
printf("\n 1.數據輸入 2.數據修改 3.數據處理 4.數據輸出 5.退出\n");
printf("\n請輸入您要執行的命令,用命令前的數字表示:");
scanf("%d",&s);
switch(s)
{
case 1 : input(stu);break;
case 2 : xg(stu);break;
case 3 : cl();break;
case 4 : print(stu);break;
}
}
while(s!=5);
}

void xg(struct student stu[])
{
int n,i,j,e;char f;
printf("\n請輸入要修改的學生學號:");
scanf("%d",&n);getchar();
for(i=0;i<N;i++)
/*if(n!=*stu[i].num)
{
if(i==N-1)
printf("\n查無此學號!\n");
}
else*/

{
printf("\n修改過後原有數據將消失,確定?(y/n)");
scanf("%c",&f);
if(f=='y')
{
for(i=0;i<N;i++)
{
if(n==*stu[i].num)
{
do
{
printf("\n 【數據修改】\n");
printf("\n1.學號 2.姓名 3.性別 4.班級 5.成績 6.退出修改\n");
printf("\n重新選擇輸入該學生數據,用命令前的數字表示:");
scanf("%d",&e);
switch(e)
{
case 1 : printf("\n學號:");scanf("%d",stu[i].num);break;
case 2 : printf("\n姓名:");scanf("%s",stu[i].name);break;
case 3 : printf("\n性別,男(女)性用b(g)表示:");scanf("%s",stu[i].sex);break;
case 4 : printf("\n班級:");scanf("%s",stu[i].cla);break;
case 5 : for(j=0;j<3;j++)
{
printf("\nscore %d:",j+1);
scanf("%d",&stu[i].score[j]);
}break;
}
}
while(e!=6);
printf(" \n修改完成!\n");
}
}
}
printf("\n修改結束!\n");
}
}

void cl(struct sudent stu[])
{
void px();
void cx();
void tj();
int q;
do
{
printf("\n 【數據處理】\n");
printf("\n 1.排序 2.查詢 3.統計 4.返回上層\n");
printf("\n請輸入您要執行的命令,用命令前的數字表示:");
scanf("%d",&q);
switch(q)
{
case 1 : px(stu);break;
case 2 : cx(stu);break;
case 3 : tj(stu);break;
}
}
while(q!=4);
}

void px()
{
int l,k,i,j;
for(l=0;l<N;l++)
stu[N+l]=stu[l];
for(l=0;l<N-1;l++)
for(k=0;k<N-l-1;k++)
if(*stu[k+N].num>*stu[N+k+1].num)
{
stu[N+N]=stu[N+k];stu[N+k]=stu[N+1+k];stu[N+1+k]=stu[N+N];
}
printf("\n學號 姓名 性別 班級 score1 score2 score3\n");
for(i=N;i<N+N;i++)
{
printf("%-15d%-15s%-10s%-10s",*stu[i].num,stu[i].name,stu[i].sex,stu[i].cla);
for(j=0;j<3;j++)
printf("%-9d",stu[i].score[j]);
printf("\n");
}
printf("\n 排序完成!\n");
}

void cx()
{
int n,i,j;
printf("\n請輸入您要查詢的學生學號:");
scanf("%d",&n);
for(i=0;i<N;i++)
if(n!=*stu[i].num)
{
if(i==N-1)
printf("\n查無此學號!");
}
else
{
printf("\n學號 姓名 性別 班級 score1 score2 score3\n");
printf("%-15d%-15s%-10s%-10s",*stu[i].num,stu[i].name,stu[i].sex,stu[i].cla);
for(j=0;j<3;j++)
printf("%-9d",stu[i].score[j]);
printf("\n");
}
}

void tj()
{
void pjf();
void loss();
int t;
do
{
printf("\n 【統計】\n");
printf("\n1.輸出各學生的平均分 2.存在不及格科目的學生 3.返回上層\n");
printf("\n請輸入您要執行的命令,用命令前的數字表示:");
scanf("%d",&t);
switch(t)
{
case 1 : pjf();break;
case 2 : loss();break;
}
}
while(t!=3);
}

void pjf()
{

}

void loss()
{

}

師生互動平台管理系統 盡量接近,跪求啊!

網上很多啊 (努力不做木頭)Q

④ 學生管理系統

#include<iostream>
#include<cstring>
#include<fstream>
using namespace std;

int num=0;
const int MAX_NUM_OF_STUDENTS=1000;

struct Student
{
char name[20],sex[10],bonetime[20],address[20],mail[20];
int no,age,phone;

};
Student students[MAX_NUM_OF_STUDENTS];
Student name_students[MAX_NUM_OF_STUDENTS];

char choose;
extern int Input_project();
extern int Search_project();
extern int Delete_project();
extern int Modify_project();

int Face()//主界面
{
cout<<"***********歡迎使用學生信息管理系統************"<<endl<<endl;
cout<<"◇ 錄入(I),"<<endl<<"◇ 查詢(S),"<<endl<<"◇ 刪除(D),"<<endl
<<"◇ 修改(M),"<<endl<<"◇ 退出(E),"<<endl;
cout<<"☆ 請輸入您的選擇(I,S,D,E):";

cin>>choose;

switch(choose)
{ case 'I':
case 'i': system("cls");Input_project();break;
case 'S':
case 's': system("cls");Search_project();break;
case 'D':
case 'd': system("cls");Delete_project();break;
case 'M':
case 'm': system("cls");Modify_project();break;
case 'E':
case 'e': system("cls");return -1;break;
default: cout<<" 輸入錯誤!"<<endl;
}
return 0;
}
int Input_project()//輸入功能
{
choose='C';
while( choose=='C'||choose=='c')
{
num++;
cout<<"請輸入學號:";
cin>>students[num].no;
cout<<"請輸入姓名:";
cin>>students[num].name;
cout<<"請輸入年齡:";
cin>>students[num].age;
cout<<"請輸入性別:";
cin>>students[num].sex;
cout<<"請輸入出生年月:";
cin>>students[num].bonetime;
cout<<"請輸入地址:";
cin>>students[num].address;
cout<<"請輸入電話號碼:";
cin>>students[num].phone;
cout<<"請輸入E-mail:";
cin>>students[num].mail;
cout<<"☆ 繼續或返回主菜單(C/E):";

cin>>choose;

if(choose=='E'||choose=='e') break;
}

num+=1;
int i=num;//以下是按no冒泡排序
bool exchange;
while(i>1)
{ exchange=false;
for( int k=0;k<i-1;k++)
{ if(students[k].no>students[k+1].no)
{ Student temp=students[k];
students[k]=students[k+1];
students[k+1]=temp;
exchange=true;
}
}
if (!exchange) break;
i--;
}

for (int t=0;t<num;t++)//結構體數組各項一一復制
{ name_students[t].no=students[t].no;
*strcpy(name_students[t].name,students[t].name);
name_students[t].age=students[t].age;
*strcpy(name_students[t].sex,students[t].sex);
*strcpy(name_students[t].bonetime,students[t].bonetime);
*strcpy(name_students[t].address,students[t].address);
name_students[t].phone=students[t].phone;
*strcpy(name_students[t].mail,students[t].mail);
}

while(i>1)//以下是按name冒泡排序
{ exchange=false;
for( int k=0;k<i-1;k++)
{ if(strcmp(name_students[k].name,name_students[k+1].name)>0)
{ Student temp=name_students[k];
name_students[k]=name_students[k+1];
name_students[k+1]=temp;
exchange=true;
}
}
if (!exchange) break;
i--;
}

FILE *fp=fopen("c:\\name.txt","a+");//存儲兩結構體數組
FILE *fp1=fopen("c:\\number.txt","a+");

if (fp == NULL||fp1 == NULL)//判斷文件打開是否成功
{
cout<<"打開文件失敗!"<<endl;
return -1;
}
for(i=0;i<num;i++)
{
fwrite(&students[i],sizeof(Student),1,fp);
fwrite(&name_students[i],sizeof(Student),1,fp1);
}
fclose(fp);
fclose(fp1);
system("cls");return 0;
}
int Search_project()//查詢功能
{
FILE *fp=fopen("c:\\name.txt","r");
FILE *fp1=fopen("c:\\number.txt","r");
if (fp == NULL||fp1 == NULL)//判斷文件打開是否成功
{
cout<<"打開文件失敗!"<<endl;
return -1;
}
num=0;

fread(&students[num],sizeof(Student),1,fp);
fread(&name_students[num],sizeof(Student),1,fp1);
while((!feof(fp))&&(!feof(fp1)))
{
num++;//計算已存儲的資料的人數num
fread(&students[num],sizeof(Student),1,fp);
fread(&name_students[num],sizeof(Student),1,fp1);
}
fclose(fp);
fclose(fp1);

cout<<'\t'<<"按學號查詢(A)"<<'\t'<<"按姓名查詢(B)"<<'\t'<<"返回主菜單(E)"<<endl;
cout<<"Ο 請選擇:";
char input;
cin>>input;

switch(input)
{
case 'A':
case 'a':
{
cout<<"請輸入學號:";
int number;
cin>>number;//以下是折半查詢:
int low=0;
int high=num-1;
while (low<=high)
{
int mid=(low+high)/2;
if (students[mid].no==number)
{
cout<<" 學號:"<<students[mid].no<<endl;
cout<<" 姓名:"<<students[mid].name<<endl;
cout<<" 年齡: "<<students[mid].age<<endl;
cout<<" 性別: "<<students[mid].sex<<endl;
cout<<"出生年月: "<<students[mid].bonetime<<endl;
cout<<" 地址: "<<students[mid].address<<endl;
cout<<"電話號碼: "<<students[mid].phone<<endl;
cout<<" E-mail: "<<students[mid].mail<<endl;

break;
}
else if (number>students[mid].no)
low=mid+1;
else high=mid-1;
}
if(low>high) cout<<" 無相關資料!"<<endl;
}
break;

case 'B':
case 'b':
{
cout<<"請輸入姓名:";
char name[20];
cin>>name;
int low=0;
int high=num-1;//以下是折半查詢:
while (low<=high)
{
int mid=(low+high)/2;
if (strcmp(name_students[mid].name,name)==0)
{
cout<<" 學號:"<<name_students[mid].no<<endl;
cout<<" 姓名:"<<name_students[mid].name<<endl;
cout<<" 年齡: "<<name_students[mid].age<<endl;
cout<<" 性別: "<<name_students[mid].sex<<endl;
cout<<" 出生年月: "<<name_students[mid].bonetime<<endl;
cout<<" 地址: "<<name_students[mid].address<<endl;
cout<<" 電話號碼: "<<name_students[mid].phone<<endl;

cout<<" E-mail: "<<name_students[mid].mail<<endl;
break;
}
else if (strcmp(name_students[mid].name,name)<0)
low=mid+1;
else high=mid-1;
}
if(low>high) cout<<" 無相關資料!"<<endl;
}
break;
case 'E':
case 'e':
system("cls");
return -1;break;
}

cout<<"☆ 繼續或返回主菜單(C/E):";

cin>>choose;
if(choose=='C'||choose=='c')
{
system("cls");
Search_project();
}
else
{
system("cls");
return -1;
}
return 0;
};

int Delete_project()
{
cout<<'\t'<<"按學號刪除(A)"<<'\t'<<"按姓名刪除(B)"<<'\t'<<"返回主菜單(E)"<<endl;
cout<<" 請選擇:";
char input;
cin>>input;

switch(input)
{
case 'A':
case 'a':
cout<<" 需刪除的學生的學號是:";
int number;
cin>>number;
for(int i=0;i<num;i++)
{
if( students[i].no==number)
break;
}
for(int j=i;j<num;j++)//將要刪除的學生調至數組最後一位,前num-1位仍按no排列
{
Student temp =students[j];
students[j]=students[j+1];
students[j+1]=temp;
}
case 'B':
case 'b':
cout<<" 需刪除的學生的姓名是:";
char name[20];
cin>>name;
for(int t=0;t<num;t++)
{
if(strcmp(name_students[t].name,name)==0)
break;
}
for(int j=t;j<num;j++)//將要刪除的學生調至數組最後一位,前num-1位仍按name排列
{
Student temp =name_students[j];
name_students[j]=name_students[j+1];
name_students[j+1]=temp;
}
num-=1;//總人數減一,即刪除最後一位

FILE *fp=fopen("c:\\name.txt","w");
FILE *fp1=fopen("c:\\number.txt","w");
if (fp == NULL||fp1 == NULL)//判斷文件打開是否成功
{
cout<<"打開文件失敗!"<<endl;
return -1;
}
for(i=0;i<num;i++)
{
fwrite(&students[i],sizeof(Student),1,fp);
fwrite(&name_students[i],sizeof(Student),1,fp1);
}
fclose(fp);
fclose(fp1);

bool p=true;//以下查找並判斷刪除是否成功
int low=0;
int high=num-1;
while (low<=high)
{
int mid=(low+high)/2;
if (students[mid].no==number||name_students[mid].no==number)
{
cout<<" 刪除失敗!"<<endl;
p=false;
break;
}
else if (number>students[mid].no)
low=mid+1;
else high=mid-1;
}
if(p)
cout<<" 刪除成功!"<<endl;
cout<<"☆ 繼續或返回主菜單(C/E):";

cin>>choose;
if(choose=='C'||choose=='c')
{
system("cls");Delete_project();
}
else
{
system("cls");return -1;
}
return 0;
};

int Modify_project()
{
FILE *fp=fopen("c:\\name.txt","r");
FILE *fp1=fopen("c:\\number.txt","r");
if (fp == NULL||fp1 == NULL)//判斷文件打開是否成功
{
cout<<"打開文件失敗!"<<endl;
return -1;
}
num=0;
fread(&students[num],sizeof(Student),1,fp);
fread(&name_students[num],sizeof(Student),1,fp1);
while((!feof(fp))&&(!feof(fp1)))
{
num++;//計算已存儲的資料的人數num
fread(&students[num],sizeof(Student),1,fp);
fread(&name_students[num],sizeof(Student),1,fp1);
}
fclose(fp);
fclose(fp1);

cout<<" 需修改的學生的學號是:";
int number;
cin>>number;
int t,math,english,physics,computer;
cout<<" 輸入修改結果:"<<endl;
cout<<" 姓名:";
cin>>name;
cout<<" 年齡:";
cin>>age;
cout<<" 性別:";
cin>>sex;
cout<<" 出生年月:";
cin>>bonetime;
cout<<" 地址:";
cin>>address;
cout<<" 電話號碼:";
cin>>phone;
cout<<" E-mail:";
cin>>mail;
for(int i=0;i<num;i++)
{
if( students[i].no==number)
break;
}
students[i].name=name;
students[i].age=age;
students[i].sex=sex;
students[i].bonetime=bonetime;
students[i].address=address;
students[i].phone=phone;
students[i].mail=mail;

i=num;//以下是按no冒泡排序
bool exchange;
while(i>1)
{
exchange=false;
for( int k=0;k<i-1;k++)
{
if(students[k].no>students[k+1].no)
{
Student temp=students[k];
students[k]=students[k+1];
students[k+1]=temp;
exchange=true;
}
}
if (!exchange) break;
i--;
}

for (t=0;t<num;t++)//結構體數組各項一一復制
{
name_students[t].no=students[t].no;
*strcpy(name_students[t].name,students[t].name);
name_students[t].age=students[t].age;
name_students[t].sex=students[t].sex;
name_students[t].bonetime=students[t].bonetime;
name_students[t].address=students[t].address;
name_students[t].phone=students[t].phone;
name_students[t].mail=students[t].mail;
}
while(i>1)//以下是按name冒泡排序
{
exchange=false;
for( int k=0;k<i-1;k++)
{
if(strcmp(name_students[k].name,name_students[k+1].name)>0)
{
Student temp=name_students[k];
name_students[k]=name_students[k+1];
name_students[k+1]=temp;
exchange=true;
}
}
if (!exchange) break;
i--;
}

fp=fopen("c:\\name.txt","w+");//存儲兩結構體數組,w+表示清空已有文件的內容
fp1=fopen("c:\\number.txt","w+");
if (fp == NULL||fp1 == NULL)//判斷文件打開是否成功
{
cout<<"打開文件失敗!"<<endl;
return -1;
}
for(i=0;i<num;i++)
{
fwrite(&students[i],sizeof(Student),1,fp);
fwrite(&name_students[i],sizeof(Student),1,fp1);
}
fclose(fp);
fclose(fp1);
cout<<"☆ 繼續或返回主菜單(C/E):";

cin>>choose;
if(choose=='C'||choose=='c')
{
system("cls");Delete_project();}
else {system("cls");return -1;}
return 0;
};

int main()
{
system("cls");
do
{Face();}
while (choose=='e'||choose=='E');
return 0;
system("pause");
}

⑤ 學生信息管理系統C

#include <stdio.h>
#include <malloc.h>
#include <string.h>
#include <io.h>
#define NULL 0
#define LEN sizeof(struct student)
#define FILE_DATA_PATH "c:\student.txt"

struct student
{
long int num;
char name[20];
int age;
char sex[4];
char birthday[10];
char address[30];
long int tele_num;
char E_mail[20];
struct student *next;
};

int TOTAL_NUM = 0;
struct student *head = NULL;

void welcome();
void mainmenu();
void record();
void insert(struct student *stu);
void display(struct student *stu);
void displayAll();
void query();
void query_by_num();
void query_by_name();
void readData();
void writeData();
void freeAll();
void del();
void change();
void devise(struct student *p);

int main()
{
char userName[9];
char userPWD[7];
int i;
welcome();
for(i = 0; i < 3; i++)
{
printf("\n管理員初始用戶名和密碼均為admin\n");
printf("請輸入您的用戶名:");
scanf("%s", userName);

printf("\n請輸入您的密碼:");
scanf("%s", userPWD);

if ((strcmp(userName,"admin")==0) && (strcmp(userPWD,"admin")==0))
{
//用戶名和密碼正確,顯示主菜單
mainmenu();
break;
}
else
{
if (i < 2)
{
//用戶名或密碼錯誤,提示用戶重新輸入
printf("用戶名或密碼錯誤,請重新輸入!");
}
else
{
//連續3次輸錯用戶名或密碼,退出系統。
printf("您已連續3次將用戶名或密碼輸錯,系統將退出!");
}
}
}
return 0;
}
//顯示歡迎信息
void welcome()
{
printf("+---------------------------+\n");
printf("| |\n");
printf("| 歡迎使用學生信息管理系統 |\n");
printf("| |\n");
printf("+---------------------------+\n");
}

//系統主菜單
void mainmenu()
{
int choice;
choice = -1;
readData();
printf("\n溫馨提示:為保證您的操作得到保存,請按正常順序退出系統^_^\n");
do
{
printf("\n\n\n");
printf("\t\t\t--------------------------------\n");
printf("\t\t\t+ 學生信息管理系統 |\n");
printf("\t\t\t--------------------------------\n");
printf("\t\t\t+ [1]----錄入學生信息 |\n");
printf("\t\t\t+ [2]----瀏覽學生信息 |\n");
printf("\t\t\t+ [3]----查詢學生信息 |\n");
printf("\t\t\t+ [4]----刪除學生信息 |\n");
printf("\t\t\t+ [5]----修改學生信息 |\n");
printf("\t\t\t+ [0]----退出系統 |\n");
printf("\t\t\t+*·*·*·*·*·*·*·*·*·*·|\n");
printf("\t\t\t--------------------------------\n");
printf("請輸入您的選擇:");
scanf("%d", &choice);
switch(choice)
{
case 0:
writeData();
freeAll();
exit(0);
case 1:
record();
break;
case 2:
displayAll();
break;
case 3:
query();
break;
case 4:
del();
break;
case 5:
change();
break;
default:
printf("\n無效選項!");
break;
}
}
while(choice != 0);
}
//錄入學生信息
void record()
{
struct student *p0;

p0 = (struct student *)malloc(LEN);
printf("請輸入學生的學號:");
scanf("%ld",&p0->num);
printf("請輸入學生的姓名:");
scanf("%s",p0->name);
printf("請輸入學生的年齡:");
scanf("%d",&p0->age);
printf("請輸入學生的性別:");
scanf("%s",p0->sex);
printf("請輸入學生的出生年月:");
scanf("%s",p0->birthday);
printf("請輸入學生的地址:");
scanf("%s",p0->address);
printf("請輸入學生的電話:");
scanf("%ld",&p0->tele_num);
printf("請輸入學生的E-mail:");
scanf("%s",p0->E_mail);

insert(p0);
printf("該學生的信息為:\n");
printf("-------------------------------------------------------------------------------");
printf("學號\t姓名\t年齡\t性別\t出生年月\t\t地址\t電話\tE-mail\n");
display(p0);
}

void insert(struct student *stu)
{
struct student *p0, *p1, *p2;

p1 = head;
p0 = stu;

if(head == NULL)
{
head = p0;
p0->next = NULL;
}
else
{
while((p0->num > p1->num)&&(p1->next != NULL))
{
p2 = p1;
p1 = p1->next;
}
if(p0->num <= p1->num)
{
if(head == p1)
head = p0;
else
p2->next = p0;
p0->next = p1;
}
else
{
p1->next = p0;
p0->next = NULL;
}
}
TOTAL_NUM++;
}

void display(struct student *p)
{
printf("%ld\t%s\t%d\t%s\t%s\t%s\t%ld\t%s\n", p->num, p->name, p->age, p->sex, p->birthday, p->address, p->tele_num, p->E_mail);
}
//瀏覽學生信息
void displayAll()
{
struct student *p;

printf("學生總數:%d\n", TOTAL_NUM);
p = head;
if(head != NULL)
{
printf("\n學號\t姓名\t年齡\t性別\t出生年月\t地址\t電話\tE-mail\n");
printf("-------------------------------------------------------------------------------");
do
{
display(p);
p = p->next;
}
while(p != NULL);
}
printf("\n");
}
//查詢學生信息
void query()
{
int choice;
choice = -1;
do
{
printf("\n");
printf("+--------------------+\n");
printf("| 按學號查詢 請按 1 |\n");
printf("| 按姓名查詢 請按 2 |\n");
printf("| 取消 請按 0 |\n");
printf("+--------------------+\n");

printf("請輸入您的選擇:");
scanf("%d", &choice);

switch(choice)
{
case 0:
return;
case 1:
query_by_num();
break;
case 2:
query_by_name();
break;
default:
printf("\n無效選項!");
break;
}
}
while(choice != 0);
}
//按學號查詢學生信息
void query_by_num()
{
int num;
struct student *p1;

printf("請輸入學生的學號:");
scanf("%ld", &num);
if(head==NULL)
{
printf("無學生記錄!\n");
return;
}
p1=head;
while(num!=p1->num && p1->next!=NULL)
p1=p1->next;
if(num == p1->num)
{
printf("\n學號\t姓名\t年齡\t性別\t出生年月\t地址\t電話\tE-mail\n");
printf("-------------------------------------------------------------------------------");
display(p1);
}
else
printf("沒有該學生記錄,請核對!");
}
//按姓名查詢學生信息
void query_by_name()
{
char name[20];
struct student *p1;

printf("請輸入學生的姓名:");
scanf("%s", name);
if(head==NULL)
{
printf("無學生記錄!\n");
return;
}
p1=head;
while(strcmp(name, p1->name) && p1->next!=NULL)
p1=p1->next;
if(!strcmp(name, p1->name))
{

printf("\n學號\t姓名\t年齡\t性別\t出生年月\t地址\t電話\tE-mail\n");
printf("-------------------------------------------------------------------------------");
display(p1);
}
else
printf("沒有該學生記錄,請核對!");
}
//寫入文件
void writeData()
{
FILE* fp;//文件指針
struct student *p;

fp = fopen(FILE_DATA_PATH, "w");
if (!fp)
{
printf("文件打開錯誤!");
return;
}

fprintf(fp,"%d\n", TOTAL_NUM);
for(p = head; p!= NULL; p= p->next)
{
fprintf(fp,"%ld\t%s\t%d\t%s\t%s\t%s\t%ld\t%s\n",
p->num, p->name, p->age, p->sex, p->birthday, p->address, p->tele_num, p->E_mail);
}
fclose(fp);
}

void freeAll()
{
struct student *p1, *p2;

p1=p2=head;
while(p1)
{
p2=p1->next;
free(p1);
p1=p2;
}
}
//讀取文件
void readData()
{
FILE* fp;//文件指針
struct student *p1, *p2;

fp = fopen(FILE_DATA_PATH, "r");
if (!fp)
{
printf("文件打開錯誤!");
return 0;
}

fscanf(fp,"%d\n", &TOTAL_NUM);
head = p1 = p2 = (struct student *)malloc(LEN);
fscanf(fp,"%ld\t%s\t%d\t%s\t%s\t%s\t%ld\t%s\n",
&p1->num, p1->name, &p1->age, p1->sex, p1->birthday, p1->address, &p1->tele_num, p1->E_mail);
while(!feof(fp))
{
p1 = (struct student *)malloc(LEN);
fscanf(fp,"%ld\t%s\t%d\t%s\t%s\t%s\t%ld\t%s\n",
&p1->num, p1->name, &p1->age, p1->sex, p1->birthday, p1->address, &p1->tele_num, p1->E_mail);
p2->next = p1;
p2 = p1;
}
p2->next = NULL;
fclose(fp);
}
//刪除學生信息
void del()
{
struct student *p1, *p2;
long int num;

if(head == NULL)
{
printf("無學生記錄!\n");
return;
}

printf("請輸入您要刪除的學生的學號:");
scanf("%ld", &num);

p1 = head;

while(num != p1->num && p1->next != NULL)
{
p2 = p1;
p1 = p1->next;
}
if(num == p1->num)
{
if(p1 == head)
head = p1->next;
else p2->next = p1->next;
free(p1);
TOTAL_NUM--;
}
else
printf("沒有該學生記錄,請核對!\n");
}
//修改學生信息
void change()
{
struct student *p1, *p2;
long int num;

if(head == NULL)
{
printf("無學生記錄!\n");
return;
}

printf("請輸入您要修改的學生的學號:");
scanf("%ld", &num);

p1 = head;

while(num != p1->num && p1->next != NULL)
{
p2 = p1;
p1 = p1->next;
}
if(num == p1->num)
devise(p1);
else
printf("沒有該學生記錄,請核對!\n");

}

void devise(struct student *p)
{
int choice;
choice = -1;
do
{
printf("請選擇您要修改的學生的信息內容:\n");
printf("+----------------------+\n");
printf("| 姓名 請按 1 |\n");
printf("| 年齡 請按 2 |\n");
printf("| 性別 請按 3 |\n");
printf("| 出生年月 請按 4 |\n");
printf("| 地址 請按 5 |\n");
printf("| 電話 請按 6 |\n");
printf("| E-mail 請按 7 |\n");
printf("| 取消 請按 0 |\n");
printf("+----------------------+\n");

printf("請輸入您的選擇:");
scanf("%d", &choice);

switch(choice)
{
case 0:
return;
case 1:
printf("請輸入新姓名:");
scanf("%s", p->name);
break;
case 2:
printf("請輸入新年齡:");
scanf("%d", &p->age);
break;
case 3:
printf("請輸入新性別:");
scanf("%s", p->sex);
break;
case 4:
printf("請輸入新出生年月:");
scanf("%s", p->birthday);
break;
case 5:
printf("請輸入新地址:");
scanf("%s", p->address);
break;
case 6:
printf("請輸入新電話:");
scanf("%ld", &p->tele_num);
break;
case 7:
printf("請輸入新E-mail:");
scanf("%s", p->E_mail);
break;
default:
printf("\n無效選項!");
break;
}
}
while(choice != 0);
}

⑥ 設計一個學生信息管理系統

#include #include #include #define MAX 1000 /*定義學生成績信息結構*/ struct stu { char id[8]; char name[8]; double Chinese; double Math; double English; double average; double total; }; /*學生結構數組,用於存儲學生成績信息*/ struct stu students[MAX]; /*當前學生人數*/ int current; void input() { int i; printf("請輸入學生人數:"); scanf("%d", & current); for (i = 0; i < current; i++) { printf("\n請輸入學生學號,最多為7位數: "); scanf("%s", students[i].id); printf("請輸入學生姓名:"); scanf("%s", students[i].name); printf("請輸入語文成績:"); scanf("%lf", &students[i].Chinese); printf("請輸入數學成績:"); scanf("%lf", &students[i].Math); printf("請輸入英語成績:"); scanf("%lf", &students[i].English); students[i].total = students[i].Chinese + students[i].Math + students[i].English; students[i].average = students[i].total / 3; } } /*排名次,即對學生結構數組排序*/ void sort(struct stu array[], int n) { int i, j; struct stu temp; for (i = 0; i < n; i++) { for (j = i+1; j < n; j++) { if (array[i].average - array[j].average < 1e-16) { temp = array[i]; array[i] = array[j]; array[j] = temp; } } } } /*統計平均成績,並輸出各分數段的人數*/ void print_score(struct stu array[], int n) { int i; double ave = 0; int sum1 = 0, sum2 = 0, sum3 = 0, sum4 = 0; for (i = 0; i < n; i++) { ave += array[i].average; switch ((int)(array[i].average / 10)) { case 10: case 9: sum1++; break; case 8: sum2++; break; case 7: case 6: sum3++; break; default: sum4++; } } printf("全班的平均分為:%.1f\n", ave/n); printf("平均分在90分以上的人數為:%d\n", sum1); printf("平均分在80~89的人數為:%d\n", sum2); printf("平均分在60~79的人數為:%d\n", sum3); printf("平均分在60分以下的人數為:%d\n", sum4); } /*輸出不及格科目及學生名單*/ void print_unreach(struct stu array[], int n) { int i; printf("科目\t學號\t名字\n"); for (i = 0; i < n; i++) { if (array[i].Chinese < 60) { printf("語文\t%s\t%s\n", array[i].id, array[i].name); } if (array[i].Math < 60) { printf("數學\t%s\t%s\n", array[i].id, array[i].name); } if (array[i].English 60) { printf("英語\t%s\t%s\n", array[i].id, array[i].name); } } } /*列印優等生名單*/ void print_good(struct stu array[], int n) { int i; char mark = 0; if (n > 3) { n = 3; } printf("學號\t姓名\t語文\t數學\t英語\t平均分\t名次\n"); for (i = 0; i n; i++) { if ((array[i].Chinese > 60) && (array[i].Math > 60) && (array[i].English > 60)) { if (array[i].average > 90) mark = 1; else if (array[i].average > 85) { if (array[i].Chinese == 100) mark = 1; if (array[i].Math == 100) mark = 1; if (array[i].English == 100) mark = 1; if (array[i].Chinese > 95 && array[i].English > 95) mark = 1; if (array[i].Chinese > 95 && array[i].Math > 95) mark = 1; if (array[i].Math > 95 && array[i].English > 95) mark = 1; } if (mark == 1) { printf("%s\t%s\t", array[i].id, array[i].name); printf("%.f\t%.f\t%.f\t%.1f\t", array[i].Chinese, array[i].Math, array[i].English, array[i].average); printf("%d\n", i+1); } } } } /*按學生姓名查詢成績*/ void search_name(struct stu array[], int n, char* name) { int i; char mark = 1; for (i = 0; i < n; i++) { if (strcmp(name, array[i].name) == 0) { printf("學生姓名:%s\n", name); printf("學生學號:%s\n", array[i].id); printf("語文:%.f\n", array[i].Chinese); printf("數學:%.f\n", array[i].Math); printf("英語:%.f\n", array[i].English); printf("平均分:%.1f\n", array[i].average); mark = 0; } } if (mark == 1) puts("不存在該學生記錄"); } /*按學生學號查詢成績*/ void search_id(struct stu array[], int n, char* id) { int i; char mark = 1; for (i = 0; i < n; i++) { if (strcmp(id, array[i].id) == 0) { printf("學生姓名:%s\n", array[i].name); printf("學生學號:%s\n", array[i].id); printf("語文:%.f\n", array[i].Chinese); printf("數學:%.f\n", array[i].Math); printf("英語:%.f\n", array[i].English); printf("平均分:%.1f\n", array[i].average); mark = 0; break; } } if (mark == 1) puts("不存在該學生記錄"); } void print_menu() { system("cls"); printf("1.輸入學生信息\n"); puts("2.統計全班學生成績"); puts("3.按學號查詢學生成績"); puts("4.按姓名查詢學生成績"); puts("5.輸出不及格情況"); puts("6.輸出優等生名單"); puts("0.退出本程序"); printf("\n\n 請輸入你的選擇:"); } int main(int argc, char **argv) { char ch = 0; char id[8], name[8]; while (ch != '0') { print_menu(); ch = getchar(); switch (ch) { case '1': { system("cls"); input(); sort(students, current); break; } case '2': { system("cls"); print_score(students, current); break; } case '3': { system("cls"); printf("請輸入學號:"); scanf("%s", id); search_id(students, current, id); break; } case '4': { system("cls"); printf("請輸入姓名:"); scanf("%s", name); search_name(students, current, name); break; } case '5': { system("cls"); print_unreach(students, current); break; } case '6': { system("cls"); print_good(students, current); break; } case '0': exit(0); } printf("\n\n按任意鍵返回主菜單……"); getchar(); getchar(); } return 0; }

⑦ 求一個簡單學生管理系統

找學C++的人幫你編一個,我又一個類似的。不過我不會搞成系統界面。不過先發給你看看。
定義一個學生類,共中有3個數據成員:學號、姓名、年齡,以及若干成員函數。同時編寫main函數使用這個類,實現對學生數據的賦值和輸出,並且實現以ASCII碼形式將學生的信息存儲到一個磁碟文件中。
#include <iostream.h>
#include <math.h>
#include <iomanip.h>
#include <string.h>
#include <stdlib.h>
#include <fstream.h>
struct student
{
int mo,da,yr;
char name[10];
int num;
int age;
static char curr[2][10]; //課程名
float score[2]; //相應課程的分數
};
char student::curr[2][10];

float average(student stu) //求某學生三門課的平均分
{
float sum=0;
for(int i=0;i<2;i++)
sum+=stu.score[i];
return sum/2;
}
float average1(student stu[],int n,int k)//求某門課總平均分,k代表課程的編號
{
float sum=0;
for(int i=0;i<n;i++)
sum+=stu[i].score[k];
return sum/n;
}
void sort(student stu[],int n) //對stu按平均成績進行排序(降序)
{
student temp;
for(int i=0;i<n-1;i++)
{
for(int j=i+1;j<n;j++)
if(average(stu[i])<average(stu[j]))
{
temp=stu[i];
stu[i]=stu[j];
stu[j]=temp;
}
}
}
void main()
{
ofstream fout; //fout輸出文件流對象
ifstream fin;
student stu[50];
int count=0;
char endyn;
cout<<"輸入兩門課的名稱:";
cin>>student::curr[0]>>student::curr[1];
while(1)
{
cout<<"輸入第"<<count+1<<"個學生的信息:\n";
cout<<"姓名:";
cin>>stu[count].name;
cout<<"學號:";
cin>>stu[count].num;
cout<<"年齡:";
cin>>stu[count].age;
for(int i=0;i<2;i++)
{
cout<<"課程"<<student::curr[i]<<"的得分為:";
cin>>stu[count].score[i];
}
cout<<"是否繼續(Y/N)";
cin>>endyn;
if(endyn=='N'||endyn=='n')
{
cout<<'\n';
break;
}
else
count++;
}
for(int i=0;i<=count;i++)
{
cout<<stu[i].name<<"兩門課的平均分為:"<<average(stu[i])<<'\n';
}
for(i=0;i<2;i++)
{
cout<<"\n全班課程"<<student::curr[i]<<"的平均分為:"<<average1(stu,count+1,i);
}
cout<<"\n\n";
sort(stu,count+1);
cout<<" 按平均成績排名:\n\n";
cout<<setw(8)<<"姓名"<<setw(8)<<"學號"<<setw(8)<<"年齡"<<setw(12)<<student::curr[0]<<setw(12)
<<student::curr[1]<<setw(12)<<"平均成績\n";
for(i=0;i<=count;i++)
cout<<setw(8)<<stu[i].name<<setw(8)<<stu[i].num<<setw(8)<<stu[i].age<<setw(12)<<stu[i].score[0]
<<setw(12)<<stu[i].score[1]<<setw(12)<<average(stu[i])<<'\n';
while(fout&&i<3)
{
fout.write((char*)&stu[i],sizeof(student));
i++;
}
fout.close();
fin.open("students.txt",ios::in|ios::binary);
if (!fin)
{
cout<<"Error:Can't open students.txt!";
exit(1);
}
fin.close();
}
輸入和輸出結果:(粗體為輸入結果)
輸入兩門課的名稱:gaoshu
wuli
輸入第1個學生的信息:
姓名:zhao
學號:2
年齡:21
課程gaoshu的得分為:83
課程wuli的得分為:76
是否繼續(Y/N)y
輸入第2個學生的信息:
姓名:qian
學號:5
年齡:21
課程gaoshu的得分為:73
課程wuli的得分為:87
是否繼續(Y/N)y
輸入第3個學生的信息:
姓名:sun
學號:7
年齡:21
課程gaoshu的得分為:82
課程wuli的得分為:79
是否繼續(Y/N)y
輸入第4個學生的信息:
姓名:zhou
學號:18
年齡:20
課程gaoshu的得分為:82
課程wuli的得分為:84
是否繼續(Y/N)n

zhao兩門課的平均分為:79.5
qian兩門課的平均分為:80
sun兩門課的平均分為:80.5
zhou兩門課的平均分為:83

全班課程gaoshu的平均分為:80
全班課程wuli的平均分為:81.5

按平均成績排名:

姓名 學號 年齡 gaoshu wuli 平均成績
zhou 18 20 82 84 83
sun 7 21 82 79 80.5
qian 5 21 73 87 80
zhao 2 21 83 76 79.5

⑧ 學生管理系統的介紹

學生信息管理系統是針對學校學生處的大量業務處理工作而開發的管理軟體,主要用於學校學生信息管理,總體任務是實現學生信息關系的系統化、科學化、規范化和自動化,其主要任務是用計算機對學生各種信息進行日常管理,如查詢、修改、增加、刪除等,另外還考慮到學生選課,針對這些要求設計了學生信息管理系統。推行學校信息管理系統的應用是進一步推進學生學籍管理規范化、電子化、控制輟學和提高義務教育水平的重要舉措。

熱點內容
幼兒教師演講稿精選 發布:2025-07-11 14:51:14 瀏覽:105
燃料電池歷史 發布:2025-07-11 13:49:58 瀏覽:96
什麼心理 發布:2025-07-11 11:13:50 瀏覽:198
天都教育 發布:2025-07-11 09:35:37 瀏覽:447
廈門在職教師招聘 發布:2025-07-11 09:05:50 瀏覽:694
十佳師德模範先進事跡材料 發布:2025-07-11 08:34:05 瀏覽:745
曲宏老師 發布:2025-07-11 08:29:28 瀏覽:130
初中物理考點 發布:2025-07-11 08:00:56 瀏覽:539
九年級上冊仁愛版英語 發布:2025-07-11 07:43:32 瀏覽:666
七律長征教學視頻 發布:2025-07-11 06:31:58 瀏覽:438