C課程設計系統(tǒng)和論文設計_第1頁
C課程設計系統(tǒng)和論文設計_第2頁
C課程設計系統(tǒng)和論文設計_第3頁
C課程設計系統(tǒng)和論文設計_第4頁
C課程設計系統(tǒng)和論文設計_第5頁
已閱讀5頁,還剩38頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、湖南科技大學VC+ 課程設計報告學籍管理信息系統(tǒng)學生姓名:楊朝勇學號:1007010204 年級專業(yè):10級信息技術 班級:信息技術1班指導老師:李建湘 學院:數學與計算科學提交日期:2012年12月目錄一、開發(fā)背景3二、系統(tǒng)分析.4【2.1】需求分析.4三、系統(tǒng)設計.4【3.1】系統(tǒng)進入界面的流程圖.5【3.2】用戶管理管理.5【3.3】信息維護.5【3.4】記錄查詢.5【3.5】報表輸出.5四、功能模塊分析.4【4.1】系統(tǒng)管理模塊.4【4.2】報表輸出模塊.4【4.3】學生信息管理模塊.4五、開發(fā)環(huán)境.5六、系統(tǒng)演示.7【6.1】系統(tǒng)登錄.7【6.2】系統(tǒng)主界面.7【6.3】系統(tǒng)管理.8

2、【6.4】學生信息管理.9七、系統(tǒng)實現(xiàn)思路19八、存在的不足與對策20九、心得與體會20十、主要程序代碼21【10.1】鏈表類.21【10.2】對話框類的實現(xiàn)代碼.29十一、參考文獻41一、 開發(fā)背景Ø 對于一個只有十個以下學生的學校來說,老師可以憑借自己的記憶力記住學生的基本信息、學籍成績等資料。Ø 但是對于一個幾十人、上百人、甚至上千人的學校來說,光憑管理者的記憶力肯定是不夠的,采用手工記錄的方式會非常不方便。如果有一款管理軟件能夠完成學校信息的管理,這樣會大大減輕管理者的負擔。 二、 系統(tǒng)分析1. 需求分析【2.1】 需要有一個記錄學生的學號、姓名、性別、性別等基本信

3、息的學生基本信息管理模塊。三、 系統(tǒng)設計【3.1】 系統(tǒng)的進入界面流程圖【3.2】用戶管理管理者用自己的用戶名和密碼登錄該系統(tǒng)?!?.3】信息維護管理著進入該系統(tǒng)后可以添加,刪除?!?.4】記錄查詢管理者可以學生學號查詢和學生姓名查詢。【3.5】報表輸出輸出學校所有學生的信息。進入系統(tǒng)后的流程界面如下:四、 模塊分析【4.1】. 系統(tǒng)登錄注冊和注銷系統(tǒng)開始運行就出現(xiàn)系統(tǒng)登錄對話框,密碼正確后才能進入主界面(默認用戶名:shan密碼為123),用戶還可以注銷,注冊和退出功能。【4.2】顯示模塊顯示模塊將輸出所有學生的所有的信息 ?!?.3】 修改模塊首先由用戶輸入要修改的學生的姓名或者學號,然后

4、系統(tǒng)用修改函數查找,顯示該名學生的資料,然后系統(tǒng)提示用戶輸入需要修改學生的資料?!?.4】查詢模塊首先由用戶輸入要查詢的學生的學號或者姓名,然后系統(tǒng)用查詢函數查找,顯示該名學生的信息。【4.5】刪除模塊首先由用戶輸入要刪除的單個學生姓名或者學號,然后調用刪除函數,刪除該名學生的資料。【4.6】 清空模塊系統(tǒng)將會把所有學生的資料全部刪除,將鏈表清空。五、 開發(fā)環(huán)境【5.1】系統(tǒng)開發(fā)平臺:Visual C+ 6.0?!?.2】運行平臺:Windows 2000/Windows XP/Windows 2003/Windows Vista/windows7。六,系統(tǒng)演示【6.1】登錄系統(tǒng)當登錄系統(tǒng)時,

5、出現(xiàn)對話框 ,輸入用戶名:楊朝勇 密碼123【6.2】 系統(tǒng)主界面當管理者輸入正確的密碼后,驗證成功后,進入系統(tǒng)的主界面如下:【6.3】系統(tǒng)管理打開系統(tǒng)管理點擊注冊,當用戶名注冊成功打開系統(tǒng)管理退出【6.4】學生信息管理1,打開學生信息管理點擊添加信息添加信息成功2,打開學生信息管理刪除信息刪除學生信息成功3打開學生信息管理點擊修改學生信息輸入修改學生姓名:4,打開學生信息管理按學號查詢查詢成功:5,打開學生信息管理按學生姓名查找如果該系統(tǒng)沒有改學生信息提示6,打開學生信息管理系統(tǒng)查詢所有者信息如果該系統(tǒng)中沒有有學生信息則顯示該系統(tǒng)中為空,則會提示是否向該系統(tǒng)中添加數據如果該系統(tǒng)中有學生信息,

6、則顯示所有學生的信息7,打開學生信息管理系統(tǒng)清除所信息 對話框會提示是否清空所有學生的信息七、系統(tǒng)實現(xiàn)思路用一個鏈表類來實現(xiàn)所有的功能,鏈表類中封裝了如下功能:int LinkListInsert(string &name,string &id,int &age);/在第一個位置插入數據int GetFirst(linklist &first); /得到第一個位置的元素int GetNext(linklist &pos,linklist &next); /得到指定位置的下一個位置int GetPre(linklist &pos,linkl

7、ist &pre);/得到指定位置的上一個位置int FindByName(string &name,linklist &object,linklist &pre); /按姓名查找int FindById(string &id,linklist &object,linklist &pre);/按學號查找int Edit(linklist &object,string &name,string &id,int &age);/修改指定元素int Delete(linklist &object);/刪除指

8、定元素的后一個int SaveAll();/保存int LoadAll();/載入 在MFC中應用該類即可實現(xiàn)該系統(tǒng)。八,存在的不足與對策鑒于本人水平有限及時間等方面的原因,該系統(tǒng)的功能比較簡單,不足之處有:首先,一次性只能輸入一個數據,當下一次輸入時,信數據會覆蓋原來的數據,不能永久保存,因而不具有實際用途,僅停留在單純的編程水平,并不能用于實際;第二,查詢能力不強,而且沒有設置對一些簡單的信息進行修改,刪除及對同樣的姓名全部刪除其信息等功能。對于一些不正確的輸入可能會造成一些難以預料的結果,因此,請盡可能的輸入正確信息。這些不足請老師多多諒解。今后設計者會更多的學習編程技巧,不斷的提高程序

9、設計水平。九,心得體會經過幾個星期的設計和開發(fā),系統(tǒng)基本開發(fā)完畢。在本次課程設計中困難遇到不少,比如文本文件的操作,i/o流,string,Cstring類,容器類相關的成員函數,全局參數的傳遞等。由于這是第一次進行課程設計沒有經驗很多地方多不盡人意,函數的實現(xiàn)不夠完善等等。由于設計時間較短,所以該系統(tǒng)還有許多不盡如人意的地方,功能不夠完善等多方面問題。在這次系統(tǒng)開發(fā)的過程中,我深深體會到了做一個系統(tǒng),首先進行需求分析的重要性,了解了一個系統(tǒng)的制作,從功能分析到功能模塊分析、與其他系統(tǒng)的關系,再到后臺數據存儲設計及各功能模塊的創(chuàng)建都需要從整體上考慮設計。這些都有待以后進一步改進。通過實踐對于我

10、以后的學習是一筆不小的財富!特別是自己編的函數用戶注冊模塊。希望在以后數據庫系統(tǒng)設計中能開發(fā)出更強大的系統(tǒng),希望以后能夠在這方面有更多的創(chuàng)新和強化。十,程序的主要代碼【1】鏈表類:頭文件/*/*鏈表類基本操作:*/*/#ifndef LINKLIST_H#define LINKLIST_H#include <string>#define FALSE 0#define TRUE 1#define OVERFLOW -2/#define OK 1/#define ERROR 0using namespace std;typedef struct LNodestring Name; st

11、ring Id;int Age;int Length; /表長struct LNode *next;LNode,*linklist;class LinkListpublic:LinkList(); /在構造函數中初始化一個頭結點LinkList(); int LinkListInsert(string &name,string &id,int &age);/在第一個位置插入數據int GetFirst(linklist &first); /得到第一個位置的元素int GetNext(linklist &pos,linklist &next); /

12、得到指定位置的下一個位置int GetPre(linklist &pos,linklist &pre);/得到指定位置的上一個位置int FindByName(string &name,linklist &object,linklist &pre); /查找int FindById(string &id,linklist &object,linklist &pre);int Edit(linklist &object,string &name,string &id,int &age);/修改指定元素

13、int Delete(linklist &object);/刪除指定元素的后一個int DisplayAll();int SaveAll();/保存int LoadAll();/載入private:linklist A;#endif實現(xiàn)源文件:#include <iostream>#include "LinkList.h"#include <fstream>LinkList:LinkList()A=new LNode;/構建一個頭結點if(!A)exit(OVERFLOW);/內存分配失敗cout<<"error!&qu

14、ot;<<endl;A->Age=0;A->Id=""A->Name=""A->next=NULL;A->Length=0;LinkList:LinkList()linklist p,q;p=A;while(p->next!=NULL)q=p->next;delete p;p=q;delete p;A=NULL;p=NULL;q=NULL;int LinkList:LinkListInsert(string &name,string &id,int &age)linklist

15、B;B=new LNode;if(!B)exit(OVERFLOW);/內存分配失敗cout<<"error!"<<endl;return FALSE;B->Age=age;B->Id=id;B->Name=name;B->next=A->next;/把元素插入第一個位置A->next=B;A->Length+;return TRUE;int LinkList:GetFirst(linklist &first)if(A->Length=0)cout<<"no value!&

16、quot;<<endl;first=A;return FALSE;elsefirst=A->next;return TRUE;int LinkList:GetNext(linklist &pos,linklist &next)if(A->Length=0)cout<<"that is the last,no value!"<<endl;next=NULL;return FALSE;elsenext=pos->next;return TRUE;int LinkList:FindByName(string &

17、amp;name,linklist &object,linklist &pre)if(A->Length=0)cout<<"no value!"<<endl;object=NULL;return FALSE;elselinklist p;p=A->next;pre=A;while(p)if(name=p->Name)object=p;return TRUE;pre=p;p=p->next;cout<<"no element!"<<endl;return FALSE;i

18、nt LinkList:FindById(string &id,linklist &object,linklist &pre)if(A->Length=0)cout<<"no value!"<<endl;object=NULL;return FALSE;return TRUE;int LinkList:LoadAll()string name;string id;int length;int age;ifstream input("output.txt");if(input)input>>

19、length;int i=0;while(!input.eof()&&i+<length)input>>name>>id>>age;LinkListInsert(name,id,age);input.close();return TRUE;elsecout<<"can not load any data!"<<endl;input.close();return FALSE;【10.2】對話框類的實現(xiàn)代碼 BOOL C1007010212Dlg:OnInitDialog()CDialog:OnI

20、nitDialog();/ Add "About." menu item to system menu./ IDM_ABOUTBOX must be in the system command range.ASSERT(IDM_ABOUTBOX & 0xFFF0) = IDM_ABOUTBOX);ASSERT(IDM_ABOUTBOX < 0xF000);CMenu* pSysMenu = GetSystemMenu(FALSE);if (pSysMenu != NULL)if (IsIconic()CPaintDC dc(this); / device co

21、ntext for paintingSendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);/ Center icon in client rectangleint cxIcon = GetSystemMetrics(SM_CXICON);int cyIcon = GetSystemMetrics(SM_CYICON);CRect rect;GetClientRect(&rect);int x = (rect.Width() - cxIcon + 1) / 2;int y = (rect.Height() - cyIcon

22、 + 1) / 2;/ Draw the icondc.DrawIcon(x, y, m_hIcon);elseCDialog:OnPaint();/ The system calls this to obtain the cursor to display while the user drags/ the minimized window.HCURSOR C1007010212Dlg:OnQueryDragIcon()return (HCURSOR) m_hIcon;void C1007010212Dlg:OnBtnAdd() / TODO: Add your control notifi

23、cation handler code hereCDlgAdd add;LinkList data;if(IDOK=add.DoModal()data.LoadAll();/載入原有數據UpdateData();/CString strA = "A"std:string strB = "B"strA = strB.data(); / CString -> string/strB = LPCSTR(strA); / string -> CString if(""=add.m_name)MessageBox("信息不

24、完整!n請重新輸入!");return;if(""=add.m_id)MessageBox("信息不完整!n請重新輸入!");return;if(0=add.m_age)MessageBox("信息不完整!n請重新輸入!");return;string name,id;name=LPCSTR(add.m_name);id=LPCSTR(add.m_id);/將CString 轉換為string;data.LinkListInsert(name,id,add.m_age);data.SaveAll(); /保存數據m_list

25、_stuinfo.DeleteAllItems();OnBtnDisplay();AfxMessageBox("信息添加成功!");void C1007010212Dlg:OnBtnDisplay() / TODO: Add your control notification handler code herem_list_stuinfo.DeleteAllItems();LinkList data;linklist first,next;data.LoadAll();/載入數據if(!data.GetFirst(first)if(IDOK=AfxMessageBox(&q

26、uot;沒有數據,是否請輸入數據!",MB_OKCANCEL)OnBtnAdd();elsewhile(first)char age5;memset(age,0,5);m_list_stuinfo.InsertItem(0,first->Name.c_str();m_list_stuinfo.SetItemText(0,1,first->Id.c_str();itoa(first->Age,age,10);m_list_stuinfo.SetItemText(0,2,age);if(data.GetNext(first,next)first=next;void C1

27、007010212Dlg:OnBtnDeleteall() / TODO: Add your control notification handler code hereLinkList data;data.LoadAll();if(IDOK=AfxMessageBox("確定清空數據n清空后將不可恢復!",MB_OKCANCEL)data.SaveNull();AfxMessageBox("數據已清空");m_list_stuinfo.DeleteAllItems();elsereturn ;void C1007010212Dlg:OnBtnDelet

28、e() / TODO: Add your control notification handler code hereCDlgDelete a;LinkList data;linklist object,pre;data.LoadAll();a.DoModal();UpdateData();string name;name=LPCSTR(a.m_name);if(data.FindByName(name,object,pre)if(IDOK=AfxMessageBox("確定刪除數據n清空后將不可恢復!",MB_OKCANCEL)data.Delete(pre);data.

29、SaveAll();m_list_stuinfo.DeleteAllItems();OnBtnDisplay();elseAfxMessageBox("沒有該生信息!");void C1007010212Dlg:OnBtnFindbyname() / TODO: Add your control notification handler code hereLinkList data;linklist object,pre;string str;data.LoadAll();CDlgFindByName a;a.DoModal();UpdateData();str=LPCST

30、R(a.m_name);if(data.FindByName(str,object,pre)CDlgDisplay b;CString na,id;na.Format("%s",object->Name.c_str();id=object->Id.data();b.m_age=object->Age;b.m_id=id;b.m_name=na;b.DoModal();UpdateData(FALSE);elseAfxMessageBox("沒有該生信息!");return ;void C1007010212Dlg:OnBtnFindby

31、id() / TODO: Add your control notification handler code hereLinkList data;linklist object,pre;string str;data.LoadAll();CDlgFindById a;a.DoModal();UpdateData();str=LPCSTR(a.m_id);if(data.FindById(str,object,pre)CDlgDisplay b;CString na,id;na.Format("%s",object->Name.c_str();id=object->Id.data();b.m_age=object->Age;b.m_id=id;b.m_name=na;b.DoModal();UpdateData(FALSE);elseAfxMessageBox("沒有該生信息!");return ;void C1007010212Dlg:OnBtnEdit() / TODO: Add your control notification

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論