❶ 小弟急需 學生成績管理系統 的c語言程序代碼,他的說明書和計劃書。急求啊
學生成績管理系統-c語言程序代碼二
學生成績管理系統-c語言版
#include "stdio.h" /*I/O函數*/
#include "stdlib.h" /*其它說明*/
#include "string.h" /*字元串函數*/
#include "conio.h" /*屏幕操作函數*/
#include "mem.h" /*內存操作函數*/
#include "ctype.h" /*字元操作函數*/
#include "alloc.h" /*動態地址分配函數*/
#define N 3 /*定義常數*/
typedef struct z1 /*定義數據結構*/
{
char no[11];
char name[15];
int score[N];
float sum;
float average;
int order;
struct z1 *next;
}STUDENT;
/*以下是函數原型*/
STUDENT *init(); /*初始化函數*/
STUDENT *create(); /*創建鏈表*/
STUDENT *delete(STUDENT *h); /*刪除記錄*/
void print(STUDENT *h); /* 顯示所有記錄*/
void search(STUDENT *h); /*查找*/
void save(STUDENT *h); /*保存*/
STUDENT *load(); /*讀入記錄*/
void computer(STUDENT *h); /*計算總分和均分*/
STUDENT *insert(STUDENT *h); /*插入記錄*/
void append(); /*追加記錄*/
void (); /*復制文件*/
STUDENT *sort(STUDENT *h); /*排序*/
STUDENT *index(STUDENT *h); /*索引*/
void total(STUDENT *h); /*分類合計*/
int menu_select(); /*菜單函數*/
/******主函數開始*******/
main()
{
int i;
STUDENT *head; /*鏈表定義頭指針*/
head=init(); /*初始化鏈表*/
clrscr(); /*清屏*/
for(;;) /*無限循環*/
{
switch(menu_select()) /*調用主菜單函數,返回值整數作開關語句的條件*/
{ /*值不同,執行的函數不同,break 不能省略*/
case 0:head=init();break; /*執行初始化*/
case 1:head=create();break; /*創建鏈表*/
case 2:head=delete(head);break; /*刪除記錄*/
case 3:print(head);break; /*顯示全部記錄*/
case 4:search(head);break; /*查找記錄*/
case 5:save(head);break; /*保存文件*/
case 6:head=load(); break; /*讀文件*/
case 7:computer(head);break; /*計算總分和均分*/
case 8:head=insert(head); break; /*插入記錄*/
case 9:();break; /*復制文件*/
case 10:head=sort(head);break; /*排序*/
case 11:append();break; /*追加記錄*/
case 12:head=index(head);break; /*索引*/
case 13:total(head);break; /*分類合計*/
case 14:exit(0); /*如菜單返回值為14程序結束*/
}
}
}
/*菜單函數,返回值為整數*/
menu_select()
{
char *menu[]={"***************MENU***************", /*定義菜單字元串數組*/
" 0. init list", /*初始化*/
" 1. Enter list", /*輸入記錄*/
" 2. Delete a record from list", /*從表中刪除記錄*/
" 3. print list ", /*顯示單鏈表中所有記錄*/
" 4. Search record on name", /*按照姓名查找記錄*/
" 5. Save the file", /*將單鏈表中記錄保存到文件中*/
" 6. Load the file", /*從文件中讀入記錄*/
" 7. compute the score", /*計算所有學生的總分和均分*/
" 8. insert record to list ", /*插入記錄到表中*/
" 9. the file to new file", /*復制文件*/
" 10. sort to make new file", /*排序*/
" 11. append record to file", /*追加記錄到文件中*/
" 12. index on nomber", /*索引*/
" 13. total on nomber", /*分類合計*/
" 14. Quit"}; /*退出*/
char s[3]; /*以字元形式保存選擇號*/
int c,i; /*定義整形變數*/
gotoxy(1,25); /*移動游標*/
printf("press any key enter menu......\n"); /*壓任一鍵進入主菜單*/
getch(); /*輸入任一鍵*/
clrscr(); /*清屏幕*/
gotoxy(1,1); /*移動游標*/
textcolor(YELLOW); /*設置文本顯示顏色為黃色*/
textbackground(BLUE); /*設置背景顏色為藍色*/
gotoxy(10,2); /*移動游標*/
putch(0xc9); /*輸出左上角邊框┏*/
for(i=1;i<44;i++)
putch(0xcd); /*輸出上邊框水平線*/
putch(0xbb); /*輸出右上角邊框 ┓*/
for(i=3;i<20;i++)
{
gotoxy(10,i);putch(0xba); /*輸出左垂直線*/
gotoxy(54,i);putch(0xba);
} /*輸出右垂直線*/
gotoxy(10,20);putch(0xc8); /*輸出左上角邊框┗*/
for(i=1;i<44;i++)
putch(0xcd); /*輸出下邊框水平線*/
putch(0xbc); /*輸出右下角邊框┛*/
window(11,3,53,19); /* 製作顯示菜單的窗口,大小根據菜單條數設計*/
clrscr(); /*清屏*/
for(i=0;i<16;i++) /*輸出主菜單數組*/
{
gotoxy(10,i+1);
cprintf("%s",menu[i]);
}
textbackground(BLACK); /*設置背景顏色為黑色*/
window(1,1,80,25); /*恢復原窗口大小*/
gotoxy(10,21); /*移動游標*/
do{
printf("\n Enter you choice(0~14):"); /*在菜單窗口外顯示提示信息*/
scanf("%s",s); /*輸入選擇項*/
c=atoi(s); /*將輸入的字元串轉化為整形數*/
}while(c<0||c>14); /*選擇項不在0~14之間重輸*/
return c; /*返回選擇項,主程序根據該數調用相應的函數*/
}
STUDENT *init()
{
return NULL;
}
/*創建鏈表*/
STUDENT *create()
{
int i; int s;
STUDENT *h=NULL,*info; /* STUDENT指向結構體的指針*/
for(;;)
{
info=(STUDENT *)malloc(sizeof(STUDENT)); /*申請空間*/
if(!info) /*如果指針info為空*/
{
printf("\nout of memory"); /*輸出內存溢出*/
return NULL; /*返回空指針*/
}
inputs("enter no:",info->no,11); /*輸入學號並校驗*/
if(info->no[0]=='@') break; /*如果學號首字元為@則結束輸入*/
inputs("enter name:",info->name,15); /*輸入姓名,並進行校驗*/
printf("please input %d score \n",N); /*提示開始輸入成績*/
s=0; /*計算每個學生的總分,初值為0*/
for(i=0;i<N;i++) /*N門課程循環N次*/
{
do{
printf("score%d:",i+1); /*提示輸入第幾門課程*/
scanf("%d",&info->score[i]); /*輸入成績*/
if(info->score[i]>100||info->score[i]<0) /*確保成績在0~100之間*/
printf("bad data,repeat input\n"); /*出錯提示信息*/
}while(info->score[i]>100||info->score[i]<0);
s=s+info->score[i]; /*累加各門課程成績*/
}
info->sum=s; /*將總分保存*/
info->average=(float)s/N; /*求出平均值*/
info->order=0; /*未排序前此值為0*/
info->next=h; /*將頭結點做為新輸入結點的後繼結點*/
h=info; /*新輸入結點為新的頭結點*/
}
return(h); /*返回頭指針*/
}
/*輸入字元串,並進行長度驗證*/
inputs(char *prompt, char *s, int count)
{
char p[255];
do{
printf(prompt); /*允鞠提示信息*/
scanf("%s",p); /*輸入字元串*/
if(strlen(p)>count)printf("\n too long! \n"); /*進行長度校驗,超過count值重輸入*/
}while(strlen(p)>count);
strcpy(s,p); /*將輸入的字元串拷貝到字元串s中*/
}
/*輸出鏈表中結點信息*/
void print(STUDENT *h)
{
int i=0; /* 統計記錄條數*/
STUDENT *p; /*移動指針*/
clrscr(); /*清屏*/
p=h; /*初值為頭指針*/
printf("\n\n\n****************************STUDENT********************************\n");
printf("|rec|nO | name | sc1| sc2| sc3| sum | ave |order|\n");
printf("|---|----------|---------------|----|----|----|--------|-------|-----|\n");
while(p!=NULL)
{
❷ 拓撲排序排課表
信息工程啟者敬系軟體技術學生課程嫌缺表(拓撲排序)
拓撲圖為:(圖不好粘貼)
運用拓撲概念排序的結果:
C1 , C9 , C3 , C2 , C7 , C4, C5 , C8 , C6
C1計算機應用基礎 C2 C語言 C3 VB語言 C4 JSP C5數字邏輯電路 C6軟體工程
C7計算機網路基礎 C8 Java語言 C9計算機數學基礎
/*-------------------------------主類-----------------------------*/
public class Navy1 {
public static void main(String[] args) {
topology(); //調用拓撲的構造方法
}
public static void topology() { //構造拓撲方法
/**
聲明拓撲圖中的元素
定義節點和節點之間的關系
Entry(a,b)a為b的前悄慎導
**/
Entry[] relations = { new Entry(9, 2), new Entry(3,7),
new Entry(7, 5), new Entry(5, 8), new Entry(8, 6),
new Entry(4, 6), new Entry(1, 3), new Entry(7, 4),
new Entry(9, 5), new Entry(2, 8) };
int n = 9;
int n1 = 9;
/*計算拓撲圖中節點數*/
int[] count = { -1, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
/*開辟內存空間*/
Node[] top = { null, null, null, null, null, null, null, null, null, null };
Node p = null;
for (int i = 0; i < relations.length; i++) {
count[relations[i].k]++;
p = new Node();
p.suc = relations[i].k;
p.next = top[relations[i].j];
top[relations[i].j] = p;
}
int r = 0;
int[] qlink = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
for (int i = 1; i <= n; i++) {
if (count[i] == 0) {
qlink[r] = i;
r = i;
}
}
int f = qlink[0];
System.out.println("題目及要求:");
System.out.println("課程排課程序。寫一個程序,實現對某個專業的課程進行排課的功能。");
System.out.println("已知某專業的課程和它們的前導和後續關系(以有向圖的形式表示),");
System.out.println("請用拓撲排序演算法求出這些課程的優先關系並輸出一種排課結果");
System.out.println("--------------------------------------");
System.out.println("08信息工程系軟體技術課程表(拓撲排序)");
while (true)
{
System.out.println(f);
if (f == 0) //結束條件
{
break;
}
else
{
n1--;
p = top[f];
while (true)
{
if (p == null)
{
break;
}
else
{
count[p.suc]--;
if (count[p.suc] == 0)
{
qlink[r] = p.suc;
r = p.suc;
}
p = p.next;
}
}
f = qlink[f];
}
}
System.out.println("結束的標志為:" + n1);
System.out.println("--------------------------------------------");
System.out.println("注釋(數字對應的課程):");
System.out.println("1 計算機應用基礎 2 C語言 3 VB語言 ");
System.out.println("4 JSP 5 數字邏輯電路 6 軟體工程");
System.out.println("7 計算機網路基礎 8 Java語言 9 計算機數學基礎");
System.out.println("--------------------------------------------");
}
/*構造元素類*/
private static class Entry
{
public Entry(int begin, int end) //定義開始元素和結束元素
{
this.j = begin;
this.k = end;
}
int j;
int k;
}
/*聲明節點的後繼*/
private static class Node
{
public Node(int suc, Node next)
{
this.suc = suc;
this.next = next;
}
public Node()
{
}
int suc;
Node next;
}
}
❸ 如何用C語言實現大學排課
#include <stdio.h>
#include <stdlib.h>
#define M 100
struct Student
{
int StudentID;
char name[50];
float PeacetimeScore;
float TestScore;
float TotalScore;
};
int main()
{
int InputInformation (struct Student student[]);
void TotalScoreStatistics (struct Student student[], int n);
void TotalScoreSort (struct Student student[], int n);
void ScoreRevise (struct Student student[], int n);
void display (struct Student student[], int n);
int menu ();
int n = 1, count;
struct Student student[M];
while (n)
{
n = menu ();
switch (n)
{
case 1:
count = InputInformation (student);
break;
case 2:
TotalScoreStatistics (student, count);
break;
case 3:
TotalScoreSort (student, count);
break;
case 4:
ScoreRevise (student, count);
break;
case 5:
display (student, count);
break;
case 0:
printf ("您選擇了退出!\n");
break;
default :
printf ("輸入有誤,重新輸入!\n");
break;
}
}
return 0;
}
int menu ()
{
int n, i;
char * menu[]={"* * * * * * * * * * * * * * *MENU* * * * * * * * * * * * * * *",
" 1.學生信息錄入",
" 2.總成績統計",
" 3.總成績排序",
" 4.成績更改",
" 5.顯示所有學生信息",
" 0.退出",
"* * * * * * * * * * * * * * *MENU* * * * * * * * * * * * * * *"};
for (i=0; i<8; i++)
printf ("%s\n", menu[i]);
printf ("請選擇(輸入序號):");
scanf ("%d", &n);
return n;
}
int InputInformation (struct Student student[])
{
int i;
FILE *fp;
for (i=0; ; i++)
{
printf ("輸入第 %d 個學生的如下信息:\n", i+1);
printf ("學號:");
scanf ("%d", &student[i].StudentID);
if (student[i].StudentID == 0) //如果學號輸入是0則結束輸入
break;
getchar ();
printf ("姓名:");
gets (student[i].name);
printf ("平時成績:");
scanf ("%f", &student[i].PeacetimeScore);
printf ("考試成績:");
scanf ("%f", &student[i].TestScore);
fp = fopen ("myfile.txt", "a");
if (fp == NULL)
{
printf ("文件打開失敗!\n");
exit (-1);
}
fprintf (fp, "%d %s %.2f %.2f\n", student[i].StudentID, student[i].name,
student[i].PeacetimeScore, student[i].TestScore);
}
fclose (fp); //關閉文件
return i;
}
void TotalScoreStatistics (struct Student student[], int n)
{
int i;
printf ("\n 學號 姓名 總成績\n\n");
for (i=0; i<n; i++)
{
student[i].TotalScore = student[i].PeacetimeScore * 0.2 + student[i].TestScore * 0.8;
printf (" %d %s %.2f\n", student[i].StudentID, student[i].name, student[i].TotalScore);
}
}
void TotalScoreSort (struct Student student[], int n)
{
int i, j;
float temp;
for (i=0; i<n; i++)
for (j=i+1; j<n; j++)
if (student[i].TotalScore > student[j].TotalScore)
{
temp = student[i].TotalScore;
student[i].TotalScore = student[j].TotalScore;
student[j].TotalScore =temp;
}
for (i=0; i<n; i++)
printf ("%.2f ", student[i].TotalScore);
printf ("\n");
}
void ScoreRevise (struct Student student[], int n)
{
int m, k, i = 0;
FILE *fp;
printf ("輸入要修改的學生的學號:");
scanf ("%d", &k);
printf ("您是要修改平時成績還是考試成績呢?\n");
printf ("1.修改平時成績\n");
printf ("2.修改考試成績\n");
printf ("輸入您的選擇:");
scanf ("%d", &m);
for (i=0; i<n; i++)
if (student[i].StudentID == k)
if (m == 1)
❹ 自動排課系統設計(畢業論文)怎麼寫比較好
1、論文題目:要求准確、簡練、醒目、新穎。
2、目錄:目錄是論文中主要段落的簡表。(短篇論文不必列目錄)
3、提要:是文章主要內容的摘錄,要求短、精、完整。字數少可幾十字,多不超過三百字為宜。
4、關鍵詞或主題詞:關鍵詞是從論文的題名、提要和正文中選取出來的,是對表述論文的中心內容有實質意義的詞彙。關鍵詞是用作機系統標引論文內容特徵的詞語,便於信息系統匯集,以供讀者檢索。 每篇論文一般選取3-8個詞彙作為關鍵詞,另起一行,排在「提要」的左下方。
主題詞是經過規范化的詞,在確定主題詞時,要對論文進行主題,依照標引和組配規則轉換成主題詞表中的規范詞語。
5、論文正文:
(1)引言:引言又稱前言、序言和導言,用在論文的開頭。 引言一般要概括地寫出作者意圖,說明選題的目的和意義, 並指出論文寫作的范圍。引言要短小精悍、緊扣主題。
〈2)論文正文:正文是論文的主體,正文應包括論點、論據、 論證過程和結論。主體部分包括以下內容:
a.提出-論點;
b.分析問題-論據和論證;
c.解決問題-論證與步驟;
d.結論。
6、一篇論文的參考文獻是將論文在和寫作中可參考或引證的主要文獻資料,列於論文的末尾。參考文獻應另起一頁,標注方式按《GB7714-87文後參考文獻著錄規則》進行。
中文:標題--作者--出版物信息(版地、版者、版期):作者--標題--出版物信息
所列參考文獻的要求是:
(1)所列參考文獻應是正式出版物,以便讀者考證。
(2)所列舉的參考文獻要標明序號、著作或文章的標題、作者、出版物信息。
❺ 利用C語言設計簡單課表生成程序 急!
大哥我們演算法老師都還沒有解決這個問題呢
❻ 求一個用C+編寫的題目為學生學籍信息管理系統設計,整個系統要設計為數據錄入、查詢,刪除,排序模塊,
沒法傳圖,自己想一下怎麼改吧……
一.開發目的:
總結軟體開發過程中的方法和技巧,更好的應用和資料庫技術
1.開發內容:開發一套學生成績管理系統軟體
採取的研究方法:採用面向對象的編程,結合網路和資料庫技術,實現控制和管理。通過系統分析、需求分析、概要設計、詳細設計、編寫代碼、軟體測試、軟體枝明維護、經驗方法總結等一系列實驗方案,實驗軟體的開發。
2.具體開發方案:
分七個階段進行:
系統分析、需求收集和分析
概念設計
第一階段:系統分析、需求收集和分析
這腔賀一階段首先進行系統分析,分析確定系統的規模和范圍,確定軟體的總體要求以及所需要的硬體和支撐軟體,確定待開發軟體與外界的介面,根據用戶的情況確定軟體對操作的要求,以及待開發軟體總體上的約束和限制,完善項目計劃。
在這之後,這一階段的大部分時間將被用來進行需求收集和分析。向學校管理人員及學生了解情況,確定軟體系統的綜合要求,分析軟體系統的數據要求,導出系統的邏輯模型,修正項目開發計劃。
採用結構化分析方法,生成數據流圖、數據詞典及加工邏輯說明。
估計階段跨度:2006年某月初至某月中旬
第二階段:概要設計
在這一階段將確定軟體系統的結構,對全局數據結構進行設計,進行模塊劃分,確定每個模塊的功能 介面以及模塊間的調用關系。
採用與結構化方法銜接的結構化設計方法,生成結構圖及概念設計說明書。
估計階段跨度:2006年某月中旬至某月底
第三階段:詳細設計
為每個模塊設計實現的細節將成為這個階段的主要任務,還要對局部數據結構進行設計。
採用結構化設計方法。採用自頂向下逐步求精的設計方法和單入口單出口的控制結構。使得程序具有良好的結構,增強程序的可讀性。生成程序流程圖及詳細設計說明書。
詳細設計時,如果不滿意,須回到概要設計中重新完善設計。
估計階段跨度:2006年某月初至某月中旬
第四階段:編寫代碼
這一階段用來根據詳細設計說明書編寫代碼。
採用計算機語言編寫。追求高質量的代碼,生成源程序代碼、內部文檔。
估計階段跨度:2006年某月中旬至某月底
第五階段:軟體測試
這將是一個很重要也將是一個很耗時間和精力的階段。
在這一階段中將盡可能多地發現軟體中的錯誤和缺陷。如果有錯,還將退回到編碼階段進行調試。測試過程分為單元測試、集成測試和確認測試。
估計階段跨度:2006年某月初至某月中旬
第六階段:完善各項文檔及和報告,從整個開發過程和這些文檔中總結經驗和教訓,羅列各種方法和技巧。
估計階段跨度:2007年某月中旬至某月底。
需求分析說明書
一,引言
21世紀以高科技為核心的知識經濟將佔主導地位,國家的綜合國力和國際競爭力將越來越取決於科學技術創新水平。教育作為知識創新、傳播和應用的基礎,培養和輸送人才的搖籃,已經成為經濟發展和社會進步的基礎。盡管人類進步的程度隨著不同時代,不同地區而有所變化,教育的口徑卻在不斷擴寬,以便使過去僅供少數人使用的教育資源能夠為更多各種年齡、不同社會階層和背景的人們所用。在信息爆炸的時代,傳統教學管理面臨著諸多挑戰。
1.編寫目的:
開發基於互聯網的學生選課系統,提高管理工作的效率、提高信息的開放性、改善學生和教師對其最新信息查詢的准確性。
2.背景說明
隨著學校規模的不斷擴大,專業、班級、學生的數量急劇增加,有關學生選課的各種信息量也成倍增長,而目前許多高校的學生選課管理仍停留在復雜的人工操作上,重復工作較多,工作量大,效率低,因此,迫切需要開發基於互聯網的體育課信息管理系統來提高管理工作的效率。基於互聯網的學生選課管理系統,在學生選課的規范管理、科學統計和快速查詢方面具有較大的實用意義。它提高了信息的開放性,大大地改善了學生、教師對其最新信息查詢的准確性。
3.術語定義及參考資料
1. (美) Grady Booch,James Rumbaugh,Ivar Jacobson,《UML用戶指南》,機械工業出版社,2001年8月
2.Microsoft,MSDN
3.Microsoft, SQL Server2000聯機手冊
4.Roger S. Pressman。軟體工程——實踐者的研究方法。機械工業出版社,1997
5.IPL。Software Testing and Software Development Lifecycles。IPL,1996
6.Karl E. Wiegers《軟體需求》機械工業出版社,1999
7.張海藩《軟體工程導論》清華大學出版社猛圓告。
4任務概述
4.1. 目標
系統開發的總體任務是實現學生選課信息關系的系統化、規范化和自動化。
4.2. 系統技術
學生選課系統要求具有信息處理的開發性,方便教師上傳學生成績、學生上網選課和查詢選課信息及成績等,因此本系統設計為基於WWW的網路資料庫應用系統,使用ASP腳本以Access為資料庫的開發技術,運行在支持ASP的伺服器上。
4.3基本設計概念和處理流程
採用基於SQL Server 的分布式資料庫管理系統。三層結構是目前用得最多的,這種結構比傳統的C/S結構增加了一個應用程序伺服器,應用程序伺服器包括了統一的界面、業務規則和數據處理邏輯等等,這樣客戶端程序就可以做得比較小,也就是常說的瘦客戶,更由於業務規則和數據處理邏輯的集中在伺服器上統一管理,客戶端無須進行復雜的計算,也不會因為錯誤的操作而影響到其他的用戶,所以他的可靠性、穩定性和效率都比較好。
4.4. 用戶的特點
為保證系統安全高效的運行,本系統把用戶劃分為3類:教務處、教師和學生。不同的用戶在系統中的作用和許可權也有所不同,所以它所需要完成的功能也就不同。
教務處可以完成本系統所有的功能:
1) 學生信息管理,除學生基本信息外,還可管理學生所選課程、成績等;
2) 教師信息管理,包括教師個人的基本情況和任課情況;
3) 項目及班數的設定:根據學校教務處所排課進行班級數及人數的統計,然後根據統計結果進行項目及班數的設定;
4) 排課:根據上一步分班情況安排任課教師;
5) 報表生成及輸出:生成教師擔任課程分班表、按項目生成學生成績表、按學生行政班生成成績表及所有報表的輸出。
教師在本系統的功能:查詢學生選課情況、自己任課情況、獲取自己所擔任課程分班表、錄入及修改成績等。
學生在本系統的功能:查詢本人信息、教師任課信息、選課、選課信息查詢、成績查詢。
5.需求規定
5.1. 對功能的規定
1.可實現學生選課注冊
2.方便實現學生選課信息查詢
3.可對學生成績檔案進行管理,成績表單生成簡便。
4.安全有效的用戶區分,管理
5.檔案數據的高安全性,保密性
6.有幫助文檔
5.2. 對性能的規定
使用穩定,操作性能好,操作方法易於掌握,系統的安全性強
6. 設計思想
用戶的需求具體表現在對各種信息的提供、編輯、處理及查詢統計上。這就要求資料庫結構能充分滿足各種信息的輸入、處理和輸出。通過分析學生選課管理系統的現實需求,學生選課管理系統各環節的基本數據及數據處理流程,在與管理人員溝通、交流與探討的基礎上,得到以下學生選課系統的數據流程圖
6.1. 資料庫的設計
通過對學生選課管理系統工作內容和相關數據流程分析,根據學生選課管理系統的需要,就可以設計出能滿足用戶需求的各種實體,以及它們之間的關系,由此得到資料庫所支持的數據模型,即資料庫的邏輯結構,具體情況如下:
1.學生信息表:開學時將教務處提供的學生信息庫按系統的要求修改庫結構並導入Access資料庫中,應包括如下信息:姓名、學號、院系、班級、性別、所選課程、任課教師、備注等。
2.教師信息表:包括教師姓名、教師代碼、性別、年齡、職稱、主要教授課程、兼任課程等。
3.課程信息:包括課程目錄、課程、課程代碼、教學內容、任務與目的、考試方法、要求等。
4.課程表:包括課程名稱、課程編號、任課教師、課程學分、上課時間。
5.成績單列表:包括學生姓名、學號、院系、班級、課程、任課教師、成績。
6.2. 系統功能特點
1.內容全面 系統全面覆蓋了體育課信息,可為學校、教師和學生提供全面准確的信息。
2.層次分明 系統採用模塊化程序設計結構。各模塊之間既相互獨立,又具有一定的聯系,各模塊可獨立編制、調試、查錯、修改和執行,結構嚴謹,便於擴展和維護。
7.系統需求分析
說明:
學校每年新生入學,畢業生離校和各種其它變動,如學籍變動,個人信息修改。每學期學校者要開設一定的課程提供給學生根據自己的情況來選擇,最後的選擇結果要給出學生的課程表。如何有效的管理這些學生信息,幫助學校和老師管理和掌握這些情況,這就是學生信息管理系統需要完成的任務。下面用軟體工程的思想和方法完成該系統的設計過程。
功能:
個人信息查詢和修改,包括流動,注冊,更新管理
可行性研究報告
1. 編寫目的
編寫這份可行性研究報告的目的是讓讀者能夠了解本系統的開發可行性。預期的讀者包括上級領導,相關開發人員以及管理人員。
一.可行性研究的前提
隨著科學技術的進步和社會經濟的發展,計算機在現實生活中扮演越來越重要的角色,PC機價格不斷的下降和生活水平的提高使得更多的中國家庭能夠擁有自己的改變世界的機器,與此同時,我們也已經注意到,在大學校園里,越來越多的計算機已經進入同學們的宿舍,成為他們學習,生活中的一部分。
學生成績管理方面,進入了信息化時代,我們有能力讓我們的生活變的更好,對於學生成績管理人員每日繁重的工作可以通過計算機來進行緩解,以實現管理自動化,工作人員對資料的管理,信息的發布,用電安全的控制均是人工作業,運作效率較低。因此,建立一個自動化的管理服務的計算機應用軟體是十分必要的
1.1 要求
C++.net,感測器,SQL.
1.2 目標
能夠快速的查詢出學生的各科成績以及所在班級等各種用途。
1.3 進行可行性研究的方法
對學生和校領導採用問卷調查的方法,詢問他們,以確定最佳的可行性研究方案。軟體採用現代流行WINDOWS操作界面。是標準的WIN32應用程序,可運行在WIN95\WIN98\WinMe\WIN2000\WINXP\WINNT等系統平台上的多任務應用程序。在運行時可以直觀的瀏覽、查詢和掌握學生的成績,同時能夠了解學生的基本信息所在系部、班級、宿舍的具體地址。結束了人工統計的耗時長、工作量大、錯誤率高的缺點。
1.4 評價尺度
1. 是否功能齊全,運行穩定。2.在網路功能方面是否方便管理。3.設置是否靈活開4.是否具有多任務,高效率的特點。5.是否具有界面友好,操作簡單的特點。
2 處理流程和數據流程
2. 所建議的系統
2.1 對所建議系統的說明
我們所建議的系統為學生成績管理系統。它是為了提高學生成績管理的自動化程度而開發的。它可以解決一下問題:改變學生成績輸入的麻煩以及查詢工作量大的問題還有輸出的不便。
3.影響
3.1 對設備的影響
由於以前無自動化管理的方案,所以所有設備都需要購買。
3.2.對軟體的影響
由於以前無自動化管理的方案,所以不需要考慮對現存應用軟體合支持軟體的影像。
3.3.對用戶單位機構的影響
為了建立和運行所建議系統,需要提高管理人員的技術水平。
3.4.對系統運行過程的影響
所建議系統沒有影響運行過程。
3.5.對開發的影響
所建議系統對軟體開發人員要求不高,但是對硬體要求比較高。
3.6.對地點和設施的影響
所建議系統對建築物無改造,可以利用原有的通信線路。
3.7 技術條件方面的可能性
本軟體有計算機系的學生開發,調試,由計算機系老師知道。可完成性很高。
4. 可選擇的其他系統方案
由於此系統方案是學生開發,而且資金有限所以暫時無其他系統方案。
5. 投資及效益分析
5.1 支出分析:
5.2 收益分析:
5.3 收益/投資比
5.4 投資回收周期
5.5 敏感性分析
6. 社會因素方面的可能性
所有軟體都選用正版。
所有技術資料都由提出方保管。
合同制定確定違約責任。
7.用戶使用可行性
由於學校的老師都有一定的計算機基礎,不用培訓就可以使用,所以用戶使用可行性通過。
8. 結論
通過上述分析可以知道這個軟體操作簡單、功能齊全、功能開放、運行穩定、多任務、高效率等特點。所以說是計算機與學生成績管理上的好軟體!
設計說明書
一.概要設計說明書
1.系統功能設計
2.資料庫概念設計
根據以上數據流圖導出資料庫所需數據項和數據結構
學生:學號,姓名,性別,生日,所在院系,所在班級:
課程:課程號,課程名,講師,上課時間,地點,課程簡介
選課結果:記錄號,選課學生,所選課程
學籍變更記錄:記錄號,變更情況,記錄時間,詳細描述
2.1資料庫概念結構設計的E-R 圖
說明:E-R圖中矩形代表實體,菱形代表實體間的聯系,圓角矩形代表實體的屬性
2.2資料庫邏輯結構設計
根據以上E-R圖,需要五個基本表:學生信息表、課程信息表、選課結果表、獎懲信息表、其中教師信息是處部表,不列出,由於使用打開系統的不光是教務人員,每個學生都要登錄到選課系統進行課程的選擇,因此,需要對不同的登錄人員進行密碼的認證和許可權的限制,防止越權行為,用戶名,密碼,許可權,保存在一個表中。
1. USER-PASS用戶密碼信息表字典
欄位名
數據類型
是否可空
說明
ID
CHAR
NOT NULL
用戶名(主鍵)
PASSWORD
CHAR
NOT NULL
密碼
AUTHORITY
CHAR
NOT NULL
許可權
2. COURSE課程信息表數據字典
欄位名
數據類型
是否可空
說明
ID
CHAR
NOT NULL
課程號(主鍵)
NAME
VARCHAR
NULL
課程名
TEACHER
VARCHAR
NILL
講師
CLASTIME
VARCHAR
NULL
上課時間
CLASSROM
CHAR
NULL
上課地點
INTRO
VARCHAR
NULL
簡介
3. COURSE-SELECT選課結果表數據字典
欄位名
數據類型
是否可空
說明
ID
SMALL INT
NOT NILL
記錄號(主鍵)
COURSE
CHAR
NULL
課程名
STUDENT
CHAR
NULL
選課學生(外部關鍵
4. STUDENT學生個人信息表數據字典
欄位名
數據類型
是否可空
說明
ID
SMALL INT
NOT NULL
學號(主鍵)
NAME
VARCHAR
NOT NULL
姓名
SEX
CHAR
NOTNULL
性別
CLASS
CHAR
NULL
班級
DEPARTMENT
CHAR
NULL
院系
BIRTHDAY
VARCHAR
NULL
生日
5. 獎懲記錄信息表
欄位名
數據類型
是否可空
說明
ID
SMLL INT
NOT NULL
記錄號(主鍵)
STUDENT
CHAR
NOT NULL
學號(外部鍵)
LEVEL
CHAR
NULL
獎懲代碼
TIME
DATA
NULL
時間
DESCRIPTION
VARCHAR
NULL
描述
二主要模塊詳細設計說明書
1用戶身份認證模塊
功能:按用戶輸入的用戶名和密碼是否合法
合法則進入應用程序
非法則顯示出錯信息
界面:由總控模塊調用
模塊說明細化為詳細邏輯IPO圖
用戶身份認證模塊
輸入 處理 輸出
連接資料庫表 連接資料庫錯誤中斷程序
捕捉錯誤
用戶名 獲取用戶名
用戶密碼 獲取用戶密碼
讀USER-PAS
判斷用戶名是否存在
判斷密碼是否存在 提示信息
捕捉異常
判斷用戶許可權是合法
隱藏登錄窗口
顯示主窗體
文件
USER-PASS表
2.選課模塊
功能:接受學生選課信息
刷新學生課程表
界面:調用添加、刪除模塊,列印課表模塊
將模塊說明細化為詳細邏輯
選課處理IPO圖
輸入 處理 輸出
課程編號 為課程號過濾 輸入課程編號異常提示
接受課程號
打開課程信息表
判斷是添加或是刪除
添加
檢索課程表讀該記錄
若該記錄存在
顯示所選課程詳細信息 執行添加語句
調用添加模塊
將選課結果刷新
刪除 執行刪除語句
調用刪除模塊
將穩定課結果刷新
提交 課表:課程編號,課程名
調用列印課表模塊文件
課程信息表
選課結果表
3. 課程申請模塊
功能:接受輸入的新添課程信息
將新課程信息存入課程信息表
刪除舊課程
界面:調用已開課程信息表
調用申請修改程序
將模塊細化為詳細邏輯IPO圖
課程管理模塊
輸入 處理 輸出
課程編號 添加新課程
獲取當前教師所選課程
打開已開課程表
查詢是否存在該記錄
若無該記錄則是新課程
調用添加模塊
提取課程編號
提取課程名稱
提取課程簡介
提交
若有該記錄則不是新課程
出錯處理 提示信息
刪除舊課程
文件
課程信息表
軟體測試
輸入數據
有效等價類
無效等價類
證件號碼
1、6位數字字元
2、有效數字字元
3、少於6個字元
4、大於6個字元
使用功能
5、選課
6、查詢
7、輸入其他文字
有效測試用例
測試數據 期望結果 測試范圍
123456 輸入有效 1
選課 輸入有效 5
5
無效測試用例
測試數據
期望結果
測試范圍
12jda1
輸入無效
2
1234561
輸入無效
4
12341
輸入無效
3
12t21
輸入無效
2、 3
排課
輸入無效
7
(折半查找演算法測試)2
測試名稱:模塊輸入課程編號過濾的測試方案
a) 規定課程編號為輸入4個字元,頭兩個字元為字母,後2個字元為數字例如TP38
b) 測試方法採用黑盒測試法中的等價類劃分法
劃分等價類
輸入數據
有效等價類
無效等價類
課程號
1 兩字母+兩數字
2有非數字或字母
字母
3 A--Z
4字母少於兩個或多於兩個
數字
5 00--99
6數字少於兩個或多於兩個
為有效等價類和每個無效等價類設計測試用例
測試數據
期望結果
測試范圍
HY76
輸入有效
1、3、5
@D78
輸入無效
2
S86
輸入無效
4
MA2
輸入無效
6
HY345
輸入無效
6
DEH94
輸入無效
4
測試名稱:課程查找模塊設計測試方案
a) 本模塊採用的是折半查找演算法主要是測試各程序在各種典型情況下是不能有效的進行查找
b) 測試方案採用選擇白盒測試法中的路徑覆蓋法
說明:由於輸入的課程編號已經被過濾,所以編號接受的范圍為00--99
另外,團IDC網上有許多產品團購,便宜有口碑
❼ 誰能幫我弄個資料庫的教務輔助管理系統(什麼語言都行)
就這點分和代價?
❽ 排課系統c語言代碼 (可以不用完整的)
http://www.zsmcu.net/viewthread.php?tid=2093
❾ C語言學生管理系統製作
c語言系統製作 我幫你解決
❿ 課程安排系統
考試安排系統的設計與實現
資料庫的表抄,學生信息表(學號姓名,所在班級學院,專業等信息) 學生選課表(學號,選課課程,等信息) 考場表(考場號,人數,所在區域,樓層等)課程表(課程號, 課程名稱, 所屬專業, 必修選修信息,考試時間等)教師表(教師姓名,代課,所屬學院等信息,這個表用於安排監考老師,該表可以忽略)另外還有一個臨時表這個是關鍵之處,用於存放已經安排的數據,根據時間順序(考場,時間,考試科目等信息)我想這幾個表是必備的吧!!
安排的思路,我只是說說我的思路。每禪升判個人的思路也不一定相同
根據課程來安排
檢索該科目信息,是否必修,選修的話,檢索出人數,根據人數來檢索考場,要求考場及考試時間不能同時出現在臨時表裡,出現了就說明該時間段已經有考場安排了主要是防止沖突,如果人數過多,還要按照相鄰考場的原則來安排。
必修的話按必修的模式來安排,因為必修課一般習慣上按照班級及學院來安排。這與選修的考試習慣不一樣。如果你不考慮此問題,可以按照選修的模式統一來安排,注意的問題也是防止沖突。
當然既然是系統,也不是三言兩語能說清的,具體的細節肯定很多。當你解決了細節你的系統也就實現了,當然前提是首先你得有個思路
教務管理系統之子系統——系內課程安排
學校買一套教務系統以上的問題全解決了,或者只買一個片刻系統也將就用(不過排課需要的很多前提數據置入系統也是很麻煩的事)。現在的學校還沒有使用一款標準的教務系統學校的老師工作會很恐怖,手工幹活工作量太大了。
大學選修課的課程安排與專業課一樣繁瑣,而且課程安排之前還需進行選課,那麼有便捷的選課排課系統嗎
一、大學選修課可分為公共選修課和專業選修課。
1、 公共選修課:一般要求的學分不高,在10個學分左右,部分學校有限制其中要含有幾個學分的人文類和科技類課程。
2、專業選修課。專業選修笑賀課一般只有本專業的學生可以選,大多為專業課程,總學分要求在20分以上,是掌握專業知識的重要途徑。 選修課的學分要求一般是畢業的硬性指標,在修滿學分後才有畢業資格。部分學校的學費與所選選修課的學分數相關。
二、選修課要求:
1、各個學校的不一樣,以本校制度為准, 選修課是選和自己專業相關的課程,或者根據自己的興趣愛好去選擇,沒有硬性限制。
2、有基本的選修課學分,必須達到才能拿到大學畢業的學位證書。
三、總之,在大學里不但要學習全部必修課的同時,不能掛科,掛科是需要補考修學分,選修課也是有要求必須選的,也是有學分的,不然沒有學位證。
大學教務管理系統的排課系統怎麼設計他們之間的關系是,課程、班級...
第一是學校基本信息,有沒有分校,第二是院系設置,院系下分專業內,專業
教學任賀改務。有的歸容給院系,有的給教研室。教學任務分為學期教學任務,年級教學任務。
教學任務和班級結合就是教學計劃。教學計劃在和教室 教師,時間片結合就是排課。排課之後就是選課。選課之後就是成績。學籍管理我就不說了。再有就是評估。教材管理。這個東西不是很難,就是做起來麻煩,你不給分。真的不厚道。、、、、、、懶得理你,就說這么多吧。自動排課你就不用想了。這個不可能實現。因為上課的是人,不是機器。拍出來的課程表,老師沒法去上課。你爺爺的,不給分!!!!!!
怎麼破解版輕松課程表自動生成系統
這個問題也不是一兩句話能說清楚!你可以先錄入班級數,課程類型即回數量,老師名稱和任答課時間!所有數據錄入後都要有個ID,便於排列!(每個班級的課程應該是一樣的吧?)用循環排課,先排有特殊要求的課,再排無要求的!如果按班級排!可從一到N,先任意排,當某老師已有課或課時用完,就用下一老師!老師有無課可以定義個二維數組,分別表示星期幾,第幾節課!你也可以參考已經其它已經完成的排課系統!仿造一個!新年快樂!:)
如何安排課程表
1、課程表需要的元素有「標題、日期、課序、課程」四方面。
2、標題是指類如「XX學校XX班」一類的介紹內容及「好好學習」等提示性話語。
3、日期是周X,上下午也可以反映在課表上。
4、課序盡量做到每天最好的時間安排主科,為了不影響學生的認知、記憶規律,還要注意同一學科的課時不能連排。
(6)課程安排系統擴展閱讀:
第一、二節課上語文、數學或外語,實在安排不開時,再將副科的物理、化學、生物、政治(或思品、德育)、歷史、地理提到第一、二節課。
小學科的音樂、體育(或運動與健康)、美術、勞動技術教育(通用技術)、信息技術和安全與應急等課基本上都是安排在第三節課之後。
本科的選課系統是怎麼回事可以自己安排課程表嗎
專業課都是學校教務處統一安排的,只有一些選修的課是根據自己的時間來選的(當然也要根據老師開課時間)。
大學課程如何安排
滿意答案沒有刺的小刺3級2011-08-03 這個問題就根據學校的而定了,不同的學校課程安排是不太相同的。但總體上都是這樣安排的:以我們學校為例(理工科學生)。大一是公共基礎課(象高數,英語,線代,大物,C語言,工程制圖,計算機導論等等);大二就是專業基礎課(數電,模電,匯編,電路分析,概率論,信號與系統等等);大三,大四就是專業課。大三主要學習專業課,大四主要是更深入的對某個專業課進行更多學時的學習,加一些實習等等。至於你自己該怎麼規劃,就要看你學的是什麼專業,打算將來做什麼,考研?就業?還是公考?這些都是不一樣的。考研的話就要注重大一大二的基礎課,高數,英語和政治(馬哲、毛鄧三、等等);就業的話就應該多注重專業課的學習(當然理論也要扎實),多鍛煉自己的動手能力,結合專業理論知識和動手實踐,做一些東西或小項目(跟老師或同學),這樣才能為找工作做足准備。至於公考你就要多注意當時的變化了,這個我不好說。 C語言對操作系統和系統使用程序以及需要對硬體進行操作的場合,用C語言明顯優於其它解釋型高級語言,有一些大型應用軟體也是用C語言編寫的。 C語言具有繪圖能力強,可移植性,並具備很強的數據處理能力,因此適於編寫系統軟體,三維,二維圖形和動畫。它是數值計算的高級語言。 常用的C語言IDE(集成開發環境)有Microsoft Visual C++,Borland C++,Wat C++ ,Borland C++ ,Borland C++ Builder,Borland C++ 3.1 for DOS,Wat C++ 11.0 for DOS,GNU DJGPP C++ ,Lccwin32 C Compiler 3.1,Microsoft C,High C,Turbo C等等...... 追問: 好深奧喔…那專業課是不是與就業密切相關?
系統學習美術的課程安排是什麼樣的順序
1.還要學習畫素描頭像和速寫,這很重要的。
2.高中的色彩都是用水粉練習的專,是一個基礎,到了屬大學才學用油畫和水彩,國畫顏料等,如果是業余的也可以用油畫顏料畫。多看書,多看老師做範例畫,多思考,不懂就問,色彩比素描好提高。
3.學習油畫是水分的一個延續,學習好了畫水粉,可以很自然很輕松的延續到學習油畫,只是油畫和水粉的性質不同,畫一畫就適應了,水粉用的是水,而油畫用的是油老調顏料。
4,學習油畫也要學習畫素描,可以先臨摹,臨摹一陣子熟悉各種風格的畫或者學習自己喜歡的,還要加強素描功底,學習畫油頭,還要畫半身像,畫人體,創作等等,這些都學要很好的素描功底。也要多畫速寫。
信息管理與信息系統 課程安排
你們現在應該開始選課了吧,下一學期的課表應該出來了吧,沒有的話可以看一下你們的教學計劃,裡面應該有,或者問一下你們的導師或學長,所開課程每個學校會有所不同,不能一概而論。