c语言及数据结构与算法课程设计。
题目 : 学生信息管理系统。
专业。姓名。
学号。同组其他学生(学号。
2023年月日。
目录。一、需求分析 3
二、总体设计 3
三、详细设计 5
四、调试与测试 6
五、测试结果 7
六、用户手册 9
七、附录 9
每年九月份都有大量新生来到学校报道,使学校管理学生工作量增大,为此我们设计一学生信息管理系统,学生信息包括:学号,姓名,年龄,性别,出生年月,地址,**,e-mail等。使之能提供以下功能:
1)系统以菜单方式工作。
2)学生信息录入功能---输入。
3)学生信息浏览功能---输出。
4)查询、排序功能---算法按学号查询、按姓名查询、学生信息的删除与修改(可选项)
二、总体设计。
组成框图。流程图。
录入浏览。查询修改&删除。
三、详细设计。
主函数通过在while循环结构中嵌入switch分支结构实现操作选择功能。
1)record录入函数。
建立一个包含学生全部信息的结构体,申请空间,其指针为p0,存入学生各项对应的数据。
2)insert插入函数:
按输入的数据存储在一个stu类型的指针里,若原来链表里没有元素,则将此作为第一个元素;若原来的链表里有元素,则将指向头结点指针存储的学号与头指针下一个的学号大小进行比较,小的在前大的在后,之后指向头结点处的指正后移,进行比较,直到尾结点为止。
在进行比较的while函数内,每比较一次,计算总人数的total_num自加。
3)display浏览函数:
将传给display函数的指针p所指向的结构体的各项数据输出以便核对信息。
4)displayall浏览函数:
指针指向链表头结点,在if语句中嵌套do-while语句将学生信息按学号从大到小进行逐一输出。
5)query查询函数:
首先使用switch语句生成菜单,实现操作选择功能。分三个部分按学号查询、按姓名查询和取消返回上一层。按学号查询时调用while语句对学号检索,再调用if语句进行判断,最后输出想要查询的信息。
按姓名查询的方法跟按学号查询的一样。
6)del删除函数:
使用while语句进行检索,直接删除学生信息。
7)change修改函数:
建立devise函数,生成菜单,用switch语句进行分叉选择功能,选择项目进行相应的信息输入。在change函数中使用while语句进行检索后再调用devise函数修改信息。实现学生信息修改。
四、调试与测试。
1、进行多次运行,发现**那栏的**一打长就会显示一样的数字,打短的数字就可以。我们原本是使用长整型来定义**号码,想说空间不够,后来改用字符型,用字符串记录**号码程序运行结果正确。
2、程序设计初就在考虑退出与返回有什么差别,如果返回了主菜单那退出用什么,关于这个问题看了许多网上的资料,发现许多程序都有exit(0)的函数,所以去查了不少关于exit的函数内容,最后退出就用了exit(0),但是又提醒说要编写exit函数,之后发现要加入<>的头文件,程序可以正常运行。
3、程序在180行显示说readdata函数不可以返回值,所以在if条件句中将return 0删除了,不过这个程序在学校的机房即使不删return 0也是可以运行的,关于这点很是不解,还有待解决。
五、测试结果。
1、进入系统界面,输入密码,超过三次会自动退出。
2、选1时录入学生信息,编辑完后会继续显示菜单。
3、选2浏览学生信息 ,之后继续返回菜单界面,为节省空间菜单界面暂不截图。
4、选择3查询学生信息会有按学号与按姓名查询。下图是先按学号查询的截图。
5、按姓名查询时,如果查无此人会显示“没有该学生信息,请核对。”之后返回上一层,按姓名查询。显示学生信息后可以选择取消返回主菜单。
6、选择4删除学生,输入学号删除学生的信息。之后会返回主菜单。
7选择5修改学生信息,按学号输入,之后按显示输入即可。
用几组测试数据进行测试算法设计的正确性。(附上程序运行的截图)
六、用户手册。
1程序一开始会显示欢迎界面,按要求输入密码,3次错误会退出程序。
2 密码正确后会显示主菜单,按要求输入您的需求。
七、附录。源程序清单和结果:源程序要加注释。结果要包括测试数据和运行结果。
* note:your choice is c ide */
#include <>
#include <>
#include <>
#include <>
#include <>
#define null 0
#define len sizeof(struct student)
#define file_data_path "c:\"
struct student
long int num;
char name[20];
int age;
char sex[4];
char birthday[10];
char address[30];
char tele_num[13];
char e_mail[20];
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();
void query_by_num();void query_by_name();
void readdata();
void writedata();
void freeall();
void del();
void change();
void devise(struct student *p);
int main()/显示欢迎信息。
void welcome()/系统主菜单。
void mainmenu(){int choice; choice = 1;
readdata();
printf("温馨提示:为保证您的操作得到保存,请按正常顺序退出系统^_^n");
do { printf("
printf("\t\t\tn");
printf("\t\t\t+ 学生信息管理系统 |");
C 课程设计学生信息管理系统
c 程序设计课程设计任务书。学院 理学院专业信息与计算科学班级 091班。姓名学号 20091203 题目 学生成绩管理信息系统设计与开发。课程设计从 2010 年 5 月 10日起到 2010 年 6 月 15 日。1 课程设计的内容和要求 包括原始数据 技术要求 工作要求等 1 设计内容 制作学...
学生信息管理系统C课程设计
一 设计分析。该设计是设计一个实用的小型学生成绩管理系统。它有录入,查询,修改,删除,保存的基本功能,并且能够对指定文件操作,也可将多个文件组成一个文件。二 系统设计说明。1 程序运行主界面。再根据用户的不同需求来选择不同的操作。2 模块功能设计。2.1.建立学生基本信息。使用动态链表技术,用cre...
C课程设计 学生信息管理系统
课程设计说明书。题目 学生信息管理系统。学院 信息工程学院。班级 软件09 1 2011 年 1 月 21 日。x x 大学课程设计 任务书。课程名称 面向对象程序设计课程设计学院 信息工程学院 课程设计 课程设计说明书。题目 学生信息管理系统。学院 信息工程学院。班级 软件09 1 2011 年 ...