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

发布时间:2023-01-04

本文目录一览:

  1. 一个c语言的习题 求解
  2. C语言题目求解 《C和指针》64页,4.14编程练习第五题
  3. [C语言]随意输入一串字符,统计出里面元音字母的个数
  4. C语言与C++与JAVA的区别是什么?
  5. 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;i<dd.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;i<k;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;i<k;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;i<dd.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;i<dd.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;i<dd.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;i<dd.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;i<dd.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; i<n; 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语言以了解编程以及锻炼逻辑思维能力,在一些跟硬件比较紧密的编程中也经常用到。 C是在C语言的基础上加入了面向对象的概念,成为混合型面向对象语言,功能强大,但难度也大。 Java是在C的基础上进行改进的,摒弃了一些C的不足之处,语法跟C很像,它是运行在Java虚拟机上,所以可以跨平台,一处编译,到处执行。 编程都是易学难精,哪个都好学,哪个又都不好学。都有很好的发展前景,就看是什么方向了。底层的C、桌面应用程序、游戏等等C++、嵌入式,网页,Java。

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

#include<stdio.h>
#include<string.h>
#include<stdlib.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;//其实这句被执行,这个程序就终结了,释放所有被使用的资源。
}
//添加
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标志用得不好
        {
            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");
}