您的位置:

终结者版c语言课程设计,c语言课程设计结束语

本文目录一览:

一个c语言的习题 求解

你是哪的啊?怎么和我们的一样啊?必须告诉我,是一个学校的就告诉你了!这个就是完整的程序!你就不用改了!

#include stdio.h

#include io.h

#include stdlib.h

#include string.h

#define MAX 200

struct student

{

char no[10]; // 学号

char name[50]; // 姓名

int age; //年龄

char sex[100]; //性别

char birthday[50];//出生年月

char address[50]; //地址

char phone[50]; //电话

char mail[50]; //E-mail

};

struct data

{

int 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********************************\n");

}

// 等待用户按回车后回到主菜单

void to_menu()

{

char c1,c2;

printf("\n\n\n按回车键返回主菜单...");

scanf("%c%c",c1,c2);

menu();

}

// 查看所有学生信息

void view_data()

{

int i;

printf("学号\t姓名\t年龄\t性别\t出生年月\t地址\t电话\tmail");

printf("\n-------------------------------------------------------------------\n");

for(i=0;idd.count;i++)

printf("%s\t%s\t%d\t%s\t%s\t%s\t%s\t%s\n",dd.stu[i].no,dd.stu[i].name,dd.stu[i].age,dd.stu[i].sex,dd.stu[i].birthday,dd.stu[i].address,dd.stu[i].phone,dd.stu[i].mail);

printf("\n");

}

// 将数据从结构体数组保存到文件中

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;ik;i++)

fwrite(dd.stu[i],sizeof(struct student),1,fp);

fclose(fp);

}

// 输入学生记录

void add_data()

{

struct student st;

int b;

int k;

while(1)

{

printf("\n请输入学生信息:");

printf("\n学号\t姓名\t年龄\t性别\t出生年月\t地址\t电话\tmail");

printf("\n---------------------------------------------------------------\n");

scanf("%s%s%d%s%s%s%s%s",st.no,st.name,st.age,st.sex,st.birthday,st.address,st.phone,st.mail);

k = dd.count;

strcpy(dd.stu[k].no,st.no);

strcpy(dd.stu[k].name,st.name);

dd.stu[k].age=st.age;

strcpy(dd.stu[k].sex,st.sex);

strcpy(dd.stu[k].birthday,st.birthday);

strcpy(dd.stu[k].address,st.address);

strcpy(dd.stu[k].phone,st.phone);

strcpy(dd.stu[k].mail,st.mail);

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;

struct 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;ik;i++)

{

fread(st,sizeof(struct student),1,fp);

strcpy(dd.stu[i].no,st.no);

strcpy(dd.stu[i].name,st.name);

dd.stu[i].age=st.age;

strcpy(dd.stu[i].sex,st.sex);

strcpy(dd.stu[i].birthday,st.birthday);

strcpy(dd.stu[i].address,st.address);

strcpy(dd.stu[i].phone,st.phone);

strcpy(dd.stu[i].mail,st.mail);

}

fclose(fp);

}

// 删除学生记录

void delete_data()

{

int i,k;

char no[10];

printf("\n请输入要删除学生的学号:");

scanf("%s",no);

k=-1;

for(i=0;idd.count;i++)

{

if(strcmp(dd.stu[i].no,no)==0)

{

k=i;

break;

}

}

if(k==-1)

{

printf("\n\n没有找到该学生(学号-%s)!",no);

}

else

{

for(i=k;idd.count-1;i++)

{

strcpy(dd.stu[i].no,dd.stu[i+1].no);

strcpy(dd.stu[i].name,dd.stu[i+1].name);

dd.stu[i].age=dd.stu[i].age;

strcpy(dd.stu[i].sex,dd.stu[i+1].sex);

strcpy(dd.stu[i].birthday,dd.stu[i+1].birthday);

strcpy(dd.stu[i].address,dd.stu[i+1].address);

strcpy(dd.stu[i].phone,dd.stu[i+1].phone);

strcpy(dd.stu[i].mail,dd.stu[i+1].mail);

}

dd.count--;

save_data();

printf("\n\n删除(学号-%s)成功!",no);

}

}

// 修改学生信息

void edit_data()

{

int i,k,age;

char no[10],name[50],sex[50],birthday[50],address[50],phone[50],mail[50];

printf("\n请输入要修改学生信息的学号:");

scanf("%s",no);

k=-1;

for(i=0;idd.count;i++)

{

if(strcmp(dd.stu[i].no,no)==0)

{

k=i;

break;

}

}

if(k==-1)

{

printf("\n\n没有找到该学生(学号-%s)!",no);

}

else

{

printf("\n请输入学生数据:");

printf("\n学号\t姓名\t年龄\t性别\t出生年月\t地址\t电话\tmail");

printf("\n--------------------------------------------------------------------\n");

scanf("%s\t%s\t%d\t%s\t%s\t%s\t%s\t%s",no,name,age,sex,birthday,address,phone,mail);

strcpy(dd.stu[k].no,no);

strcpy(dd.stu[k].name,name);

dd.stu[k].age=age;

strcpy(dd.stu[k].sex,sex);

strcpy(dd.stu[k].birthday,birthday);

strcpy(dd.stu[k].address,address);

strcpy(dd.stu[k].phone,phone);

strcpy(dd.stu[k].mail,mail);

save_data();

printf("\n\n修改学生信息(学号-%s)成功!",no);

}

}

// 查询(学号)

void query_data_no()

{

int i,k;

char no[10];

printf("\n请输入要查询学生的学号:");

scanf("%s",no);

k=-1;

for(i=0;idd.count;i++)

{

if(strcmp(dd.stu[i].no,no)==0)

{

if(k==-1)

{

printf("\n\n学号\t姓名\t年龄\t性别\t出生年月\t地址\t电话\tmail");

printf("\n-----------------------------------------------------------------\n");

}

k=i;

printf("%s\t%s\t%d\t%s\t%s\t%s\t%s\t%s\n",dd.stu[i].no,dd.stu[i].name,dd.stu[i].age,dd.stu[i].sex,dd.stu[i].birthday,dd.stu[i].address,dd.stu[i].phone,dd.stu[i].mail);

}

}

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;idd.count;i++)

{

if(strcmp(dd.stu[i].name,name)==0)

{

if(k==-1)

{

printf("\n\n学号\t姓名\t年龄\t性别\t出生年月\t地址\t电话\tmail");

printf("\n-----------------------------------------------------------------\n");

}

k=i;

printf("%s\t%s\t%d\t%s\t%s\t%s\t%s\t%s\n",dd.stu[i].no,dd.stu[i].name,dd.stu[i].age,dd.stu[i].sex,dd.stu[i].birthday,dd.stu[i].address,dd.stu[i].phone,dd.stu[i].mail);

}

}

if(k==-1)

{

printf("\n\n没有找到该学生(姓名-%s)!",name);

}

}

// 主函数

void main()

{

int fun;

read_data();

menu();

while(1)

{

printf("请输入功能号[0-8]:",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;

break;

}

if(fun==0) break;

to_menu();

}

}

2011年

C语言题目求解 《C和指针》64页,4.14编程练习第五题

用变量指针存下前一行的输入记录,比对下一行就可以了额。有什么大的问题吗?

[C语言]随意输入一串字符,统计出里面元音字母的个数

#include "stdio.h"

void fun (char *str,int num[], int n) {

int i=0;

// 初始化num

for (i=0; in; i++)

num[i]=0;

// *str == '\0'终结

while(str) {

switch (*str) {

case 'a': case 'A':

case 'e': case 'E':

case 'i': case 'I':

case 'o': case 'O':

case 'u': case 'U': num[0]++; break;

default: num[1]++; break;

}

str ++;

}

return;

}

main()

{

int num[2],i;

char str[256];

gets(str);

fun(str, num, 2);

printf("元音数是:%d 辅音数是:%d\n",num[0],num[1]);

}

本程序适于扩展,并且高效。

C语言与C++与JAVA的区别是什么?

C语言是经典的面向过程的编程语言,编程入门一般都学C语言以了解编程以及锻炼逻辑思维能力,在一些跟硬件比较紧密的编程中也经常用到。\x0d\x0a\x0d\x0aC++是在C语言的基础上加入了面向对象的概念,成为混合型面向对象语言,功能强大,但难度也大。\x0d\x0a\x0d\x0aJava是在C++的基础上进行改进的,摒弃了一些C++的不足之处,语法跟C++很像,它是运行在Java虚拟机上,所以可以跨平台,一处编译,到处执行。\x0d\x0a\x0d\x0a编程都是易学难精,哪个都好学,哪个又都不好学。都有很好的发展前景,就看是什么方向了。底层的C、桌面应用程序、游戏等等C++、嵌入式,网页,Java。

c语言课程设计:图书管理系统。运行总出错,求大神修改,可追加悬赏

#includestdio.h

#includestring.h

#includestdlib.h

struct book{

char ISBN[10];

char book[30];

char author[20];

char edition[10];

char press[50];

char year[10];

};

void add_book();

void delete_book();

void modify_book();

void scan_book();

void Me();

int main()

{

int c3;

while(1)

{

system("color 2C");

printf("\t\t\t=========图书管理系统======\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=========================\n");

printf("\n");

printf("请选择你的操作 :");

scanf("%d",c3);

getchar();

switch(c3)

{

case 1:add_book(); break;

case 2:delete_book(); break;

case 3:modify_book(); break;

case 4:scan_book(); break;

case 5:Me(); break;

case 6:system("cls");

//return 0;这是返回就跳出程序了,会终止程序运行

}

}

return 0;//其实这句被执行,这个程序就终结了,释放所有被使用的资源。

}

//添加

void add_book()

{

FILE *fp;

struct book n;

struct book nn;

char x;

int l,r;

fp=fopen("图书管理系统.txt","ab+");

do

{

system("cls");

do//I标志用得不好

{

// l=0;此处的移进下一循环内

printf("\n");

printf("编号 书名 作者 版本号 出版社 出版时间\n");

fflush(stdin);

scanf("%s %s %s %s %s %s",n.ISBN,n.book,n.author,n.edition,n.press,n.year);

system("cls");

rewind(fp);

while(!feof(fp))

{

l=0;// 移进此处,每次判断都是设定默认值,否则被修改后不是默认值

fread(nn,sizeof(nn),1,fp);

r=strcmp(n.book,nn.book);

if(r==0)

{

l=1;

printf(" 该图书已存在,请输入新的图书信息: \n\n");

break;

}

}

}while(l);

fwrite(n,sizeof(n),1,fp);

printf("\n");

printf("是否继续输入新的图书信息[y/n] \n\n");

do

{

x=getchar();

}while(x!='n'x!='y');

}while(x=='y');

fclose(fp);

system("cls");

}

//删除图书

void delete_book()

{

FILE *fp,*fp1;

char x,z;

struct book n;

struct book nn;

int l,r;

fp=fopen("图书管理系统.txt","ab+");

while(1)

{

l=0;

system("cls");

printf("\n");

printf("请输入需要删除的图书名: \n\n");

fflush(stdin);

scanf("%s",n.book);

rewind(fp);

while(1)

{

fread(nn,sizeof(nn),1,fp);

if(feof(fp))

break;

r=strcmp(n.book,nn.book);

if(r==0)//本来可以 得到结果后可以直接进行删除动作,没有则检查下一个,你现在

//不用这种结构,写得太多了,不跟你修改了

{

l=1;

break;

}

if(l==0)

{

printf("\n");

printf("对不起,未找到该图书 \n");

}

else

{

printf("\n");

printf("编号 书名 作者 版本号 出版社 出版时间\n");

printf("\n");

//下面应该是打印,n的值应该从搜索到值读出来打印,怎么还手工输入图书信息,手

//工输入能保证每一次输入都与原信息一样吗?

scanf("%s %s %s %s %s %s",n.ISBN,n.book,n.author,n.edition,n.press,n.year);

printf("\n");

printf("确认删除图书信息? [是(y)/否(n)]\n\n");

do

{

z=getchar();

}while(z!='n'z!='y');

if(z=='n')

break;

else

{

fp1=fopen("图书管理系统.txt","wb");

rewind(fp);

while(1)

{

fread(nn,sizeof(nn),1,fp);

if(feof(fp))

break;

r=strcmp(n.book,nn.book);

if(r!=0)

fwrite(nn,sizeof(nn),1,fp1);

}

fclose(fp);

fclose(fp1);

fp=fopen("图书管理系统.txt","wb");

fp1=fopen("图书管理系统new.txt","rb");

while(1)

{

fread(nn,sizeof(nn),1,fp1);

if(feof(fp1))

break;

fwrite(nn,sizeof(nn),1,fp);

}

fclose(fp);

fclose(fp1);

}

}

printf("\n");

printf("是否继续删除图书信息? [是(y)/否(n)] \n");

do

{

x=getchar();

}while(x!='n'x!='y');

if(x=='n')

break;

}

fclose(fp);

system("cls");

}

//修改图书信息

void modify_book()

{

FILE *fp;

struct book n;

struct book nn;

int l,r;

char x;

fp=fopen("图书管理系统.txt","rb+");

while(1)

{

l=0;

printf("\n");

system("cls");

printf("请输入需要修改的图书名: \n\n");

fflush(stdin);

scanf("%s",n.book);

system("cls");

rewind(fp);

while(1)

{

fread(nn,sizeof(nn),1,fp);

if(feof(fp))

break;

r=strcmp(n.book,nn.book);

if(r==0)

{

l=1;

break;

}

}

if(l==0)

{

printf("\n");

printf("对不起,未找到该图书信息 \n\n");

}

else

{

printf("\n");

printf("编号 书名 作者 版本号 出版社 出版时间\n");

printf("\n");

//下面应该是打印,n的值应该从搜索到值读出来打印,怎么还手工输入图书信息,

//手工输入能保证每一次输入都与原信息一样吗?

scanf("%s %s %s %s %s %s",n.ISBN,n.book,n.author,n.edition,n.press,n.year);

printf("请依次修改图书信息\n\n\n");

fflush(stdin);

scanf("%s %s %s %s %s %s",n.ISBN,n.book,n.author,n.edition,n.press,n.year);

fseek(fp,sizeof(nn),1);

fwrite(n,sizeof(nn),1,fp);

}

printf("\n");

printf(" 是否继续修改用户信息[y/n]? \n\n");

do

{

x=getchar();

}while(x!='n'x!='y');

if(x=='n')

break;

}

fclose(fp);

system("cls");

}

//浏览

void scan_book()

{

FILE*fp;

char x;

struct book n;

fp=fopen("图书管理系统.txt","rb");

rewind(fp);

system("cls");

while(1)

{

fread(n,sizeof(n),1,fp);

if(feof(fp))

break;

else

{

printf("编号 书名 作者 版本号 出版社 出版时间\n");

printf("\n");

//下面应该是打印,n的值应该从搜索到值读出来打印,阅览信息怎会输入信息

scanf("%s %s %s %s %s %s",n.ISBN,n.book,n.author,n.edition,n.press,n.year);

printf("\n");

}

}

printf("\n");

printf("回到主菜单请按回车");

do

{

x=getchar();

}while(x!='\r');

if(x=='\r')

{

fclose(fp);

//main();子函数调用主函数,变成递归,不知程序怎么运行了;

system("cls");

return;//返回主程序就可以了,主程序一直主菜单里运行

}

}

void Me(){

printf("作者姓名:0\n");

printf("作者学号:0\n");

}