当前位置:文档之家› C程序课程设计报告-学生证管理信息系统程序设计-二进制转换算法程序设计

C程序课程设计报告-学生证管理信息系统程序设计-二进制转换算法程序设计

题目要求学生证管理信息系统假设某校学生学生证基本信息主要包括:学号、姓名、所在系、班级等,本系统应能对这些基本信息进行管理,并要求具有以下功能:(1)通过键盘输入某位学生的学生证信息。

学生证包含的信息请参看自己的学生证;(2) 给定学号,显示某位学生的学生证信息;(3) 给定某个班级的班号,显示该班所有学生的学生证信息;(4)给定某位学生的学号,修改该学生的学生证信息;进制转换算法设计本系统要求具有以下功能:1、具有将十进制转换为二进制功能2、具有将十进制转换为十六进制功能3、具有将二进制转换为十进制功能4、具有将十六进制转换为十进制功能目录1.意义及功能 (2)1.1系统意义 (2)1。

1。

1学生证管理信息系统意义 (2)1。

1。

2进制转换算法设计意义 (2)1.2系统功能 (2)1.2.1学生证管理信息系统功能 (2)1.2。

2进制转换算法设计功能 (2)2功能结构图 (3)2。

1学生证管理信息系统 (3)2。

2进制转换算法设计 (3)3.流程图 (3)3.1学生证管理信息系统流程图 (3)3。

2学生证管理信息系统各部分功能流程图 (3)4调试运行 (4)4.1学生证管理信息系统 (4)4.2进制转换算法设计 (4)5 C语言源程序代码 (4)5。

1学生证管理信息系统 (4)5.2进制转换算法设计 (15)6心得体会 (26)7实习日志 (27)8参考文献 (20)1.意义及功能1.1系统意义1。

1。

1 学生证管理信息系统意义使用VC++编译学生证管理系统,使繁琐的普通人工管理转变成简单易行的C程序系统,用户只需在该界面上按要求输入学生证信息,就可随意删除和修改信息,还可以按学号、姓名或班号查询到相关学生的信息,使学生证的管理不再复杂.1。

1。

2 进制转换系统算法设计意义本进制转换系统可以快速便捷地实现十进制和二进制,十进制和十六进制之间的互相转换,用户不需要自己在纸面上忙碌而复杂地算了,只需简单输入需要转换的进制数,系统就能很快算出相应的其他进制数。

使进制转换简单易行。

1。

2系统功能1.2.1学生证管理信息系统功能假设某校学生学生证基本信息主要包括:学号、姓名、所在系、班级等,本系统应能对这些基本信息进行管理,并要求具有以下功能:(1) 通过键盘输入某位学生的学生证信息。

学生证包含的信息请参看自己的学生证;(2)给定学号,显示某位学生的学生证信息;(3)给定某个班级的班号,显示该班所有学生的学生证信息;(4)给定某位学生的学号,修改该学生的学生证信息;1.2.2 进制转换算法设计功能本系统要求具有以下功能:1、具有将十进制转换为二进制功能2、具有将十进制转换为十六进制功能3、具有将二进制转换为十进制功能4、具有将十六进制转换为十进制功能2功能结构图2.1 学生证管理信息系统图1功能结构图2。

2 进制转换算法设计3。

流程图3。

1学生证管理信息系统流程图3。

2学生证管理信息系统各部分功能流程图(1)添加模块(2)删除模块(3)根据学号查找某学生的学生证信息(4)根据姓名查找某学生的学生证信息(5)根据班号查询某个班级所有学生的信息(6)显示模块4调试运行4。

1学生证管理信息系统图(1)菜单图(2)添加图(3)添加时输入错误的改正图(4)删除图(5)查询菜单图(6)按学号查询图(7)按姓名查询图(8)按班号查询图(9)显示模块4。

2进制转换算法设计图(10)主菜单图(11)十进制转换为二进制图(12)十进制转换为十六进制图(13)二进制转换为十进制图(14)十六进制转换为十进制图(15)退出菜单5 C语言源程序代码5。

1 学生证管理信息系统// 学生证管理系统.cpp :Defines the entry point for the console application。

//#include "stdafx.h”#include<stdio。

h>#include〈stdlib.h>#include〈string。

h〉#define N 100struct Class //班级{char Cname[20];//班名char Cno[20];//班号};struct Student //学生{char Sname[20]; //姓名char Sex[10];//性别char Sno[20]; //学号int Age; //年龄struct Class CInfo;//嵌套结构体,表示班级信息}student[N];void main(); //主菜单void input();//添加模块void del();//删除模块void find();//查询模块void bySname();//按姓名查询,子模块void bySno(); //按学号查询,子模块void byCno(); //按班号查询,子模块void browse();//显示模块void main() //菜单{char c;int i;do{system(”cls");for(i=0;i〈80;i++)printf(”*”);printf("\t 1: 添加一个学生\n”);printf("\t 2:删除一个学生\n”);printf(”\t 3:查找一个学生\n”);printf(”\t 4: 显示一个学生\n");printf("\t 5:退出\n");printf("\t请选择输入选项[1\\2\\3\\4\\5]:\n");do{c=getchar();}while(c!='1'&&c!='2'&&c!='3’&&c!='4'&&c!=’5');getchar();switch(c){case ’1’:input(); break;case ’2’:del();break;case '3’:find(); break;case ’4’:browse(); break;case ’5’:exit(0);}printf(" 按任意键返回主菜单:\n");getchar();system("cls");}while(1);}void input() //添加学生信息,一次添加一条记录{int num;int i;int age;char sno[20];char sex[20];char cno[20];int right;FILE*fp;if((fp=fopen("StuInfo。

txt",”r+"))==NULL)//以读写方式打开{if((fp=fopen("StuInfo。

txt","w”))==NULL) //文件不存在则创建文件{printf(”\n文件不存在且创建失败,返回!\n”);main();}printf("\n请按照提示输入学生信息:\n\n”);printf(”姓名:”);scanf(”%s”,&student[0].Sname);do{printf("\n性别(男或女):");scanf("%s”,sex);if((strcmp(sex,”男")!=0)&&(strcmp(sex,”女”)!=0)){printf(”输入错误,请输入男或女!\n”);right=1;getchar();}else right=0;}while(right==1);strcpy(student[0].Sex,sex);do{printf(”\n学号(7位):”);scanf(”%s",sno);if(strlen(sno)!=7){printf(”输入错误,学号长度应为7位数!\n");right=1;getchar();}else right=0;}while(right==1);strcpy(student[0]。

Sno,sno);do{printf("\n年龄:”);scanf(”%d”,&age);if(age〈=0||age〉100){printf(”年龄应在0-100之间,请重新输入年龄!\n”);right=1;getchar();}else right=0;}while(right==1);student[0].Age=age;do{printf("\n班号(3位):”);scanf(”%s",cno);if(strlen(cno)!=3){printf(”输入错误,班号长度应为3位数!\n”);right=1;getchar();}else right=0;}while(right==1);strcpy(student[0]。

o,cno);printf(”\n班名:");scanf("%s”,&student[0]。

ame);fprintf(fp,"\n%s\t%s\t%s\t%d\t%s\t%s”,student[0]。

Sname,student[0]。

Sex,student[0].Sno,student[0]。

Age,student[0]。

CInfo。

Cno,student[0]ame);fclose(fp);printf("\n保存成功!\n");printf(”\n请按enter键返回主菜单!\n");getchar();getchar();main();}for(i=0;!feof(fp);i++)//读取文件{fscanf(fp,”%s%s%s%d%s%s",&student[i].Sname,&student[i]。

Sex,&student[i]。

Sno,&student[i].Age,&student[i]。

CInfo。

Cno,&student[i]。

CInfo。

Cname);}num=i;if(num==N){ printf("\n保存记录数超出结构体数组数的大小,请先修改N的值\n”);main();}printf(”\n请按照提示输入学生信息:\n\n");printf("姓名:”);scanf("%s”,&student[num]。

Sname);do{printf("\n性别(男或女):”);scanf(”%s”,sex);if((strcmp(sex,”男")!=0)&&(strcmp(sex,”女”)!=0)){printf(”输入错误,请输入男或女!\n");right=1;getchar();}else right=0;}while(right==1);strcpy(student[num]。

相关主题