《C语言课程方案设计书 .docx》由会员分享,可在线阅读,更多相关《C语言课程方案设计书 .docx(22页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精品名师归纳总结封面可编辑资料 - - - 欢迎下载精品名师归纳总结作者: PanHongliang仅供个人学习C语言与程序设计课程设计可编辑资料 - - - 欢迎下载精品名师归纳总结同学籍贯信息记录簿设计物联 1301 班131408119滕玲学院信息工程系班级学号姓名一设计目的该软件主要是编辑一个同学籍贯信息记录簿记录每个同学信息,包括:学号、姓名、籍贯。详细功能:1. 创建信息链表并以磁盘文件储存。2. 读取磁盘文件并显示输出全部同学的籍贯信息。3. 按学号或姓名查询其籍贯。4. 按籍贯查询并输出该籍贯的全部同学。5. 能添加、删除和修改同学的籍贯信息。二总体设计三详细设计1. 同学基本
2、信息的录入这部分的功能主要包括信息的录入,第一按程序提示输入同学的学号,姓名,籍贯等。在录入数据的同时,系统将对信息的合法性进行检验。如用户输入不合法的信息,就被系统要求重新输入。如合法性成立就录入完毕后系统将返回主页面。主页面仍有显示同学的全部信息,并且这些信息都会写到你所指定的文本文件中。2. 显示同学信息此功能是将原录入的同学信息读出,并在屏幕上显示出来,并且录入到你所指定的文本文件中。3. 同学信息读取进入该项功能界面后,用户可以对同学的个人信息进行查看,并且录入到你所指定的文本文件中。4. 按学号或姓名查找同学信息此项功能可以依据用户输入的选择查处该同学的全部信息,并且录入到你所指定
3、的文本文件中。5. 删除和修改个人信息可编辑资料 - - - 欢迎下载精品名师归纳总结选择此项功能后,系统将会自动在屏幕上显示按学号录入原先同学的个人信息,输入后进行修改,并且录入到你所指定的文本文件中。6. 退出系统,终止任务四调试与测试在 Visual C+6.0环境下输入代码并进行调试和正确运行五源程序清单和执行结果#include #include #include#define LEN sizeofstruct Studentstruct Studentchar num21 。char name256 。char address562。struct Student *next。 。i
4、nt n。/n为全局变量,本文件模块中各函数均可使用它struct Student *creat/ 定义函数。此函数返回一个指向链表头的指针struct Student *head。struct Student *p1,*p2。n=0。p1=p2=struct Student *mallocLEN。printf请依次输入同学的信息,输入学号为零时退出。n 。printf请输入同学的学号: n 。getsp1-num 。printf请输入同学的姓名: n 。getsp1-name 。printf请输入同学的的址: n 。getsp1-address。head=NULL。whilep1-num0.
5、=0/ 当学号是 0 时,退出可编辑资料 - - - 欢迎下载精品名师归纳总结n=n+1。ifn=1head=p1。elsep2-next=p1 。p2=p1。p1=struct Student *mallocLEN。/ 开创动态储备区,把起始的址付给p1printf请输入同学的学号: n 。getsp1-num 。/ 输入其他同学的学号和成果printf请输入同学的姓名: n 。getsp1-name 。printf请输入同学的的址: n 。getsp1-address。p2-next=NULL。systemcls 。returnhead 。void print_savestruct Stu
6、dent headFILE *fp。struct Student *p。fp=fopenD:stduent.txt,ab+。/ 打开文件iffp=NULLprintf文件无法打开 n 。exit0。printfn现在, 有 %d 条记录,分别是 :n,n。p=&head。if&head.=NULLdoprintfn学号: 。可编辑资料 - - - 欢迎下载精品名师归纳总结putsp-num 。printfn姓名: 。putsp-name 。printfn的址: 。putsp-address。fseekfp,0,2。iffwritep,sizeofstruct Student,1,fp.=1 p
7、rintf文件无法写入 n 。p=p-next 。whilep.=NULL。fclosefp。/ 关闭文件getchar。systemcls。struct Student *pt。/ 定义一个 Student类型的指针char comp3 。/comp 为储存输入的变量int main/ 一个调用这个 creat函数的 main 函数 cvoid ShowView 。/ 界面显示void name_surch。/ 按姓名查找void num_surch。/ 按学号查找void NativePlace_surch。/ 按籍贯查找void Delete_shiyan。/ 删除同学信息void mo
8、dification_shiyan。/ 修改同学信息void fileoutstruct Student *p。/ 文件输出void print_savestruct Student head。while1ShowView。ifstrnicmpcomp,1,3=0/strnicmp比较两个字符串的函数pt=creat。/ 函数返回链表第一个结点的的址else ifstrnicmpcomp,6,3=0可编辑资料 - - - 欢迎下载精品名师归纳总结print_save*pt。else ifstrnicmpcomp,3,3=0/ 输出文件内容fileoutpt。else ifstrnicmpcom
9、p,2,3=0name_surch 。else ifstrnicmpcomp,7,3=0num_surch 。else ifstrnicmpcomp,9,3=0/modification。modification_shiyan。/ 修改同学信息else ifstrnicmpcomp,4,3=0/Delete。Delete_shiyan。else ifstrnicmpcomp,5,3=0showSzechwan_No。else ifstrnicmpcomp,8,3=0NativePlace_surch。else ifstrnicmpcomp,0,3=0可编辑资料 - - - 欢迎下载精品名师归纳
10、总结elsebreak 。printf输入错误! n 。可编辑资料 - - - 欢迎下载精品名师归纳总结getchar。systemcls。return 0。void fileoutstruct Student *pFILE *fp。printf现在有%d条记录,分别是: n,n。fp=fopenD:stduent.txt,rb。/0x00429af0 iffp=NULLprintf文件无法打开 n 。exit0。rewindfp。while.feoffpfreadp,sizeofstruct Student,1,fp。/从文件中读取一块数据printf%-15s,p-num。printf%-
11、15s,p-name。printf%-15s,p-address。putsn。fclosefp。getchar。systemcls。可编辑资料 - - - 欢迎下载精品名师归纳总结void ShowView / 主菜单printf*n。printf*欢 迎 进 入 学 生 籍 贯 信 息 记 录 簿*n。printf*n。printf*1、cin添加*n。printf*2、namesurch按名字搜索*n。printf*3、fileout显示文件中的信息*n。printf*4、delete删除学生信息*n。printf*5、showSzechwan_No分别显示四川和非四川籍同学并非别存盘*n
12、。printf*6、save保存当前信息*n。printf*7、numsurch按学号搜索*n。printf*8、nativeplace安籍贯查询*n。printf*9、modif修改学生信息*n。printf*0、break退出*n。printf*n。printf*请输入您的选择¥: 。getscomp 。systemcls。/ 清屏void name_surch可编辑资料 - - - 欢迎下载精品名师归纳总结FILE *fp。char surch256。printf请输入要查询的人的名字: n 。getssurch。fp=fopenD:stduent.txt,r。/0x00429af0 i
13、ffp=NULLprintf不能打开文件 n 。exit0。rewindfp。/ 指向文件的开头while.feoffp/查找Student a 。while.feoffp可编辑资料 - - - 欢迎下载精品名师归纳总结入一组数据fread&a,sizeofStudent,1,fp。/ 从 p 指向的文件读if.strcmpa.name,surch可编辑资料 - - - 欢迎下载精品名师归纳总结printf%s,%s,%sn,a.num,a.name,a.address。break 。if.feoffpreturn。 elseprintf查无此人 n 。fclosefp。getchar。可编辑
14、资料 - - - 欢迎下载精品名师归纳总结systemcls。void num_surchFILE *fp。char surch256。printf请输入要查询的人的学号: 。getssurch。fp=fopenD:stduent.txt,rb。/0x0042aab8 iffp=NULLprintfERROR。exit0。rewindfp。/ 指向文件的开头while.feoffp/查找Student a 。while.feoffp可编辑资料 - - - 欢迎下载精品名师归纳总结入一组数据fread&a,sizeofStudent,1,fp。/ 从 p 指向的文件读if.strcmpa.num
15、,surch可编辑资料 - - - 欢迎下载精品名师归纳总结printf%s,%s,%sn,a.num,a.name,a.address。break 。if.feoffpreturn。 elseprintf查无此人 n 。可编辑资料 - - - 欢迎下载精品名师归纳总结fclosefp。getchar。systemcls。void NativePlace_surch/按籍贯查询FILE *fp。char surch256。printf请输入要查询的人的籍贯: n 。getssurch。fp=fopenD:stduent.txt,rb。/0x00429af0 iffp=NULLprintf文件打
16、不开 n 。exit0。rewindfp。/ 指向文件的开头Student a 。while.feoffp可编辑资料 - - - 欢迎下载精品名师归纳总结文件读入一组数据fread&a,sizeofstruct Student,1,fp。/ 从 p 指向的if.strcmpa.address,surch/相当于可编辑资料 - - - 欢迎下载精品名师归纳总结strcmpa.address,surch=0printf%s,%s,%sn,a.num,a.name,a.address。可编辑资料 - - - 欢迎下载精品名师归纳总结if.feoffpreturn。 fclosefp。getchar。
17、systemcls。void Delete_shiyan/删除同学信息可编辑资料 - - - 欢迎下载精品名师归纳总结FILE *fp。FILE *fptemp 。char surch256。printf请输入要删除的人的学号: n 。getssurch。fp=fopenD:stduent.txt,rb。/0x00429af0 fptemp=fopenD:temp.txt,wb。iffp=NULLprintf文件打不开 n 。exit0。可编辑资料 - - - 欢迎下载精品名师归纳总结mark:Student a 。while.feoffp可编辑资料 - - - 欢迎下载精品名师归纳总结fre
18、ad&a,sizeofstruct Student,1,fp。/ 从 p 指向的文件读入一组数据 fp=0x0042aab8if0=strcmpa.num,surch可编辑资料 - - - 欢迎下载精品名师归纳总结入( y/n ): n 。char p 。 printf%s,%s,%sn,a.num,a.name,a.address。printf假如以上信息与你要删除的人的信息对应,请输scanf%c,&p。ifY=p|y=pgoto mark 。可编辑资料 - - - 欢迎下载精品名师归纳总结ifstrcmpa.num,surch.=0fwrite&a,sizeofstruct Studen
19、t,1,fptemp。可编辑资料 - - - 欢迎下载精品名师归纳总结fclosefp。fclosefptemp。FILE *aa 。FILE *bb 。aa=fopenD:stduent.txt,wb。bb=fopenD:temp.txt,rb。while.feofbbfread&a,sizeofstruct Student,1,bb。fwrite&a,sizeofstruct Student,1,aa。getchar。systemcls。void modification_shiyan/修改同学信息FILE *fp。FILE *fptemp 。struct Student a。char s
20、urch256。printf请输入要修改的人的学号: n 。getssurch。fp=fopenD:stduent.txt,rb。/0x0042aab8 fptemp=fopenD:temp.txt,wb。iffp=NULLprintf文件打不开 n 。exit0。rewindfp。/ 指向文件的开头while.feoffpfread&a,sizeofstruct Student,1,fp。/ 从 p 指向的文件读入一组数据 fp=0x0042aab8可编辑资料 - - - 欢迎下载精品名师归纳总结if0=strcmpa.num,surch可编辑资料 - - - 欢迎下载精品名师归纳总结入(
21、y/n ): n 。char p 。 printf%s,%s,%sn,a.num,a.name,a.address。printf假如以上信息与你要修改的人的信息对应,请输scanf%c,&p。ifY=p|y=p可编辑资料 - - - 欢迎下载精品名师归纳总结可编辑资料 - - - 欢迎下载精品名师归纳总结贯 :n 。getchar。printf请输入要修改成的信息 学号、姓名、籍printf学号: 。getsa.num 。printf姓名: 。getsa.name 。printf的址: 。getsa.address。可编辑资料 - - - 欢迎下载精品名师归纳总结fwrite&a,sizeof
22、struct Student,1,fptemp。fclosefp。fclosefptemp。FILE *bb 。FILE *pp 。bb=fopenD:stduent.txt,wb。/0x0042aab8 pp=fopenD:temp.txt,rb。while.feofppfread&a,sizeofstruct Student,1,pp。fwrite&a,sizeofstruct Student,1,bb。getchar。getchar。systemcls。可编辑资料 - - - 欢迎下载精品名师归纳总结版权申明本文部分内容,包括文字、图片、以及设计等在网上搜集整理。版权为潘宏亮个人全部Th
23、is article includes some parts, including text, pictures, and design. Copyright is Pan Hongliangs personal ownership.用户可将本文的内容或服务用于个人学习、争论或观看,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵害本网站及相关权益人的合法权益。除此以 外,将本文任何内容或服务用于其他用途时,须征得本人及相关权益人的书面许可,并支付酬劳。Users may use the contents or services of this article
24、for personal study, research or appreciation, and other non-commercial or non-profit purposes, but at the same time, they shall abide by the provisions of copyright law and other relevant laws, and shall not infringe upon the legitimate rights of this website and its relevant obligees. In addition,
25、when any content or service of this article is used for other purposes, written permission and remuneration shall be obtained from the person concerned and the relevant obligee.可编辑资料 - - - 欢迎下载精品名师归纳总结转载或引用本文内容必需是以新闻性或资料性公共免费信息为使用目的的合理、善意引用,不得对本文内容原意进行曲解、修改,并自负版权等法律责任。Reproduction or quotation of the content of thisarticle must be reasonable and good-faith citation for theuse of news or informative public free information. Itshall not misinterpret or modify the original intention ofthe content of this article, and shall bear legal liabilitysuch as copyright.可编辑资料 - - - 欢迎下载
限制150内