程序没有报错,但是运行结果却是空白
#include <stdio.h>#include <stdlib.h>
#include<string.h>
int max=100000;
int size=0;
typedef struct student {
char name;//学生姓名
int number;//学生学号
int phone;//学生联系方式
char adress;//学生家庭住址
int ID;//学生身份证号码
char jiguan;//学生籍贯
char Class;//学生班级
}imformation;
void serch_number1(imformation im[],int num1){//管理员模式 ——姓名查找
int i=0;
for(;i<size;i++){
if(im.number == num1){
printf("%d \t %s \t %d \t %s \t %d \t %s \t %s\n",im.name,im.number,im.phone,im.adress,im.ID,im.jiguan,im.Class);
}
}
printf("查无此人\n");
}
void serch_number2(imformation im[],int num2){//学生模式 ——姓名查找
int i=0;
for(;i<size;i++){
if(im.number==num2){
printf("%d \t %s \t %c\n",im.number,im.name,im.Class);
}
}
printf("查无此人\n");
}
void serch_name1(imformation im[],char name1[]){//管理员模式 ——学号查找
int i=0;
for(;i<size;i++){
if(strcmp(im.name , name1)>0){
printf("%s \t %d \t %d \t %s \t %d \t %s \t %s\n",im.name,im.number,im.phone,im.adress,im.ID,im.jiguan,im.Class);
}
}
printf("查无此人\n");
}
void serch_name2(imformation im[],char name2[]){//学生模式 ——学号查找
int i=0;
for(;i<size;i++){
if(strcmp(im.name,name2)>0){
printf("%s %d %s",im.name,im.number,im.Class);
}
}
printf("查无此人\n");
}
void Input(imformation im[],int renshu){//输入学生信息
printf("学号\t姓名\t联系方式\t家庭住址\t身份证号码\t籍贯\t");
int i;
for(i=0;i<renshu;i++){
scanf("%d %s %d %s %d %s %s %s",&im.number, im.name, &im.phone, im.adress, &im.ID, im.jiguan, im.Class);
size++;
}
}
void add(imformation im[],int ge){//再添加学生信息
int geshu=size+ge;
printf("学号\t姓名\t联系方式\t家庭住址\t身份证号码\t籍贯\t");
int i;
for(i=size;i<geshu;i++){
scanf("%d %s %d %s %d %s %s %s",im.name, &im.number, &im.phone, im.adress, &im.ID, im.jiguan, im.Class);
size++;
}
}
void del(imformation im[],int numb) {//删除学生的信息,numb为学生学号
int i,j;
for(i = 0; i < size; i++) {
if(im.number == numb) {
for(j = i; j < size - 1; j++){
im = im;
}
size--;
printf("删除成功!\n");
}//end of if//
}//end of for//
printf("没有该学生\n");
}
void show1(imformation im[]){ //管理员模式 ——输出函数
int temp,j;
if(size==0)
printf("请先输入学生信息");
else {
printf("\t 学号 \t 姓名 \t 联系方式 \t 家庭住址 \t 身份证号码 \t 籍贯 \t 班级");
int i;
for(i=0;i<size;i++){
for(j=i+1;j<size;j++){
if(im.number>im.number) {//根据学号进行排序,学号小的在前面,学号大的在后面
temp=i;
i=j;
j=temp;
}
printf("%d %s %d %s %d %s %s",im.number, im.name, im.phone, im.adress, im.ID, im.jiguan, im.Class);
}
}
}
}
void show2(imformation im[]){//学生模式 ——输出函数
int temp,i,j;
if(size==0)
printf("请先输入学生信息");
else {
printf("\t 学号 \t 姓名 \t 班级");
for( i=0;i<size;i++){
for(j=i+1;j<size;j++){
if(im.number>im.number) {//根据学号进行排序,学号小的在前面,学号大的在后面
temp=i;
i=j;
j=temp;
}
printf("%d %c %c",im.number, im.name, im.Class);
}
}
}
}
void update(imformation im[]){//学生修改个人信息
int i=0,x,count;
printf("请输入自己的学号:");
scanf("%d",&count);
char chose;
for(;i<size;i++){
if(count==im.number)
break;
else{
printf("ERROR!");
}
}
printf("1.修改姓名 \n2.修改联系方式 \n3.修改家庭地址 \n4修改身份证号码 \n5.修改籍贯 \n6.修改班级 \n0.退出");
printf("请选择要修改的内容:");
do{
scanf("%d",&x);
switch(x){
case 1:
printf("请输入新的姓名\n");
scanf("%s",im.name);
strcpy(im.name,im.name);
break;
case 2:
printf("请输入新的联系方式\n");
scanf("%d",&im.phone);
im.phone=im.phone;
break;
case 3:
printf("请输入新的地址\n");
scanf("%s",im.adress);
strcpy(im.adress,im.adress);
break;
case 4:
printf("请输入新的身份证号码\n");
scanf("%d",&im.ID);
im.ID=im.ID;
break;
case 5:
printf("请输入新的籍贯\n");
scanf("%s",im.jiguan);
strcpy(im.jiguan,im.jiguan);
break;
case 6:
printf("请输入新的班级\n");
scanf("%s",im.Class);
strcpy(im.Class,im.Class);
break;
case 0:
break;
}
printf("是否继续修改?(y/n)");//可以进行多次修改,防止有多初错误
scanf("%c",&chose);
}while(chose=='y');
}
void menu1(){
printf("=====================================");
printf("|1.输入学生信息|*****|2.学号查找学生|");
printf("=====================================");
printf("|3.删除学生信息|*****|4.姓名查找信息|");
printf("=====================================");
printf("|5.浏览学生信息|*****|0.****退出****|");
printf("=====================================");
}
void menu2(){
printf("=====================================");
printf("|1.姓名查找学生|*****|2.学号查找学生|");
printf("=====================================");
printf("|3.修改个人信息|*****|4.浏览学生信息|");
printf("=====================================");
printf("|**************0. 退出**************|");
printf("=====================================");
}
int main(){
imformation student;
int student_number;
int shenfen;
printf("请输入你的身份(1.学生/2.管理员):");
scanf("%d",&shenfen);
if(shenfen==2) {
menu1();
int i=1,renshu;
char student_name;
printf("请做出选择:");
scanf("%d",&i);
while(i){
switch(i){
case 1://录入学生信息
printf("请输入需要录入的学生的人数:");
scanf("%d",&renshu);
Input(student,renshu);
break;
case 2://根据学号查找学生
printf("请输入需要查找的学生的学号:");
scanf("%d",&student_number);
serch_number1(student,student_number);
break;
case 3://删除学生信息
printf("请输入将被删除的学生的学号:");
scanf("%d",&student_number);
del(student,student_number);
break;
case 4://根据姓名查找学生
printf("请输入需要查找的学生的姓名:");
scanf("%s",student_name);
serch_name1(student,student_name);
break;
case 5://打印学生信息
show1(student);
break;
case 0://退出
printf("已成功退出");
break;
default:
printf("输错啦!!!");
}
}
}
else{
menu2();
int j=1;
char student_name;
printf("请做出选择:");
scanf("%d",&j);
while(j){
switch(j){
case 1://根据姓名查找学生
printf("请输入需要查找的学生的姓名:");
scanf("%s",student_name);
serch_name2(student,student_name);
break;
case 2://根据学号查找学生
printf("请输入需要查找的学生的学号:");
scanf("%d",&student_number);
serch_number2(student,student_number);
break;
case 3://学生自己修改自己的学生信息
update(student);
break;
case 4://打印学生信息
show2(student);
break;
case 0://退出
printf("已成功退出");
break;
default:
printf("输错啦!!!");
}
}
}
return 0;
}
哪位大佬帮下忙,周三就要交了。
在线等,挺急的!{:10_284:} 你这语法很多问题啊,怎么可能不报错
结构体那里定义出错了:要这样定义:
struct student_information
{
char name;//学生姓名
int number;//学生学号
int phone;//学生联系方式
char adress;//学生家庭住址
int ID;//学生身份证号码
char jiguan;//学生籍贯
char Class;//学生班级
};
struct student_information student;
max要用#define max 50 这样定义,才能用在数组定义中 紫霞真人 发表于 2020-6-9 13:05
你这语法很多问题啊,怎么可能不报错
结构体那里定义出错了:要这样定义:
struct student_information
...
真没报错,dev 错误0,警告0 我用的vc++6.0,你看看我的程序程序能不能运行,我在vc++6.0运行通过了
#include <stdio.h>
#include <stdlib.h>
#include<string.h>
#define max 50
int size=0;
struct student_information
{
char name;//学生姓名
int number;//学生学号
int phone;//学生联系方式
char adress;//学生家庭住址
int ID;//学生身份证号码
char jiguan;//学生籍贯
char Class;//学生班级
};
void serch_number1(struct student_information im[],int num1){
//管理员模式 ——姓名查找
int i=0;
for(;i<size;i++){
if(im.number == num1){
printf("%d \t %s \t %d \t %s \t %d \t %s \t %s\n",im.name,im.number,im.phone,im.adress,im.ID,im.jiguan,im.Class);
}
}
printf("查无此人\n");
}
void serch_number2(struct student_information im[],int num2){//学生模式 ——姓名查找
int i=0;
for(;i<size;i++){
if(im.number==num2){
printf("%d \t %s \t %c\n",im.number,im.name,im.Class);
}
}
printf("查无此人\n");
}
void serch_name1(struct student_information im[],char name1[]){//管理员模式 ——学号查找
int i=0;
for(;i<size;i++){
if(strcmp(im.name , name1)>0){
printf("%s \t %d \t %d \t %s \t %d \t %s \t %s\n",im.name,im.number,im.phone,im.adress,im.ID,im.jiguan,im.Class);
}
}
printf("查无此人\n");
}
void serch_name2(struct student_information im[],char name2[]){//学生模式 ——学号查找
int i=0;
for(;i<size;i++){
if(strcmp(im.name,name2)>0){
printf("%s %d %s",im.name,im.number,im.Class);
}
}
printf("查无此人\n");
}
void Input(struct student_information im[],int renshu){//输入学生信息
// printf("学号\t姓名\t联系方式\t家庭住址\t身份证号码\t籍贯\t");
int i=0;
for(i=0;i<renshu;i++){
scanf("%d %s %d %s %d %s %s %s",&im.number, im.name, &im.phone, im.adress, &im.ID, im.jiguan, im.Class);
size++;
}
}
void add(struct student_information im[],int ge){//再添加学生信息
int geshu=size+ge;
// printf("学号\t姓名\t联系方式\t家庭住址\t身份证号码\t籍贯\t");
int i;
for(i=size;i<geshu;i++){
scanf("%d %s %d %s %d %s %s %s",im.name, &im.number, &im.phone, im.adress, &im.ID, im.jiguan, im.Class);
size++;
}
}
void del(struct student_information im[],int numb) {//删除学生的信息,numb为学生学号
int i,j;
for(i = 0; i < size; i++) {
if(im.number == numb) {
for(j = i; j < size - 1; j++){
im = im;
}
size--;
printf("删除成功!\n");
}//end of if//
}//end of for//
printf("没有该学生\n");
}
void show1(struct student_information im[]){ //管理员模式 ——输出函数
int temp,j;
if(size==0)
printf("请先输入学生信息");
else {
// printf("\t 学号 \t 姓名 \t 联系方式 \t 家庭住址 \t 身份证号码 \t 籍贯 \t 班级");
int i;
for(i=0;i<size;i++){
for(j=i+1;j<size;j++){
if(im.number>im.number) {//根据学号进行排序,学号小的在前面,学号大的在后面
temp=i;
i=j;
j=temp;
}
printf("%d %s %d %s %d %s %s",im.number, im.name, im.phone, im.adress, im.ID, im.jiguan, im.Class);
}
}
}
}
void show2(struct student_information im[]){//学生模式 ——输出函数
int temp,i,j;
if(size==0)
printf("请先输入学生信息");
else {
printf("\t 学号 \t 姓名 \t 班级");
for( i=0;i<size;i++){
for(j=i+1;j<size;j++){
if(im.number>im.number) {//根据学号进行排序,学号小的在前面,学号大的在后面
temp=i;
i=j;
j=temp;
}
printf("%d %c %c",im.number, im.name, im.Class);
}
}
}
}
void update(struct student_information im[]){//学生修改个人信息
int i=0,x,count;
// printf("请输入自己的学号:");
// scanf("%d",&count);
char chose;
for(;i<size;i++){
if(count==im.number)
break;
else{
printf("ERROR!");
}
}
printf("1.修改姓名 \n2.修改联系方式 \n3.修改家庭地址 \n4修改身份证号码 \n5.修改籍贯 \n6.修改班级 \n0.退出");
printf("请选择要修改的内容:");
do{
scanf("%d",&x);
switch(x){
case 1:
printf("请输入新的姓名\n");
scanf("%s",im.name);
strcpy(im.name,im.name);
break;
case 2:
printf("请输入新的联系方式\n");
scanf("%d",&im.phone);
im.phone=im.phone;
break;
case 3:
printf("请输入新的地址\n");
scanf("%s",im.adress);
strcpy(im.adress,im.adress);
break;
case 4:
printf("请输入新的身份证号码\n");
scanf("%d",&im.ID);
im.ID=im.ID;
break;
case 5:
printf("请输入新的籍贯\n");
scanf("%s",im.jiguan);
strcpy(im.jiguan,im.jiguan);
break;
case 6:
printf("请输入新的班级\n");
scanf("%s",im.Class);
strcpy(im.Class,im.Class);
break;
case 0:
break;
}
printf("是否继续修改?(y/n)");//可以进行多次修改,防止有多初错误
scanf("%c",&chose);
}while(chose=='y');
}
void menu1(){
// printf("=====================================");
// printf("|1.输入学生信息|*****|2.学号查找学生|");
// printf("=====================================");
// printf("|3.删除学生信息|*****|4.姓名查找信息|");
// printf("=====================================");
// printf("|5.浏览学生信息|*****|0.****退出****|");
// printf("=====================================");
}
void menu2(){
printf("=====================================");
printf("|1.姓名查找学生|*****|2.学号查找学生|");
printf("=====================================");
printf("|3.修改个人信息|*****|4.浏览学生信息|");
printf("=====================================");
printf("|**************0. 退出**************|");
printf("=====================================");
}
int main(){
struct student_information student;
int student_number;
int shenfen;
printf("请输入你的身份(1.学生/2.管理员):");
scanf("%d",&shenfen);
if(shenfen==2) {
int i=1,renshu;
char student_name;
menu1();
printf("请做出选择:");
scanf("%d",&i);
while(i){
switch(i){
case 1://录入学生信息
printf("请输入需要录入的学生的人数:");
scanf("%d",&renshu);
Input(student,renshu);
break;
case 2://根据学号查找学生
printf("请输入需要查找的学生的学号:");
scanf("%d",&student_number);
serch_number1(student,student_number);
break;
case 3://删除学生信息
printf("请输入将被删除的学生的学号:");
scanf("%d",&student_number);
del(student,student_number);
break;
case 4://根据姓名查找学生
printf("请输入需要查找的学生的姓名:");
scanf("%s",student_name);
serch_name1(student,student_name);
break;
case 5://打印学生信息
show1(student);
break;
case 0://退出
printf("已成功退出");
break;
default:
printf("输错啦!!!");
}
}
}
else{
int j=1;
char student_name;
menu2();
printf("请做出选择:");
scanf("%d",&j);
while(j){
switch(j){
case 1://根据姓名查找学生
printf("请输入需要查找的学生的姓名:");
scanf("%s",student_name);
serch_name2(student,student_name);
break;
case 2://根据学号查找学生
printf("请输入需要查找的学生的学号:");
scanf("%d",&student_number);
serch_number2(student,student_number);
break;
case 3://学生自己修改自己的学生信息
update(student);
break;
case 4://打印学生信息
show2(student);
break;
case 0://退出
printf("已成功退出");
break;
default:
printf("输错啦!!!");
}
}
}
return 0;
} 紫霞真人 发表于 2020-6-10 11:00
我用的vc++6.0,你看看我的程序程序能不能运行,我在vc++6.0运行通过了
#include
#include
可以了,谢谢{:10_275:}
页:
[1]