学生管理系统源代码 ja编写学生管理系统

1.题目与要求

1.1提出的问题

设计一个学生成绩管理系统,有n个学生,每个学生的数据包括姓名,年龄,编号,籍贯。试设计一个学生管理系统。

1.2本系统涉及的知识点

c语言文件操作,数组,函数,链表,头插入法,尾插入法等等。

1.3功能要求

1.学生信息录入:输入学生姓名、年龄、编号、籍贯;

2.信息查询:(至少一种查询方式)。按编号查询学生记录,或查询同名学生的记录;

3.信息修改和删除:可以对学生的信息进行一定程度的修改和删除,并保存在表单中。

4.退出系统:退出整个系统(即主菜单);

1.4根据所选菜单编写相应的代码(略)

1.5功能效果图(以代码的实际效果为准)

学生管理系统源代码 java编写学生管理系统

二、管理系统源码与注释展示

# define _ CRT _ SECURE _ NO _ WARNINGS # include & lt;stdio.h & gt# include & ltstdlib.h & gt# include & ltstring.h & gtstruct MM { char name欢迎转行学习编程的伙伴,通过使用更多的素材,学会比自己更快的成长!;int ageint numchar addr[20];};//你只需要修改一些和数据相关的东西。struct Node {//int data;结构MM数据;结构节点* next};struct Node * list = NULL//1.Create header:描述struct Node* createList(){//创建链表意味着创建header//创建header意味着创建结构变量struct Node * head Node =(struct Node *)malloc(size of(struct Node));//header不初始化head node for data-> next = NULL;返回headNode}//2.创建一个节点准备插入:将数据处理成一个节点struct node * create node(struct mm data){ struct node * new node =(struct node *)malloc(size of(struct node));新节点-& gt;数据=数据;新节点-& gt;next = NULL返回newNode}//3.通过header方法插入Void InsertByhead(struct node * head node,struct mm data){//插入前,先创建节点struct node * new node = create node(data);新节点-& gt;next = head node-& gt;接下来;head node->;next = newNode} Void delete poin byname(struct node * head node,char * name){//两个相邻指针struct node * posfrontnode = head node;struct Node * pos Node = head Node-& gt;接下来;//查找指定位置while (posNode!= NULL & & strcmp(pos node-& gt;data.name,name)){ pos front node = pos node;//下面两句话功能相同:pos node = pos front node-& gt;接下来;//pos node = pos node-& gt;Next}//分析搜索结果//循环退出有两种情况:posNode==NULL,pos node-& gt;data = = posDataif(pos node = = NULL){ printf(& # 34;未找到指定的。无法删除!\ n & # 34);返回;} else//pos node-& gt;data = = posData{ posFrontNode-& gt;next = pos node-& gt;接下来;免费(pos node);posNode = NULL} } Void delete pponyage(struct node * head node,intage){//两个相邻指针struct node * posfrontnode = head node;struct Node * pos Node = head Node-& gt;接下来;//查找指定位置while (posNode!= NULL & & posNode-& gt;data.age!= age){ pos front node = pos node;//下面两句话功能相同:pos node = pos front node-& gt;接下来;//pos node = pos node-& gt;Next}//分析搜索结果//循环退出有两种情况:posNode==NULL,pos node-& gt;data = = posDataif(pos node = = NULL){ printf(& # 34;未找到指定的。无法删除!\ n & # 34);返回;} else//pos node-& gt;data = = posData{ posFrontNode-& gt;next = pos node-& gt;接下来;免费(pos node);posNode = NULL} }//查找函数struct node *按名称搜索(struct node * head node,char * name){ struct node * p move = head node;while (pMove!= NULL & & strcmp(p move-& gt;data.name,name)){ p move = p move-& gt;接下来;}返回pMove} struct Node * search by age(struct Node * head Node,int age){ struct Node * pMove = head Node;while (pMove!= NULL & & p move-& gt;data.age!= age){ p move = p move-& gt;接下来;}返回pMove} void print list(struct Node * head Node){ struct Node * pMove = head Node-& gt;接下来;//因为有表头,所以打印是表头下一个开始打印printf(& # 34;name \ tAge \ t number \ t birth place \ n & # 34;);while (pMove!= NULL){//printf(& # 34;% d \ t & # 34,p move-& gt;数据);printf(& # 34;% s \ t % d \ t % d \ t % s \ n & # 34,p move-& gt;data.name,pMove-& gt;data.age,p move-& gt;data.num,pMove-& gt;data . addr);p move = p move-& gt;接下来;} printf(& # 34;\ n & # 34);//调整打印结果}//打印所有同名信息Void打印列表名称(struct node * head node,char * Name){ struct node * p move = head node-> next;//因为有表头,所以打印是表头下一个开始打印printf(& # 34;name \ tAge \ t number \ t birth place \ n & # 34;);while (pMove!= NULL){//printf(& # 34;% d \ t & # 34,p move-& gt;数据);if(strcmp(p move-& gt;data.name,name)= = 0)printf(& # 34;% s \ t % d \ t % d \ t % s \ n & # 34,p move-& gt;data.name,pMove-& gt;data.age,p move-& gt;data.num,pMove-& gt;data . addr);p move = p move-& gt;接下来;} printf(& # 34;\ n & # 34);//调整打印结果}//特殊需要需要特殊代码//删除功能:删除所有同名人Void Delete by name(struct node * head node,char * name){ while(search by name(head node,name)!= NULL){ deleteapoinbyname(head node,name);} } void delete byAge(struct Node * head Node,int age){ while(search byage(head Node,age)!= NULL){ deleteapoinbyage(head node,age);} }//文件操作//读取操作Void readinforomfile(struct node * head node,char * filename){ file * FP = fopen(filename,& # 34;r & # 34);if (fp == NULL){fp = fopen(fileName,& # 34;w+& # 34;);}结构MM信息;while (fscanf(fp,& # 34;% s \ t % d \ t % d \ t % s \ n & # 34,信息名,&信息年龄,&信息号,信息地址)!= EOF){insertByHead(headNode,info);} f close(FP);}//写操作Void se info file(struct node * head node,char * filename){ file * FP = fopen(filename,& # 34;w & # 34);struct Node * pMove = head Node-& gt;接下来;while (pMove!= NULL){fprintf(fp,& # 34;% s \ t % d \ t % d \ t % s \ n & # 34,p move-& gt;data.name,pMove-& gt;data.age,p move-& gt;data.num,pMove-& gt;data . addr);p move = p move-& gt;接下来;} f close(FP);} void menu(){ printf(& # 34;-[学生管理系统]-\ n & # 34;);printf(& # 34;\t0。退出系统!\ n & # 34);printf(& # 34;\t1。注册学生信息!\ n & # 34);printf(& # 34;\t2。浏览学生信息!\ n & # 34);printf(& # 34;\t3。查找学生信息!\ n & # 34);printf(& # 34;\t4。封存学生信息!\ n & # 34);printf(& # 34;\t5。修改学生信息\ n & # 34);printf(& # 34;\t6。删除所有同名的学生信息\ n & # 34);printf(& # 34;-\ n & # 34;);printf(& # 34;请输入(0 ~ 5):& # 34;);} void key down(){ int choice = 0;结构MM数据;结构节点*结果= NULLscanf(& # 34;% d & # 34,& choice);switch(choice){ case 0:printf(& # 34;退出成功!\ n & # 34);系统(& # 34;暂停& # 34;);退出(0);打破;案例1:printf(& # 34;请输入(姓名、年龄、号码、地址):& # 34;);scanf(& # 34;% s % d % d % s & # 34,data.name,&data.age,&data.num,data . addr);insertByHead(列表,数据);seInfoToFile(列表,& # 34;1.txt & # 34);打破;案例二:printList(列表);打破;案例3:printf(& # 34;请输入要查询的学生姓名:& # 34;);scanf(& # 34;% s & # 34,data . name);result = searchByName(list,data . name);if(result = = NULL){ printf(& # 34;没有找到相关信息!\ n & # 34);} else { printf(& # 34;name \ tAge \ t number \ t birth place \ n & # 34;);printf(& # 34;% s \ t % d \ t % d \ t % s \ n & # 34,结果-& gt;数据名称,结果-& gt;数据年龄,结果-& gt;data.num,结果-& gt;data . addr);}破;案例4:printf(& # 34;请输入要封存的学生信息:& # 34;);scanf(& # 34;% s & # 34,data . name);deleteapoinbyname(list,data . name);seInfoToFile(列表,& # 34;1.txt & # 34);打破;案例5:printf(& # 34;请输入要修改的学生姓名:& # 34;);scanf(& # 34;% s & # 34,data . name);result = searchByName(list,data . name);if(result = = NULL){ printf(& # 34;没有找到相关信息!,不能修改\ n & # 34);} else { printf(& # 34;请输入新信息(姓名、年龄、号码、地址):& # 34;);scanf(& # 34;% s % d % d % s & # 34,结果-& gt;data.name,& result-& gt;data.age,& result-& gt;data.num,结果-& gt;data . addr);printf(& # 34;修改成功!\ n & # 34);seInfoToFile(列表,& # 34;1.txt & # 34);}破;案例6:printf(& # 34;请输入要删除的学生姓名:& # 34;);scanf(& # 34;% s & # 34,data . name);deleteByName(list,data . name);seInfoToFile(列表,& # 34;1.txt & # 34);打破;默认值:printf(& # 34;输入错误!\ n & # 34);打破;} } int main(){ list = create list();readInfoFromFile(列表,& # 34;1.txt & # 34);while①{ menu();keyDown();系统(& # 34;暂停& # 34;);系统(& # 34;cls & # 34);}系统(& # 34;暂停& # 34;);返回0;}这个分享在这里!可以直接复制源代码~但是可能会因为编译原因导致乱码。建议你再写一遍,加深学习形象!如果你在学习C语言C++的时候有什么学习上的问题,可以来和我一起学习~

编程学习书籍分享:

编程学习视频共享:

另外,学习编程对我们来说最重要!种一棵树最好的时间是十年前,其次是现在。对于准备学习编程的小伙伴们,如果想更好的提升自己的编程核心能力(内功),不妨现在就开始!

整理分享(源代码,项目实战视频,项目笔记,基础入门教程)。

[20]

点击下方【了解更多】获取更多学习资料,帮助你学习成长~

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。

发表回复

登录后才能评论