1、首先创建一个c语言项目。然后右键头文件,创建一个Stu的头文件。
10多年的社旗网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。成都全网营销推广的优势是能够根据用户设备显示端的尺寸不同,自动调整社旗建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。创新互联公司从事“社旗网站设计”,“社旗网站推广”以来,每个客户项目都认真落实执行。
2、编写头文件的代码。再将数据结构的增删改查和结构体写入头文件。
3、在源文件中创建main源文件和Stu源文件。再main文件中写入int mian()代码。
4、然后在mian主函数中,写入while语句无限循环。再写入Init函数。
5、在Stu源文件的Init函数用printf语句,将学生管理系统输出。再创建链表的头节点head。
6、然后用switch函数对操作进行判断。再执行数据结构的增删改查功能。这样一个学生管理系统的基本框架就完成了。
C代码和运行结果如下:
输入5,成功输出了其在给定数组中的下标为4,结果正确,望采纳~
附源码:
#include stdio.h
int search(int a[], int n, int x) { // 返回数组a[]中x的下标
int i;
for (i = 0; i n; i++) {
if (a[i] == x)
return i;
}
return -1; // 数组中没有x则返回-1
}
int main() {
int x, a[10] = {7,9,3,4,5,2,1,6,10,8};
scanf("%d", x); // 用户输入数x
printf("%d ", search(a, 10, x)); // 输出x在数组中的下标
return 0;
}
" 1.输入/添加学生资料 "endl "
2.输出学生资料" endl "
3.查找 " endl "
4.删除" endl "
5.总分排序" endl "
6.退出" endl endl "
请选择你要的服务(1-6)" endl; cin chose; if(chose=='6') { break; } switch(chose) { case '1': //
输入学生信息 { do { cout "
请输入学生姓名:" endl; ch1=new char[]; ch2=new char[]; cin ch1 ; cout "
请输入学号:" endl; cin num ; while(st.check_num(num)) { cout "
学号重复,请重新输入" endl; cin num; } cout "
请输入地址:"endl; cin ch2 ; cout "
请输入高数成绩:"endl; cin x; cout "
请输入英语成绩:" endl; cin y; cout "
请输入计算机成绩:" endl; cin z; st.input(ch1,num,ch2,x,y,z); printf("\n
是否继续输入学生信息?(\"y\"继续)"); scanf("%s", flag); }while(strcmp(flag, "y") == 0); }break; case '2'://
输出学生资料 { temp=count; count=1; cout "
序号\t姓名\t学号\t\t地址\t\t\t高数\t英语\t计算机" endl; while(count=temp) { st.show(); count++; } count--; getch(); }break; case '3': { cout "
请输入你要查找学生的学号" endl; cin find; st.find(find); }break; case '4': { cout "
请输入你要删除的学生学号" endl; cin del; st.del(del); }break; case '5': { st.taxis(); }break;
default: { cout "输入错误!!!,请重新输入" endl; getch(); } } } cout "感谢你的使用!\n" endl; getch();
}
#include stdio.h
#include windows.h
#include string.h
struct worker
{
int num;
char name[20];
char zhicheng[10];
int wages;
int reward;
long birth;
int salary;
}work[500],work1; /*定义结构体*/
void menu(); //声明菜单函数
void type_in(); //声明录入函数
void baocun(int); //声明保存函数
void scan(); //声明浏览函数
void del(); //声明删除函数
void search(); //声明查询函数
void search_zhicheng(); //声明按职称查询函数
void search_name(); //声明按姓名查找函数
void change(); //声明修改函数
void order(); //声明排序函数
void add(); //声明添加函数
void order_wages();
void order_name();
void menu() /*菜单函数*/
{
printf("\n");
printf(" welcome to \n");
printf(" 职工信息管理系统 ");
printf("******************************************************************************\n");
printf(" 1.录入职工信息\n");
printf(" 2.浏览职工信息\n");
printf(" 3.查询职工信息\n");
printf(" 4.删除职工信息\n");
printf(" 5.修改职工信息\n");
printf(" 6.职工信息排序\n");
printf(" 7.添加职工信息\n");
printf(" 8.退出\n");
printf("*******************************************************************************\n");
printf("\n");
}
/********************************************************************************************/
void main()
{
int n,f;
while(1)
{
do
{
menu(); /*调用菜单函数*/
printf("请输入你需要操作的序号(1—8):\n");
scanf("%d",n);
if(n=1n=8)
{
f=1;
break;
}
else
{
f=0;
printf("您输入有误,请重新选择!");
}
}while(f==0);
switch(n)
{
case 1:printf(" 录入职工信息\n");printf("\n");type_in();break;
case 2:printf(" 浏览职工信息\n");printf("\n");system("cls");scan();break;
case 3:printf(" 查询职工信息\n");printf("\n");system("cls");search();break;
case 4:printf(" 删除职工信息\n");printf("\n");system("cls");del();break;
case 5:printf(" 修改职工信息\n");printf("\n");system("cls");change();break;
case 6:printf(" 职工信息排序\n");printf("\n");system("cls");order();break;
case 7:printf(" 添加职工信息\n");printf("\n");system("sls");add();break;
case 8:goto loop;/*用goto语句跳至跳至指定的行*/
default :break;
}
}
loop://行标
system("cls");
printf("\n\n\n\n\n\n -----
首先,指针默认只有一个地址的长度的空间,存不了那么多的字符。
其次,传值和传地址一塌糊涂,完全就是乱写么。
scanf的第二个参数是地址,如果本身不是指针则需要取址符。
我给你重写了算了
#includestdio.h
int Retrieve(int array[],int length,int x);/*形参x直接传值就可以了*/
int main()
{
int *a,x;
int length,i;
scanf("%d",length);
a = (int)malloc(sizeof(int)*length); /*申请一个内存空间用来存放数据,或者直接用一个大数组也可以*/