當前位置:首頁 » 考試成績 » 學生成績概要設計

學生成績概要設計

發布時間: 2020-12-20 19:08:48

1. 誰有學生成績管理系統概要設計說明書!大神們幫幫忙

概要設計說明書的編寫提示 (參考件) E.1 引言 E.1.1 編寫目的 說明編寫這份概要設計說明書的目的,指出預期的讀者。 E.1.2 背景 說明: a. 待開發軟體系統的名稱; b. 列出此項目的任務提出者、開發者、用戶以及將運行該軟體的計算站(中心)。 E.1.3 定義 列出本文件中用到的專門術語的定義和外文首字母組詞的原片語。 E.1.4 參考資料 列出有關的參考文件,如: a. 本項目的經核準的計劃任務書或合同,上級機關的批文; b. 屬於本項目的其他已發表文件; c. 本文件中各處引用的文件、資料,包括所要用到的軟體開發標准。 列出這些文件的標題、文件編號、發表日期和出版單位,說明能夠得到這些文件資料的來源。 E.2 總體設計 E.2.1 需求規定 說明對本系統的主要的輸入輸出項目、處理的功能性能要求,詳細的說明可參見附錄C。 E2.2 運行環境 簡要地說明對本系統的運行環境(包括硬體環境和支持環境)的規定,詳細說明參見附錄C。 E2.3 基本設計概念和處理流程 說明本系統的基本設計概念和處理流程,盡量使用圖表的形式。 E.2.4 結構 用一覽表及框圖的形式說明本系統的系統元素(各層模塊、子程序、公用程序等)的劃分,扼要說明每個系統元素的標識符和功能,分層次地給出各元素之間的控制與被控制關系。 E.2.5 功能需求與程序的關系 本條用一張如下的矩陣圖說明各項功能需求的實現同各塊程序的分配關系: 程序1 程序2 …… 程序m 功能需求1 √ 功能需求2 √ 功能需求 √√ E.2.6 人工處理過程 說明在本軟體系統的工作過程中不得不包含的人工處理過程(如果有的話)。 E.2.7 尚未解決的問題 說明在概要設計過程中尚未解決而設計者認為在系統完成之前必須解決的各個問題。 E.3 介面設計 E.3.1 用戶介面 說明將向用戶提供的命令和它們的語法結構,以及軟體的回答信息。 E.3.2 外部介面 說明本系統同外界的所有介面的安排包括軟體與硬體之間的介面、本系統與各支持軟體之間的介面關系。 E.3.3 內部介面 說明本系統之內的各個系統元素之間的介面的安排。 E.4 運行設計 E.4.1 運行模塊組合 說明對系統施加不同的外界運行控制時所引起的各種不同的運行模塊組合,說明每種運行所歷經的內部模塊和支持軟體。 E.4.2 運行控制 說明每一種外界的運行控制的方式方法和操作步驟。 E.4.3 運行時間 說明每種運行模塊組合將佔用各種資源的時間。 E.5 系統數據結構設計 E.5.1 邏輯結構設計要點 給出本系統內所要使用的每個數據結構的名稱、標識符以及它們之中每個數據項、記錄、文卷和系的標識、定義、長度及它們之間的層次的或表格的相互關系。 E.5.2 物理結構設計要點 給出本系統內所使用的每個數據結構中的每個數據項的存儲要求,訪問方法、存取單位、存取的物理關系(索引、設備、存儲區域)、設計考慮和保密條件。 E.5.3 數據結構與程序的關系 說明各個數據結構與訪問這些數據結構的各個程序之間的對應關系,可採用如下的矩陣圖形式: 程序1 程序2 …… 程序m 功能需求1 √ 功能需求2 √√ 功能需求 √√ E.6 系統出錯處理設計 E.6.1 出錯信息 用一覽表的方式說明每種可能的出錯或故障情況出現時,系統輸出信息的形式、含意及處理方法。 E.6.2 補救措施 說明故障出現後可能採取變通措施,包括: a. 後備技術 說明准備採用的後備技術,當原始系統數據數據萬一丟失時啟用的副本的建立和啟動的技術,例如周期性地把磁碟信息記錄到磁帶上去就是對於磁碟媒體的一種後備技術; b. 降效技術 說明准備採用的後備技術,使用另一個效率稍低的系統或方法來求得所需結果的某些部分,例如一個自動系統的降效技術可以是手工操作和數據的人工記錄; E.6.3 系統維護設計 說明為了系統維護的方便而在程序內部設計中作出的安排,包括在程序中專門安排用於系統的檢查與維護的檢測點和專用模塊。

2. 教務管理系統 概要設計說明書

基於你的題目教務管理系統,我們可以提供一份代碼,適用於初學者的,
如有具體需求內,可以我們聯系,,告訴我容你的問題和聯系方式,有可能幫你,不過絕對救急,使用網路_Hi給我留言,

此回復對於所有需求和和來訪者有效,
ES:\\

3. 課程設計題目:學生成績管理系統

附件:(程序代碼)

#include<iostream>
#include<fstream> //輸入輸出文件
#include<string>
#include<iomanip> //輸出格式控制
using namespace std;
char press;int choose;int n;
class Student
{public:
int num;//學號
string name;//姓名
int bj;// 班級
char sex;//性別
float Math;//高數
float English;//英語
float Cjj;//C++
float sum;//總分
float average;//平均分
};
Student stud[100];
//----------------讀取資料------------------
void read()
{char filename[20];
cout<<"從文件中讀取信息!"<<endl;
cout<<"請輸入文件名:"<<endl;
cin>>filename;
ifstream infile(filename,ios::in|ios::out); 磁碟文件
if(!infile)
{cerr<<"open error!"<<endl; exit(1); }//輸出出錯信
do {int i=0;
infile>>stud[i].num>>stud[i].name>>stud[i].sex>>stud[i].bj;
infile>>stud[i].Math>>stud[i].English>>stud[i].Cjj;
cout<<"學生的學號:"<<stud[i].num<<" "
<<"姓名:"<<stud[i].name<<" "
<<"性別(男m/女w):"<<stud[i].sex<<" "
<<"班級(數字如:03):"<<stud[i].bj<<" "
<<"高數成績:"<<stud[i].Math<<" "
<<"大學英語成績:"<<stud[i].English<<" "
<<"C++成績:"<<stud[i].Cjj<<endl; i++;}
while(!infile.eof());
infile.close();
cout<<"讀取成功!"<<endl;}
//----------------保存資料------------------
void save()
{int i;
char filename[20];
for(i=0;i<n;i++)
{cout<<"學生的學號:"<<stud[i].num<<" "
<<"姓名:"<<stud[i].name<<" "
<<"性別:"<<stud[i].sex<<" "
<<"班級:"<<stud[i].bj<<" "
<<"高數成績:"<<stud[i].Math<<" "
<<"大學英語成績:"<<stud[i].English<<" "
<<"C++成績:"<<stud[i].Cjj<<endl;}
cout<<"將記錄保存在文件夾!"<<endl;
cout<<"請輸入文件名:";
cin>>filename;
ofstream outfile(filename);
if(!outfile){cerr<<"open error!"<<endl;}//輸出出錯信
for(i=0;i<n;i++)//向保存文件保存學生的信息
{outfile<<" "<<stud[i].num<<" "<<stud[i].name<<" "<<stud[i].sex<<" "<<stud[i].bj<<" ";
outfile<<stud[i].Math<<" "<<stud[i].English<<" "<<stud[i].Cjj; }
outfile.close();cout<<"保存成功!"<<endl;}

void SR()
{cout<<"請根據你的需要輸入學生的個數[(人數)>=2]:";
cin>>n;for(int a=0;a<n;a++)
{cout<<"請輸入第"<<a+1<<"個學生資料:"<<endl;
cout<<"學號:"<<' ';cin>>stud[a].num;
cout<<"姓名:"<<' ';cin>>stud[a].name;
cout<<"性別(男m/女w):"<<' ';cin>>stud[a].sex;
cout<<"班級(數字如:03):"<<' ';cin>>stud[a].bj;
cout<<"高數成績:"<<' ';cin>>stud[a].Math;
cout<<"大學英語成績:"<<' ';cin>>stud[a].English;
cout<<"C++成績:"<<' ';cin>>stud[a].Cjj;
stud[a].sum=stud[a].Math+stud[a].English+stud[a].Cjj;
stud[a].average=(stud[a].Math+stud[a].English+stud[a].Cjj)/3;}
cout<<"輸入成功,學生資料是否保存?(y/n)"<<endl;cin>>press;
switch(press)
{case 'y' : save();break;default: cout<<"不保存!";break;}}
//----------------刪除資料------------------
void SC()
{do{string SC_name;
cout<<"請輸入你要刪除的學生名字:"<<endl;int i=0;cin>>SC_name;
while(stud[i].name!=SC_name&&i<n) i++; //查找判斷
if(stud[i].name==SC_name)
{for(int j=i;j<n-1;j++)
{stud[i].num=stud[i+1].num;
stud[i].name=stud[i+1].name;
stud[i].sex=stud[i+1].sex;
stud[i].bj=um<<" "<<stud[k].name<<" "<<stud[k].sex<<" "<<stud[k].bj<<" "<<stud[k].average<<endl;cout<<endl;}
//----i].
這樣可以么?

4. 學生信息管理系統 概要設計怎麼寫

一、弄清楚系統要實現什麼功能,比如老師基本信息維護、學生基本信息維護、課程版信息維護、學生考試成績權維護 等等 這就是傳說中的需求分析

二、把這些功能劃分車不同的模塊 搞清楚各個模塊之間的關系 搞清楚各個模塊之間如何交互 這就是傳說中的概要設計 定義各個模塊的屬性、介面等信息 這就是傳說中的系統設計

三、設計數據結構 創建數據表

四、開始編寫各個模塊的代碼

五、測試

六、寫論文、答辯

5. 求.NET學生成績管理系統需求分析

沒法傳圖,自己想一下怎麼改吧……

一.開發目的:

總結軟體開發過程中的方法和技巧,更好的應用和資料庫技術

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

6. 2.學生成績管理系統 (c語言做)

給你找一份類似的。不完全一致。做課程設計還是可行的。自己稍加修改即可!

總體設計
一、 仔細閱讀系統要求,首先將此系統化分為如下模塊(即如下函數)

1、輸入初始的學生信息:其中包括學生的姓名、學號和性別以及學生的語文、數學、英語和計算機等相關信息;可用函數cin(stu *p1)來實現此操作。

2、查詢模塊:可用stu *lookdata(stu *p1) 來實現。找到就輸出此學生全部信息包括學生的語文、數學、英語和計算機等的成績。

3、插入模塊:可用insert( )函數來實現。其中通過學號的大小來比較的,並且以此來排序。

4、輸出學生的信息以及成績:通過學生的姓名來查看學生的語文、數學、英語和計算機等相關成績,同時也可以分別通過caverage() 、maverage() 、eaverage() 和comaverage() 來輸出語文、數學、英語和計算機等成績的平均分數、最高和最低分數。

5、退出系統:可用一個函數exit()來實現,首先將信息保存到文件中,釋放動態創建的內存空間,再退出此程序。

二、系統主模塊結構圖:

詳細設計
一、 界面設計
此系統界面採用圖形和數字化菜單設計。
主界面設計如下:

學生成績管理系統

請選擇相應的數字執行相應的功能:
1:是否輸入其他數據
2:查看數據
3:插入數據
4:查找數據
5:更新數據
6:保留數據
7:顯示或列印數據
8:語文成績狀況
9:數學成績狀況
10:英語成績狀況
11:計算機成績狀況
12:?
13:退出系統
二、 數據結構設計:
程序設計中用到的結構體類型:
學生信息結構體類型:
typedef struct student{
char name[MAX];
int num[MAX];
char sex[MAX];
int chinese;
int mathematic;
int english;
int computer;
struct student *next;
}

程序代碼:
//原始密碼是123456
#include"stdio.h"
#include"stddef.h"
#include"stddef.h"
#include"string.h"
#define MAX 10
typedef struct student{ /*定義結構體*/
char name[MAX]; /*姓名*/
int num[MAX]; /* 學號*/
char sex[MAX]; /*性別*/
int chinese; /*語文*/
int mathematic; /* 數學*/
int english; /*英語*/
int computer; /*計算機*/
struct student *next; /*結構體指針*/
}stu;
stu *head; /*頭指針*/
void print() /*顯示或列印函數*/
{
system("cls");
printf("\t\t\tScore Manage System\n"); /*成績管理系統*/
printf("<1>Enter Record\t"); /*輸入數據*/
printf("<2>Display\t"); /*顯示*/
printf("<3>Insert\t"); /*插入數據*/
printf("<4>Quest\t"); /*訪問數據*/
printf("<5>Update\t"); /*以前數據*/
printf("<6>Save\t"); /*保留數據*/
printf("<7>Fresh\t"); /*更新數據*/
printf("<8>Chinese Average\t"); /*語文平均成績*/
printf("<9>Math Average\t"); /*數學平均成績*/
printf("<10>English Average\t"); /*英語平均成績*/
printf("<11>Computer Average\t"); /*計算機平均成績*/
printf("<12>Quit\t\n"); /*退出*/
}

void cin(stu *p1) /*輸入相關數據的函數*/
{ printf("Enter name:\n");
scanf("%s",&p1->name);
printf("Enter num:\n");
scanf("%d",&p1->num);
printf("Enter sex:\n");
scanf("%s",&p1->sex);
printf("Enter score:\n");
printf("Enter chinese:\n");
scanf("%d",&p1->chinese);
printf("Enter math:\n");
scanf("%d",&p1->mathematic);
printf("Enter English:\n");
scanf("%d",&p1->english);
printf("Enter Computer:\n");
scanf("%d",&p1->computer);
}
stu *cindata() /*其他數據是否繼續輸入的函數*/
{ stu *p1,*p2;
int i=1;
char ch;
p1=(stu *)malloc(sizeof(stu));
head=p1;
while(i)
{
cin(p1);
printf("Do you Want to Continue?yes or no"); /*是否繼續輸入數據*/
ch=getchar();
ch=getchar();
if(ch=='n'||ch=='N')
{ i=0;
p1->next=NULL;
}
else
{ p2=p1;
p1=(stu *)malloc(sizeof(stu));
p2->next=p1;
}
}
return(p1->next);
}

stu *lookdata(stu *p1) /*查看數據的函數*/
{
while(p1!=NULL)
{ printf("Num:%d\t",p1->num);
printf("Name:%s\t",p1->name);
printf("Sex:%s\t",p1->sex);
printf("\n");
printf("Chinese:%d\t",p1->chinese);
printf("Math:%d\t",p1->mathematic);
printf("English:%d\t",p1->english);
printf("Computer:%d\t",p1->computer);
printf("\n");
p1=p1->next;
}
return p1;
}

void insert() /*通過比較學號來插入數據的函數*/
{ stu *p1,*p3,*p2;
char ch;
p1=head;
p3=(stu *)malloc(sizeof(stu));

p3->next=NULL;
if(head==NULL){ head=p3; return;}
cin(p3);
while(p1!=NULL&&(p1->num<p3->num)) /*通過學號的比較來插入*/
{ p2=p1;p1=p1->next;}
if(p2==head) {p3->next=head; head=p3; return;}
p3->next=p1;
p2->next=p3;

}

find(stu *p2) /*通過姓名查找查看數據的函數*/
{ char name[20];
int b=0;
printf("Enter the name of the student you want to find:"); /*通過姓名查看*/
scanf("%s",name);
while(p2!=NULL)
{if(strcmp(name,p2->name)==0)
{
printf("The data you want has be found\n");
printf(" Name:%s\t",p2->name);
printf("Num:%d\t",p2->num);
printf("sex%s\t",p2->sex);
printf("\n");
printf("Chinese:%d\t",p2->chinese);
printf("Math:%d\t",p2->mathematic);
printf("English:%d\t",p2->english);
printf("Computer:%d\t",p2->computer);
printf("\n");

b=1;
}
else if(b==0)
printf("sorry not find data!");
p2=p2->next;
}

if(b==1)
{
print();
printf("Find one\n");}
else
{print();
printf("Not find\n");

}
}

void caverage() /*求各學生語文平均分、最高和最低分成績的函數*/
{ stu *p1;
int i;
float max=0.0,min=200.0;
float sum=0.0,aver=0;
p1=head;
if(p1==NULL)
printf("not data!");
else
{for(i=0;p1!=NULL;i++,p1=p1->next)
sum+=p1->chinese;
aver=sum/i;

p1=head;
for(i=0;p1!=NULL;i++,p1=p1->next)
{if(max<p1->chinese)
max=p1->chinese;
}
p1=head;
for(i=0;p1!=NULL;i++,p1=p1->next)
if(min>p1->chinese)
min=p1->chinese;
}
printf("Chinese Average:%f",aver);
printf("Chinese Max:%f",max);
printf("Chinese Min:%f",min);
}

void maverage() /*求各學生數學平均分、最高和最低分成績的函數*/
{ stu *p1;
int i;
float max=0.0,min=200.0;
float sum=0.0,aver=0;
p1=head;
if(p1==NULL)
printf("not data!");
else
{for(i=0;p1!=NULL;i++,p1=p1->next)
sum+=p1->mathematic;
aver=sum/i;

p1=head;
for(i=0;p1!=NULL;i++,p1=p1->next)
{if(max<p1->mathematic)
max=p1->mathematic;
}
p1=head;
for(i=0;p1!=NULL;i++,p1=p1->next)
if(min>p1->mathematic)
min=p1->mathematic;
}
printf("Mathe Average:%f",aver);
printf("Mathe Max:%f",max);
printf("Mathe Min:%f",min);
}

void eaverage() /*求各學生英語平均分、最高和最低分成績的函數*/
{ stu *p1;
int i;
float max=0.0,min=200.0;
float sum=0.0,aver=0;
p1=head;
if(p1==NULL)
printf("not data!");
else
{for(i=0;p1!=NULL;i++,p1=p1->next)
sum+=p1->english;
aver=sum/i;

p1=head;
for(i=0;p1!=NULL;i++,p1=p1->next)
{if(max<p1->english)
max=p1->english;
}
p1=head;
for(i=0;p1!=NULL;i++,p1=p1->next)
if(min>p1->english)
min=p1->english;
}
printf("English Average:%f",aver);
printf("English Max:%f",max);
printf("English Min:%f",min);
}

void comaverage() /*求各學生計算機平均分、最高和最低分成績的函數*/
{ stu *p1;
int i;
float max=0.0,min=200.0;
float sum=0.0,aver=0;
p1=head;
if(p1==NULL)
printf("not data!");
else
{for(i=0;p1!=NULL;i++,p1=p1->next)
sum+=p1->computer;
aver=sum/i;

p1=head;
for(i=0;p1!=NULL;i++,p1=p1->next)
{if(max<p1->computer)
max=p1->computer;
}
p1=head;
for(i=0;p1!=NULL;i++,p1=p1->next)
if(min>p1->computer)
min=p1->computer;
}
printf("Computer Average:%f",aver);
printf("Computer Max:%f",max);
printf("Computer Min:%f",min);
}

update(stu *p2) /*通過姓名查找來更新數據*/
{
char name[10]; /*p2為指向結構體struct student的指針*/
int b=0;
printf("Enter The Name"); /*輸入姓名*/
scanf("%s",name);

while(p2!=NULL)
{if(strcmp(name,p2->name)==0)
{
printf("Find you data\n");
scanf("Name:%s",p2->name);
scanf("Num:%s",p2->num);
scanf("Sex:%s",p2->sex);
scanf("Chinese:%d",p2->chinese);
scanf("Math:%d",p2->mathematic);
scanf("english:%d",p2->english);
scanf("Computer:%d",p2->computer);
printf("Success!");

b=1;}
else if(b==0)
printf("Sorry not Find data!");
p2=p2->next;}
if(b==0)
{print();
printf("Sorry not Find data!");
}
else
{
print();
printf("Finish!");
}
}

save(stu *p2) /*保留數據函數*/
{
FILE *fp;
char file[10];
printf("Enter file name"); /*輸入文件名*/
scanf("%s",file);
fp=fopen(file,"w");
while(p2!=NULL)
{
fprintf(fp,"%s",p2->name);
fprintf(fp,"%s",p2->num);
fprintf(fp,"%s",p2->sex);
fprintf(fp,"%d",p2->chinese);
fprintf(fp,"%d",p2->mathematic);
fprintf(fp,"%d",p2->english);
fprintf(fp,"%d",p2->computer);
p2=p2->next;
}
fclose(fp);
}

char password[7]="123456"; /*定義初始密碼*/

void main() /*主函數*/
{ int choice;
stu *p2;
char s[8];
int flag=0,i; /*標志項*/
int n=3;
do{ printf("Enter password:\n");
scanf("%s",s);
if(!strcmp(s,password)) /*進行密碼匹配驗證*/
{ printf("PASS\n\n\n");
flag=1;
break;
}
else{
printf("Error Enter again:\n");
n--;
}
}
while(n>0);
if(!flag)
{printf("you have Enter 3 times!"); /*輸入密碼超過了3次!!*/
exit(0); /*自動退出*/
}
/*密碼驗證成功後進入的界面*/

printf("~~~~~~~~~~\t\t\t~~~~~~~~~~~~\n"); /*操作界面*/
printf("\t\tWelcom to the Mis\n");
printf("Author:-----\tClass:------\tNum:------\n"); /*作者,班級和號碼*/
printf("Adress:HG\n"); /*地址*/
printf("%%%%%%%%%%%%%%%%%%%%%%%%%%%\n");
printf("\t\tEnter OP:\n");
printf("\n\n\n\n");
printf("==============\t\t==============\n");
printf("==============\t\t==============\n");
printf("\t\tEnter the MIS yes or no\n"); /*問進入系統與否*/

scanf("%d",&choice);
if(choice=='n'||choice=='N')
exit(1);

print();
while(1)
{
printf("Enter choice:");
scanf("%d",&i);
if(i<1||i>13)
{
printf("Enter num from 1 to 13:\n"); /*再從1-13中進行選擇*/
exit(1);
}

switch(i)
{ case 1:
p2=cindata(); /*其他數據是否繼續輸入的函數*/
break;
case 2:
p2=lookdata(head); /*查看數據的函數*/
break;
case 3:
insert(); /*通過比較學號來插入數據的函數*/
break;
case 4:
find(head); /*通過姓名查找查看數據的函數*/
break;
case 5:
update(head); /*通過姓名查找來更新數據*/
break;
case 6:
save(head); /*保留數據函數*/
break;
case 7:
print(); /*顯示或列印函數*/
break;
case 8:
caverage(); /*求各學生語文平均分、最高和最低分成績的函數*/
break;
case 9:
maverage(); /*求各學生數學平均分、最高和最低分成績的函數*/
break;
case 10:
eaverage(); /*求各學生英語平均分、最高和最低分成績的函數*/
break;
case 11:
comaverage(); /*求各學生計算機平均分、最高和最低分成績的函數*/
break;
case 12:
; /*空操作*/
case 13:
exit(1); /*退出*/
break;
}
scanf("%d",&i);
}
}

7. C語言程序設計 班級學生成績管理系統

#include <stdio.h>
#include <malloc.h>
#include <string.h>
#include <conio.h>

#define ADDRFILE "c:\\addrlist.txt"

typedef struct tagLinkedList
{
char name[30];
char tel[30];
char addr[100];

struct tagLinkedList *prev;
struct tagLinkedLIst *next;
}ADDR;

ADDR *g_pAddrHead = NULL;
ADDR *g_pFind;
int g_bSaved = 1;

void get_addrlist(void);
int add_list(const ADDR *addr);
int find_list(const char *name);
void SetHeadPosition(void);
void SetTailPosition(void);

void Add_addr(void);
void Find_addr(void);
void Modify_addr(void);
void Delete_addr(void);
void Print_addr(void);
void Save_addr(void);
void Remove_addr(void);

void main(void)
{

int ch;

get_addrlist();

puts("通訊錄程序 Version 1.0");

while(1)
{
printf("\n[1]新增 [2]搜索 [3]修改 [4]刪除 [5]輸出 [S]儲存 [Q]退出");

ch = getch();

switch(ch)
{
case '1': Add_addr();break;
case '2': Find_addr();break;
case '3': Modify_addr();break;
case '4': Delete_addr();break;
case '5': Print_addr();break;
case 's':
case 'S': Save_addr();break;
case 'q':
case 'Q':
if(g_bSaved == 0)
{
printf("\n\n修改後的數據需要儲存嗎?(y/n)?");
ch = getchar();
if(ch == 'Y' || ch == 'y') Save_addr();
}

Remove_addr(); exit(1);
default : printf("\n\n 請按1~5或S/Q健.\n\n");break;
}
}
}

void get_addrlist(void)
{
ADDR addr;
FILE *fp;

fp = fopen(ADDRFILE,"rb");

if(fp == NULL)
{
perror("open file error;");
return;
}

while(!feof(fp))
{
fread(&addr,1,sizeof(ADDR),fp);

if(ferror(fp))
{
fclose(fp);
perror("file read error;");
return;
}

if(feof(fp))break;

if(add_list(&addr) == 0)
{
printf(".\n");
}
}

fclose(fp);
}

int add_list(const ADDR *addr)
{
ADDR *plocal,*pn = g_pAddrHead;

SetHeadPosition();

if(g_pAddrHead == NULL)
{
plocal = malloc(sizeof(ADDR));
memset(plocal,0,sizeof(ADDR));

if(plocal == NULL)
{
return 0;
}

g_pAddrHead = plocal;
g_pAddrHead->prev = NULL;
g_pAddrHead->next = NULL;
}
else
{
plocal = malloc(sizeof(ADDR));
memset(plocal,0,sizeof(ADDR));

if(plocal == NULL)
{
return 0;
}

while(pn->next)
{
pn = pn->next;
}

pn->next = plocal;
plocal->prev = pn;
plocal->next = NULL;

}

strcpy(plocal->name,addr->name);
strcpy(plocal->tel,addr->tel);
strcpy(plocal->addr,addr->addr);

return 1;
}

int find_list(const char *name)
{
ADDR *plocal;

SetHeadPosition();

plocal = g_pAddrHead;

while(plocal)
{
if(strstr(plocal->name,name))
{
g_pFind = plocal;
return 1;
}
plocal = plocal->next;
}

return 0;
}

void SetHeadPosition(void)
{
if(g_pAddrHead == NULL) return;

while(g_pAddrHead->prev)
{
g_pAddrHead = g_pAddrHead->prev;
}
}

void SetTailPosition(void)
{
if(g_pAddrHead == NULL) return;

while(g_pAddrHead->next)
{
g_pAddrHead = g_pAddrHead->next;
}
}

void Remove_addr(void)
{
ADDR *plocal;

if(g_pAddrHead == NULL) return;

SetHeadPosition();

while(g_pAddrHead)
{
plocal = g_pAddrHead->next;

free(g_pAddrHead);

g_pAddrHead = plocal;
}

g_pAddrHead = NULL;

}

void Add_addr(void)
{
ADDR addr;

memset(&addr,0,sizeof(ADDR));

printf("\n\nName: ");gets(addr.name);
if(strlen(addr.name) == 0) return;

printf("TEL: ");gets(addr.tel);
printf("ADDR: ");gets(addr.addr);

if(find_list(addr.name) == 1)
{
printf("\n已經存在的姓名.\n\n");
puts(g_pFind->name);
puts(g_pFind->tel);
puts(g_pFind->addr);
return;
}

if(add_list(&addr))
{
g_bSaved = 0;
printf("\n儲存完畢.\n\n");
}
}

void Find_addr(void)
{
char buff[100] ={0,};
ADDR *plocal;

printf("\n\n請輸入要查找的姓名/電話/地址.\n");
printf("姓名/電話/地址 :");gets(buff);

if(strlen(buff) == 0) return;

SetHeadPosition();

plocal = g_pAddrHead;
g_pFind = NULL;

while(plocal)
{
if(strstr(plocal->name,buff))
{
g_pFind = plocal;
break;
}

if(strstr(plocal->tel,buff))
{
g_pFind = plocal;
break;
}

if(strstr(plocal->addr,buff))
{
g_pFind = plocal;
break;
}
plocal = plocal->next;
}

if(g_pFind)
{
puts(g_pFind->name);
puts(g_pFind->tel);
puts(g_pFind->addr);
}
else
{
printf("\n\n搜索不到要找的%s.\n\n",buff);
}
}

void Modify_addr(void)
{
char name[100] = {0,};
ADDR addr;

while(1)
{
printf("\n\n要修改的姓名: ");gets(name);

if(strlen(name) == 0) return;

if(find_list(name) == 0)
{
puts("輸入的姓名不存在.");
continue;
}
break;
}

printf("\n%s的通訊錄如下:\n\n",name);
puts(g_pFind->name);
puts(g_pFind->tel);
puts(g_pFind->addr);

printf("\n輸入要修改的姓名/電話/地址.\n\n");

printf("NAME: ");gets(addr.name);
printf("TEL : ");gets(addr.tel);
printf("ADDR: ");gets(addr.addr);

if(strlen(addr.name)==0) strcpy(addr.name,name);

strcpy(g_pFind->name,addr.name);
strcpy(g_pFind->tel,addr.tel);
strcpy(g_pFind->addr,addr.addr);

g_bSaved = 0;

printf("%s的通訊錄修改成功.\n",name);
}

void Delete_addr(void)
{
char name[100] ={0,};
ADDR *plocal;
int ch;

while(1)
{
printf("\n\n要刪除的姓名: ");gets(name);

if(strlen(name)==0) return;

if(find_list(name) == 0)
{
puts("要刪除的通訊錄不存在.");
continue;
}
break;
}

puts(g_pFind->name);
puts(g_pFind->tel);
puts(g_pFind->addr);

printf("確定要刪除%s的通訊錄嗎(y/n)?",name);
ch = getch();
fflush(stdin);

if(ch == 'Y'||ch == 'y')
{
if(g_pFind->prev == NULL)
{
if(g_pFind->next == NULL)
{
free(g_pFind);
g_pAddrHead = NULL;
}
else
{
plocal = g_pFind->next;
free(g_pFind);
plocal->prev =NULL;
g_pAddrHead = plocal;
}
}
else if(g_pFind->next == NULL)
{
plocal = g_pFind->prev;
free(g_pFind);
plocal->next =NULL;
g_pAddrHead = plocal;
}
else
{
plocal = g_pFind->prev;
plocal->next = g_pFind->next;

plocal = g_pFind->next;
plocal->prev = g_pFind->prev;

free(g_pFind);
g_pAddrHead = plocal;
}

g_bSaved = 0;
printf("\n\n刪除完畢.\n\n");
}
}

void Print_addr(void)
{
int count = 1;
ADDR *plocal;

SetHeadPosition();

if(g_pAddrHead == NULL)
{
printf("\n\n無任何數據\n");
return;
}

plocal = g_pAddrHead;
while(plocal->prev)
{
plocal=plocal->prev;
}

printf("\n\n");

while(plocal)
{
printf("NO.%d\n",count++);
puts(plocal->name);
puts(plocal->tel);
printf("%s\n\n",plocal->addr);

printf("請按任意一健(結束:q)\n\n");
getch();
if(getch() == 'q')return;

plocal=plocal->next;
}
}

void Save_addr(void)
{
ADDR *plocal, *pn;
FILE *fp;

if(g_pAddrHead == NULL) return;

fp = fopen(ADDRFILE,"w+b");

if(fp == NULL)
{
perror("file open error;");
return;
}

SetHeadPosition();

plocal = g_pAddrHead;

while(plocal)
{
pn = plocal->next;

plocal = pn;
}

printf("\n所有數據已經儲存完畢.");
g_bSaved = 1;

fclose(fp);
}

熱點內容
武漢大學學生會輔導員寄語 發布:2021-03-16 21:44:16 瀏覽:612
七年級學生作文輔導學案 發布:2021-03-16 21:42:09 瀏覽:1
不屑弟高考成績 發布:2021-03-16 21:40:59 瀏覽:754
大學畢業證會有成績單 發布:2021-03-16 21:40:07 瀏覽:756
2017信陽學院輔導員招聘名單 發布:2021-03-16 21:40:02 瀏覽:800
查詢重慶2018中考成績查詢 發布:2021-03-16 21:39:58 瀏覽:21
結業考試成績怎麼查詢 發布:2021-03-16 21:28:40 瀏覽:679
14中醫醫師資格筆試考試成績查分 發布:2021-03-16 21:28:39 瀏覽:655
名著賞析課程標准 發布:2021-03-16 21:27:57 瀏覽:881
北京大學商業領袖高端培訓課程 發布:2021-03-16 21:27:41 瀏覽:919