还剩6页未读,继续阅读
文本内容:
实验四结构体实验目的
1.更加灵活的使用数组作为函数参数;
2.初步掌握__一个小型实用系统的基本方法;
3.初步掌握书写程序设计__文档的能力实验内容程序一学生信息管理系统编写程序,实现学生信息的管理(包括学生信息的建立、增加、删除、修改、查找),要求小组分工情况小组分工情况统计表班级信息工程学院计算机科学与技术专业2012级软件工程(方向)班组名称学生成绩管理系统项目组长(本次项目小组组长)组员组员学号工作简介一需求分析I设计一个学生成绩管理系统至少具有以下功能:
(1)菜单功能采用文本菜单界面
(2)学生信息的建立
(3)学生信息的增加
(4)学生信息的删除
(5)学生信息的修改
(6)学生信息的查找II数据库结构structstudent{charnum
[10];charname
[10];charxibie
[10];char___;intage;}st
[30];二总体设计框架结构图(系统的功能结构图)程序流程图:(visio)
三、详细设计(流程图!!!)
四、程序源代码参考答案
1.用结构体数组完成
2.用结构体指针完成
1.#includestdio.h#includestring.htypedefstructnode{charnum
[10];charname
[10];charxibie
[10];char___;intage;}st;intn;st*creslink{inti;sts
[10];printf请输入要录入的人数;scanf%dn;fori=0;i=n-1;i++{printf请输入第%d名学生的学号,姓名,系别,年龄,性别i+1;scanf%s%s%s%d%cs[i].nums[i].names[i].xibies[i].ages[i].___;}returns;}intgetlensts[]{returnn;}insertsts[]charnum[]charname[]charxibie[]intagechar___{strcpys[n].numnum;strcpys[n].namename;strcpys[n].xibiexibie;s[n].age=age;s[n].___=___;n++;}deletests[]charnum[]{intij;fori=0;in;i++ifstrcmps[i].numnum==0break;forj=i+1;jn;j++s[j-1]=s[j];n--;}voidliststs[]{inti;printf学号\t姓名\t系别\t年龄\t性别\n;fori=0;in;i++printf%s\t%s\t%s\t%d\t%c\ns[i].nums[i].names[i].xibies[i].ages[i].___;}void__in{intkfage;charnum
[10]name
[10]xibie
[10]___;st*s;while1{printf\n\n\t\t\t学生信息管理系统\n;printf\t\t*************************************\n;printf\t\t\t
1.录入学生信息\n;printf\t\t\t
2.插入新学生信息\n;printf\t\t\t
3.删除学生信息\n;printf\t\t\t
4.输出学生信息\n;printf\t\t\t
5.输出学生总数\n;printf\t\t\t
6.退出\n;printf\t\t*************************************\n;printf请选择:;scanf%dk;switchk{case1:s=creslink;break;case2:printf请输入新学生的学号,姓名,系别,年龄,性别;scanf%s%s%s%d%cnumnamexibieage___;insertsnumnamexibieage___;break;case3:printf请输入要删除的学生的学号;scanf%snum;deletesnum;break;case4:lists;break;case5:f=getlens;printf学生总数为%df;break;case6:return;}}}
2.#includestdio.h#includestring.h#definenull0typedefstructnode{charnum
[10];charname
[10];charxibie
[10];char___;intage;structnode*next;}slink;slink*creslink{slink*head*p*s;intin;printf请输入要录入的人数;scanf%dn;ifn1returnnull;p=head=slink*__llocsizeofslink;head-next=null;fori=1;i=n;i++{s=slink*__llocsizeofslink;printf请输入第%d名学生的学号,姓名,系别,年龄,性别i;scanf%s%s%s%d%cs-nums-names-xibies-ages-___;p-next=s;p=s;}p-next=null;returnhead;}intgetlenslink*head{slink*p;intn;p=head-next;n=0;whilep!=null{n++;p=p-next;}returnn;}insertslink*headcharnum[]charname[]charxibie[]intagechar___{slink*p*q;p=head;whilep-next!=nullp=p-next;q=structnode*__llocsizeofslink;strcpyq-numnum;strcpyq-namename;strcpyq-xibiexibie;q-___=___;q-age=age;q-next=p-next;p-next=q;}deleteslink*headcharnum[]{slink*p*q;p=head;whilep-next!=nullstrcmpp-next-numnum!=0p=p-next;q=p-next;p-next=q-next;freeq;}voidlistslink*head{slink*p;printf学号\t姓名\t系别\t年龄\t性别\n;p=head-next;whilep!=null{printf%s\t%s\t%s\t%d\t%c\np-nump-namep-xibiep-agep-___;p=p-next;}printf\n;}void__in{intkfage;charnum
[10]name
[10]xibie
[10]___;slink*head;while1{printf\n\n\t\t\t学生信息管理系统\n;printf\t\t*************************************\n;printf\t\t\t
1.录入学生信息\n;printf\t\t\t
2.插入新学生信息\n;printf\t\t\t
3.删除学生信息\n;printf\t\t\t
4.输出学生信息\n;printf\t\t\t
5.输出学生总数\n;printf\t\t\t
6.退出\n;printf\t\t*************************************\n;printf请选择:;scanf%dk;switchk{case1:head=creslink;break;case2:printf请输入新学生的学号,姓名,系别,年龄,性别;scanf%s%s%s%d%cnumnamexibieage___;insertheadnumnamexibieage___;break;case3:printf请输入要删除的学生的学号;scanf%snum;deleteheadnum;break;case4:listhead;break;case5:f=getlenhead;printf学生总数为%df;break;case6:return;}}}学生成绩管理系统输入增加…….退出退出结束开始输出菜单根据菜单输入n的值选择程序输入增加删除修改查找。