c语言及数据结构与算法课程设计报告.doc
《c语言及数据结构与算法课程设计报告.doc》由会员分享,可在线阅读,更多相关《c语言及数据结构与算法课程设计报告.doc(26页珍藏版)》请在三一办公上搜索。
1、福建工程学院软件学院c语言及数据结构与算法课程设计题目 : 学生信息管理系统 专 业: 物联网工程1401班 姓 名: 学 号: 同组其他学生(学号): 26 56 57 2015年6月24 日目 录一、需求分析3二、总体设计3三、详细设计3四、调试与测试3五、测试结果3六、用户手册3七、附录3一、需求分析问题描述学生信息包括:学号,姓名,年龄,性别,出生年月,地址,电话,E-mail等。试设计一学生信息管理系统,使之能提供以下功能:n 系统以菜单方式工作n 学生信息录入功能-输入n 学生信息浏览功能-输出n 查询、排序功能-算法按学号查询、按姓名查询、学生信息的删除与修改(可选项)(2)功能
2、要求界面比较美观;有一定的容错能力,比如输入的成绩不在0100之间,就提示不合法,要求重新输入;最好用链表的方式实现。二、总体设计开始主菜单主菜单选择语句switch(a)删除学生信 息退出系 统修改学生信 息查询学生信 息浏览学生信 息录入学生信息函 数0542311录入信息 按提示,录入学生信息选择是否继续输入学生信息 Y N返回主菜单 2浏览学生信息 输出之前保存的所有学生信息返回主菜单3查询学生信息 输入已保存的学生学号提示输入有误输入是否正确N Y 输出符合学号的学生信息返回主菜单删除学生信息4输入已保存的学生学号输入是否正确Y提示输入有误删除已保存的学生信息N返回主菜单5修改学生信
3、息输入已保存的学生学号提示输入有误输入是否正确N Y选择修改的内容修改的新内容直至取消修改返回主菜单三、详细设计各调用函数的设计与运行情况:(/录入学生信息void record () struct student *p0; p0 = (struct student *)malloc(LEN); printf (请输入学生的姓名:); scanf (%s,p0-name); printf (请输入学生的学号:); scanf (%ld,&p0-num); printf (请输入学生的性别:); scanf (%s,p0-sex); printf (请输入学生的年龄:); scanf (%d,&
4、p0-age); printf (请输入学生的地址:); 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电话ttE-mailn); display (p0);void insert (struct student *stu) struct student *p0, *p1,
5、*p2; p1 = head; p0 = stu; if (head = NULL) head = p0; p0-next = NULL; else while (p0-num p1-num)&(p1-next != NULL) p2 = p1; p1 = p1-next; if (p0-num num) if (head = p1) head = p0; else p2-next = p0; p0-next = p1; else p1-next = p0; p0-next = NULL; TOTAL_NUM+;void display (struct student *p) printf (
6、%st%ldt%dt%st%st%.0ft%sn, p-name, p-num, p-age, p-sex, p-address, p-tele_num, p-E_mail);/浏览学生信息void displayAll() struct student *p; printf(学生总数:%dn, TOTAL_NUM); p = head; if (head != NULL) printf(n姓名t学号t年龄t性别t地址tt电话ttE-mailn); printf(-n); do display(p); p = p-next; while(p != NULL); printf (n);/按学号查
7、询学生信息void query_by_num () int num; struct student *p1; printf(请输入学生的学号:); scanf(%ld, &num); if(head=NULL) printf(无学生记录!n); return; p1 = head; while (num!=p1-num & p1-next!=NULL) p1 = p1-next; if (num = p1-num) printf (姓名t学号t年龄t性别t地址tt电话ttE-mailn); printf (-n); display (p1); else printf (没有该学生记录,请核对!
8、);/删除学生信息void del () struct student *p1, *p2; long int num; if (head = NULL) printf(无学生记录!n); return; printf(请输入您要删除的学生的学号:); 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); T
9、OTAL_NUM-; else printf(没有该学生记录,请核对!n);/修改学生信息void change () struct student *p1, *p2; long int num; if (head = NULL) printf (无学生记录!n); return; printf (请输入您要修改的学生的学号:); scanf (%ld, &num); p1 = head; while (num != p1-num & p1-next != NULL) p2 = p1; p1 = p1-next; if(num = p1-num) devise (p1); else print
10、f(没有该学生记录,请核对!n);void devise (struct student *p) int choice; choice = -1; do printf(请选择您要修改的学生的信息内容:n); printf(+-+n); printf(| 姓名 请按 1 |n); printf(| 学号 请按 2 |n); printf(| 性别 请按 3 |n); printf(| 年龄 请按 4 |n); printf(| 地址 请按 5 |n); printf(| 电话 请按 6 |n); printf(| E-mail 请按 7 |n); printf(| 取消 请按 0 |n); pr
11、intf(+-+n); printf(请输入您的选择:); scanf(%d, &choice); switch (choice) case 0: return; case 1: printf(请输入新姓名:); scanf(%s, p-name); break; case 2: printf(请输入新学号:); scanf(%d, &p-num); break; case 3: printf(请输入新性别:); scanf(%s, p-sex); break; case 4: printf(请输入新年龄:); scanf(%s, &p-age); break; case 5: printf(
12、请输入新地址:); scanf(%s, p-address); break; case 6: printf(请输入新电话:); scanf(%lf, &p-tele_num); break; case 7: printf(请输入新E-mail:); scanf(%s, p-E_mail); break; default: printf(n无效选项!); break; while(choice != 0);模块功能说明(如函数功能、入口及出口参数说明,函数调用关系描述等)四、调试与测试设计一个程序,错误是难免不了的。但我们可以根据编辑系统给出的一些提示去查看程序错误。对不敢肯定正确的,翻翻书,看
13、一下这一知识。对难度大的就和同学们一起讨论,问一问老师。 开发一个系统,耐心是必要的,认真也很重要,构思要明确。认为是哪里错误的,有时用“/* */”注释起来进行,看看是否还有错误。常错有以下几种情况: 1.使用变量,但未有定义,则先定义。2.不该用分号的,用到了,把它去掉。3.行最后若有分号则删除,中间若有分号则改成逗号 4.若错误行中有if、while、for则要特别注意条件表达式的错误。 5.若条件表达式中只有一个等于号,则改成两个等于号。6.for中要用分号分隔表达式,而不是用逗号 7.缺少分号,若错误行中有语句没有用分号结束,则加上分号。 8.大小写不对,若错误行中有大写字母则一般都
14、改成小写字母。 9.若有return语句则函数的类型必须与return后变量的类型一致。调试方法,测试结果的分析与讨论,测试过程中遇到的主要问题及采取的解决措施五、测试结果测试数据运行结果详见“三具体设计”(程序运行的截图)六、用户手册按提示输入数据。七、附录源程序代码#include #include #include #include #define NULL 0#define LEN sizeof(struct student)struct student char name20; long int num; char sex4; int age; char address30; dou
15、ble tele_num; char E_mail20; struct student *next;/定义一个结构题int TOTAL_NUM = 0;/学生总数struct student *head = NULL;void welcome (); /欢迎界面void mainmenu (); /主界面void record (); /记录数据void insert(struct student *stu); /插入数据void display(struct student *stu); /显示一个学生的信息void displayAll (); /显示所有学生的信息void query_b
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 数据结构 算法 课程设计 报告
链接地址:https://www.31ppt.com/p-2384606.html