学生证信息管理系统.pdf

上传人:w*** 文档编号:82070676 上传时间:2023-03-24 格式:PDF 页数:20 大小:594.16KB
返回 下载 相关 举报
学生证信息管理系统.pdf_第1页
第1页 / 共20页
学生证信息管理系统.pdf_第2页
第2页 / 共20页
点击查看更多>>
资源描述

《学生证信息管理系统.pdf》由会员分享,可在线阅读,更多相关《学生证信息管理系统.pdf(20页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、.实用文档.1 系统的意义及其功能 本系统为?学生证管理程序?。系统任务描述:假设某校学生学生证根本信息主要包括:学号、姓名、所在系、班级等,本系统应能对这些根本信息进行管理,并要求具有以下功能:1通过键盘输入某位学生的学生证信息。学生证包含的信息请参看自己的学生证;2给定学号,显示某位学生的学生证信息;3给定某个班级的班号,显示该班所有学生的学生证信息;4给定某位学生的学号,修改该学生的学生证信息;2 系统的功能结构图以及调用关系 3 系统功能详细分析 学生证管理系统需要完成的功能主要有:从主函数进入各个子函数:子函数包括学生证信息的键入、查询信息的功能、修改学生证信息的功能、退出系统。具体

2、功能如下:学生证管理程序 输入学号 输入某班级的班号 输入某位学生的学号 按学号排序或姓名排序来显示该班所有学生证信息 显示该生学生证信息 修改该生的学生证信息 键入某位学生 的学生证信息 3.2 查询信息的功能 查询记录的主要功能是通过不同的查询方式查询学生的信息。先是进入查询界面,再选择查询的方式,选择后将输出该学生的信息。共分为两种:1 给定某个学生的学号,显示该学生的学生证信息;2 给定某个班级的班号,按学号排序来显示该班所有学生的学生证信息;按班级排序来显示该班所有学生的学生证信息;3.2.1 输入学号,显示该生的学生证信息 开始 主菜单 学生证信息的键入 输入学生证信息 是否继续

3、保存文件 Y N 学生证信息的键入 此程序是将学生证信息录入文件.实用文档.3.2.2 输入班号,显示该班所有学生的学生证信息 学生证信息查询 此程序是通过输入某位学生的学号,显示该生的学生证信息。开始 主菜单 学生证信息查询 输入学号 显示该生的学生证信息 关闭文件 是否继续 N Y 学生证信息查询 此程序是通过输入某班级的班号,然后选择按学号排序或班级排序,最后显示该班所有学生的学生证信息。开始 主菜单 学生证信息查询 输入班号 显示该班所有学生 的学生证信息 关闭文件 是否继续 N Y 按学号排序 按班级排序.实用文档.3.3 修改学生证信息的功能 4 运行界面 主菜单界面 修改信息功能

4、 修改信息的主要功能是通过输入某位学生的学号来修改该生的学生证信息。先是进入修改界面,再输入学号,输入后,将输出该生的学生证信息,再选择是否修改此记录,选择是,那么输入修改的信息,并保存修改。开始 主菜单 修改学生证信息功能 输入学号 显示该生学生证信息 是否修改 写入并保存文件 Y N 学生证键入的界面 个人学生证信息显示界面 .实用文档.显示班级信息的选择输出方式的界面 按学号排序显示该班所有学生的学生证信息界面 按姓名排序显示该班所有学生的学生证信息界面 显示班级信息的退出界面 .实用文档.修改学生证信息的界面 5 系统使用说明 1、进入程序时,先以菜单形式显示所有命令,然后用户通过菜单

5、项选择操作;例如:1 学生证信息的键入 2 输入学号,显示该生学生证信息 3 输入班号,显示该班所有学生的学生证信息 4 给定学号,修改该生学生证信息 5 退出系统 请选择1/2/3/4/5:2、键入学生证信息时,按照所给定的格式输入。3、查询信息是按学生学号和班号的形式进行查询,填入学号后,那么显示出该生所有信息;选择按班号查询功能后,在选择显示输出方式,分两种:一种按学号排序;另一种是按姓名排序。选定后,再填入班号,那么显示出该班所有学生的学生证信息按已选定的排序方式显示。4、修改信息是按输入学号的形式进行修改,填入后,那么显示出该生所有信息,然后询问是否修改,假设答复“y大小写通用,那么

6、输入新值,否那么不作修改。6 C 语言源程序代码#include#include /用来使用清屏函数#include#include#include#define LEN sizeof(struct STUcard)struct STUcard*creat();void viewperson();void viewclass();void number();void name();void change();struct STUcard*save();struct date int year;int month;int day;/定义用来嵌套的结构体 struct STUcard int nu

7、mber;char name20;char sex10;char department20;char classnumber10;struct date timeofenter;/嵌套结构体 char IDnumber30;struct date birthday;struct STUcard*next;/定义结构体 void main()char c;int n=0;struct STUcard*head;char build;/创立文件 FILE*fp;fp=fopen(XX.out,rb);if(fp=NULL).实用文档.printf(文件不存在,请创立Y or N);scanf(%c

8、,&build);if(build=Y)fp=fopen(XX.out,wb);else exit(0);do system(cls);/清屏 printf(*n);printf(1:输入学生证信息 n);printf(2:查找个人信息 n);printf(3:查找班级里所有学生的学生证信息 n);printf(4:修改学生证信息 n);printf(5:退出 n);printf(*n);printf(n);printf(请选择输入选项12345:);do c=getchar();while(c!=1&c!=2&c!=3&c!=4&c!=5);getchar();switch(c)case 1

9、:head=creat();break;case 2:viewperson(head);break;case 3:viewclass(head);break;case 4:change(head);break;case 5:exit(0);break;printf(按任意键返回主菜单:n);flushall();getchar();printf(%d,n);system(cls);while(1);int n;struct STUcard*creat()/录入学生证信息函数 struct STUcard*head,*p1,*p2;n=0;head=NULL;p1=p2=(struct STUc

10、ard*)malloc(LEN);printf(请按以下格式输入学生证信息,注意 每个数据之间间隔一个空格!n 以学号为00000000 结束录入,并且剩下的信息字符用“0代替输入 注意:输入格式不变!:n);printf(学号 姓名 性别 院系 班级 入学时间 年 月 日 身份证号 出生日期 年 月 日n);scanf(%d%s%s%s%s%d%d%d%s%d%d%d,&p1-number,p1-name,p1-sex,p1-department,p1-classnumber,&p1-timeofenter.year,&p1-timeofenter.month,&p1-timeofenter

11、.day,p1-IDnumber,&p1-birthday.year,&p1-birthday.month,&p1-birthday.day);while(p1-number!=00000000)n=n+1;if(n=1)head=p1;else p2-next=p1;p2=p1;p1=(struct STUcard*)malloc(LEN);scanf(%d%s%s%s%s%d%d%d%s%d%d%d,&p1-number,p1-name,p1-sex,p1-department,p1-classnumber,&p1-timeofenter.year,&p1-timeofenter.mont

12、h,&p1-timeofenter.day,p1-IDnumber,&p1-birthday.year,&p1-birthday.month,&p1-birthday.day);p2-next=NULL;free(p1);save(head);/保存文件 return(head);/把已录入信息的链表头指针返回给住函数 void viewperson(struct STUcard*head)/查找个人信息函数 int m,a=0;struct STUcard*p;printf(请输入学号:);printf(n);scanf(%d,&m);p=head;/获取头指针,以使用链表 .实用文档.wh

13、ile(p-next!=NULL)/判断是否为空指针 if(p-number=m)printf(学号:%dn 姓名:%sn 性别:%sn 院系:%sn 班级:%sn 入学时间:%d 年%d月%d 日n 身份证号:%sn 出生日期:%d 年%d 月%d 日n,p-number,p-name,p-sex,p-department,p-classnumber,p-timeofenter.year,p-timeofenter.month,p-timeofenter.day,p-IDnumber,p-birthday.year,p-birthday.month,p-birthday.day);print

14、f(n);a=a+1;p=p-next;/结点后移 if(p-number=m)printf(学号:%dn 姓名:%sn 性别:%sn 院系:%sn 班级:%sn 入学时间:%d 年%d月%d 日n 身份证号:%sn 出生日期:%d 年%d 月%d 日n,p-number,p-name,p-sex,p-department,p-classnumber,p-timeofenter.year,p-timeofenter.month,p-timeofenter.day,p-IDnumber,p-birthday.year,p-birthday.month,p-birthday.day);printf

15、(n);a=a+1;printf(n);printf(共%d 人n,a);if(a=0)printf(对不起,查无此人!n);void viewclass(struct STUcard*head)/查找班级信息函数 char c;void number();void name();do system(cls);/清屏 printf(*n);printf(1:按学号排序输出 n);printf(2:按姓名排序输出 n);printf(3:退出 n);printf(*n);printf(n);printf(请选择输入选项123:);do c=getchar();while(c!=1&c!=2&c!

16、=3);getchar();switch(c)case 1:number(head);break;case 2:name(head);break;case 3:exit(0);continue;printf(按任意键返回上层菜单:n);flushall();getchar();system(cls);while(1);void number(struct STUcard*head)/按学号排序 char c10;int h1,a=0,i,j,k,w;char hname20;char hsex20;char hdepartment20;char hclassnumber10;char hIDn

17、umber30;struct date htimeofenter;struct date hbirthday;struct STUcard*p,*p2,*p3;p=head;p2=head;p3=p2-next;for(k=1;k+)/用来确定链表中共多少个结点 if(p-next!=NULL)p=p-next;else break;for(i=0;inext;for(j=0;jnumberp3-number)h1=p2-number;strcpy(hname,p2-name);strcpy(hsex,p2-sex);strcpy(hdepartment,p2-department);strc

18、py(hclassnumber,p2-classnumber);strcpy(hIDnumber,p2-IDnumber);htimeofenter=p2-timeofenter;hbirthday=p2-birthday;p2-number=p3-number;strcpy(p2-name,p3-name);strcpy(p2-sex,p3-sex);strcpy(p2-department,p3-department);strcpy(p2-classnumber,p3-classnumber);strcpy(p2-IDnumber,p3-IDnumber);p2-timeofenter=p

19、3-timeofenter;p2-birthday=p3-birthday;p3-number=h1;strcpy(p3-name,hname);strcpy(p3-sex,hsex);strcpy(p3-department,hdepartment);strcpy(p3-classnumber,hclassnumber);strcpy(p3-IDnumber,hIDnumber);p3-timeofenter=htimeofenter;p3-birthday=hbirthday;p2=p3;p3=p3-next;printf(请输入班级:n);scanf(%s,&c);p=head;for(

20、w=1;wclassnumber,c)=0)printf(学号:%dn 姓名:%sn 性别:%sn 院系:%sn 班级:%sn 入学时间:%d 年%d月%d 日n 身份证号:%sn 出生日期:%d 年%d 月%d 日n,p-number,p-name,p-sex,p-department,p-classnumber,p-timeofenter.year,p-timeofenter.month,p-timeofenter.day,p-IDnumber,p-birthday.year,p-birthday.month,p-birthday.day);a=a+1;p=p-next;printf(n)

21、;printf(共%d 人n,a);if(a=0)printf(对不起 无此班级);void name(struct STUcard*head)/按姓名排序 char c10;int h1,a=0,i,j,k,w;char hname20;char hsex20;char hdepartment20;char hclassnumber10;char hIDnumber30;struct date htimeofenter;struct date hbirthday;struct STUcard*p,*p2,*p3;p=head;p2=head;p3=p2-next;for(k=1;k+)if(

22、p-next!=NULL)p=p-next;else break;for(i=0;inext;for(j=0;jname,p3-name)0)h1=p2-number;strcpy(hname,p2-name);strcpy(hsex,p2-sex);.实用文档.strcpy(hdepartment,p2-department);strcpy(hclassnumber,p2-classnumber);strcpy(hIDnumber,p2-IDnumber);htimeofenter=p2-timeofenter;hbirthday=p2-birthday;p2-number=p3-numbe

23、r;strcpy(p2-name,p3-name);strcpy(p2-sex,p3-sex);strcpy(p2-department,p3-department);strcpy(p2-classnumber,p3-classnumber);strcpy(p2-IDnumber,p3-IDnumber);p2-timeofenter=p3-timeofenter;p2-birthday=p3-birthday;p3-number=h1;strcpy(p3-name,hname);strcpy(p3-sex,hsex);strcpy(p3-department,hdepartment);str

24、cpy(p3-classnumber,hclassnumber);strcpy(p3-IDnumber,hIDnumber);p3-timeofenter=htimeofenter;p3-birthday=hbirthday;p2=p3;p3=p3-next;printf(请输入班级:n);scanf(%s,&c);p=head;for(w=1;wclassnumber,c)=0)printf(学号:%dn 姓名:%sn 性别:%sn 院系:%sn 班级:%sn 入学时间:%d 年%d月%d 日n 身份证号:%sn 出生日期:%d 年%d 月%d 日n,p-number,p-name,p-se

25、x,p-department,p-classnumber,p-timeofenter.year,p-timeofenter.month,p-timeofenter.day,p-IDnumber,p-birthday.year,p-birthday.month,p-birthday.day);a=a+1;p=p-next;printf(n);printf(共%d 人n,a);if(a=0)printf(对不起 无此班级);void change(struct STUcard*head)/修改信息 int x;struct STUcard*p1,*p2;printf(输入要修改学生的学号n);sc

26、anf(%d,&x);p1=head;while(p1-number!=x)&(p1-next!=NULL)p2=p1;p1=p1-next;if(p1-number=x)printf(请输入需要修改的信息:n);printf(输入学号:);scanf(%d,&p1-number);printf(输入姓名:);scanf(%s,p1-name);printf(输入性别:);scanf(%s,p1-sex);printf(输入院系:);scanf(%s,p1-department);printf(输入班级:);scanf(%s,p1-classnumber);printf(输入入学时间年 月 日

27、:);scanf(%d%d%d,&p1-timeofenter.year,&p1-timeofenter.month,&p1-timeofenter.day);printf(输入身份证号:);scanf(%s,p1-IDnumber);printf(输入出生日期年 月 日:);scanf(%d%d%d,&p1-birthday.year,&p1-birthday.month,&p1-birthday.day);printf(信息已修改);save(head);else printf(%d 找不到该学号!n,x);struct STUcard*save(struct STUcard*head)/

28、_保存函数 FILE*fp;struct STUcard*p;.实用文档.p=head;fp=fopen(XX.out,w+);if(fp=0)printf(不能翻开文件);exit(0);while(p)fprintf(fp,学号:%dn 姓名:%sn 性别:%sn 院系:%sn 班级:%sn 入学时间:%d 年%d月%d 日n 身份证号:%sn 出生日期:%d 年%d 月%d 日n,p-number,p-name,p-sex,p-department,p-classnumber,p-timeofenter.year,p-timeofenter.month,p-timeofenter.day

29、,p-IDnumber,p-birthday.year,p-birthday.month,p-birthday.day);printf(n);p=p-next;printf(n 文件保存成功!n,n);fclose(fp);return head;/返回后结点 7 心得体会 通过这次的 C 语言程序设计,让我意识到自己的根底还不是太扎实,发现自己在编程方面还有些缺乏,有一些小小的错误不能防止。这次的设计培养了我发现问题、解决问题的根本能力,也让自己的实际动手编程能力有一些提升,这对于我的学习有很大的帮助。将所学知识运用起来也是这次程序设计的成果,让我深深体会到了学以致用的乐趣,也让我对 C 语

30、言的学习更加充满了信心。对于自己所展现出来的问题我将采取措施。多多打牢根底,对于一些简单的程序要手到擒来,在往后的学习中能学以致用。8 实习日志 2021 年 6 月 20 日上午 开始课程设计的第一天。目标就是参照老师给出的列子,将自己所要做的程序系统的主菜单写出来。设置主函数void main(),先安置一个欢送界面,再创作主菜单,由主函数调用其它子函数来实现程序功能。问题:学生证管理系统主菜单的建立,整个系统涉及到的函数;解决方法:使用 switch()条件选择菜单对应的函数,将系统的各个功能写成各个独立的函数,采用模块化编程。2021 年 6 月 21 日下午 上午主要任务是编写子函数

31、。编写 struct STUcard*creat()函数来进行学生证信息的键入;而查询信息的函数又分为两个选项,分别为 viewperson()函数按学号查询信息、viewclass()函数按班号查询信息,其中按班号查询函数有两种选择显示的方式,一种是按学号排序的方式显示输出;另一种是按姓名排序的方式显示输出。查询信息时如果输入错误,那么显示“查无此人。2021 年 6 月 21 日晚上 下午的任务根据上午建立的查询学生学生证信息函数模板,建立学生证修改函数。修改为按学号查询修改。修改时,中选择修改并输入学号,将显示该学生信息,再判断是否修改。选择修改后将重新录入修改的信息。注意修改后等于覆盖

32、原来的信息。2021 年 6 月 23 日晚上 为了不过分繁琐的录入信息,任务就是编写文件。将录入的信息存入文件中,关闭窗口后仍能在之后翻开文件使用开始录入的信息。编写函数来执行文件的读写。再对相应的信息显示函数改写文件形式。2021 年 6 月 24 日上午 对整个程序调试运行,并修改显示界面,尽可能使界面友好、直观、易操作。2021 年 6 月 27 日下午 设计 word 文档。2021 年 6 月 28 日上午 设计 word 文档。并完善程序及课程设计排版,使其更加美观。2021 年 6 月 29 日上午 辩论。2021 年 6 月 30 日上午 提交程序设计报告和源程序。参考文献 1 向艳 周天彤 程起才等编著?C 语言程序设计?北京:清华大学出版社 2021 2 谭浩强 主编?C 语言程序设计?北京:清华大学出版社 2000 3 黄明 梁旭 万洪莉 编著?C 语言课程设计?北京:电子工业出版社 2006

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 解决方案

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁