版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、学生信息管理系统程序设计 1、 软件开发目的该软件主要是实现对学生基本信息进行系统化的管理,首先可以对学生基本信息进行录入和存取,其次可以浏览学生的相关信息,然后可以删除和插入学生的相关信息,还有就是可按学号或按学生姓名查询此学生的相关信息。由此来系统化管理学生基本信息,并达到简易操作的目的。 2、 功能分析说明图 3、 各项功能说明(1)学生基本信息的录入和保存:在链表中的适当位置插入一个学生信息节点,一次添加一条学生信息(添加内容包含学号、姓名、年龄),如果添加的学号已经在文件中存在,则不能添加到文件中去,应显示错误提示语;如果添加成功,则显示成功提示语。添加操作完毕后,应该询问用户是否继
2、续执行此操作.如果用户不继续,则退回到程序初始界面。(2)显示学生信息:此功能是显示一个学生信息节点中的信息,并在屏幕上显示出来.(3)删除学生信息:进入该项功能界面后,删除学生信息,一次删除一条学生信息.(4)按学号查找学生信息:按学号查询学生信息,要求显示 文件 中 与 用户输入的学号 相匹配的学生信息,要求显示学号、姓名、年龄等字段,如果文件中没有学生信息,则显示提示语.查询操作完毕后,应该询问用户是否继续执行此操作。如果用户不继续,则退回到程序初始界面。(5)按姓名查找学生信息:按姓名查询学生信息,要求显示 文件 中 与 用户输入的学号 相匹配的学生信息,要求显示学号、姓名、年龄等字段
3、,如果文件中没有学生信息,则显示提示语。查询操作完毕后,应该询问用户是否继续执行此操作。如果用户不继续,则退回到程序初始界面。(6)修改学生信息修改学生信息中的某一项信息,一次更新一条学生信息(更新内容包含学号、姓名、年龄等字段值),如果更新的学号在文件中不存在,则不能更新,应该显示错误提示语;如果更新成功,则显示成功提示语.更新操作完毕后,应该询问用户是否继续执行此操作。如果用户不继续,则退回到程序初始界面。(7)退出系统,结束任务. 4、 软件功能的验收标准1有较为美观简洁大方的菜单,能保证用户方便、直观、快捷的熟悉并使用软件的各项功能。2有严密正确的数据验证功能和数据处理功能,能够查询、
4、插入、修改和删除学生信息。3系统要有一定的可靠性.问题补充:不方便贴出来,发到我邮箱也可!slr1130163。com最佳答案 include stdio.h>#include <malloc。h>include string。hinclude io。h#define NULL 0#define LEN sizeof(struct student)#define FILE_DATA_PATH "c:student。txt”struct student long int num; char name20; int age; char sex4; char birthd
5、ay10; char address30; long int 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();void query_by_num();void query_by_
6、name();void readData();void writeData();void freeAll();void del();void change();void devise(struct student p);int main() char userName9; char userPWD7; int i; welcome(); for(i = 0; i 3; i+) printf(”n管理员初始用户名和密码均为adminn”); printf("请输入您的用户名:"); scanf(”s", userName); printf("n请输入您的密
7、码:”); scanf(”%s”, userPWD); if ((strcmp(userName,"admin”)=0) & (strcmp(userPWD,”admin")=0) /用户名和密码正确,显示主菜单 mainmenu(); break; else if (i 2) /用户名或密码错误,提示用户重新输入 printf(”用户名或密码错误,请重新输入!"); else /连续3次输错用户名或密码,退出系统。 printf(”您已连续3次将用户名或密码输错,系统将退出!"); return 0;/显示欢迎信息void welcome()
8、printf(”+-+n"); printf(”| n”); printf(” 欢迎使用学生信息管理系统 n”); printf(” n”); printf(”+-+n”);/系统主菜单void mainmenu() int choice; choice = 1; readData(); printf("n温馨提示:为保证您的操作得到保存,请按正常顺序退出系统_n”); do printf(”nnn”); printf(”ttt-n”); printf(”ttt+ 学生信息管理系统 n"); printf("ttt-n"); printf(”t
9、tt+ 1-录入学生信息 n"); printf(”ttt+ 2浏览学生信息 |n”); printf(”ttt+ 3查询学生信息 |n"); printf(”ttt+ 4-删除学生信息 n”); printf(”ttt+ 5-修改学生信息 n”); printf(”ttt+ 0退出系统 n”); printf("ttt+*···*··*····*·n”); printf("ttt-n”); printf(”请输入您的选择:"); scanf(”
10、d”, choice); switch(choice) case 0: writeData(); freeAll(); exit(0); case 1: record(); break; case 2: displayAll(); break; case 3: query(); break; case 4:del(); break; case 5: change(); break; default: printf(”n无效选项!"); break; while(choice != 0);/录入学生信息void record() struct student p0; p0 = (str
11、uct student *)malloc(LEN); printf(”请输入学生的学号:”); scanf(”ld",&p0-num); printf(”请输入学生的姓名:"); scanf(”s",p0name); printf(”请输入学生的年龄:”); scanf(”d”,&p0-age); printf(”请输入学生的性别:”); scanf("s”,p0>sex); printf(”请输入学生的出生年月:”); scanf("s”,p0->birthday); printf("请输入学生的地址:&
12、quot;); scanf(”%s”,p0address); printf(”请输入学生的电话:"); scanf(”ld",p0tele_num); printf(”请输入学生的Email:"); scanf(”s",p0>E_mail); insert(p0); printf(”该学生的信息为:n”); printf(”-"); printf(”学号t姓名t年龄t性别t出生年月tt地址t电话tEmailn”); display(p0);void insert(struct student stu) struct student p0,
13、 p1, *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 = p1next; if(p0->num <= p1-num) if(head = p1) head = p0; else p2next = p0; p0-next = p1; else p1>next = p0; p0next = NULL; TOTAL_NUM+;void display(struct stu
14、dent *p) printf(”ldt%stdtstst%stldtsn”, p>num, pname, p->age, psex, pbirthday, 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出生年月t地址t电话tE-mailn”); printf(”-”); do display(p);
15、 p = p>next; while(p != NULL); printf(”n”);/查询学生信息void query() int choice; choice = 1; do printf("n”);printf("+-+n”); printf(" 按学号查询 请按 1 n"); printf(” 按姓名查询 请按 2 |n"); printf(”| 取消 请按 0 n”); printf(”+-+n"); printf(”请输入您的选择:”); scanf(”%d", choice); switch(choice
16、) case 0: return; case 1: query_by_num(); break; case 2: query_by_name(); break; default: printf("n无效选项!”); break; while(choice != 0);/按学号查询学生信息void query_by_num() int num; struct student p1; printf(”请输入学生的学号:"); scanf(”ld”, num); if(head=NULL) printf(”无学生记录!n”); return; p1=head; while(num
17、!=p1num & p1next!=NULL) p1=p1>next; if(num = p1num) printf(”n学号t姓名t年龄t性别t出生年月t地址t电话tEmailn"); printf("-"); display(p1); else printf(”没有该学生记录,请核对!”);/按姓名查询学生信息void query_by_name() char name20; struct student p1; printf("请输入学生的姓名:”); scanf(”%s", name); if(head=NULL) pri
18、ntf(”无学生记录!n”); return; p1=head; while(strcmp(name, p1-name) p1next!=NULL) p1=p1>next; if(!strcmp(name, p1-name)) printf("n学号t姓名t年龄t性别t出生年月t地址t电话tE-mailn"); printf("-”); display(p1); else printf("没有该学生记录,请核对!");/写入文件void writeData() FILE fp;/文件指针 struct student p; fp = fo
19、pen(FILE_DATA_PATH, ”w”); if (!fp) printf(”文件打开错误!”); return; fprintf(fp,"%dn", TOTAL_NUM); for(p = head; p!= NULL; p= p-next) fprintf(fp,”%ldtstdt%stst%stldt%sn", p->num, pname, page, psex, p>birthday, p-address, p>tele_num, pE_mail); fclose(fp); void freeAll() struct studen
20、t *p1, p2; p1=p2=head; while(p1) p2=p1next; free(p1); p1=p2; /读取文件void readData() FILE fp;/文件指针 struct student p1, p2; fp = fopen(FILE_DATA_PATH, ”r”); if (!fp) printf("文件打开错误!”); return 0; fscanf(fp,”dn”, TOTAL_NUM); head = p1 = p2 = (struct student )malloc(LEN); fscanf(fp,"ldt%stdt%ststs
21、tldtsn”, p1num, p1-name, p1age, p1sex, p1birthday, p1address, p1->tele_num, p1E_mail); while(!feof(fp) p1 = (struct student )malloc(LEN); fscanf(fp,”ldtstdtst%ststldtsn", p1>num, p1-name, p1->age, p1-sex, p1->birthday, p1>address, p1-tele_num, p1E_mail); p2next = p1; p2 = p1; p2n
22、ext = NULL; fclose(fp);/删除学生信息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) i
23、f(p1 = head) head = p1next; else p2>next = p1>next; free(p1); TOTAL_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 != p1num p1>next != NULL) p2 = p1; p1 = p1next; if(num = p1>num) devise(p1); else printf(”没有该学生记录,请核对!n”);void devise(struct student p) int choice; choice = -1; do printf(”请选择您要修改的学生的信息内容:n"); printf(”+-+n"); printf("| 姓名 请按 1 n”); pr
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 落实班组长连带责任制度
- 行政诉讼法举证责任制度
- 2026年安徽工业经济职业技术学院单招综合素质考试题库与答案详解
- 2026年及未来5年市场数据中国装修行业发展监测及投资战略规划报告
- 质量责任制度文案模板
- 车场安全管理责任制制度
- 2026年宁德职业技术学院单招职业适应性测试题库与答案详解
- 运营管护主体责任制度
- 邮政卫生责任制度汇编
- 酒店住宿登记责任制度
- 北京中学转学管理办法
- 统编版(2024)七年级下册道德与法治全册分课时同步练习题(含答案)
- 食堂承包管理难点及解决措施
- 2025年重庆市中考英语试卷真题(含标准答案及解析)
- 旋挖钻孔灌注桩全护筒跟进施工工艺主要施工方法及技术措施
- 大桥连续刚构桥实施性施工组织设计
- 《当前保密工作面临的新形势、新任务》课件
- 国家职业技术技能标准 6-11-01-04 制冷工 人社厅发2018145号
- 承插型盘扣式钢管脚手架安全技术标准JGJT231-2021规范解读
- 2025年齐齐哈尔市高三语文3月一模考试卷附答案解析
- 环卫清扫保洁服务方案投标文件(技术方案)
评论
0/150
提交评论