⑴ 學生成績管理系統
wo gang xie le ge yao jia Q
⑵ 中小學通用教務管理系統好用嗎
我打聽了一下可以看看課棧互聯。因為教務管理系統主要應該解決一下三個問題:
1、提高招生轉化率也就是CRM系統,目前市面上做的很多可以參考一下,但是與之後教務和財務系統無法打通;
2、教務管理系統:有了(意向)學員就需要對學生信息,課程,學費等進行管理,除此之外還有銷售提成,教師課時提成是財務頭疼的事,排課和簽到管理是老師工作量巨大;
3、營銷系統:主要是將教學過程和成果溝通和分享出去,再結合社會化媒體,從口碑方面促進招生工作。
總之教務管理系統圍繞學生/學員,教師,銷售為主的三個人員,(提成)財務一個資金流,教室一個線下地點,簽單、課程、簽到三個事件為主線,你可以用一下課棧互聯的系統,希望對你的問題能有幫助。
⑶ 中小學通用教務管理系統 7.1 登陸密碼是多少
每個單位不一樣 問自己單位的同志吧
⑷ 學生成績管理系統哪個好
給你個推薦個,軟體介紹鏈接可參閱文庫:
http://wenku..com/link?url=xocDSJdPietT4_bEFJNFsK8GqmNBFP-UQV8nzDZFmK_qRHUYp363Yk_
下載鏈接:http://rj..com/soft/detail/38341.html
這個是目前新發現的最好的了,僅供參考。
如果覺得好用請採納我的答案!
⑸ 1;學生成績管理系統.
工作量太大了
有點報酬可能還會有人幫
而且你也沒說明白用什麼語言來寫
⑹ 中小學管理系統的系統功能
學校綜合管理平台包括:學生管理(包括學籍管理 、成績管理、試卷分析、作業管理、素質評價、家校互動)、教職工管理(包括教師人事信息、教師業務信息、教師專業發展記錄)、辦公事務管理、教務管理(包括考務管理、日常處理、排課系統、選課系統)、在線考試、備課管理、資源管理、科研管理、教師研修、考勤管理、收費管理、校產管理、宿舍管理、實驗室管理、體衛管理、招生管理、流程管理、德育管理、圖書管理、檔案管理、系統管理等模塊。 學生管理包括:學籍管理、成績管理、試卷分析、作業管理、家校互動、素質評價和系統設置六個部分。
學校綜合管理平台—教職工管理:
教職工管理:包括教職工基本信息、我的學習、我的課堂、教學技能、科研探究、我的成績、教師評價、綜合匯總等部分,記錄教師專業發展過程。
教職工信息:記錄教師基本信息、日常信息、異動情況等各種信息 辦公事務管理包括公告欄、消息管理、公文流轉、會議管理、報修管理、請假管理、用車管理、采購管理、校歷、我的日程等部分。
消息管理:接受和發送消息,可以進行向全部、各部門、個人發送消息和文件,並可查看消息的閱讀情況,可以設置消息維護員。
公文流轉:包括發公文、公文審核、公文審核設置及上級公文接受人員等功能
報修管理:包括報修申請、報修受理、報修列表及報修人設置等功能。
用車管理:包括用車申請、用車受理、用車列表及出車記錄
請假管理:包括請假申請、請假審批、請假列表、請假統計、請假設置等部分。 教務管理—考務管理
考務管理包括考試日程安排、考場安排、監考教師安排、考生安排、考試信息統計等功能。
考生安排:可自動安排和手動進行調整。
教務管理—選課系統
選課系統包括網上報名、班級管理、課程錄入和學分管理等部分。
選課課程基本信息錄入:錄入課程上課年級、課時、地點、時間、報名時間和人數限制等,靈活進行開課設置,對於以前已開設課程可做續開設置。
開課計劃:設置當前可報名的課程和每個年級可報課程數。
學生個人選課:學生選課受課程開設年級、學生限報門數、該門課程班級限報人數、與已報課程是否時間沖突等條件約束
班級管理:學生選課後自動創建班級,可進行對學生點名和點名表下載、課程進度表、作業提交、班級留言
教務管理—智能排課
排課系統包括排課設置、自動排課、手動排課、課表錄入、課表查詢、課表統計等部分。排課條件如:教師任課、主副課程設置、周課時、各課程課時、固定場所、特殊時間學科不排、特殊時間按部門和教師不排、固定課、連堂課、合並課等,按照設置好的條件系統自動排課,對自動排課結果可進行手動調整,也可手動錄入課表,可按年級、班級、部門、教師生成課表並導出和列印。
排課設置:通過對各種排課條件進行設置,進行自動排課,對排課效果不滿意還可進行手動調課和課程錄入
班級課表/年級課表:匯總各班級和年級的課表,可批量導出和列印。
教師課表:匯總教師和各部門教師的課表。 包括教材目錄、學案管理、題庫管理、組卷策略、學習區、疑難問題探討和系統設置七個部分
教材目錄:對教材目錄和知識點進行設置。
題庫管理:包括試題管理、試題審核、試題統計、題型設置和難易度設置。
組卷策略:可進行手動組卷、智能組卷、相對評價組卷和雙向細目表組卷。
備課管理
備課管理包括備課內容管理和備課統計等功能。
備課內容管理:對教學目標、重難點、教學過程、配套練習、教學後記和教材分析做記錄。
備課統計按年級、作者、教材對所備課進行統計。 資源管理包括資源瀏覽、資源搜索、資源管理、資源審核、資源目錄、資源調整、回收站等部分,對學校教師的教案、課件、試卷、素材等資源進行電子化管理,對學校資源進行了有效的存檔,便於教師的檢索和學習。
資源錄入:素材、課件、教案、文獻、工具均可分類記錄資源內容可附件上傳或網頁外鏈
資源搜索:根據資源標題、類型、關鍵字、年級、學科、內容、教師姓名、時間等條件進行資源查詢,並可參與進行評價
資源評論:查看資源詳細信息,可多個教師對教案、課件等參與評論,幫助教師有效管理教育教學過程,可進一步修改和完善教師的教案和課件,有助於提高教學質量和教學效果。 科研管理是對教師科研項目和科研成果的記錄,包括計劃課題、教師著作、教師論文、學術會議、科研成果、技術轉讓、學術交流、綜合查詢等部分。
計劃課題:對教師計劃課題、協作單位信息、課題經費情況等信息的記錄。
科研成果記錄:對教師科研的鑒定成果、專利成果、獲獎成果的記錄。 教師研修是按教師角色、專家角色和管理員角色進入系統。
教師角色:教師角色登錄可對主題進行研修、發表文章和論文、公開課的開授和博客管理等功能。
專家角色:專家角色登錄可對研修主題的設置、作業批閱、論文審核、文章評價、公開課審核以及公開課評價等功能
管理員角色:管理員角色可進行教研活動的設置、專家設置、評分設置、積分設置和研修統計。 考勤管理包括簽卡管理、缺勤管理、加班管理、考勤查詢、考勤統計、考號管理和考勤設置。
缺勤管理:包括對學生和教師按事假、病假和其它進行缺勤登記、修改和查詢。
考勤查詢:對學生考勤查詢,查詢的類型包括正常和異常(遲到、曠課、早退、病假、事假和其它);對教師考勤查詢,查詢類型包括正常和異常(遲到、曠工、早退、病假、事假、公假、產假、探親、婚假、喪假、公傷假、出差、調休、休假和其它)。 收費管理包括收費操作、查詢統計、收費設置和收費異動。
收費操作:對學生進行收費登記、補交及退費操作。
收費異動:對異動人員進行費用登記、修改和刪除操作。 校產管理包括裝備管理、房產管理、地產管理、設施管理等部分。
裝備管理:包括裝備入庫、裝備領用、出庫驗證、裝備改造、裝備核銷、裝備查詢和裝備統計。
房產管理:包括房產登記、房產維修、房產改造、房產核銷、房產查詢和房產統計。
宿舍管理
宿舍管理包括宿舍分配管理、宿舍查詢、宿舍統計和基礎設置進行管理。
實驗室管理
實驗室管理包括實驗教學、實驗成績、儀器設備、低值易耗品、實驗信息、數據管理、人員情況和實驗室設置等功能。
實驗教學:包括實驗項目申請、審批,實驗課表、班級點名表、實驗儀器耗材使用及項目完成記錄。
儀器設備:對實驗室儀器進行列表,有借用記錄表、報損賠償表、維修保養表、儀器報廢表及儀器賬冊表的生成。
數據管理:對項目數據、成績數據和工作日誌進行管理。 體育管理包括體育工作組成員設置、體育工作計劃記錄、各屆運動會項目記錄、運動會報名、運動會成績記錄、運動訓練、體育競賽、體育考核、體育課程、體育鍛煉等內容。
體育工作計劃:記錄體育組學期工作計劃信息。
運動會:記錄各屆運動會比賽項目、報名、裁判、成績、項目紀錄等信息
體育課程:記錄體育訓練、競賽、考核、課程、鍛煉的信息及成績
體衛管理—衛生管理
衛生管理包括對學校衛生工作組成員、校園衛生、健康教育、學生體檢、常見病防治、衛生保健教育、心理咨詢、公益獻血、學生綜合體質的記錄。
健康教育:對學校健康教育工作安排、健康教育教學知識考核、日常健康教育行為考核等工作的記錄。
學生體檢:對各班級學生體檢信息的記錄。 教師考評包括教師評價和滿意度調查,教師自己、同事、學生、家長、領導共同對教師進行評價,同時可對教輔人員、黨員、中層幹部等進行評價。具體評價項目、評價主體、評價分值比例可進行靈活設定。
教師評價:評價項目、評價標准和評價對象靈活設置
教師評價:教師自己、同事、學生、家長、領導共同對教師進行評價。
教師評價匯總:可按評價主體對教師評價進行統計,了解各項評價信息
滿意度調查:可對教師、教輔人員和中層幹部進行滿意度調查。
⑺ 寫一個學生成績管理系統
#include "stdafx.h"
#include "StudentScore.h"
#include "Course.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
// CCourse
IMPLEMENT_DYNAMIC(CCourse, CRecordset)
CCourse::CCourse(CDatabase* pdb)
: CRecordset(pdb)
{ //{{AFX_FIELD_INIT(CCourse)
//}}AFX_FIELD_INIT
m_nDefaultType = snapshot;
CString CCourse::GetDefaultConnect()
{ return _T("ODBC;DSN=");
}
CString CCourse::GetDefaultSQL()
{ return _T("");}
void CCourse::DoFieldExchange(CFieldExchange* pFX)
{
//{{AFX_FIELD_MAP(CCourse)
pFX->SetFieldType(CFieldExchange::outputColumn);
//}}AFX_FIELD_MAP
}
// CCourse diagnostics
void CCourse::AssertValid() const
{ CRecordset::AssertValid();}
void CCourse::Dump(CDumpContext& dc) const
{ CRecordset::Dump(dc);}
// MainFrm.h : interface of the CMainFrame class
class CMainFrame : public CFrameWnd
{protected: // create from serialization only
CMainFrame();
DECLARE_DYNCREATE(CMainFrame)
// Attributes
public:
// Operations
public:
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CMainFrame)
virtual BOOL PreCreateWindow(CREATESTRUCT& cs);
//}}AFX_VIRTUAL
// Implementation
public:
virtual ~CMainFrame();
protected: // control bar embedded members
//CStatusBar m_wndStatusBar;
//CToolBar m_wndToolBar;
// Generated message map functions
protected:
//{{AFX_MSG(CMainFrame)
afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
afx_msg void OnPassword();
afx_msg void OnUser();
afx_msg void OnStudent();
afx_msg void OnTeach();
afx_msg void OnTeacher();
afx_msg void OnScore();
afx_msg void OnQueryTeach();
afx_msg void OnQueryScore();
afx_msg void OnCourse();
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
// CScoreAddDlg dialog
CScoreAddDlg::CScoreAddDlg(CWnd* pParent /*=NULL*/)
: CDialog(CScoreAddDlg::IDD, pParent)
{/{{AFX_DATA_INIT(CScoreAddDlg)
//}}AFX_DATA_INIT
}
void CScoreAddDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CScoreAddDlg)
DDX_Control(pDX, IDC_SCORE_STUDENT, m_cStudent);
DDX_Control(pDX, IDC_SCORE_SCORE, m_cScore);
DDX_Control(pDX, IDC_SCORE_COURSE, m_cCourse);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CScoreAddDlg, CDialog)
//{{AFX_MSG_MAP(CScoreAddDlg)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
void CScoreAddDlg::OnOK()
{
CString student,course,score,student_no,course_no;
m_cStudent.GetWindowText(student);
m_cCourse.GetWindowText(course);
m_cScore.GetWindowText(score);
else//成績不為空
{
CString strSQL;
//查出該學生的學號
strSQL.Format("select * from student where active_status='Y' and student_name='%s'",student);
CRecordset m_recordSet=&m_database;
m_recordSet.Open(CRecordset::forwardOnly,strSQL);
m_recordSet.GetFieldValue("student_no",student_no);
m_recordSet.Close();
//查出該課程的課程號
strSQL.Format("select * from course where active_status='Y' and course_name='%s'",course);
m_recordSet.Open(CRecordset::forwardOnly,strSQL);
m_recordSet.GetFieldValue("course_no",course_no);;
m_recordSet.Close();
BOOL CScoreAddDlg::OnInitDialog()
{
CDialog::OnInitDialog();
CRecordset m_recordSet;
if(!m_database.IsOpen())
{
m_database.Open(_T("student"));
m_recordSet.m_pDatabase=&m_database;
}
CString strSQL;
strSQL.Format("select course_name from course where active_status='Y'");
m_recordSet.Open(CRecordset::forwardOnly,strSQL);
for(int i=0;i<m_recordSet.GetRecordCount();i++){
CString temp;
m_recordSet.GetFieldValue("course_name",temp);
m_cCourse.AddString(temp);
m_recordSet.MoveNext();
}
m_recordSet.Close();
m_cCourse.SetCurSel(1);
strSQL.Format("select student_name from student where active_status='Y'");
m_recordSet.Open(CRecordset::forwardOnly,strSQL);
for(int j=0;j<m_recordSet.GetRecordCount();j++){
CString temp;
m_recordSet.GetFieldValue("student_name",temp);
m_cStudent.AddString(temp);
m_recordSet.MoveNext();
}
m_recordSet.Close();
m_cStudent.SetCurSel(1);
{
this->SetWindowText("成績窗口");
}
return true;
}
void CScoreAddDlg::OnCancel()
{
// TODO: Add extra cleanup here
CDialog::OnCancel();
}
⑻ 簡單學生成績管理系統
#define N 7 /*學生的人數*/
typedef struct
{
char num[5];
char name[10]; /*記錄姓名和學號*/
float math,english,comput,average; /*各個科目及平均分*/
}mark; /*定義學生記錄結構體類型*/
typedef struct
{
float fen[4];
int n;
}fsp;/*定義學生記錄轉化的中間變數*/
void count(mark *s)/*統計各科平均分 各科的最高(低)分及各分數段的人數*/
{
float ave[3]={0};/*存放各科平均分 */
float m[3][2] ;
int num[3][5]={0};/*存放各分數段的人數*/
int i;
m[0][1]=m[0][0]=s->math;
m[1][0]=m[1][1]=s->english;
m[2][0]=m[2][1]=s->comput;
for(i=0;i<N;i++)
{ ave[0]+=(s+i)->math;
ave[1]+=(s+i)->english;
ave[2]+=(s+i)->comput;
if( (s+i)->math > m[0][0] )
m[0][0]=(s+i)->math;
else if( (s+i)->math < m[0][1] )
m[0][1]=(s+i)->math;
if( (s+i)->english > m[1][0] )
m[1][0]=(s+i)->english;
else if( (s+i)->english < m[1][1] )
m[1][1]=(s+i)->english;
if( (s+i)->comput > m[2][0] )
m[2][0]=(s+i)->comput;
else if( (s+i)->comput < m[2][1] )
m[2][1]=(s+i)->comput;
/*統計各科的最高(低)分*/
if((s+i)->math<60.0)
num[0][0]++;
else if((s+i)->math<70.0)
num[0][1]++;
else if((s+i)->math<80.0)
num[0][2]++;
else if((s+i)->math<90.0)
num[0][3]++;
else num[0][4]++;
/*統計數學各分數段的人數*/
if((s+i)->english<60.0)
num[1][0]++;
else if((s+i)->english<70.0)
num[1][1]++;
else if((s+i)->english<80.0)
num[1][2]++;
else if((s+i)->english<90.0)
num[1][3]++;
else num[1][4]++;
/*統計英語各分數段的人數*/
if((s+i)->comput<60.0)
num[2][0]++;
else if((s+i)->comput<70.0)
num[2][1]++;
else if((s+i)->comput<80.0)
num[2][2]++;
else if((s+i)->comput<90.0)
num[2][3]++;
else num[2][4]++;
/*統計計算機各分數段的人數 */
}
for(i=0;i<3;i++)
ave[i]=ave[i]/N;
printf("三門科的平均分分別為:\n%.1f %.1f %.1f\n",ave[0],ave[1],ave[2]);
printf("三門科的最高分與最底分分別為:\n");
printf("%.1f %.1f\n%.1f %.1f\n%.1f %.1f\n",
m[0][0],m[0][1],m[1][0],m[1][1],m[2][0],m[2][1]);
printf("三門科不及格 60-69 70-79 80-89 90分以上的人數分別為:\n");
printf("數學: %3d%5d%6d%6d%4d\n",num[0][0],num[0][1],num[0][2],num[0][3],num[0][4]);
printf("英語: %3d%5d%6d%6d%4d\n",num[1][0],num[1][1],num[1][2],num[1][3],num[1][4]);
printf("計算機:%3d%5d%6d%6d%4d\n",num[2][0],num[2][1],num[2][2],num[2][3],num[2][4]);
}
void found(mark *s)/*輸入學生的學號查詢學生的成績情況*/
{
char a[10];/*接受輸入的學號*/
int flag,i;/*循環變數*/
char * b="exit";
do
{ flag=0;
printf("請輸入所要查詢的學生的學號或姓名\n");
getchar();
gets(a);
for(i=0;i<N;i++)
{printf("該生的學號,姓名,各門課程及平均成績為:\n%s %s %.1f %.1f %.1f %.1f\n"
,(s+i)->num,(s+i)->name,(s+i)->math,(s+i)->english,(s+i)->comput,(s+i)->average);/*成績列印*/
flag=1;}
if(flag==0) printf("查無此人\n");
}while(strcmp(a,b));
printf("查詢結束");
}
main()
{
mark *s,*a,*b,*c,*d;
fsp *p;
s=(mark*)malloc(N*sizeof(mark));
a=(mark*)malloc(N*sizeof(mark));
b=(mark*)malloc(N*sizeof(mark));
c=(mark*)malloc(N*sizeof(mark));
d=(mark*)malloc(N*sizeof(mark));
p=(fsp*)malloc(N*sizeof(fsp));/*各變數空間開辟 */
printf("初始化學生的記錄為:\n");
printf("按數學成績排序學生的記錄為:\n");
printf("按英語成績排序學生的記錄為:\n");
printf("按計算機成績排序學生的記錄為:\n");
printf("按平均成績排序學生的記錄為:\n");
count(s);
found(s);
}
⑼ 成績管理系統
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define N 3
struct student{
int id;
char name[30];
char cla[10];
float scores[N];
struct student *next;
};
typedef struct student Student;
Student *s=0;
void add(int id,char name[],char cla[],float scores[]){
if(s==0){
s=(Student *)malloc(sizeof(Student));
s->id=id;
strcpy(s->name,name);
strcpy(s->cla,cla);
int i;
for(i=0;i<N;i++)
s->scores[i]=scores[i];
s->next=0;
}
else{
Student *p=s;
while(p->next!=0){
if(p->id==id){
printf("Same id existing in the record.\n");
return;
}
p=p->next;
}
Student *t=(Student *)malloc(sizeof(Student));
t->id=id;
strcpy(t->name,name);
strcpy(t->cla,cla);
int i;
for(i=0;i<N;i++)
t->scores[i]=scores[i];
t->next=0;
p->next=t;
}
}
void display(){
Student *p=s;
int i;
printf("ID Name Class Chinese Mathematics English\n");
while(p!=0){
printf("%2d %s %s ",p->id,p->name,p->cla);
for(i=0;i<N;i++)
printf("%10.2f",p->scores[i]);
printf("\n");
p=p->next;
}
}
void search(int id){
Student *p=s;
int i;
while(p!=0){
if((p->id)==id) {
printf("ID Name Class Chinese Mathematics English\n");
printf("%2d %s %s ",p->id,p->name,p->cla);
for(i=0;i<N;i++)
printf("%10.2f",p->scores[i]);
printf("\n");
return;
}
else p=p->next;
}
printf("No such record.\n");
}
Student *del(int id){
Student *p1=s;
Student *p2=p1;
if(s->id==id){s=s->next;free(p1);return s;}
else{
while(p1!=0){
p2=p1;
p1=p1->next;
if(p1->id==id){
p2->next=p1->next;
free(p1);
return s;
}
}
printf("No such id exists.\n");
return s;
}
}
Student *insert(Student *n,int index){
if(index<0) return 0;
else if(index==0) {n->next=s;return n;}
else{
Student *p2=s;
while(index>1){
p2=p2->next;
index--;
}
n->next=p2->next;
p2->next=n;
return s;
}
}
void modify(int id){
Student *p=s;
while(p!=0){
if(p->id==id) break;
else p=p->next;
}
if(p==0){
printf("No such record exists.\n");
return;
}
int i;
printf("ID Name Class Chinese Mathematics English\n");
printf("%2d %s %s ",p->id,p->name,p->cla);
for(i=0;i<N;i++)
printf("%10.2f",p->scores[i]);
printf("\n");
int c;
printf("What do you want to change?\n");
printf("1.ID 2.Name 3.Class 4.Scores\n");
scanf("%d",&c);
if(c==1){
int i;
printf("Enter the new ID: ");
scanf("%d",&i);
p->id=i;
}
else if(c==2){
char n[20];
printf("Enter the new name: ");
scanf("%s",n);
strcpy(p->name,n);
}
else if(c==3){
char n[20];
printf("Enter the new class: ");
scanf("%s",n);
strcpy(p->cla,n);
}
else if(c==4){
int i;
float f;
printf("Which score do you want to change?\n");
printf("1.Chinese 2.Mathematics 3.English\n");
scanf("%d",&i);
printf("Enter the new score: ");
scanf("%f",&f);
p->scores[i-1]=f;
}
printf("%5d %s %s ",p->id,p->name,p->cla);
for(i=0;i<N;i++)
printf("%10.2f",p->scores[i]);
printf("\n");
}
void sort(){
Student *p=s;
int i,j,m,l,c;
printf("How are you going to sort the records?\n");
printf("1.By ID 2.By name 3.By class 4.By score\n");
scanf("%d",&c);
for(i=0;p!=0;i++)
p=p->next;
l=i;
Student **arr=(Student **)calloc(l,sizeof(Student *));
p=s;
for(i=0;i<l;i++){
arr[i]=p;
p=p->next;
}
if(c==1){
int mid;
for(i=0;i<l-1;i++){
m=i;
mid=arr[i]->id;
for(j=i+1;j<l;j++)
if(arr[j]->id<mid){
m=j;
mid=arr[j]->id;
}
Student *t=arr[i];
arr[i]=arr[m];
arr[m]=t;
}
}
else if(c==2){
char mname[30];
for(i=0;i<l-1;i++){
m=i;
strcpy(mname,arr[i]->name);
for(j=i+1;j<l;j++)
if(strcmp(mname,arr[j]->name)>0){
m=j;
strcpy(mname,arr[j]->name);
}
Student *t=arr[i];
arr[i]=arr[m];
arr[m]=t;
}
}
else if(c==3){
char mclass[10];
for(i=0;i<l-1;i++){
m=i;
strcpy(mclass,arr[i]->cla);
for(j=i+1;j<l;j++)
if(strcmp(mclass,arr[j]->cla)>0){
m=j;
strcpy(mclass,arr[j]->cla);
}
Student *t=arr[i];
arr[i]=arr[m];
arr[m]=t;
}
}
else if(c==4){
int a;
printf("By which subject do you want to sort?\n");
printf("1.Chinese 2.Mathematics 3.English\n");
scanf("%d",&a);
float score;
for(i=0;i<l-1;i++){
m=i;
score=arr[i]->scores[a-1];
for(j=i+1;j<l;j++)
if(score>arr[j]->scores[a-1]){
m=j;
score=arr[j]->scores[a-1];
}
Student *t=arr[i];
arr[i]=arr[m];
arr[m]=t;
}
}
arr[l-1]->next=0;
s=arr[0];
p=s;
for(i=1;i<l;i++){
p->next=arr[i];
p=p->next;
}
}
void statistics(){
float total_scores[N]={0,0,0};
Student *p=s;
int i,j;
for(i=0;p!=0;i++){
for(j=0;j<N;j++)
total_scores[j]+=p->scores[j];
p=p->next;
}
printf("The number of students are %d.\n",i);
printf("The average scores for each subjects are:\n");
printf("Chinese Mathematics English\n");
for(j=0;j<N;j++)
printf("%8.2f",total_scores[j]/i);
printf("\n");
}
int main(){
int i;
do{
printf("Enter the function you want:\n");
printf("1. Add 2.Insert 3.Delete 4.Search 5.Display 6.Modify 7.Sort 8.Statistics 9.Quit\n");
scanf("%d",&i);
if(i==1){
int id;
printf("Enter the id: ");
scanf("%d",&id);
char name[30];
printf("Enter the name: ");
scanf("%s",name);
char cla[10];
printf("Enter the class: ");
scanf("%s",cla);
float scores[N];
printf("Enter the score for Chinese: ");
scanf("%f",&scores[0]);
printf("Enter the score for Mathematics: ");
scanf("%f",&scores[1]);
printf("Enter the score for English: ");
scanf("%f",&scores[2]);
add(id,name,cla,scores);
}
else if(i==2){
Student *n=(Student *)malloc(sizeof(Student));
printf("Enter the id: ");
scanf("%d",&(n->id));
printf("Enter the name: ");
scanf("%s",n->name);
printf("Enter the class: ");
scanf("%s",n->cla);
printf("Enter the score for Chinese: ");
scanf("%f",&(n->scores[0]));
printf("Enter the score for Mathematics: ");
scanf("%f",&(n->scores[1]));
printf("Enter the score for English: ");
scanf("%f",&(n->scores[2]));
n->next=0;
int index;
printf("Enter the index: ");
scanf("%d",&index);
s=insert(n,index);
}
else if(i==3){
int id;
printf("Enter the id: ");
scanf("%d",&id);
s=del(id);
}
else if(i==4){
int id;
printf("Enter the id: ");
scanf("%d",&id);
search(id);
}
else if(i==5){
display();
}
else if(i==6){
int c;
printf("Enter the ID of the record you want to change: ");
scanf("%d",&c);
modify(c);
}
else if(i==7){
sort();
}
else if(i==8){
statistics();
}
else if(i==9){
Student *p;
while(s!=0){
p=s->next;
free(s);
s=p;
}
break;
}
}while(1);
return 0;
}
覺得需要的話自己修改就可以了。