學生信息管理系統(tǒng)課程設計實驗報告_第1頁
學生信息管理系統(tǒng)課程設計實驗報告_第2頁
學生信息管理系統(tǒng)課程設計實驗報告_第3頁
學生信息管理系統(tǒng)課程設計實驗報告_第4頁
學生信息管理系統(tǒng)課程設計實驗報告_第5頁
已閱讀5頁,還剩37頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、.結構化程序課程設計報告設計名稱 _ 學生信息管理系統(tǒng) 指導教師 _ _ _ _ _ 班級 _ 1 2計算機卓越班 學生姓名 劉寶 王慶華 徐廷政 汪俊杰 李昱凡 完成日期 安慶師范學院計算機與信息學院一、 實驗課題題目:學生信息管理系統(tǒng) 創(chuàng)建一個學生信息管理系統(tǒng)。假設系統(tǒng)中每個學生記錄只包括學號、姓名、電話號碼等信息。1、 系統(tǒng)功能的基本要求:(1) 創(chuàng)建信息管理系統(tǒng)。(2) 顯示信息管理系統(tǒng);(3) 查詢信息管理系統(tǒng);(4) 修改信息管理系統(tǒng);(5) 刪除信息管理系統(tǒng);(6) 排序信息管理系統(tǒng);(7) 退出信息管理系統(tǒng);二、 需求分析使用鏈式結構,定義鏈表結構,使用文件儲存學生信息#ifn

2、def COMMON_H#define COMMON_H/*注:此處是為了后面可能要對學生添加其他屬性而預留的typedef struct others*POTH,OTHE;*/typedef struct studentchar num10;/學號學號唯一,且不能改,作為用戶登錄賬號char psw20;/密碼每人一個密碼,默認學號后四位,可以自己登錄修改int root;/權限分管理員和用戶,1代表管理員,0代表用戶char nam10;/姓名char sex4;/性別char dom10;/寢室char cls40;/班級char clg40;/學院char mbp20;/手機/OTHE

3、 other;/其他使用結構體嵌套,方便添加其他屬性struct student *next;*PSTU,STU;#endif三、 流程圖設計大致流程設計如下:主函數(shù)調用登錄函數(shù)void login(PSTU pHead),進入登錄界面登錄函數(shù)調用讀取函數(shù)PSTU read(void),將學生信息從文件中讀入內存登錄界面下輸入用戶和密碼,通過與學生信息匹配,判斷是管理員還是用戶如果是管理員則進入管理員界面,反則進入用戶界面管理員擁有比用戶更多的權限,可以進行行新增、查詢、修改等操作相比較管理員,用戶的權限少了很多。四、算法模塊設計兩大模塊:前臺界面、后臺控制前臺界面:登陸界面、管理員界面、用戶

4、界面、增刪查改、修改密碼、關于我們后臺控制:數(shù)據(jù)讀取、數(shù)據(jù)寫入、數(shù)據(jù)加密、數(shù)據(jù)解密、構建鏈表、記錄日志詳細設計詳細說明在代碼里有注釋,這里不再贅述,因為代碼粘過來會很亂,這里只提供函數(shù)接口等信息登錄界面函數(shù)原型:void login(PSTU pHead)接收參數(shù):pHead:鏈表頭結點返回參數(shù):無功能實現(xiàn):登陸界面編寫作者:劉寶編寫時間:2013/9/8管理員界面函數(shù)原型:void admin(PSTU pHead,PSTU p)接收參數(shù):pHead:鏈表頭結點 p:登錄人信息所在的節(jié)點返回參數(shù):無功能實現(xiàn):管理員界面編寫作者:劉寶編寫時間:2013/9/7用戶界面函數(shù)原型:void adm

5、in(PSTU pHead,PSTU p)接收參數(shù):pHead:鏈表頭結點 p:登錄人信息所在的節(jié)點返回參數(shù):無功能實現(xiàn):用戶界面編寫作者:劉寶編寫時間:2013/9/8增刪查改函數(shù)原型:void adminadd(PSTU pHead,PSTU p1)接收參數(shù):pHead:鏈表頭結點 p1:當前登錄成員返回參數(shù):無功能實現(xiàn):添加一個成員編寫作者:王慶華編寫時間:2013/9/7函數(shù)原型:void admindelete(PSTU pHead,PSTU p1)接收參數(shù):pHead:鏈表頭結點 p1:當前登錄成員返回參數(shù):無功能實現(xiàn):刪除一個成員編寫作者:李昱凡編寫時間:2013/9/7函數(shù)原型

6、:void adminsearch(PSTU pHead)接收參數(shù):pHead:鏈表頭結點返回參數(shù):無功能實現(xiàn):查找一個成員的信息編寫作者:汪俊杰編寫時間:2013/9/7函數(shù)原型:void adminchange(PSTU pHead,PSTU p1)接收參數(shù):pHead:鏈表頭結點 p1:被修改的成員返回參數(shù):無功能實現(xiàn):修改一個成員的信息編寫作者:徐廷政編寫時間:2013/9/7修改密碼函數(shù)原型:void changepsw(PSTU pHead,PSTU p1)接收參數(shù):pHead:鏈表頭結點 p1:當前登錄成員返回參數(shù):無功能實現(xiàn):修改當前登錄成員的密碼編寫作者:劉寶編寫時間:201

7、3/9/8關于我們函數(shù)原型:void about()接收參數(shù):無返回參數(shù):無功能實現(xiàn):輸出“關于我們”信息編寫作者:劉寶編寫時間:2013/9/8數(shù)據(jù)讀寫讀:函數(shù)原型:PSTU read(void)接收參數(shù):無返回參數(shù):鏈表頭結點功能實現(xiàn):讀取數(shù)據(jù)、解密密碼編寫作者:劉寶編寫時間:2013/9/8寫:函數(shù)原型:void save(PSTU pHead)接收參數(shù):pHead:鏈表頭結點返回參數(shù):無功能實現(xiàn):保存數(shù)據(jù)并加密密碼編寫作者:劉寶編寫時間:2013/9/8構建鏈表函數(shù)原型:PSTU create(void)接收參數(shù):無返回參數(shù):返回指向這個結點的指針功能實現(xiàn):新建一個結點編寫作者:劉寶編

8、寫時間:2013/9/8記錄日志函數(shù)原型:void record(PSTU p1,int n,PSTU p2)接收參數(shù):p1:當前登錄成員 n:記錄種類 p2:被操作成員返回參數(shù):無功能實現(xiàn):記錄日志編寫作者:劉寶編寫時間:2013/9/8五、系統(tǒng)測試登陸界面進度條登陸:管理員登陸界面普通用戶登陸管理員的增刪查改用戶的增加:刪除用戶:查詢:1、 學號查詢2、 姓名查詢改學生信息改密碼密碼修改成功后,會重新登陸日志:關于我們:六、系統(tǒng)風格整體風格:(1).程序塊要采用縮進風格編寫,使用TAB控制縮進。(2).函數(shù)定義采用linux內核編程風格,即函數(shù)類型與函數(shù)名稱不分行。(3).左右花括號的位置

9、采用GNU的風格,即左括號與右括號都在同一列左對起。(4).相對獨立的代碼段之間,變量說明之后,插入一個空行分隔。(5).相鄰的函數(shù)塊之間,插入一個空行分隔。(6).關鍵字if,while ,for與其后的條件判斷的表達式之間,插入一個空格分隔。注釋風格:(1).整個源文件的最頂部,說明次模塊的相關信息,一般為多行注釋(2).源文件內部定義的函數(shù)實現(xiàn)上則,緊貼其函數(shù)實現(xiàn)的部分,不用空行分隔。(3).相對獨立的代碼段上則,緊貼其注釋說明的實現(xiàn)代碼,不用空行分隔。(4).簡短代碼行的右側,一般為單行注釋,內容不超過10個單詞。(5).對于全局變量的注釋要盡量詳細,包括它的功能,取值范圍,各取值含義

10、等。(6).數(shù)據(jù)結構中的變量要做充分的注釋。(7).對于重要的分支語句、循環(huán)語句等也要加充分的注釋。六、課程設計總結分工:組長:劉寶 負責基層代碼實現(xiàn)、界面設計和分配任務組員:王慶華 負責增加模塊的代碼實現(xiàn)和撰寫文檔徐廷政 負責修改模塊代碼實現(xiàn)和測試程序汪俊杰 負責查找模塊代碼實現(xiàn)和PPT制作李昱凡 負責刪除模塊代碼和提供創(chuàng)意以及查找相關資料感想:1、 團隊合作很重要,大家在一起討論,集思廣義才能使課題更好的完成2、 鞏固了以前一些不太清楚的東西,團隊合作彌補了每個人的短板3、 明白了怎么去團隊合作完成一個項目不足:1、輸密碼時產生的 “ * ” ,如果輸錯不能刪除,只能退回重新輸入2、很多函

11、數(shù)模塊沒有返回值,不利于判斷函數(shù)執(zhí)行情況計劃用&引用參數(shù)的方式帶回數(shù)據(jù),用函數(shù)返回值來判斷函數(shù)執(zhí)行情況七、源程序#ifndef HEAD_H#define HEAD_H#include<stdio.h>#include<stdlib.h>#include<string.h>#include<conio.h>#include<time.h>#include<windows.h>#include"common.h"void login(PSTU);PSTU create(void);PSTU rea

12、d(void);void save(PSTU);void about();void record(PSTU p1,int n,PSTU p2);void recordput();void changepsw(PSTU pHead,PSTU p);int searchnum(PSTU,PSTU,PSTU);void user(PSTU,PSTU);void usersee(PSTU p);void userchange(PSTU pHead,PSTU p);void admin(PSTU,PSTU);void adminadd(PSTU,PSTU);void adminsearch(PSTU);

13、void adminchange(PSTU,PSTU);void admindelete(PSTU,PSTU);#e#include"head.h"/*函數(shù)原型:int main(void)*接收參數(shù):無*返回參數(shù):整型參數(shù),判定程序執(zhí)行情況*功能實現(xiàn):主函數(shù)*編寫作者:劉寶*編寫時間:2013/9/8*/int main(void)login(read();return 0;#ifndefCOMMON_H#define COMMON_H/*typedef struct others*POTH,OTHE;*/typedef struct studentchar num10;

14、/學號char psw20;/密碼int root;/權限char nam10;/姓名char sex4;/性別char dom10;/寢室char cls40;/班級char clg40;/學院char mbp20;/手機/OTHE other;/其他struct student *next;*PSTU,STU;#endif#include"head.h"/*函數(shù)原型:void login(PSTU pHead)*接收參數(shù):pHead:鏈表頭結點*返回參數(shù):無*功能實現(xiàn):登陸界面*編寫作者:劉寶*編寫時間:2013/9/8*/void login(PSTU pHead)i

15、nt i = 0,flag = 0,n;char num20;char str20;char psw20;PSTU p;system("cls");printf("n*學生信息管理系統(tǒng)*nn");printf(" -n");printf(" | 請 登 錄 |n");printf(" -nnn");printf("tttt用戶:");scanf("%s",num);getchar();printf("ntttt密碼:");while(s

16、tri=getch() != 'r')i+;printf("*");stri='0'printf("n");p = pHead->next;while(p->next)/printf("%sn",p->num);if(!strcmp(num,p->num)strcpy(psw,p->psw);flag = 1;break;p = p->next;if(!flag)printf("n無此用戶,請重新輸入.n");printf("n*n&qu

17、ot;);Sleep(800);system("cls");login(pHead);else if(strcmp(str,psw)printf("n密碼錯誤,請重新輸入.n");printf("n*n");Sleep(800);system("cls");login(pHead);elseprintf("n密碼正確,正在登陸.n");record(p,1,p);/記錄日志printf("n");n=80;while(n-)printf(">");S

18、leep(10);if(p->root)admin(pHead,p);elseuser(pHead,p);#include"head.h"/*函數(shù)原型:void admin(PSTU pHead,PSTU p)*接收參數(shù):pHead:鏈表頭結點 p:登錄人信息所在的節(jié)點*返回參數(shù):無*功能實現(xiàn):管理員界面*編寫作者:劉寶*編寫時間:2013/9/7*/void admin(PSTU pHead,PSTU p)int m,n;char ch;while(1)n = strlen(p->nam);m = 70-n;system("cls");pr

19、intf("n*學生信息管理系統(tǒng)*n");while(m-)printf(" ");printf("%s 管理員nn",p->nam);printf(" 新增(N) 查詢(S) 修改(C) 刪除(D) 改密(P) 日志(R) 關于(A) 退出(X)nn");printf("nnnnnnnnnnnnnnnn");printf(" ");fflush(stdin);scanf("%c",&ch);switch(ch)case 'N'

20、;:case 'n':adminadd(pHead,p);break;/新增case 'S':case 's':adminsearch(pHead);break;/查詢case 'C':case 'c':adminchange(pHead,p);break;/修改 case 'D':case 'd':admindelete(pHead,p);break;/刪除case 'P':case 'p':changepsw(pHead,p);break;/改密c

21、ase 'R':case 'r':recordput();break;/日志case 'A':case 'a':about();break;/關于case 'X':case 'x':record(p,0,p);exit(0);/退出#include"head.h"/*函數(shù)原型:void adminadd(PSTU pHead,PSTU p1)*接收參數(shù):pHead:鏈表頭結點 p1:當前登錄成員*返回參數(shù):無*功能實現(xiàn):添加一個成員*編寫作者:劉寶*編寫時間:2013/9/7*/

22、void adminadd(PSTU pHead,PSTU p1)char ch;PSTU p;system("cls");printf("n*學生信息管理系統(tǒng)*n");printf(" -n");printf(" | 新 增 成 員 |n");printf(" -n");p = create();printf("ttt學號:");scanf("%s",p->num);if(searchnum(pHead,p,p1)printf("nttt

23、密碼:");scanf("%s",p->psw);printf("nttt權限:");scanf("%s",&p->root);printf("nttt姓名:");scanf("%s",p->nam);printf("nttt性別:");scanf("%s",p->sex);printf("nttt寢室:");scanf("%s",p->dom);printf(&quo

24、t;nttt手機:");scanf("%s",p->mbp);printf("nttt班級:");scanf("%s",p->cls);printf("nttt學院:");scanf("%s",p->clg);fflush(stdin);printf("確定新增該用戶?(Y / N).");scanf("%c",&ch);fflush(stdin);if(ch = 'Y' | ch = 'y

25、9;)p->next = pHead ->next;pHead ->next = p;save(pHead);printf("已保存,按回車返回.");record(p1,2,p);getchar();else if(ch = 'N' | ch = 'n')free(p);printf("未保存,按回車返回.");getchar();void change_num(PSTU,PSTU);void change_nam(PSTU,PSTU);void adminchange(PSTU pHead,PSTU

26、p1) char num10;char ch;system("cls");printf("n*學生信息管理系統(tǒng)*n");printf(" -n");printf(" | 修 改 信 息 |n");printf(" -n");printf("n 選擇查詢方式:n");printf("n 學號(M) 姓名(N) 返回(R)nnnnnnnnnnnnnn");fflush(stdin);printf(" ");scanf("%c&qu

27、ot;,&ch);system("cls");printf("n*學生信息管理系統(tǒng)*n");printf(" -n");printf(" | 修 改 信 息 |n");printf(" -n");switch(ch)case 'M':case'm':change_num(pHead,p1);break;case 'N':case'n':change_nam(pHead,p1);break;case 'R':c

28、ase'r':break; /學號查詢void change_num(PSTU pHead,PSTU p1)int flag;char num10;PSTU p;system("cls");printf("n*學生信息管理系統(tǒng)*n");printf(" -n");printf(" | 修 改 信 息 |n");printf(" -n");flag=0;printf("nttt輸入學號:");scanf("%s",num);p=pHead-&

29、gt;next;while(p->next)if(!strcmp(p->num,num)flag=1;break;p = p->next;if(flag = 1)userchange(pHead,p);record(p1,4,p);elseprintf("nnnnnnnnnnn該學生不存在!n");printf("n*n");Sleep(800);adminchange(pHead,p1);/姓名查詢void change_nam(PSTU pHead,PSTU p1)int flag;char nam10;PSTU p;system(

30、"cls");printf("n*學生信息管理系統(tǒng)*n");printf(" -n");printf(" | 修 改 信 息 |n");printf(" -n");flag=0;printf("nttt輸入姓名:");fflush(stdin);scanf("%s",nam);p = pHead->next;while(p->next)if(!strcmp(p->nam,nam)flag=1;break;p = p->next;if

31、(flag = 1)userchange(pHead,p);record(p1,4,p);elseprintf("nnnnnnnnnnn該學生不存在!n");printf("n*n");Sleep(800);adminchange(pHead,p1);void admindelete(PSTU pHead,PSTU p1) char num10;char ch;system("cls");printf("n*學生信息管理系統(tǒng)*n");printf(" -n");printf(" | 刪

32、 除 成 員 |n");printf(" -n");printf("n 選擇查詢方式:n");printf("n 學號(M) 姓名(N) 返回(R)nnnnnnnnnnnnnn");fflush(stdin);printf(" ");scanf("%c",&ch);system("cls");printf("n*學生信息管理系統(tǒng)*n");printf(" -n");printf(" | 刪 除 成 員 |n&

33、quot;);printf(" -n");switch(ch)case 'M':case'm':delete_num(pHead,p1);break;case 'N':case'n':delete_nam(pHead,p1);break;case 'R':case'r':break; /學號查詢void delete_num(PSTU pHead,PSTU p1)int flag;char ch;char num10;PSTU p;system("cls");

34、printf("n*學生信息管理系統(tǒng)*n");printf(" -n");printf(" | 刪 除 成 員 |n");printf(" -n");flag=0;printf("nttt輸入學號:");scanf("%s",num);p=pHead->next;p1 = pHead;while(p->next)if(!strcmp(p->num,num)flag=1;break;p = p->next;p1 = p1->next;if(flag

35、 = 1)system("cls");printf("n*學生信息管理系統(tǒng)*n");printf(" -n");printf(" | 修 改 信 息 |n");printf(" -n");printf("nttt學號:%sn",p->num);printf("nttt姓名:%sn",p->nam);printf("nttt性別:%sn",p->sex);printf("nttt寢室:%sn",p-&

36、gt;dom);printf("nttt手機:%sn",p->mbp);printf("nttt班級:%sn",p->cls);printf("nttt學院:%sn",p->clg);printf("n是否確定刪除?(Y / N).");fflush(stdin);scanf("%c",&ch);fflush(stdin);if(ch = 'Y' | ch = 'y')p1->next = p1->next->next;

37、free(p);save(pHead);printf("已刪除,按回車返回.");record(p1,3,p);else if(ch = 'N' | ch = 'n')printf("未刪除,按回車返回.");fflush(stdin);getchar();elseprintf("nnnnnnnnnnn該學生不存在!n");printf("n*n");Sleep(800);admindelete(pHead,p1);/姓名查詢void delete_nam(PSTU pHead,PS

38、TU p1)int flag;char ch;char nam10;PSTU p;flag=0;system("cls");printf("n*學生信息管理系統(tǒng)*n");printf(" -n");printf(" | 刪 除 成 員 |n");printf(" -n");flag=0;printf("nttt輸入姓名:");fflush(stdin);scanf("%s",nam);p = pHead->next;p1 = p1->next;

39、while(p->next)if(!strcmp(p->nam,nam)flag=1;break;p = p->next;if(flag = 1)system("cls");printf("n*學生信息管理系統(tǒng)*n");printf(" -n");printf(" | 修 改 信 息 |n");printf(" -n");printf("nttt學號:%sn",p->num);printf("nttt姓名:%sn",p->na

40、m);printf("nttt性別:%sn",p->sex);printf("nttt寢室:%sn",p->dom);printf("nttt手機:%sn",p->mbp);printf("nttt班級:%sn",p->cls);printf("nttt學院:%sn",p->clg);printf("n是否確定刪除?(Y / N).");fflush(stdin);scanf("%c",&ch);fflush(stdi

41、n);if(ch = 'Y' | ch = 'y')p1->next = p1->next->next;free(p);save(pHead);printf("已刪除,按回車返回.");record(p1,3,p);else if(ch = 'N' | ch = 'n')printf("未刪除,按回車返回.");fflush(stdin);getchar();elseprintf("nnnnnnnnnnn該學生不存在!n");printf("n

42、*n");Sleep(800);admindelete(pHead,p1);void adminsearch(PSTU pHead) char num10;char ch;system("cls");printf("n*學生信息管理系統(tǒng)*n");printf(" -n");printf(" | 查 詢 成 員 |n");printf(" -n");printf("n 選擇查詢方式:n");printf("n 學號(M) 姓名(N) 返回(R)nnnnnnn

43、nnnnnnn");fflush(stdin);printf(" ");scanf("%c",&ch);system("cls");printf("n*學生信息管理系統(tǒng)*n");printf(" -n");printf(" | 查 詢 成 員 |n");printf(" -n");switch(ch)case 'M':case'm':search_num(pHead);break;case 'N&#

44、39;:case'n':search_nam(pHead);break;case 'R':case'r':break; /學號查詢void search_num(PSTU pHead)int flag;char num10;PSTU p;flag=0;printf("nttt輸入學號:");scanf("%s",num);p=pHead->next;while(p->next)if(!strcmp(p->num,num)flag=1;break;p = p->next;if(flag = 1)system("cls");printf("n*學生信息管理系統(tǒng)*n");printf(" -n");printf(" | 查 詢 成 員 |n");printf(" -nn");printf("ttt學號:%snn",p->num);printf("ttt姓名:%snn",p->nam);printf("ttt性別:%snn",p->sex);printf("ttt寢室:%snn",

溫馨提示

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

評論

0/150

提交評論