学生籍贯信息记录簿设计

合集下载

程序设计--学生籍贯信息记录簿

程序设计--学生籍贯信息记录簿

程序设计--学生籍贯信息记录簿一、需求分析为了方便管理和查询,需要对全体学生的籍贯信息进行记录和统计。

本系统需要满足以下功能要求:1. 记录学生的籍贯信息,包括省、市、县/区。

2. 可以查询某个省、市、县/区的学生人数及比例。

3. 可以查看某个学生的详细信息,包括学号、姓名、性别、身份证号、电话号码等。

二、概要设计本系统采用MVC架构,前端使用HTML+CSS+Javascript,后端使用Java语言和MySQL数据库实现。

1. 数据库设计数据库中包含两个表:学生表和籍贯表。

学生表包含学生的基本信息,籍贯表包含省、市、县/区的信息。

学生表字段如下:| 字段名 | 类型 | 说明 || ---------- | ------ | -------- || id | int | 主键 || name | varchar(20) | 姓名 || gender | int | 性别(0: 男, 1: 女) || id_card | varchar(18) | 身份证号码 || phone_num | varchar(11) | 电话号码 || province_id | int | 省id || city_id | int | 市id || county_id | int | 县/区id |2. 功能实现实现方法:1. 添加学生信息用户在前端输入学生信息,包括姓名、性别、身份证号码、电话号码和籍贯信息,点击保存按钮后将学生信息插入数据库中。

2. 查询某个省、市、县/区的学生人数及比例用户在前端选择省、市、县/区,点击查询按钮后,后端计算该地区的学生人数及比例,将结果在前端显示。

3. 查看某个学生的详细信息三、详细设计省、市、县/区的信息分别封装在Province、City和County类中。

学生信息封装在Student类中。

Province:public class Province {private int id;private String name;// getter和setter方法}City:Student:public class Student {private int id;private String name;private int gender;private String id_card;private String phone_num;private Province province;private City city;private County county;2. DAO层设计数据访问层(DAO)通过封装SQL查询语句,对数据库进行操作。

课程设计-学生籍贯管理设计

课程设计-学生籍贯管理设计

目录1 课题分析 (1)1.1 问题描述 (1)学生籍贯信息记录簿 (1)1.2 功能需求分析 (1)2 系统设计 (2)2.1 数据存储设计 (2)2.5 文件清单与说明 (4)3.1菜单设计 (5)3.2学生信息查看设计 (5)3.3 分盘存储设计 (6)4 测试数据与测试过程记录 (7)4.1 菜单测试 (7)4.2查看学生信息功能测试 (7)4.3 学生信息处理测试 (9)5 课程设计遇到的问题及解决方法 (20)6 课程设计总结 (20)参考文献 (21)附录源文件 (21)1 课题分析1.1 问题描述学生籍贯信息记录簿编制一个学生籍贯信息记录簿,每个学生信息包括:学号、姓名、籍贯。

具体功能:1) 系统以菜单方式工作;2)添加学生信息,至少10条。

3)显示所有学生的信息;4)按学号或姓名查询其籍贯;5)按籍贯查询并输出该籍贯的所有学生(至少3个城市);6)删除和修改学生的籍贯信息;7)显示输出上海市籍和非上海市籍学生的信息并可分别存盘。

1.2 功能需求分析1.图表图1 系统功能模块图2.表格2 系统设计2.1 数据存储设计void save_data(){FILE *fp;int i,k;k=dd.count;fp=fopen("c:/dada.txt","w");fwrite(&k,sizeof(int),1,fp);for(i=0;i<k;i++)fwrite(&dd.stu[i],sizeof(struct student),1,fp);fclose(fp);}2.2 数据结构设计void read_data(){FILE *fp;int i,k;struct student st;k=0;if(fopen("d:/students.txt","r")==NULL) // 如果文件不存在{fp=fopen("d:/students.txt","w");fwrite(&k,sizeof(int),1,fp);fclose(fp);}fp=fopen("d:/students.txt","r");fread(&k,sizeof(int),1,fp);dd.count=k;for(i=0;i<k;i++){fread(&st,sizeof(struct student),1,fp);strcpy(dd.stu[i].name,);strcpy(dd.stu[i].no,st.no);strcpy(dd.stu[i].ad,st.ad);}fclose(fp);}2.3 函数设计与说明2.4菜单设计2.5 文件清单与说明3 系统实现3.1菜单设计进入菜单页面,输入相应的功能序号,判定序号是否有效,若有效则执行,无效则提示有误并重新输入。

课程设计报告-学生籍贯信息记录薄

课程设计报告-学生籍贯信息记录薄

学生籍贯信息记录薄《学生籍贯信息记录簿》程序设计基础课程设计报告专业:计算机科学与技术系班级:一班姓名:学号:指导教师:完成日期:2012-6-25目录1. 课程设计目的................................................................................................................................ - 3 -1.1课程设计目的: (3)1.2课程设计题目: (3)1.3题目要求: (3)2.总体设计.......................................................................................................................................... - 5 -2.1总体组成框图: (5)2.2总体流程图: (5)3.详细设计.......................................................................................................................................... - 6 -3.1信息录入模块. (6)3.1.1函数功能:........................................................................................................................ - 6 -3.1.2函数入口:........................................................................................................................ - 6 -3.1.3函数流程图:.................................................................................................................... - 6 -3.2显示物品信息模块.. (7)3.2.1函数功能:........................................................................................................................ - 7 -3.2.2函数介绍:........................................................................................................................ - 7 -3.2.3函数流程图:.................................................................................................................... - 7 -3.3查找学生信息模块.. (8)3.3.1函数功能:........................................................................................................................ - 8 -3.3.2函数介绍:........................................................................................................................ - 8 -3.3.3函数流程图........................................................................................................................ - 9 -3.4删除学生信息模块.. (9)3.4.1函数功能:........................................................................................................................ - 9 -3.4.2函数介绍:........................................................................................................................ - 9 -3.4.3函数流程图:.................................................................................................................. - 10 -3.5修改学生信息模块 (10)3.5.1函数功能:...................................................................................................................... - 10 -3.5.2函数介绍:...................................................................................................................... - 10 -3.5.3函数流程图:.................................................................................................................. - 11 -3.6显示所有四川籍学生信息 (11)3.6.1函数功能.......................................................................................................................... - 11 -3.6.2函数介绍:...................................................................................................................... - 12 -3.6.3函数流程图...................................................................................................................... - 12 -4、运行结果..................................................................................................................................... - 13 -4.1主界面.. (13)4.2录入信息 (13)4.3显示学生信息 (14)4.4查找学生信息 (14)4.5删除学生信息 (15)4.6修改学生信息 (16)4.7四川籍学生信息展示 (17)5、课程设计总结............................................................................................................................. - 18 -6、参考文献..................................................................................................................................... - 19 -1. 课程设计目的1.1课程设计目的:《C++程序设计》是计算机科学与技术专业的必修课。

C语言程序设计学生籍贯信息记录簿

C语言程序设计学生籍贯信息记录簿

C语言程序设计学生籍贯信息记录簿编制一个学生籍贯信息记录簿,每个学生信息包括:学号、姓名、籍贯。

具体功能:(1)创建信息链表并以磁盘文件保存;(2)读取磁盘文件并显示输出所有学生的籍贯信息;(3)按学号或姓名查询其籍贯;(4)按籍贯查询并输出该籍贯的所有学生;(5)能添加、删除和修改学生的籍贯信息;#include<conio.h>#include<stdio.h>#include<stdlib.h>#include<string.h>#include<time.h>typedef struct{char id[12];char name[21];char origin[101];}student;FILE *fp;student stu,cache;void Menu(){system("cls");time_t t = time(0);char tmp[64];strftime(tmp, sizeof(tmp), "%Y/%m/%d %A",localtime(&t));puts(tmp);printf("\n");printf("1 --输入信息\n");printf("2 --显示所有信息\n");printf("3 --按学号查询\n");printf("4 --按姓名查询\n");printf("5 --按籍贯查询\n");printf("0 --退出\n\n\n请输入选项:");}void Creat_add(){system("cls");fp=fopen("stu_origin.dat","rb+");if(fp==NULL){fp=fopen("stu_origin.dat","wb+");if(fp==NULL){printf("can't creat the filestu_origin.dat!\n");printf("Press any key to exit...");getch();} }fseek(fp,0,SEEK_END);char next='y';while(next=='y'||next=='Y'){printf("请输入学号:");scanf("%s",stu.id);printf("请输入姓名:");scanf("%s",);printf("请输入籍贯:");scanf("%s",stu.origin);printf("\n\n确定写入数据?(y/n)");if(getch()=='y'||getch()=='Y') fwrite(&stu,sizeof(stu),1,fp);printf("\n\n是否继续输入?(y/n)");next=getch();system("cls");}fclose(fp);}void Display_all(){system("cls");fp=fopen("stu_origin.dat","rb");if(fp==NULL) {printf("can't open the file stu_origin.dat!\nPress any key to get back...");getch();}else{rewind(fp);printf("\n\n学号\t\t姓名\t\t籍贯\n");while(fread(&stu,sizeof(stu),1,fp))printf("%s\t%s\t%s\n",stu.id,,stu.origin);fclose(fp);printf("\n\nPress any key to get back...");getch();}}int Check_Id(char *Id,char c){rewind(fp);while(fread(&cache,sizeof(stu),1,fp)){if(strcmp(Id,cache.id)==0){printf("\n\n学号\t\t姓名\t\t籍贯\n");printf("%s\t%s\t%s\n",cache.id,,cache.origin);return 0;}}printf("\n\n无此学生!\n");return 1;}int Check_Name(char *Name,char c){int n=0;rewind(fp);while(fread(&cache,sizeof(stu),1,fp)){if(strcmp(Name,)==0){if(++n==1)printf("\n\n学号\t\t姓名\t\t籍贯\n");printf("%s\t%s\t%s\n",cache.id,,cache.origin);}}if(!n){printf("\n\n无此学生!\n");return 1;}return 0;}int Check_Orgin(char *Origin,char c){int n=0;rewind(fp);while(fread(&cache,sizeof(stu),1,fp)){if(strcmp(Origin,cache.origin)==0){if(++n==1)printf("\n\n学号\t\t姓名\t\t籍贯\n");printf("%s\t%s\t%s\n",cache.id,,cache.origin);}}if(!n){printf("\n\n无此学生!\n");return 1;}return 0;}void Search_id(){fp=fopen("stu_origin.dat","rb");if(fp==NULL) {printf("can't open the file stu_origin.dat!\nPress any key to get back...");getch();}char k;do{system("cls");do{printf("请输入学号:");gets(stu.id);}while(Check_Id(stu.id,'s'));printf("\n\n继续查询?(y/n)");k=getch();}while(k=='y'||k=='Y');fclose(fp);printf("\nPress any key to get back...");getch();}void Search_name(){fp=fopen("stu_origin.dat","rb");if(fp==NULL) {printf("can't open the file stu_origin.dat!\nPress any key to get back...");getch();}do{system("cls");do{printf("请输入姓名:");gets();}while(Check_Name(,'s'));printf("\n\n继续查询?(y/n)");}while(getch()=='y'||getch()=='Y');fclose(fp);printf("\nPress any key to get back...");getch();}void Search_origin(){fp=fopen("stu_origin.dat","rb");if(fp==NULL) {printf("can't open the file stu_origin.dat!\nPress any key to get back...");getch();}do{system("cls");do{printf("请输入籍贯:");gets(stu.origin);}while(Check_Orgin(stu.origin,'s'));printf("\n\n继续查询?(y/n)");}while(getch()=='y'||getch()=='Y');fclose(fp);printf("\nPress any key to get back...");getch(); }void Call(){char key=getch();if(key=='1') Creat_add();if(key=='2') Display_all();if(key=='3') Search_id();if(key=='4') Search_name();if(key=='5') Search_origin();if(key=='0') exit(1);}void main(){while(1){Menu();Call();}}该程序还不能删除和修改信息。

程序设计--学生籍贯信息记录簿

程序设计--学生籍贯信息记录簿

程序设计--学生籍贯信息记录簿-CAL-FENGHAI-(2020YEAR-YICAI)_JINGBIAN程序设计报告( 2012 /2013 学年第二学期)题目:学生籍贯信息记录簿专业学生姓名班级学号指导教师指导单位日期学生籍贯信息记录簿一、课题内容和要求编制一个学生籍贯信息记录簿,每个学生信息包括:学号、姓名、籍贯。

具体功能:(1)创建信息链表并以磁盘文件保存;(2)读取磁盘文件并显示输出所有学生的籍贯信息;(3)按学号或姓名查询其籍贯;(4)按籍贯查询并输出该籍贯的所有学生;(5)能添加、删除和修改学生的籍贯信息;(6)显示输出江苏籍和非江苏籍学生的信息并可分别存盘。

二、需求分析模块1:显示基本信息(创建信息链表并以磁盘文件保存,读取磁盘文件)模块2:输出籍贯信息(显示输出所有学生的籍贯信息)模块3:根据条件查询(按学号或姓名查询其籍贯,按籍贯查询)模块4:输出学生信息(输出该籍贯的所有学生)模块5:基本信息管理(添加、删除和修改学生的籍贯信息)模块6:分别显示存盘(显示输出江苏籍和非江苏籍学生的信息并可分别存盘)模块7:结束程序(退出系统)三、概要设计四、源程序代码#include<>#include<>#include<>#include<>#define MAX 100 取最初输入的信息并显示void Readfile(); 改第i个学生的姓名和籍贯void Save1(); 示输出江苏,非江苏学生信息void Find(int i); 学号或姓名查询籍贯void Finds(); 入信息并存档\n");printf("2.读取信息并显示\n");printf("3.按学号或姓名查询籍贯\n");printf("4.按籍贯查询学生\n");printf("5.修改(删除)指定姓名或学号的学生的姓名和籍贯\n");printf("6.显示输出江苏,非江苏学生信息\n");printf("**********************************************************\n");scanf("%s",&choose);switch(choose){case '1':{Input();Save1();}break;case '2':{Readfile();Display();}break;case '3':{Readfile();Find(1);}break;case '4':{Readfile();Finds();}break;case '5':{Readfile();Find(0);}break;case '6':{Readfile();Dis();}break;default:printf("输入错误,请重新输入:\n");}}while(1);}void Save2(int t) um,stu[t].name,stu[t].address);um);if(strcmp(stu[n].num,"Finish")==0) break;scanf("%s",stu[n].name);scanf("%s",stu[n].address);n++;}while(1);}void Save1() um,stu[i].name,stu[i].address);取信息并显示{int i;printf(" 学号姓名籍贯:\n");for(i=0;i<n;i++){printf("%5s %5s %5s\n",stu[i].num ,stu[i].name ,stu[i].address);}}void Find(int f) 学号或姓名查询籍贯{int i;int choose,k;char ans[50]; 学号查询\n");printf("2.按姓名查找\n");printf("3.返回主菜单\n");scanf("%d",&choose);if(choose==1){printf("请输入学号\n");scanf("%s",ans);k=-1;for(i=0;i<n;i++)if(strcmp(ans,stu[i].num)==0){k=i;break;}if(k==-1)printf("不存在该学生信息\n");else{if(f==1)printf("%s %s %s\n",stu[k].num,stu[k].name,stu[k].address);elseModify(k);ame)==0){k=i;break;}if(k==-1)printf("不存在该学生信息\n");else{if(f==1)printf("%s %s %s\n",stu[k].num,stu[k].name,stu[k].address);elseModify(k);改第t个学生的姓名和籍贯{int choose;int i;printf("1.删除\n");printf("2.修改\n");scanf("%d",&choose);if(choose==1){for(i=t;i<n-1;i++){stu[i]=stu[i+1];}n--;}else{printf(">>>>请重新输入该学生信息:\n");scanf("%s %s %s",stu[t].num,stu[t].name,&stu[t].address);}Save2(t); um,stu[n].name,&stu[n].address);示输出江苏,非江苏学生信息{int i;printf("江苏学生:\n");printf("学号姓名籍贯\n");for(i=0;i<n;i++){if(strcmp(stu[i].address,"江苏")==0)um,stu[i].name,stu[i].address);}}printf("\n");printf("\n");printf("非江苏学生:\n");printf("学号姓名籍贯\n");for(i=0;i<n;i++){if(strcmp(stu[i].address,"江苏")!=0){printf("%s %7s %5s\n",stu[i].num,stu[i].name,stu[i].address);}}}void Finds(){int i,k=-1;int choose;char ans[50];printf("请输入籍贯\n");scanf("%s",ans);for(i=0;i<n;i++)if(strcmp(ans,stu[i].address)==0){k=1;printf("%s %s %s\n",stu[i].num,stu[i].name,stu[i].address);}if(k=-1)printf("无此省份学生信息\n");return;}五、测试数据及其结果分析截取了调试时的图片,基本符合要求,但然后一些不人性化的地方值得修改。

学生籍贯信息记录簿设计c语言

学生籍贯信息记录簿设计c语言

学生籍贯信息记录簿设计c语言学生籍贯信息记录簿设计C语言随着教育水平的提高,学生的籍贯信息越来越重要。

籍贯信息记录簿是学生个人信息管理的一个重要组成部分,它既方便管理者查看学生人口分布情况,也方便学生查询自己的籍贯信息。

本文将介绍一个基于C语言的学生籍贯信息记录簿设计方案。

这个方案可以轻松地记录和查询学生的籍贯信息,还支持对信息进行排序和修改。

1、设计思路设计一个包含以下功能的学生籍贯信息记录簿:- 添加学生籍贯信息:输入学生的姓名和籍贯信息,将其加入记录簿中。

- 查询学生籍贯信息:按学生姓名查询学生籍贯信息。

- 修改学生籍贯信息:按学生姓名修改学生籍贯信息。

- 排序学生籍贯信息:按学生姓名或籍贯信息排序学生籍贯信息。

- 导出学生籍贯信息:将学生籍贯信息导出为文本文件。

2、数据结构设计为实现上述功能,需要以下数据结构:``` struct student { char name[20]; //学生姓名 char province[20]; //籍贯 };struct node { struct student data; //数据struct node *next; //指向下一个节点的指针 }; ```这里用链表来存储学生籍贯信息记录簿,每个节点表示一个学生的信息。

数据结构包含了学生姓名和籍贯信息,还有指向下一个节点的指针。

3、函数设计实现上述功能,需要以下函数:- `void menu()`: 显示功能菜单。

- `voidadd_node(struct node **head)`: 添加节点。

- `void search_node(struct node *head)`: 按学生姓名查询节点。

- `void modify_node(struct node *head)`: 按学生姓名修改节点。

- `void sort_node(struct node*head)`: 按学生姓名或籍贯信息排序节点。

学生籍贯信息记录簿

学生籍贯信息记录簿

<<"
*
Page
8
cin>>k; if (k==1) {AddStudent();SaveFile();} else if(k==2) Loop(); else if(k==3) FindID(); else if(k==4) FindProvince(); else if(k==5) FindName(); else if(k==6) {Remove();SaveFile();} else if(k==7) {Xg();SaveFile();} else if(k==0) cout<<"完成!!!\n"; else cout<<"你输入了一个错误的数字,请重新输入:"; } }
Page
15
按学号查询学生(部分主要程序)
int FindID()//按学号查询学生: { int id1,id2; string province,name; cout<<"学号:";cin>>id1; ifstream iFile(fileName.c_str());//用文件输入流读入文件名为fileName这个文件 while(iFile>>id2>>province>>name) { if(id1==id2) { cout<<id2<<" "<<province<<" "<<name<<endl; break; } } iFile.close(); return 0; }
Page
18
修改前学生信息

学生籍贯记录簿设计

学生籍贯记录簿设计

华科学院计算机科学与技术系信息管理与信息系统专业《程序设计综合课程设计》报告(2010/2011学年第一学期)学生姓名:学生班级:学生学号:指导教师:2011年01月12日目录第一章课程设计的目的和要求 (2)1.1课程设计的目的: (2)1.2课程设计的要求: (2)第二章课程设计任务内容 (3)2.1考核内容 (3)2.1.1编写C++语言程序 (3)2.1.2课程设计报告 (3)2.2课题 (3)第三章详细设计说明 (4)3.1总体设计: (4)3.2函数功能说明: (4)3.3详细设计流程图: (5)3.3运行结果: (7)第四章软件使用说明 (10)4.1程序运行环境 (10)4.2程序操作方法 (10)第五章课程设计心得与体会 (11)附录一参考文献 (12)附录二程序清单 (13)《程序设计基础》课程设计——学生籍贯信息记录簿第一章课程设计的目的和要求1.1课程设计的目的:用高级程序语言设计出学生籍贯纪录系统,实现查找方便快捷。

通过用高级程序语言制作程序,熟悉用高级程序语言编程的操作和步骤,学习高级程序语言的运用,以及高级程序语言实验报告的书写格式,使学生掌握一门高级程序设计语言,了解面向对象程序设计的基本概念与方法,进而学会利用C++语言学会解决一般应用问题,并为后续的专业课程奠定程序设计基础。

1.2课程设计的要求:课程设计要求学会分析研究计算机加工的数据结构的特性,了解并掌握涉及的数据选择的适当的逻辑结构、存储结构及其相应的算法等,同时要求在掌握的基础上学会编写程序,使程序结构清楚和正确易读,符合软件工程的规范。

通过编写C++程序,设计学生籍贯信息管理系统,可以方便对学生信息进行查找及管理,或者添加、删除及修改学生信息,将信息永久保存。

第二章课程设计任务内容2.1考核内容2.1.1编写C++语言程序●针对编写的C++程序,应该主要考查下列内容:●是否符合题目要求,是否完成了主要功能;●是否存在语法错误、逻辑错误及运行错误;●程序设计是否合理;●程序是否具有良好的可读性和可靠性;●是否符合结构化程序设计所倡导的基本理念;●用户界面是否友好。

学籍信息记录薄

学籍信息记录薄

HUNAN UNIVERSITY 程序设计训练报告学生姓名易伟浪殷婷婷学生学号20110704115 20110704106 专业班级测控技术与仪器一班指导老师洪跃山2012 年7 月 4 日一. 需求分析随着计算机技术的日益发达,计算机软件功能已涉入生活的诸多方面。

其中对学生籍贯信息的管理就是其中的一个小小的方面。

利用计算机软件来管理学生籍贯信息能够克服传统的文档管理的不足。

通过计算机实现学生籍贯信息管理薄具有存储信息量大,方便查询,修改,添加,删除,浏览等传统纸质文档不具备的良好功能。

二. 程序功能说明 1.功能分析说明图:2.各项功能说明:a.主菜单:用于显示系统主模块信息,供用户选择。

b.录入学生籍贯信息:用来将员工信息输入到计算机中,并保存到数据文件中,此模块还具有添加学生籍贯信息的功能。

c.查询学生籍贯信息:可按学号和姓名查找学生籍贯信息。

d.浏览学生籍贯信息:将系统中已有学生籍贯信息全部列出。

e.修改学生籍贯信息:根据学号进行查询,修改指定字段内容。

f.删除学生籍贯信息:删除指定学号的学生籍贯信息。

以上模块可由用户选择执行,另外,当用户运行此程序时,必须判断学生信息是否曾经保存过。

若学生籍贯信息事先未保存,必须先进行学生籍贯信息的录入。

三.软件基本操作先打开源程序,编译,运行。

然后根据提示输入相关内容。

具体如下:1.若学生籍贯信息已存在(即data.dat文件被创建,且不为空),输入Y或y,进入主界面。

若学生籍贯信息已存在则按其他键,进入主界面。

如图所示(主界面):2.输入要选择的项目(选择1),进入界面(按照提示进行输入):a.若学籍信息已保存过,则输入的信息添加到文件中。

b.若学学籍信息未保存过,输入的信息组成链表首次存到文件中。

c.若不再继续添加,则输入其他键,此时程序会将调用print()函数将文件中信息显示出来。

再输入除n或N的其他键,保存刚输入的内容。

d.最后保存完毕时,输入任意键返回主界面。

籍贯信息记录簿

籍贯信息记录簿

《高级语言程序设计》课程设计报告课题名称:学生籍贯信息记录簿姓名:胡瑞君班级:物联网1312 学号:指导教师:张艳电子信息学院2014年 7月 4日目录1 课题分析 (3)1.1 问题描述 (3)1.2 功能需求分析 (3)1.3 数据属性分析 (3)2 系统设计.............................. 错误!未定义书签。

2.1 数据存储设计 (4)2.2 数据结构设计 (5)2.3 函数设计与说明 (5)2.4 菜单设计 (5)2.5 文件清单与说明 (6)3 系统实现 (8)3.1 添加学生籍贯信息 (9)3.2 修改学生籍贯信息 (10)3.3 删除学生籍贯信息 (10)3.4 显示所有学生信息与查询 (11)3.5 显示上海与非上海市籍学生信息 (13)4 测试数据与测试过程记录 (14)4.1 菜单测试 (15)4.2 系统功能测试 (15)5 课程设计遇到的问题及解决方法 (17)6 课程设计总结 (17)参考文献 (18)1 课题分析1.1 问题描述以本班同学的具体数据为背景,编制一个学生籍贯信息记录簿,每个学生信息包括:学号、姓名、籍贯。

具体功能为:1)系统以菜单方式工作;2)添加学生信息,至少10条。

3)显示所有学生的信息;4)按学号或姓名查询其籍贯;5)按籍贯查询并输出该籍贯的所有学生(至少3个城市);6)删除和修改学生的籍贯信息;7)显示输出上海市籍和非上海市籍学生的信息并可分别存盘。

1.2 功能需求分析按系统所需实现的功能要求,功能模块如图1所示。

图1 系统功能模块图1.3 数据属性分析学生籍贯信息记录簿中的数据信息主要有一类,即学生信息,其记录属性如下。

1.3.1 学生信息属性●姓名:学生姓名,由汉字组成,长度小于10个字符。

●学号:由两到三位数字组成,且学号不可重复,长度小于50个字符。

●籍贯:学生籍贯,由汉字组成,长度小于20个字符。

1.3.2 学生数组信息属性●数组中学生的个数。

课程设计学生籍贯信息薄

课程设计学生籍贯信息薄

课程设计学生籍贯信息薄一、教学目标本课程的教学目标是使学生掌握籍贯信息的定义、分类和收集方法,培养学生对不同籍贯文化的认识和尊重,提高学生运用信息技术整理和分析籍贯信息的能力。

知识目标:学生能够理解籍贯信息的含义,掌握不同籍贯的分类及特点,了解收集、整理和分析籍贯信息的基本方法。

技能目标:学生能够运用信息技术手段,如网络搜索、数据整理等,收集和处理不同籍贯的信息,从而提高信息处理能力。

情感态度价值观目标:通过本课程的学习,学生能够增强对不同地域文化的认识和理解,培养尊重多元文化的态度,增强民族自豪感。

二、教学内容本课程的教学内容主要包括籍贯信息的定义、分类和收集方法,以及如何运用信息技术整理和分析籍贯信息。

1.籍贯信息的定义:介绍籍贯的概念,解释籍贯信息的含义及其在历史、文化研究中的重要性。

2.籍贯信息的分类:分析不同籍贯的分类及其特点,如省份、城市、乡村等,让学生了解不同籍贯的文化差异。

3.籍贯信息的收集方法:介绍收集、整理和分析籍贯信息的基本方法,如查阅历史文献、访问老辈人、利用网络资源等。

4.信息技术在籍贯信息整理中的应用:教授如何运用信息技术手段,如网络搜索、数据整理等,收集和处理不同籍贯的信息。

三、教学方法本课程将采用讲授法、案例分析法、小组讨论法和实验法等多种教学方法,以激发学生的学习兴趣和主动性。

1.讲授法:教师讲解籍贯信息的定义、分类和收集方法,以及信息技术在籍贯信息整理中的应用。

2.案例分析法:分析具体的籍贯信息案例,让学生了解不同籍贯的特点,培养学生的分析能力。

3.小组讨论法:学生进行小组讨论,分享各自收集的籍贯信息,提高学生的合作能力和沟通能力。

4.实验法:让学生动手操作,运用信息技术手段收集和处理籍贯信息,提高学生的实践能力。

四、教学资源本课程的教学资源包括教材、参考书、多媒体资料和实验设备。

1.教材:选用权威、实用的教材,为学生提供基础知识。

2.参考书:提供相关领域的参考书籍,丰富学生的知识体系。

c语言程序学生籍贯信息记录簿设计

c语言程序学生籍贯信息记录簿设计

c 语言程序学生籍贯信息记录簿设计学生籍贯信息记录簿课程设计报告书班级: 方0909-1 学号: 20096401 姓名: 苑小叶指导教师: 康亚男石家庄铁道大学四方学院2010年07月14日1课程设计报告内容1. 选择题目题目: 学生籍贯信息记录簿设计 2. 内容摘要摘要:学生籍贯信息管理系统是典型的信息管理系统, 根据开发要求,主要完成对学生姓名、学号、籍贯等管理。

随着学校办学规模的不断扩大、办学层次的多样化、在校生的不断增多。

开发这系统可以是教务处老师减轻工作压力,比较系统的对学生进行管理,加快速度、加强管理,使各项管理更加规范化。

本系统管理内容广泛,全面涉及管理学生资料信息的管理。

3. 索引关键词关键词:学生籍贯管理,结构体,循环,函数学生籍贯信息记录簿4. 目录目录1题目要求................................................ 4 2设计思想............................................. 4 3系统完成及功能.......................................... 44界面设计............................................ 5 5正文................................................. 5 6结论................................................. 14 7参考资料............................................ 14 8后记................................................. 15 9附录. (15)3学生籍贯信息记录簿 5. 正文1.1 课程设计题目要求1.要求利用C语言面向过程的编程思想来完成系统的设计;2.突出C语言的函数特征,以多个函数实现每一个子功能;3. 画出功能模块图;4. 进行简单界面设计,能够实现友好的交互;5. 具有清晰的程序流程图和数据结构的详细定义;6.熟练掌握C语言对文件的各种操作。

程序设计--学生籍贯信息记录簿

程序设计--学生籍贯信息记录簿

程序设计报告(2012 /2013 学年第二学期)题目:学生籍贯信息记录簿专业学生姓名班级学号指导教师指导单位日期学生籍贯信息记录簿一、课题容和要求编制一个学生籍贯信息记录簿,每个学生信息包括:学号、姓名、籍贯。

具体功能:(1)创建信息链表并以磁盘文件保存;(2)读取磁盘文件并显示输出所有学生的籍贯信息;(3)按学号或姓名查询其籍贯;(4)按籍贯查询并输出该籍贯的所有学生;(5)能添加、删除和修改学生的籍贯信息;(6)显示输出籍和非籍学生的信息并可分别存盘。

二、需求分析模块1:显示基本信息(创建信息链表并以磁盘文件保存,读取磁盘文件)模块2:输出籍贯信息(显示输出所有学生的籍贯信息)模块3:根据条件查询(按学号或姓名查询其籍贯,按籍贯查询)模块4:输出学生信息(输出该籍贯的所有学生)模块5:基本信息管理(添加、删除和修改学生的籍贯信息)模块6:分别显示存盘(显示输出籍和非籍学生的信息并可分别存盘)模块7:结束程序(退出系统)三、概要设计四、源程序代码#include<stdio.h>#include<string.h>#include<stdlib.h>#include<math.h>#define MAX 100 //宏定义最多输入人数typedef struct{char num[50];char name[50];char address[50];}Student; //定义了一个新的结构体类型Student Student stu[MAX]; //定义结构体型数组int n; //定义一个全局变量,表示第n个学生int t;int s=0;void Input(); //输入信息void Display(); //2.读取最初输入的信息并显示void Readfile(); //读取文件student.dat的信息void Modify(int i); //5.修改第i个学生的姓名和籍贯void Save1(); //将最初输入的容存档到student.dat文件中void Save2(); //传送格式化输出到student.dat文件void Dis(); //6.显示输出,非学生信息void Find(int i); //3.按学号或姓名查询籍贯void Finds(); //4按籍贯查找学生void main(){char choose;do {if(s==0){int M=35;printf("欢迎大家进入邮电大学籍贯管理系统\n");s++;}printf("**********************************************************\n");printf("1.输入信息并存档\n");printf("2.读取信息并显示\n");printf("3.按学号或姓名查询籍贯\n");printf("4.按籍贯查询学生\n");printf("5.修改(删除)指定姓名或学号的学生的姓名和籍贯\n");printf("6.显示输出,非学生信息\n");printf("**********************************************************\n");scanf("%s",&choose);switch(choose){case '1':{Input();Save1();}break;case '2':{Readfile();Display();}break;case '3':{Readfile();Find(1);}break;case '4':{Readfile();Finds();}break;case '5':{Readfile();Find(0);}break;case '6':{Readfile();Dis();}break;default:printf("输入错误,请重新输入:\n");}}while(1);}void Save2(int t) //传送格式化输出到student.dat文件中{FILE* fp;fp=fopen("student.dat","w"); //以只写的方式打开student.dat文件fprintf(fp,"%s %s %s\n",stu[t].num,stu[t].name,stu[t].address);//格式化输出:学号姓名地址fclose(fp);}void Input() //输入信息{n=0;do{printf("请输入第%d个学生信息,输入Finish结束输入(输入格式:学号姓名籍贯)\n",n+1);scanf("%s",stu[n].num);if(strcmp(stu[n].num,"Finish")==0) break;scanf("%s",stu[n].name);scanf("%s",stu[n].address);n++;}while(1);}void Save1() //将最初输入的容存档到student.dat文件中{int i;FILE* fp;if((fp=fopen("student.dat","a+"))==NULL)//以读写的方式打开student.dat文件fp=fopen("student.dat","w"); //以只写的方式打开student.dat文件for(i=0;i<n;i++){fprintf(fp,"%s %s %s\n",stu[i].num,stu[i].name,stu[i].address);//用格式化输出函数输出容到student.dat}fclose(fp);}void Display() //2.读取信息并显示{int i;printf(" 学号姓名籍贯:\n");for(i=0;i<n;i++){printf("%5s %5s %5s\n",stu[i].num ,stu[i].name ,stu[i].address);}}void Find(int f) //3.按学号或姓名查询籍贯{int i;int choose,k;char ans[50]; //定义字符串型数组,用于查找do{printf("1.按学号查询\n");printf("2.按姓名查找\n");printf("3.返回主菜单\n");scanf("%d",&choose);if(choose==1){printf("请输入学号\n");scanf("%s",ans);k=-1;for(i=0;i<n;i++)if(strcmp(ans,stu[i].num)==0){k=i;break;}if(k==-1)printf("不存在该学生信息\n");else{if(f==1)printf("%s %s %s\n",stu[k].num,stu[k].name,stu[k].address);elseModify(k);//执行修改第t个学生的姓名和籍贯的函数}}else if(choose==2){printf("请输入姓名\n");scanf("%s",ans);k=-1;for(i=0;i<n;i++)if(strcmp(ans,stu[i].name)==0){k=i;break;}if(k==-1)printf("不存在该学生信息\n");else{if(f==1)printf("%s %s %s\n",stu[k].num,stu[k].name,stu[k].address);elseModify(k);//执行修改第t个学生的姓名和籍贯的函数}}else return;}while(1);}void Modify(int t) //4.修改第t个学生的姓名和籍贯{int choose;int i;printf("1.删除\n");printf("2.修改\n");scanf("%d",&choose);if(choose==1){for(i=t;i<n-1;i++){stu[i]=stu[i+1];}n--;}else{printf(">>>>请重新输入该学生信息:\n");scanf("%s %s %s",stu[t].num,stu[t].name,&stu[t].address);}Save2(t); //传送修改过的格式化输出到student.dat文件中}void Readfile() //读取文本文件student.dat的信息{FILE *fp;if((fp=fopen("student.dat","r"))==NULL) return ;//以只读的方式打开student.dat文件n=0;while(!feof(fp)) //判断文件指针是否指向文件结束处{fscanf(fp,"%s%s%s",stu[n].num,stu[n].name,&stu[n].address);//利用fscanf()函数输入信息n++;}fclose(fp);}void Dis() //5.显示输出,非学生信息{int i;printf("学生:\n");printf("学号姓名籍贯\n");for(i=0;i<n;i++){if(strcmp(stu[i].address,"")==0)//比较字符串大小{printf("%s %5s %5s\n",stu[i].num,stu[i].name,stu[i].address);}}printf("\n");printf("\n");printf("非学生:\n");printf("学号姓名籍贯\n");for(i=0;i<n;i++){if(strcmp(stu[i].address,"")!=0){printf("%s %7s %5s\n",stu[i].num,stu[i].name,stu[i].address);}}}void Finds(){int i,k=-1;int choose;char ans[50];printf("请输入籍贯\n");scanf("%s",ans);for(i=0;i<n;i++)if(strcmp(ans,stu[i].address)==0){k=1;printf("%s %s %s\n",stu[i].num,stu[i].name,stu[i].address);}if(k=-1)printf("无此省份学生信息\n");return;}五、测试数据及其结果分析截取了调试时的图片,基本符合要求,但然后一些不人性化的地方值得修改。

学生信息记录薄.

学生信息记录薄.
if (k == 1)
{
system("cls");
goto c;
}
else
{
system("pause");
}
return 0;
}
3.2 数据录入实现
StuNode *CreateList(StuNode *Head)
{
StuNode *pnew,*paid,*ps,*pe;
Head=NULL;
cout<<"开始创建学生链表,输入学号为0或负则停止:"<<endl;
实现修改学生信息;
StuNode *showscjg(StuNode *Head)
实现显示四川籍贯信息的学生信息;
StuNode *showfscjg(StuNode *Head)
实现显示非四川籍贯信息的学生信息;
3 详细设计
3.1 主函数的实现
int _tmain(int argc, _TCHAR* argv[])
//cout<<infile.tellg()<<endl;
if(Head==NULL)
{
Head=pnew;
paid=pnew;
paid->next=NULL;
}
else
{
paid->next=pnew;
paid=pnew;
paid->next=NULL;
}
}//while,读文件结束
infile.close();
关键词:学生籍贯信息、更快、更强、更加规范、更加方便

经过一个学期的学习,我们应掌握C++语言编程的基础知识。较熟练地编写C++语言应用程序。了解C语言的常用标准函数、编程技巧、异常处理。联系已学过的内容,巩固所学的理论,增强独立工作能力。通过设计主要使学生有一个独立编写程序的过程,对理论学习及动手能力都有一个很大的提高。通过本次设计,进一步培养学生热爱专业的思想,同时对本专业综合素质的提高起一个积极的推动作用。

学生籍贯信息记录簿.

学生籍贯信息记录簿.

程序设计课程设计报告学生籍贯信息记录簿计算机科学与技术专业__________ (嵌入式软件人才培养)______ 学生姓名_______________ 李苏兴______________ 班级_______________________________________ 学号_______________________________________ 指导教师____________________________________完成日期____________ 2013年6月____________目录第 1 章设计目的............................................... 第 2 章设计内容与要求......................................... 第 3 章主要技术指标及特点..................................... 第 4 章设计小结............................................... 第 5 章参考文献............................................... 附录:源代码清单...............................................第1章设计目的1) 加深对《C 语言程序设计》课程知识的理解,掌握 发方法和步骤;2) 进一步掌握和利用C 语言进行课程设计的能力;3) 进一步理解和运用结构化程序设计的思想和方法;4) 初步掌握开发一个小型实用系统的基本方法;5) 学会调试一个较长的程序的基本方法;6) 学会利用流程图或N-S 图表示算法;7) 掌握书写课程设计开发文档的能力(书写课程报告) C 语言应用程序的开第2 章设计内容与要求课程设计目的课程设计题目:学生籍贯信息记录簿;该软件主要是编制一个学生籍贯信息记录簿每个学生信息包括:学号、姓名、籍贯具体功能要求如下:1) 创建信息链表并以磁盘文件保存;2) 读取磁盘文件并显示输出所有学生的籍贯信息;3) 按学号或姓名查询其籍贯;4) 按籍贯查询并输出该籍贯的所有学生;5) 能添加、删除和修改学生的籍贯信息;6) 显示输出江苏籍和非江苏籍的所有学生的信息并可分别存盘第3章主要技术指标及特点各项功能(模块层次图):该软件主要组成模块和各个模块之间的调用关系如图:退出系统程序采用主要的结构类型分析该程序采用的是结构体类型来处理学生的所有基本信息,如下所述结构体为:typedef struct Student {char num[20];char name[20];char place[20];struct Student *next;}STU;包含的库函数有:#include <stdio.h>#include <string.h>#include <stdlib.h> //文件的使用包含的函数有:Select(); /*主菜单*/New(); /* 初始化学生信息*/Add(); /* 添加学生信息*/Query1(); /* 查找学生信息(按学号)*/Query2(); /*查找学生信息(按姓名)*/Query3(); /*查找学生信息(按籍贯)*/Change(); /* 修改学生信息*/Displayall(); /* 显示学生信息(全部)*/Displayjs(); /* 显示学生信息(分类)*/Delete(); /* 删除学生信息*/Save(); /* 保存学生信息*/Load(); /* 载入学生信息*/函数分析(1)main()该函数的主要功能是调用其他12 个函数来实现主菜单的8 项功能,通过择语句switch 选选择操作,然后通过调用各种函数实现调用:void mai n(){FILE *fp; /*创建文件型指针*/if((fp=fope n("Stude nt.dat","rb"))==NULL)New();elseLoad();for(;;) /*循环调用模式,保证能进行重复操作*/{switch(Select()) /* 功能选择*/{case 0:system("cls");/*清除屏幕先前的显示内容*/ Save();printf("\n\n\t 文件保存成功!\n");printf("\n\n\t欢迎下次使用本系统!\n"); getchar();exit(0);case 1: Add();break;case 2: Query1();break;case 3: Query2();break;case 4: Query3();break;case 5: Chan ge();break;case 6: Delete();break;case 7: Displayall();break;case 8: Displayjs();break; default:printf("\n 错误!");exit(O);}第4章设计小结好久没用C语言写东西了,自从程序竞赛结束后就没怎么碰过C语言,在做课程设计的时候暴露出很多问题,知识点的遗忘之类的。

3-学生籍贯信息记录簿设计

3-学生籍贯信息记录簿设计

合肥学院计算机科学与技术系课程设计任务书2010~2011学年第二学期课程C语言课程设计课程设计名称学生籍贯信息记录簿设计专业班级指导教师2011年6月一、课程设计目的将理论教学中涉及到的知识点贯穿起来,对不同的数据类型、程序控制结构、数据结构作一比较和总结,结合设计题目进行综合性应用,对所学知识达到融会贯通的程度。

通过课程设计,学生在下述各方面的能力应该得到锻炼:(1)进一步巩固、加深学生所学专业课程《C语言教程》的基本理论知识,理论联系实际,进一步培养学生综合分析问题,解决问题的能力。

(2)全面考核学生所掌握的基本理论知识及其实际业务能力,从而达到提高学生素质的最终目的。

(3)利用所学知识,开发小型应用系统,掌握运用C语言编写调试应用系统程序,训练独立开发应用系统,进行数据处理的综合能力。

(4)对于给定的设计题目,如何进行分析,理清思路,并给出相应的数学模型。

(5)掌握自顶而下的设计方法,将大问题进行模块化,领会结构化程序设计的方法。

(6)熟练掌握C语言的基本语法,灵活运用各种数据类型。

(7)进一步掌握在集成环境下如何调试程序(单步调试,设置断点、观察表达式,分块调试)和修改程序。

二、课程设计名称及内容课程设计名称:学生籍贯信息记录簿设计设计内容:设计一个学生籍贯信息记录簿系统,该系统要求对学生籍贯信息进行管理和维护。

三、任务和要求编制一个学生籍贯信息记录簿,每个学生信息包括:学号、姓名、性别、年龄、籍贯。

具体功能:(1)创建信息链表并以磁盘文件保存;(2)读取磁盘文件并显示输出所有学生的籍贯信息;(3)按学号或姓名查询其籍贯;(4)按籍贯查询并输出该籍贯的所有学生;(5)能添加、删除和修改学生的籍贯信息(可选项);四、主要知识点●程序设计方法●界面制作●动态数组(链表)●文件的读写五、其他程序设计可在Turbo C、VC++、C++ Builder环境下进行。

六、参考资料[1]黄明等编著《C语言课程设计》北京:电子工业出版社[2]郭翠英编著《C语言课程设计案例精编》北京:中国水利水电出版社[3] 宁正元《数据结构(c语言)》南京:东南大学出版社。

学生个人信息登记表模板

学生个人信息登记表模板

身份证件有效期 2030年7月30日
学生个人联系信息
学生家庭成员或监护人信息(一)
户口所在地 联系电话 是否监护人 身份证件类型 身份证件号 职务
姓名 关系 关系说明 民族 工作单位 现住址
学生家庭成员或监护人信息(二)
户口所在地 联系电话 是否监护人 身份证件类型 身份证件号 职务
家长签字: 班主任签字: 学校负责人签字: 填表日期: 审核日期:
姓名 性别 出生日期 出生地 籍贯 身份证号
现住址 家庭地址 联系电话 电子信箱
姓名 关系 关系说明 民族 工作单位 现住址
学生个人信息登记表
XXXX中学XX级学生信息登记表
学生基础信息
国籍/地区
姓名拼音
班内学号身份证件类型源自曾用名班级民族
户口所在地
入学年月
政治面貌
户口性质
入学方式
健康状况
特长
就读方式
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

学生籍贯信息记录簿课程设计报告书学生籍贯信息记录簿设计班级:学号:姓名:指导教师:石家庄铁道大学2010年07月14日1课程设计报告内容1.选择题目题目:学生籍贯信息记录簿设计2.内容摘要摘要:学生籍贯信息管理系统是典型的信息管理系统,根据开发要求,主要完成对学生姓名、学号、籍贯等管理。

随着学校办学规模的不断扩大、办学层次的多样化、在校生的不断增多。

开发这系统可以是教务处老师减轻工作压力,比较系统的对学生进行管理,加快速度、加强管理,使各项管理更加规范化。

本系统管理内容广泛,全面涉及管理学生资料信息的管理。

3.索引关键词关键词:学生籍贯管理,结构体,循环,函数4.目录目录1题目要求 (4)2设计思想 (4)3系统完成及功能 (4)4界面设计 (5)5正文 (5)6结论 (14)7参考资料 (14)8后记 (15)9附录 (15)35.正文1.1课程设计题目要求1. 要求利用C语言面向过程的编程思想来完成系统的设计;2. 突出C语言的函数特征,以多个函数实现每一个子功能;3. 画出功能模块图;4. 进行简单界面设计,能够实现友好的交互;5. 具有清晰的程序流程图和数据结构的详细定义;6. 熟练掌握C语言对文件的各种操作。

2.1设计思想程序运用结构体数组和循环进行程序的编写.3.1系统完成功能及功能框图1每条记录包括一个学生学号、姓名、籍贯。

2输入功能:可以一次完成无数条记录的输入。

3显示功能:完成全部学生记录的显示。

4查找功能:完成按姓名、学号查找学生记录,并显示。

5修改功能:通过查找学生姓名、学号,修改学生记录。

6保存功能:将学生记录保存到任何自定义的文件中。

7读取功能:将保存到文件中的学生记录读取出来。

8应提供一个界面来调用各个功能,调用界面和功能的操作界面应尽可能清晰美观。

44.1界面设计5.1核心算法及说明#include <stdio.h>#include <io.h>#include <stdlib.h>#include <string.h>#define MAX 300struct student{char name[10]; // 姓名char no[50]; // 学号char ad[20]; //籍贯};struct data{5int count; // 当前学生数组中学生的个数struct student stu[MAX]; // 学生数组} dd;// 显示主菜单void menu(){system("cls");printf("\n");printf("\t\t\t********************************\n"); printf("\t\t\t* *\n"); printf("\t\t\t* 学生籍贯信息记录簿 *\n"); printf("\t\t\t* *\n"); printf("\t\t\t* [0] 退出 *\n"); printf("\t\t\t* [1] 查看所有学生信息 *\n"); printf("\t\t\t* [2] 输入学生记录 *\n"); printf("\t\t\t* [3] 删除学生记录 *\n"); printf("\t\t\t* [4] 编辑学生记录 *\n"); printf("\t\t\t* [5] 查询(学号) *\n"); printf("\t\t\t* [6] 查询(姓名) *\n"); printf("\t\t\t* [7] 查询(籍贯) *\n"); printf("\t\t\t* *\n"); printf("\t\t\t********************************\n"); printf("\t\t\t* 制作人: *\n");}// 等待用户按回车后回到主菜单void to_menu(){char c1,c2;printf("\n\n\n按回车键返回主菜单...");scanf("%c%c",&c1,&c2);menu();}// 查看所有学生信息6void view_data(){int i;printf("姓名\t学号\t籍贯");printf("\n-------------------------------------------------------------------\n");for(i=0;i<dd.count;i++)printf("%s\t%s\t%s\n",dd.stu[i].name,dd.stu[i].no,dd.stu[i].ad);}// 将数据从结构体数组保存到文件中void save_data(){FILE *fp;int i,k;k=dd.count;fp=fopen("c:/dada.txt","w");fwrite(&k,sizeof(int),1,fp);for(i=0;i<k;i++)fwrite(&dd.stu[i],sizeof(struct student),1,fp);fclose(fp);}// 输入学生记录void add_data(){struct student st;int b;int k;int i,j;while(1){j=0;7printf("\n请输入学生信息:");printf("\n姓名\t学号\t籍贯");printf("\n---------------------------------------------------------------\n" );scanf("%s%s%s",,st.no,st.ad);for(i=0;i<dd.count;i++)if(strcmp(dd.stu[i].no,st.no)==0){j=1;printf("学号录入重复,请重新输入!");break;}if(j==1)continue;if(j==0){k = dd.count;strcpy(dd.stu[k].name,);strcpy(dd.stu[k].no,st.no);strcpy(dd.stu[k].ad,st.ad);dd.count++;}printf("\n\n继续添加学生信息[1-yes 0-no]:");scanf("%d",&b);if(b==0) break;}save_data();}// 将数据从文件读到结构体数组中void read_data(){FILE *fp;int i,k;8struct student st;k=0;if(access("c:/dada.txt",0)==-1) // 如果文件不存在{fp=fopen("c:/dada.txt","w");fwrite(&k,sizeof(int),1,fp);fclose(fp);}fp=fopen("c:/dada.txt","r");fread(&k,sizeof(int),1,fp);dd.count=k;for(i=0;i<k;i++){fread(&st,sizeof(struct student),1,fp);strcpy(dd.stu[i].name,);strcpy(dd.stu[i].no,st.no);strcpy(dd.stu[i].ad,st.ad);}fclose(fp);}// 删除学生记录void delete_data(){int i,k;char no[50];printf("\n请输入要删除学生的学号:");scanf("%s",no);k=-1;for(i=0;i<dd.count;i++){if(strcmp(dd.stu[i].no,no)==0){k=i;9break;}}if(k==-1){printf("\n\n没有找到该学生(学号-%s)!",no);}else{for(i=k;i<dd.count;i++){strcpy(dd.stu[i].name,dd.stu[i+1].name);strcpy(dd.stu[i].no,dd.stu[i+1].no);strcpy(dd.stu[i].ad,dd.stu[i+1].ad);}dd.count--;save_data();printf("\n\n删除(学号-%s)成功!",no);}}// 编辑学生记录void edit_data(){int i,k;char no[50],ad[20];printf("\n请输入要编辑学生的学号:");scanf("%s",no);k=-1;for(i=0;i<dd.count;i++){if(strcmp(dd.stu[i].no,no)==0){k=i;break;10}}if(k==-1){printf("\n\n没有找到该学生(学号-%s)!",no);}else{printf("\n姓名:%s,学号:%s",dd.stu[k].name,dd.stu[k].no);printf("\n请修改学生数据:");printf("\n籍贯:");scanf("%s",ad);strcpy(dd.stu[k].ad,ad);}}// 查询(学号)void query_data_no(){int i,k;char no[50];printf("\n请输入要查询学生的学号:");scanf("%s",no);k=-1;for(i=0;i<dd.count;i++){if(strcmp(dd.stu[i].no,no)==0){{printf("\n\n姓名\t学号\t籍贯");printf("\n-----------------------------------------------------------------\n");}k=i;printf("%s\t%s\t%s\n",dd.stu[i].name,dd.stu[i].no,dd.stu[i].ad);}}if(k==-1){printf("\n\n没有找到该学生(学号-%s)!",no);}}// 查询(姓名)void query_data_name(){int i,k;char name[10];printf("\n请输入要查询学生的姓名:");scanf("%s",name);k=-1;for(i=0;i<dd.count;i++){if(strcmp(dd.stu[i].name,name)==0){{printf("\n\n姓名\t学号\t籍贯");printf("\n-----------------------------------------------------------------\n");}k=i;printf("%s\t%s\t%s\n",dd.stu[i].name,dd.stu[i].no,dd.stu[i].ad);}}if(k==-1){printf("\n\n没有找到该学生(姓名-%s)!",name);}}//查询(籍贯)void query_data_address(){int i,sum=0;char ad[20];printf("请输入籍贯信息:");scanf("%s",ad);printf("该籍贯的学生有:");for(i=0;i<dd.count;i++)if(strcmp(dd.stu[i].ad,ad)==0){printf("%s\t",dd.stu[i].name);sum++;}if(sum==0)printf(" 0 人 \n");}// 主函数void main(){int fun;read_data();menu();while(1){printf("请输入功能号[0-7]:",&fun);scanf("%d",&fun);switch(fun){case 0: // 退出break;case 1: // 查看所有学生信息view_data();break;case 2: // 输入学生记录add_data();break;case 3: // 删除学生记录delete_data();break;case 4: // 编辑学生记录edit_data();break;case 5: // 查询(学号)query_data_no();break;case 6: // 查询(姓名)query_data_name();break;case 7: // 查询(籍贯)query_data_address();break;}if(fun==0) break;to_menu();}}6.结论各项功能均能实现,但程序存在缺陷,如录入重复学号,没有出现提示功能,需要修改和完善。

相关文档
最新文档