下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、福建工程學院軟件學院c語言及數(shù)據(jù)結構與算法課程設計學生信息管理系統(tǒng)業(yè):物聯(lián)網工程1401班名:黃志華號:3148120119同組其他學生(學號):26 56 572015年 6月 24 日、需求分析二、總體設計三、詳細設計四、調試與測試五、測試結果六、用戶手冊七、附錄16161616、需求分析E-mail等。試設計問題描述學生信息包括:學號,姓名,年齡,性別,出生年月,地址,電話,一學生信息管理系統(tǒng),使之能提供以下功能:系統(tǒng)以菜單方式工作 學生信息錄入功能-輸入 學生信息瀏覽功能-輸出 查詢、排序功能-算法按學號查詢、按姓名查詢、學生信息的刪除與修改(可選項)(2)功能要求界面比較美觀;有一定
2、的容錯能力, 比如輸入的成績不在 0100之間,就提示不合法,要求重新輸入;最好用鏈表的方式實現(xiàn)。二、總體設計錄入信息瀏覽學生信息*返回主菜單查詢學生信息返回主菜單刪除學生信息4輸入已保存的學生學號t輸入是否正確刪除已保存的 學生信息提示輸入有誤返回主菜單修改學生信息輸入已保存的學生學號1輸入是否正確Yr選擇修改的內容1r修改的新內容直至取消修改1F返回主菜單提示輸入有誤、詳細設計各調用函數(shù)的設計與運行情況:( / 錄入學生信息void record ()struct student *p0;p0 = (struct student * )malloc(LEN); printf ( "
3、;請輸入學生的姓名 :"); scanf ("%s",p0->name);printf ( "請輸入學生的學號 :"); scanf ("%ld",&p0->num);printf ( "請輸入學生的性別 :"); scanf ("%s",p0->sex);printf ( "請輸入學生的年齡 :"); scanf ("%d" ,& p0->age);printf ( "請輸入學生的地址 :&qu
4、ot;); scanf ("%s",p0->address);printf ( "請輸入學生的電話 :"); scanf ("%lf" ,& p0->tele_num);printf ("請輸入學生的 E-mail:"); scanf ("%s",p0->E_mail);insert (p0);printf ( "該學生的信息為 :n" );printf ("n");printf ("姓名t學號t年齡t性別t地址tt電話
5、ttE-mailn"); display (p0);void insert (struct student *stu) struct student *p0, *p1, *p2;p1 = head; p0 = stu;if (head = NULL)head = p0;p0->next = NULL;elsewhile (p0->num > p1->num)&& (p1->next != NULL) p2 = p1;p1 = p1->next;if (p0->num <= p1->num)if (head = p1
6、) head = p0;else p2->next = p0; p0->next = p1;elsep1->next = p0;p0->next = NULL; TOTAL_NUM+;void display (struct student *p)printf ( "%st%ldt%dt%st%st%.0ft%sn" , p->name, p->num, p->age, p->sex, p->address, p->tele_num, p->E_mail);v TruTtjnv>ii lAWWLern
7、p .exe出系純耳沖T 平 峯半 字 -f. 申 卑 屮 平言根1S您的需5輸入對應的編號:1 看輸入學生的姓名;黃志華青輸入學土的學號=10119青輸人學生的性別:男青輸入學生的年齡皿青輸入學生的地址盞榮小&馬愉人學生的電話:1234 5Q7青輸入學生的En ail: auh®l 223更學生的信息務:性別年齡20 男地址電話fi榮小區(qū)45號123456? auh1223E-mail工軟物1別土學生信息管理系統(tǒng)/瀏覽學生信息 void dis playAIIOstruct stude nt *p;printf("學生總數(shù):dn", TOTAL_NUM)
8、;p = head;if (head != NULL)printf( "n 姓名 t 學號t 年齡t 性別t 地址tt 電話 ttE-mailn");printfC'n");dodis play (p);p = p->n ext;while(p != NULL);printf ("n");馨豔讐要獻對應的如姓名洱年齡性別地址黃志華1011920畀g榮號還值化1330e21男vndahvio黃志華1234521那邊好版本Email12345&7 auh91223123254G41245352Gfew1256361工軟物聯(lián)園1
9、401班學生信息管理S統(tǒng)111 -錄入學生信息一-瀏覽學生信息3 詢學生信息刪除學生信息一-#改學主信息01 退出系統(tǒng)*牢電屮 «/按學號查詢學生信息void query_by_ num () ""int num;struct stude nt *p1;printf("請輸入學生的學號:");sea nf('%ld", &n um);if(head=NULL)printf("無學生記錄! n");return;p1 = head;while (nu m!=p1->num &&
10、p 1->next!=NULL)p1 = p1->n ext;if (num = p1->num)printf ("姓名t學號t年齡t性別t地址tt電話ttE-mailn");printf ("n");dis play (p 1);elseprintf ("沒有該學生記錄,請核對!");丄寂柄麻網1401坍宇生信息営理系頸A錄入學生信息瀏覽學生信息3 詢學生信息4 刪除學生信息5 改學生信息【0出系統(tǒng)He - *+斗朮車4:請根據(jù)您的入對應的編呂 輸入學生的學號:13345姓名學務年齡,性別地址電話E-nail黃志華
11、1234521 畀那邊好版本125Q3& aiuaha&hb/刪除學生信息void del ()struct stude nt *p 1, * p2;long int num;if (head = NULL)printf("無學生記錄! n"); return;工軟物聯(lián)網1401班學生信息管理系鋭I【1錄入學生信息一瀏覽學生信息51-111- 'I、T 亠亠宀printf("請輸入您要刪除的學生的學號:"); sea nf('%ld", &n um);p1 = head;while (num != p 1
12、->num && p1->next != NULL) p2 = p1;p1 = p1->n ext;if(num = p1->num)if(p1 = head)head = p1->n ext;else p2->n ext = p1->n ext;free( p1);TOTAL_NUM;elseprintf("沒有該學生記錄,請核對! n");:4瞬入您B刪除的學生的學號= 12345工報物聰珈妁珈學生信息管理票純I* 息息息息息 值信信倩信 布 生生生生生統(tǒng) 入覽詢除改出 錄瀏查刪修退邯匚 12 3 4 5 0 r
13、L rL rL fL rl rLI姓名學號年齡電話E-mail還值化1230631 男vTidahvio123354412453536few/修改學生信息void cha nge ()struct stude nt *p 1, * p2;long int num;if (head = NULL)printf ("無學生記錄! n");return;printf ("請輸入您要修改的學生的學號:");sea nf "%ld", &n um);p1 = head;while (num != p 1->num &&am
14、p; p1->next != NULL) p2 = p1;p1 = p1->n ext;if(num = p1->num)devise (p1); else printf( "沒有該學生記錄 ,請核對! n");void devise (struct student *p) int choice;choice =-1;doprintf( "請選擇您要修改的學生的信息內容 :n")printf( "+n");printf( "|姓名請按1 |n" );printf( "|學號請按2 |n&
15、quot; );printf( "|性別請按3 |n" );printf( "|年齡請按4 |n" );printf( "|地址請按5 |n" );printf( "|電話請按6 |n" );printf( "| E-mail請按 7 |n" );printf( "|取消請按0 |n" );printf( "+n");printf( "請輸入您的選擇 :"); scanf("%d", &choice);swi
16、tch (choice)case0:return ;case1:printf( "請輸入新姓名 :");scanf("%s", p->name);break;case2:printf( "請輸入新學號 :");scanf("%d", & p->num); break;case3:printf( "請輸入新性別 :");scanf("%s", p->sex);break;case4:printf( "請輸入新年齡 :");sca n
17、fC%s", &p->age); break;case5:printf("請輸入新地址:"); sca nf('%s", p->address);break;case6:printf("請輸入新電話:"); sca nf('%lf", &p->tele_num);break;case7:printf("請輸入新 E-mail:");sca nfC%s", p->E_mail);break;default:printf("n 無效選
18、項!");break;while(choice != 0);S根據(jù)您的需要翰認對應的編號:5 輸入您S修改的學生的學號=12306 青選搖您要修改囪學生的信息內容:7123456708is青輸入您的選擇江看輸入新姓名:農場主«選擇您要修改的學主的信息內容;寧土姓名學號年齡性SJ地址電話Entail農場主 1230621男黃志華1234521男vjidaLvici1232546412453E26f ew那邊好版本125Q36 aiuahaehb模塊功能說明(如函數(shù)功能、入口及出口參數(shù)說明,函數(shù)調用關系描述等)四、調試與測試設計一個程序,錯誤是難免不了的。但我們可以根據(jù)編輯系統(tǒng)
19、給出的 一些提示去查看程序錯誤。對不敢肯定正確的,翻翻書,看一下這一 知識。對難度大的就和同學們一起討論,問一問老師。開發(fā)一個系統(tǒng),耐心是必要的,認真也很重要,構思要明確。認為是哪里錯誤的,有時用“ /*/”注釋起來進行,看看是否還有錯誤。常錯有以下幾種情況:1使用變量,但未有定義,則先定義。2不該用分號的,用到了,把它去掉。3行最后若有分號則刪除,中間若有分號則改成逗號4若錯誤行中有if、while、for則要特別注意條件表達式的錯誤。5若條件表達式中只有一個等于號,則改成兩個等于旦6.for中要用分號分隔表達式,而不是用逗號7缺少分號,若錯誤行中有語句沒有用分號結束,則加上分號。8.大小寫
20、不對,若錯誤行中有大寫字母則一般都改成小寫字母。9若有return語句則函數(shù)的類型必須與return后變量的類型一致。調試方法,測試結果的分析與討論,測試過程中遇到的主要問題及采取的解決措施五、測試結果測試數(shù)據(jù)運行結果詳見“三具體設計”(程序運行的截圖)六、用戶手冊按提示輸入數(shù)據(jù)。七、附錄源程序代碼 #include #include #include #include #define #define<stdio . h><malloc .h><string .h><stdlib .h>NULL 0LEN sizeof ( struct stud
21、ent)structchar long charstudentname20; int num; sex4;int age;char address30; double tele_num;char E_mail20; struct student *next;/ 定義一個結構題int TOTAL_NUM= 0; / 學生總數(shù) struct student *head = NULL;void void void void void void void void void void void void voidwelcome (); / 歡迎界面 mainmenu (); / 主界面 record
22、();/ 記錄數(shù)據(jù)insert( struct student * stu); / 插入數(shù)據(jù) display( struct student displayAll (); query_by_num (); readData (); writeData (); freeAll (); del (); change ();devise ( struct student* stu); / 顯示一個學生的信息 / 顯示所有學生的信息 / 按學號查詢學生信息 / 讀取文件里學生的信息 / 向文件寫入學生信息/ 清空鏈表內容/ 刪除學生信息/ 更改學生信息*p); / 選擇更改內容int main ( v
23、oid ) welcome ();/ 顯示主菜單 mainmenu ();return 0;/ 顯示歡迎信息 void welcome () printf ( printf ( printf ( printf ( printf ("t "t "t "t "tn"歡迎使用福建工軟物聯(lián)網 1401班學生信息管理系統(tǒng)n"n" ););n" ););n" );/系統(tǒng)主菜單void mainmenu () int choice;choice = -1; readData ();");printf
24、( "ntt 請先創(chuàng)建 database.txt 文件以便于保存學生數(shù)據(jù) do printf (printf"nnn" );"ttn");printf ("tt|工軟物聯(lián)網 1401班學生信息管理系統(tǒng)|n" );printf ("tt-n");printf ("tt|1錄入學生信息|n");printf ("tt|2瀏覽學生信息|n");printf ("tt|3查詢學生信息|n");printf ("tt|4刪除學生信息|n"
25、;);printf ("tt|5修改學生信息|n");printf ("tt|0退出系統(tǒng)|n");printf (t|* * * * *| n" );printf ("tt-n");(printf ( " 請根據(jù)您的需要輸入對應的編號 :" ); scanf ("%d", &choice);switch (choice) case 0: writeData (); freeAll ();exit (0); case 1: record ();break ;case 2:disp
26、layAll ();break ;case 3: query_by_num ();break ;case 4:del ();break ;case 5: change ();break ; default :printf ( "n 無效選項 !" ); break ;while (choice != 0);/ 錄入學生信息void record () structstudent *p0;p0 = ( printf ( scanf ( printf ( scanf ( printf ( scanf ( printf ( scanf ( printf ( scanf ( pri
27、ntf ( scanf ( printf ( scanf (struct student * )malloc(LEN); " 請輸入學生的姓名 :" );"%s",p0 -> name);" 請輸入學生的學號 :" ); "%ld" , &p0-> num);" 請輸入學生的性別 :" ); "%s",p0 -> sex);" 請輸入學生的年齡 :" ); "%d", &p0->age);&quo
28、t; 請輸入學生的地址 :" ); "%s",p0 -> address);" 請輸入學生的電話 :" );"%lf" , &p0-> tele_num);" 請輸入學生的 E-mail:" ); "%s",p0 -> E_mail);insert (p0);printf ( " 該學生的信息為 :n" );printf( "n"); UALdH Ld(nnN Hi IXUALd箋lunuALd Alunu od)=LI
29、Ms- 宀 mnNH lA- 00- 6d H peL| (TlnNHH p暹)七-ms H od -peL| H Ldzd* -Ld* 6d* Ispms loruls (ms* lupms loruls )七su一 p一0>宀Mod) Ae-ds一p -(§1:雖乍昂峯乍蟄曲乍呼沖乍媒載=二l£dM6eAd unuAd mlueuA d -藝 0蚩s 蚩s 蚩p 蚩P_&FS&=二l£d (d* lupms loruls ) Ae-ds一p p一0>mnNH6d HI 宀 壬 nNI1/_LO_L 宀 宀IX UA odIX UA
30、Ld0)(Z)宀-Ld H6d H-x U A-x U A0) SOIId IIII0)ep->sex, p ->address, p ->tele_num, p ->E_mail); / 瀏覽學生信息void displayAll() struct student *p;printf("學生總數(shù):dn" , TOTAL_NUM);p = head;if (head != NULL)printf( "n 姓名 t 學號t 年齡t 性別 t 地址tt 電話ttE-mailn" );printf( "n");dod
31、isplay(p);p = p ->next;while (p != NULL);printf ("n" );/ 按學號查詢學生信息 void query_by_num () int num;student *p1;" 請輸入學生的學號 :" );"%ld" , &num);struct printf(scanf(if (head=NULL)printf("無學生記錄! n");return ;p1 = head;while (num!=p1->num &&p1->next
32、!=NULL)p1 = p1->next;if (num = p1->num)printf ("姓名t學號t年齡t性別t地址tt 電話ttE-mailn" );printf("n" );display (p1);elseprintf ( " 沒有該學生記錄 , 請核對! "); / 寫入文件 void writeData () FILE *structfp; / 文件指針 student *p;fpif printf( return ;= fopen( "database.txt" , "w&
33、quot;); ( !fp)" 文件打開錯誤! ");fprintf(fp,"%dn" , TOTAL_NUM);for (p = head; p != NULL; p = p -> next)fprintf(fp, "%st%ldt%st%dt%st%.0ft%sn" , p-> name, p-> num, p-> sex, p -> age, p -> address, p -> tele_num, p -> E_mail);fclose (fp);void freeAll ()s
34、truct student *p1, *p2;p1 = p2 =head;while (p1)p2 =p1-> next; free (p1);p1 = p2;/ 讀取文件 void readData ()FILE *structfpifprintf(" 文件打開錯誤! "); return ;"%dn" , &TOTAL_NUM); = p2 = ( struct student * )malloc(LEN); "%st%ldt%st%dt%st%lft%sn", p1 -> name, &p1->
35、 num,-> E_mail);if (head printf( return ;= NULL)" 無學生記錄! n" );fp; / 文件指針student *p1, *p2;= fopen( "database.txt" , "r" ); ( !fp)fscanf(fp, head = p1 fscanf(fp, p1-> sex, &p1-> age, p1 -> address, &p1-> tele_num, p1 while (! feof(fp)p1 = ( struct s
36、tudent * )malloc(LEN);fscanf(fp, "%st%ldt%st%dt%st%lft%sn" , p1 -> name, &p1-> num, p1-> sex, &p1-> age, p1 -> address, &p1-> tele_num, p1 -> E_mail);p2 -> next = p1; p2 = p1;p2 -> next = NULL; fclose(fp); / 刪除學生信息 void del () num;struct student *p1,
37、*p2; long intprintf( " 請輸入您要刪除的學生的學號 :" ); scanf( "%ld" , &num);p1 = head;while (num != p1 -> num &&p1 -> next != NULL) p2 = p1;p1 = p1 -> next; if (num = p1 -> num) if (p1 = head) head = p1 -> next;else p2 -> next = p1 -> next; free(p1);TOTAL_NUM
38、- ; else printf( "沒有該學生記錄 ,請核對! n" ); / 修改學生信息 void change ()num;= NULL)" 無學生記錄! n" );struct student *p1, *p2; long int if (head printf ( return ;printf ( " 請輸入您要修改的學生的學號 :" ); scanf ( "%ld" , &num);p1 = head;while (num != p1 -> num &&p1 -> next != NULL) p2 = p1;p1 = p1 -> next; if (num = p1 -&g
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025至2030年中國雞毛掃數(shù)據(jù)監(jiān)測研究報告
- 2025至2030年中國酸性拋光酶洗劑數(shù)據(jù)監(jiān)測研究報告
- 2025至2030年中國節(jié)能低噪音軸流風機數(shù)據(jù)監(jiān)測研究報告
- 市場調研居間合同范本
- 2025至2030年中國彈簧夾緊液壓缸數(shù)據(jù)監(jiān)測研究報告
- 2025至2030年中國內置托盤自吸附膠盒數(shù)據(jù)監(jiān)測研究報告
- 2025至2030年中國PEEK塑料數(shù)據(jù)監(jiān)測研究報告
- 2025年中國數(shù)控測井地面系統(tǒng)市場調查研究報告
- 2025年中國套裝帽雨衣市場調查研究報告
- 2025至2031年中國無隔板ULPA過濾器行業(yè)投資前景及策略咨詢研究報告
- 智慧工廠數(shù)字孿生解決方案
- 病機-基本病機 邪正盛衰講解
- 品管圈知識 課件
- 非誠不找小品臺詞
- 2024年3月江蘇省考公務員面試題(B類)及參考答案
- 患者信息保密法律法規(guī)解讀
- 老年人護理風險防控PPT
- 充電樁采購安裝投標方案(技術方案)
- 醫(yī)院科室考勤表
- 鍍膜員工述職報告
- 春節(jié)期間化工企業(yè)安全生產注意安全生產
評論
0/150
提交評論